diff options
Diffstat (limited to 'ld')
148 files changed, 4673 insertions, 3749 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index c9b43dc..f77eb40 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,7 +1,192 @@ +2004-04-30 Alan Modra <amodra@bigpond.net.au> + + * ldlang.c (unique_section_p): Pass section parm, return true on + group sections. + (output_section_callback): Adjust. + * ldlang.h (unique_section_p): Update prototype. + * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Adjust. + +2004-04-30 Eric Botcazou <ebotcazou@act-europe.fr> + + * ld.texinfo (--gc-sections): Remove restriction for + dynamic linking. + +2004-04-29 Brian Ford <ford@vss.fsi.com> + + * scripttempl/pe.sc: Handle .debug* and .gnu.linkonce.wi.* sections + for DWARF 2/3. Update stab section's syntax. + +2004-04-29 Alan Modra <amodra@bigpond.net.au> + + * pe-dll.c: Revert changes accidentally committed 2004-03-08. + (fill_edata): Correct pointer arithmetic. + +2004-04-21 Chris Demetriou <cgd@broadcom.com> + + * ld.texinfo: Remove MIPS --embedded-relocs documentation. + * emulparams/elf32bmip.sh (EXTRA_EM_FILE): Remove definition. + * emulparams/mipsidt.sh (TEMPLATE_NAME): Use generic.em. + (EXTRA_EM_FILE): Use mipsecoff.em + * emulparams/mipsidtl.sh (TEMPLATE_NAME): Use generic.em. + (EXTRA_EM_FILE): Use mipsecoff.em + * emultempl/mipsecoff.em: Restructure to be included as an + extra emulation file. + (check_sections, gld${EMULATION_NAME}_after_open) + (gld${EMULATION_NAME}_after_allocation) + (gld${EMULATION_NAME}_get_script) + (ld_${EMULATION_NAME}_emulation): Remove + (gld${EMULATION_NAME}_before_parse): Rename to... + (mipsecoff_before_parse): This. + (LDEMUL_BEFORE_PARSE): Define. + * emultempl/mipself.em: Remove file. + * scripttempl/mips.sc (.rel.sdata): Do not include in output. + (__runtime_reloc_start, __runtime_reloc_stop): Stop providing + these symbols. + * Makefile.am: Remove dependencies on emultempl/mipself.em. + * Makefile.in: Regenerate. + +2004-04-21 Anil Paranjpe <anilp1@kpitcummins.com> + + * ld.texinfo (synthesizing on H8/300): Information about linker + relaxation support for bit manipulation instructions and system + control instructions is added. + +2004-04-21 Hans-Peter Nilsson <hp@axis.com> + + * NEWS: Mention change in DEFINED semantics. + +2004-04-21 Eric Botcazou <ebotcazou@act-europe.fr> + + * scripttempl/elf.sc (.text): Add KEEP for .text.*personality*. + (.data): Add KEEP for .gnu.linkonce.d.*personality*. + (.gcc_except_table): Add KEEP for self and accept .gcc_except_table.*. + +2004-04-21 Ben Elliston <bje@au.ibm.com> + + * ld.texinfo (Simple Example): Add missing punctuation. + +2004-04-20 Chris Demetriou <cgd@broadcom.com> + + * NEWS: Note that MIPS --embedded-relocs option is deprecated. + +2004-04-19 Jakub Jelinek <jakub@redhat.com> + + * ldlang.c (lang_do_assignments_1): Handle .tbss output section + specially. + +2004-04-18 Danny Smith <dannysmith@users.sourceforge.net> + + * scriptempl/pe.sc: Put numbered .ctors.* after .ctors + with default priority. Likewise for dtors. + +2004-04-11 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + + * configure.host: Remove mips*-dec-bsd* target. + * configure.tgt: Likewise. + +2004-04-08 Richard Sandiford <rsandifo@redhat.com> + + * emulparams/elf32bsmip.sh (EXTRA_EM_FILE): Define to irix. + * emulparams/elf64bmip.sh (EXTRA_EM_FILE): Likewise. + * emulparams/elf32bmipn32.sh (EXTRA_EM_FILE): Likewise. + * emultempl/irix.em: New file. + * Makefile.am (eelf32bsmip.c, eelf32bmipn32.c, eelf64bmip.c): Update + dependencies. + * Makefile.in: Regenerate. + +2004-04-01 Paul Brook <paul@codesourcery.com> + + * emultempl/armelf.em (byteswap_code): Add. + (arm_elf_before_allocation): Pass extra parameter. + (PARSE_AND_LIST_PROLOGUE): Add OPTION_BE8. + (PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS): Add be8. + (PARSE_AND_LIST_ARGS_CASES): Handle OPTION_BE8. + * emultempl/armelf_oabi.em: Pass extra parameter. + * ld.texinfo: Document --be8. + +2004-03-30 Stan Shebs <shebs@apple.com> + + Remove long-obsolete MPW support. + * mpw-config.in, mpw-make.sed, mac-ld.r: Remove files. + * Makefile.am (mpw): Remove file-presynthesizing actions. + * Makefile.in: Likewise. + * ldfile.c (slash): Remove MPW case. + * ldlex.l [MPW]: Remove unused definition. + +2004-03-30 Galit Heller <Galit.Heller@nsc.com> + + * Makefile.am (ALL_EMULATIONS): Add eelf32cr16c.o. + (eelf32cr16c.c): New target. + * Makefile.in: Regenerate. + * configure.tgt: Handle cr16c-*-elf*. + * emulparams/elf32cr16c.sh: New file. + * scripttempl/elfcr16c.sc: Likewise + * NEWS: Mention support for new target. + +2004-03-30 Nick Clifton <nickc@redhat.com> + + * po/sv.po: Updated Swedish translation. + +2004-03-27 Alan Modra <amodra@bigpond.net.au> + + * emultempl/elf32.em: Update new bfd_elf_discard_info name. + * emultempl/hppaelf.em: Likewise. + * emultempl/ppc64elf.em: Likewise. + * emultempl/sh64elf.em: Likewise. + +2004-03-25 Alan Modra <amodra@bigpond.net.au> + + * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Update + size_dynamic_sections call. + +2004-03-23 Alan Modra <amodra@bigpond.net.au> + + PR 51. + * emultempl/ppc64elf.em (ppc_create_output_section_statements): Set + link_info.wrap_char. + +2004-03-20 H.J. Lu <hongjiu.lu@intel.com> + + * lexsup.c (parse_args): Don't set unresolved_syms_in_objects + or unresolved_syms_in_shared_libs for -Bdynamic and -Bstatic. + +2004-03-20 Alexandre Oliva <aoliva@redhat.com> + + * emulparams/elf32frvfd.sh (MAXPAGESIZE): Change to 16Kb. + +2004-03-19 Alan Modra <amodra@bigpond.net.au> + + * config.in: Regenerate. + * po/ld.pot: Regenerate. + +2004-03-18 Alan Modra <amodra@bigpond.net.au> + + * ld.texinfo: Add --as-needed doco. + * ldmain.c (as_needed): New global var. + * ldmain.h (as_needed): Declare. + * lexsup.c (option_values): Add OPTION_AS_NEEDED and + OPTION_NO_AS_NEEDED. + (ld_options): Likewise. + (parse_args): Handle them. + * ldlang.h (lang_input_statement_type): Add as_needed field. + * ldlang.c (new_afile): Set p->as_needed. + * emultempl/elf32.em (gld${EMULATION_NAME}_load_symbols): New function. + (gld${EMULATION_NAME}_try_needed): Use bfd_elf_set_dyn_lib_class. + (ld_${EMULATION_NAME}_emulation): Set LDEMUL_RECOGNIZED_FILE entry. + + * ldlang.c (open_input_bfds): Remove useless cast. + (lang_do_assignments_1): Likewise. + (lang_for_each_input_section): Delete. + 2004-03-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de> * configure.tgt: Switch sh-*-rtems* to ELF. Add sh-*-rtemscoff*. +2004-03-08 Danny Smith <dannysmith@users.sourceforge.net> + + * pe-dll.c (pe_dll_generate_implib): Skip sections marked as + private when building implib. + 2004-03-05 Nathan Sidwell <nathan@codesourcery.com> * ldlang.c (lang_add_section): Don't force SEC_LOAD on @@ -9,6 +194,19 @@ (IGNORE_SECTION): Ignore .tbss sections too. (lang_size_sections_1): .tbss sections do not advance dot. +2004-03-01 Andreas Schwab <schwab@suse.de> + + * ld.texinfo (Options): Fix example for --wrap. + +2004-02-25 Danny Smith <dannysmith@users.sourceforge.net> + + * pe-dll.c (fill_edata): Check that exported_symbol_sections is + not NULL. + +2004-02-23 Ian Lance Taylor <ian@wasabisystems.com> + + * ldlang.c (lang_check): Use %P, not %E, in error message. + 2004-02-23 Nathan Sidwell <nathan@codesourcery.com> * ldlang.h (struct lang_output_section_state): Change processed @@ -25,7 +223,7 @@ 2004-02-23 Alan Modra <amodra@bigpond.net.au> * ldexp.c (fold_tree): Follow indirect symbols. - + 2004-02-20 Nathan Sidwell <nathan@codesourcery.com> * ldgram.y (exp): Add two operand ALIGN. diff --git a/ld/ChangeLog-0203 b/ld/ChangeLog-0203 index af12db7..ee5354d 100644 --- a/ld/ChangeLog-0203 +++ b/ld/ChangeLog-0203 @@ -1541,7 +1541,7 @@ * Makefile.in: Regenerate. -2002-01-14 Charles Wilson <cwilson@ece.gatech.edu> +2003-01-14 Charles Wilson <cwilson@ece.gatech.edu> * ld.texinfo (node WIN32): Some clarifications and formatting fixups. @@ -1635,6 +1635,1941 @@ and ldver.texi. * Makefile.in: Regenerated. +2002-12-24 Dmitry Diky <diwil@mail.ru> + + * Makefile.am: Add msp430 target. + * configure.tgt: Likewise. + * Makefile.in: Regenerate. + * emulparams/msp430x???.sh: New files. Linker script parameters + for various msp430 configurations. + * gen-doc.texi: Enable msp430 documenation. + * ld.texinfo: Document msp430 sections. + * scripttempl/elf32msp430.sc: New file. Linker script for msp430. + * scripttempl/elf32msp430_3.sc: New file. Linker script for msp430. + +2002-12-30 Ralf Habacker <Ralf.Habacker@freenet.de> + Charles Wilson <cwilson@ece.gatech.edu> + + * config.in (HAVE_REALPATH): New entry. + (HAVE_SYS_STAT_H, HAVE_SYS_TYPES_H): Removed: obsolete. + +2002-12-30 Ralf Habacker <ralf.habacker@freenet.de> + + * ld.texinfo: New win32 topics: 'symbol aliasing' and 'export dll + symbols'. + +2002-12-23 Alan Modra <amodra@bigpond.net.au> + + * ldmain.c (main): Init "strip_discarded". + * lexsup.c (OPTION_STRIP_DISCARDED): Define. + (OPTION_NO_STRIP_DISCARDED): Define. + (ld_options): Add "strip-discarded" and "no-strip-discarded". + (parse_args): Handle them. + +2002-12-23 Nick Clifton <nickc@redhat.com> + + * ld.h (struct args_type): Add new field + 'accept_unknown_input_architecture'. + * ldmain.c (main): Initialise 'accept_unknown_input_architecture' + to false. + * ldlang.c (lang_check): Pass accept_unknown_input_architecture to + bfd_arch_get_compatible. + * ldfile.c (ldfile_try_open_bfd): Likewise. + * lexsup.c (ld_options): Add new command line switch + --accept-unknown-input-architecture and its inverse. + (parse_args): Handle --accept-unknown-input-architecture. + * ld.texinfo: Document new linker option. + * NEWS: Mention new linker option. + +2002-12-20 Alan Modra <amodra@bigpond.net.au> + + * ldmain.c (main): Re-order link_info initialization. Init all + fields. + +2002-12-19 Charles Wilson <cwilson@ece.gatech.edu> + + * ld.texinfo: Clarify and extend the documentation + in the Machine Dependent, WIN32 section. + +2002-12-18 Ralf Habacker <ralf.habacker@freenet.de> + + * ld.texinfo: Add win32 machine depending section. + * gen-doc.texi: Enable win32 machine depending section. + + * configure.host: Add win32 library search path. + +2002-12-17 Ralf Habacker <ralf.habacker@freenet.de> + + * emultempl/pe.em (pe_find_data_imports): Don't search for data + import when auto-import is disabled. + +2002-12-17 Danny Smith <dannysmith@users.sourceforge.net> + + * emultempl/pe.em (..._recognized_file): Use LD_PATHMAX+1 to + account for trailing '\0'. + +2002-12-17 Nick Clifton <nickc@redhat.com> + + * emultempl/pe.em (longopts): Duplicate entry for --compact-implib + so that it is not confused with -c. + +2002-12-13 Ralf Habacker <Ralf.Habacker@freenet.de> + Charles Wilson <cwilson@ece.gatech.edu> + + * configure.in: Add check for realpath function. + * configure: Regenerate. + * config.in: Regenerate. + * aclocal.m4: Regenerate. + * deffile.h: Add .data field to def_file_import + structure. + * pe-dll.c (pe_proces_import_defs): Use .data field of + def_file_import structure to initialize flag_data field of + def_file_export structure. + (pe_implied_import_dll): New variables exp_funcbase and + [data|bss]_[start|end]. Use DLL's internal name to set dll_name, + not filename (which may be a symlink). Scan the sections and + initialize [data|bss]_[start|end]. When scanning the export + table, skip _nm_ symbols, and mark any symbols whose rva indicates + that it is in the .bss or .data sections as data. + * sysdep.h: Include limits.h and sys/param.h, and define + LD_PATHMAX as appropriate. Also define REALPATH as realpath if it + exists, NULL otherwise. + * emultempl/pe.em (gld_${EMULATION_NAME}_after_open): Call + pe_process_import_defs before pe_find_data_imports, so that + auto-import will check the virtual implib as well as "real" + implibs. + (gld_${EMULATION_NAME}_recognized_file): Use REALPATH to follow + symlinks to their target; check that the target's extension is + .dll before calling pe_implied_import_dll(), not the filename + itself (which may be a symlink). + +2002-12-10 Alan Modra <amodra@bigpond.net.au> + + * emultempl/elf32.em (struct orphan_save): Add os_tail field. + (gld${EMULATION_NAME}_place_orphan): Re-order output_section_statement + list too. + +2002-12-08 Alan Modra <amodra@bigpond.net.au> + + * ldlang.h: Formatting. + +2002-12-07 Alan Modra <amodra@bigpond.net.au> + + * ldlang.c (init_os): Ensure sections mentioned in load_base + are initialized. + +2002-12-05 Alan Modra <amodra@bigpond.net.au> + + * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Set + load_base for orphans that follow a section with load_base set. + +2002-12-01 H.J. Lu <hjl@gnu.org> + + * ld.texinfo: Remove the extra `;' in sample version script. + +2002-11-30 Alan Modra <amodra@bigpond.net.au> + + * configure.host: Correct dynamic-linker for powerpc64 hosts. + + * Makefile.am (eelf32ppcwindiss.c): Correct dependencies. + * Makefile.in: Regenerate. + + * ld.h, ldcref.c, ldctor.c, ldctor.h, ldemul.c, ldemul.h, ldexp.c, + ldexp.h, ldfile.c, ldfile.h, ldgram.y, ldlang.c, ldlang.h, ldmain.c, + ldmain.h, ldmisc.c, ldwrite.c, lexsup.c, mri.c, pe-dll.c, pe-dll.h, + emulparams/elf32b4300.sh, emultempl/aix.em, emultempl/armcoff.em, + emultempl/armelf.em, emultempl/armelf_oabi.em, emultempl/beos.em, + emultempl/elf32.em, emultempl/generic.em, emultempl/gld960.em, + emultempl/gld960c.em, emultempl/hppaelf.em, emultempl/linux.em, + emultempl/lnk960.em, emultempl/m68kcoff.em, emultempl/mipsecoff.em, + emultempl/mmix-elfnmmo.em, emultempl/mmixelf.em, emultempl/mmo.em, + emultempl/needrelax.em, emultempl/pe.em, emultempl/ppc64elf.em, + emultempl/sh64elf.em, emultempl/sunos.em, emultempl/ticoff.em: Replace + boolean with bfd_boolean, true with TRUE, false with FALSE. Simplify + comparisons of bfd_boolean vars with TRUE/FALSE. Formatting. + +2002-11-27 David O'Brien <obrien@FreeBSD.org> + + * configure.host: Fix generic FreeBSD configuration entry. + +2002-11-27 H.J. Lu <hjl@gnu.org> + + * ld.texinfo: Add the missing `;' to sample version scripts. + +2002-11-20 Alan Modra <amodra@bigpond.net.au> + + * emulparams/elf64ppc.sh (SEGMENT_SIZE): Don't define. + +2002-11-14 Egor Duda <deo@logos-m.ru> + + * ldmain.c (main): Make runtime relocs disabled by default. Remove + assignment which has no effect. + * pe-dll.h (pe_create_import_fixup): Change prototype. + * pe-dll.c (make_runtime_pseudo_reloc): New function. + (pe_create_runtime_relocator_reference): Ditto. + (pe_create_import_fixup): Handle relocations with non-zero addends. + * emultempl/pe.em: Add options --enable-runtime-pseudo-reloc and + --disable-runtime-pseudo-reloc. + (make_import_fixup): Handle relocations with non-zero addends. Create + an external reference to _pei386_runtime_relocator symbol if at least + one pseudo reloc was created. + * ld.texinfo: Document --enable-runtime-pseudo-reloc and + --disable-runtime-pseudo-reloc options. + +2002-11-12 Earl Chew <earl_chew@agilent.com> + + * ldlang.c (lang_add_section): Discard debugging sections that have + been marked SEC_EXCLUDE. + +2002-11-12 Nick Clifton <nickc@redhat.com> + + * configure.in (ALL_LINGUAS): Add da. + * configure: Regenerate. + * po/da.po: New Danish translation. + +2002-11-12 Alan Modra <amodra@bigpond.net.au> + + * emultempl/ppc64elf.em (ppc_before_allocation): New function. + (LDEMUL_BEFORE_ALLOCATION): Define. + (gld${EMULATION_NAME}_finish): Run discard_info for relocatable + linking. + * emultemp/hppaelf.em ((gld${EMULATION_NAME}_finish): Likewise. + +2002-11-11 Christopher Faylor <cgf@redhat.com> + + * configure.tgt (LIB_PATH): Default to searching w32api directory under + cygwin. + +2002-11-11 Charles Wilson <cwilson@ece.gatech.edu> + + * pe-dll.c (autofilter_liblist): add libmingwex and libgcj to the list + of restricted auto-export libs. + +2002-11-11 Charles Wilson <cwilson@ece.gatech.edu> + + * pe-dll.c (autofilter_liblist): Generalize library names to catch more + creative library naming instances like, e.g., libstdc++-2.a. + +2002-11-06 Alexandre Oliva <aoliva@redhat.com> + + * emulparams/elf32btsmipn32.sh (TEXT_DYNAMIC): Define. + * emulparams/elf64btsmip.sh (TEXT_DYNAMIC): Likewise. + +2002-11-07 Danny Smith <dannysmith@users.sourceforge.net> + + * deffilep.y (def_lex): Handle '@' as first character of an ID. + * pe-dll.c (auto-export): Filter on "_imp_" prefix, not "_imp__". + (make_one): Don't prefix decorated fastcall symbols with '_'. + (pe_process_import_defs): Likewise. + * emultempl/pe.em (pe_fixup_stdcalls): Don't fixup fastcall + symbols to cdecl names or vise-versa. + +2002-10-13 Eric Kohl <ekohl@rz-online.de> + + * pe-dll.c (process_def_file): Handle fastcall symbols when + generating undecorated aliases. Don't prefix decorated fastcall + symbols with '_'. + (fill_exported_offsets): Don't prefix decorated fastcall symbols + with '_'. + +2002-10-29 Daniel Jacobowitz <drow@mvista.com> + + * emultempl/aix.em: Use include <> for generated headers. + * emultempl/beos.em: Likewise. + * emultempl/elf32.em: Likewise. + * emultempl/pe.em: Likewise. + * ldctor.c: Likewise. + * ldexp.c: Likewise. + * ldfile.c: Likewise. + * ldlang.c: Likewise. + * ldlex.c: Likewise. + * ldlex.l: Likewise. + * ldmain.c: Likewise. + * ldmisc.c: Likewise. + * ldwrite.c: Likewise. + * lexsup.c: Likewise. + * mri.c: Likewise. + * pe-dll.c: Likewise. + +2002-10-23 Jakub Jelinek <jakub@redhat.com> + + * emultempl/elf32.em (place_orphan): Don't put non-allocated .rel* + sections into .rel{,a}.dyn. + +2002-10-23 Nick Clifton <nickc@redhat.com> + + * lexsup.c (OPTION_NO_OMAGIC): Define. + (ld_options): Add "no-omagic" option. + (parse_args): Parse --no-omagic. + * ld.texinfo: Document --no-omagic. + * NEWS: Mention new option. + +2002-10-21 Danny Smith <dannysmith@users.sourceforeg.net> + + * scripttempl/pe.sc (__RUNTIME_PSEUDO_RELOC_LIST__, + __RUNTIME_PSEUDO_RELOC_LIST_END__): Add only when relocating. + +2002-10-22 Alexandre Oliva <aoliva@redhat.com> + + * emulparams/elf32bmipn32-defs.sh: Set ELFSIZE according to + emulation name. Set LIB_PATH only for native tools, and + search the ABI-specific versions of NATIVE_LIB_DIRS before the + .../lib variants, not instead of them. Mostly copied from... + * emulparams/elf32ppc.sh: ... here. Fixed typo. + * emulparams/elf64bmip-defs.sh: Backed out. + * emulparams/elf64bmip.sh: Import elf32bmipn32-defs.sh again. + * emulparams/elf64btsmip.sh: Likewise. + (DATA_ADDR, NONPAGED_TEXT_START_ADDR, SHLIB_TEXT_START_ADDR, + TEXT_DYNAMIC): Removed. + +2002-10-17 Alexandre Oliva <aoliva@redhat.com> + + * emulparams/elf32bmipn32-defs.sh (LIB_PATH): Set to /usr/lib32. + (GENERATE_SHLIB_SCRIPT): Set to yes. + (EXECUTABLE_SYMBOLS, WRITABLE_RODATA): Moved to... + * emulparams/elf32bmipn32.sh: here. + (GENERATE_SHLIB_SCRIPT): Deleted as redundant. + * emulparams/elf32btsmipn32.sh: Delete redundant unsets. + * emulparams/elf64bmip-defs.sh: New file. Extend + elf32bmipn32-defs.sh by overiding ELFSIZE and LIB_PATH. + * emulparams/elf64bmip.sh: Bring in definitions from + elf64bmip-defs.sh. + (ELFSIZE, GENERATE_SHLIB_SCRIPT, LIB_PATH): Delete redundant + settings. + (WRITABLE_RODATA): Moved from elf32bmipn32-defs.sh. + * emulparams/elf64btsmip.sh: Bring in definitions from + elf64bmip-defs.sh. + (ELFSIZE, GENERATE_SHLIB_SCRIPT): Delete, redundant. + (EXECUTABLE_SYMBOLS, WRITABLE_RODATA): Delete redundant unsets. + +2002-10-16 Jakub Jelinek <jakub@redhat.com> + + * configure.tgt (s390x-*-linux*): Add elf_s390 emulation. + (s390-*-linux*): Add elf64_s390 emulation if want64. + * emulparams/elf64_sparc.sh (LIB_PATH): Update to match 2002-05-22 + genscript.sh changes. + * emulparams/elf_x86_64.sh (LIB_PATH): Likewise. + * emulparams/elf64_s390.sh (LIB_PATH): Set up native 64 bit dirs. + +2002-10-15 Alan Modra <amodra@bigpond.net.au> + + * ldlang.c (load_symbols): Revert last change. + +2002-10-14 Alan Modra <amodra@bigpond.net.au> + + * ldlang.c (load_symbols): Don't call bfd_link_add_symbols when + just_syms_flag. + (lang_reasonable_defaults): Don't compare against false. + (size_input_section): Likewise. + (lang_size_sections_1): Likewise. + (lang_do_assignments): Likewise. + (lang_add_output): Likewise. + + * Makefile.am: Run "make dep-am". + * Makefile.in: Regenerate. + * ldver.c: #include "bfdver.h". + +2002-10-13 Stephane Carrez <stcarrez@nerim.fr> + + * scripttempl/elfm68hc11.sc: Use KEEP for .vectors, .installN, + .finiN section. + * scripttempl/elfm68hc12.sc: Likewise. + +2002-10-11 Alan Modra <amodra@bigpond.net.au> + + * pe-dll.c (make_import_fixup_mark): Avoid type-punned pointer. + + * ldgram.y (memory_spec): Provide empty action. + (section <NAME>): Likewise. + +2002-10-10 Jakub Jelinek <jakub@redhat.com> + + * ldfile.c (ldfile_try_open_bfd): When searching skip linker scripts if + they have OUTPUT_FORMAT not matching actual output format. + * ldlang.c (lang_get_output_target): New function. + (open_output): Use it. + * ldlang.h (lang_get_output_target): New prototype. + +2002-10-10 Alan Modra <amodra@bigpond.net.au> + + * emultempl/elf32.em (output_rel_find): Prefer .rel script sections + when orphan is .rel, .rela when orphan is .rela. + (gld${EMULATION_NAME}_place_orphan): Handle combreloc .rel* case + first. Remove outsecname var. + +2002-10-09 Richard Shann <richard.shann@superh.com> + Stephen Clarke <stephen.clarke@superh.com> + + * Makefile.am: Add eshelf32_linux.o and + eshlelf32_linux.o, new emulations for sh64 Linux. + * Makefile.in: Regenerate. + * configure.tgt: Add sh64eb-*-linux* and sh64-*-linux* emulations. + * emulparams/shelf32_linux.sh: New file. + * emulparams/shlelf32_linux.sh: New file. + +2002-10-08 H.J. Lu <hjl@gnu.org> + + * ldlang.c (lang_file_exist): Removed. + (new_afile): Revert the last change. + * ldlang.h (lang_file_exist): Removed. + * lexsup.c (parse_args): Revert the last change. + +2002-10-07 Ralf Habacker <Ralf.Habacker@freenet.de> + + * pe-dll.cc (autofilter_symbolprefixlist): Don't re-export + auto-import symbols. + (make_one): Create _nm_<symbol> for data only. + +2002-10-05 Elias Athanasopoulos <eathan@otenet.gr> + + * ldlang.c (lang_file_exist): New function. + (new_afile): Abort if the filename to be added matches the linker + output filename. + * ldlang.h: Add prototype for lang_file_exist. + * lexsup.c (parse_args): Abort if the output filename matches + one of the input filenames. + +2002-10-02 Alan Modra <amodra@bigpond.net.au> + + * emulparams/elf64ppc.sh (MAXPAGESIZE): Set to 0x10000. + +2002-09-30 Alan Modra <amodra@bigpond.net.au> + + * scripttempl/elfd30v.sc: Order reloc sections placing .plt last. + * scripttempl/elfm68hc11.sc: Likewise. + * scripttempl/elfm68hc12.sc: Likewise. + + * emultempl/elf32.em (output_rel_find): Always place orphan loadable + reloc sections just before .rel.plt/.rela.plt. + (gld${EMULATION_NAME}_place_orphan <.rel>): Remove combreloc code. + Only put loadable reloc sections in hold_rel. + +2002-09-29 H.J. Lu <hjl@gnu.org> + + * emulparams/elf32ppc.sh (OTHER_GOT_RELOC_SECTIONS): New. + +2002-09-25 Daniel Jacobowitz <drow@mvista.com> + + From "Anita Kulkarni" <AnitaK@kpit.com> + * scripttempl/sh.sc: Handle .eh_frame* and .gcc_exc* + sections. + +2002-09-25 Alan Modra <amodra@bigpond.net.au> + + * genscripts.sh (SEGMENT_SIZE): Use MAXPAGESIZE before + TARGET_PAGE_SIZE. + * scripttempl/elf.sc (DATA_SEGMENT_ALIGN): Incorporate + SEGMENT_SIZE alignment. + * emulparams/elf64ppc.sh (DATA_ADDR): Delete. + (SEGMENT_SIZE): Define. + + * ldexp.c (fold_unary): New. Split out from exp_fold_tree. + (fold_binary): Correct abs - non-abs case. + (fold_trinary): New. Split out from exp_fold_tree. + +2002-09-24 Alan Modra <amodra@bigpond.net.au> + + * emulparams/elf64ppc.sh (DATA_ADDR): Define. + * emulparams/elf64_aix.sh (DATA_ADDR): Don't use a fixed address + for start of .data, instead align up to 256M boundary. + * scripttempl/aix.sc: Likewise. + +2002-09-22 Mark Elbrecht <snowball3@softhome.net> + + * scripttempl/i386go32.sc: Handle bss unique sections. + +2002-09-21 Alan Modra <amodra@bigpond.net.au> + + * ldmisc.c (vfinfo <%C,%D,%G>): Always output bfd, section and offset. + +2002-09-17 Stan Cox <scox@redhat.com> + + * emulparams/elf32bmipn32-defs.sh: New file. + * emulparams/elf32bmipn32.sh: Use elf32bmipn32-defs.sh. + * emulparams/elf32btsmipn32.sh: Likewise. + * emulparams/elf64bmip.sh: Likewise. + * emulparams/elf64btsmip.sh: Likewise. + +2002-09-16 Bruno Haible <bruno@clisp.org> + + * emulparams/elf_i386_fbsd.sh: Set OUTPUT_FORMAT to + elf32-i386-freebsd. + * emulparams/elf64alpha_fbsd.sh: Set OUTPUT_FORMAT to + elf64-alpha-freebsd. + +2002-09-11 Nick Clifton <nickc@redhat.com> + + * NEWS: New TI port supports both C4x and C3x series of DSPs. + + * po/tr.po: Updated Turkish translation. + +2002-09-06 Jeffrey A Law (law@redhat.com) + + * configure.tgt (h8300-*-hms*, h8500-*-hms*): Restore. + +2002-09-02 Nick Clifton <nickc@redhat.com> + + * scripttempl/v850.sc: Add EXTERN references to __ctbpm __gp and + __ep. + * emulparams/v850.sh (TEMPLATE_NAME): Define. + +2002-08-30 Nick Clifton <nickc@redhat.com> + + * scripttempl/elfd10v.sc (MEMORY): Remove UNIFIED, it is not + used. Change INSN to start at 0x01000000 and extend for + 256K (ignoring holes). Start the STACK on a word aligned + boundary. + (.rodata): Start it at the READONLY_START_ADDR. + +2002-08-30 Alan Modra <amodra@bigpond.net.au> + + * emulparams/elf32ppc.sh (ARCH): Set to "powerpc:common". + +2002-08-28 Svein E. Seldal <Svein.Seldal@solidas.com> + + * Makefile.am: Add etic4xcoff.o in ALL_EMULATIONS list and + added makefile targets for this file. + * Makefile.in: Regenerate. + * configure.tgt: Added tic4x-coff and c4x-coff emulations. + * NEWS: Mention new port. + +2002-08-28 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * emulparams/tic3xcoff.sh: New file. + * emulparams/tic4xcoff.sh: New file. + * scripttempl/tic3xcoff.sc: New file. + * scripttempl/tic4xcoff.sc: New file. + +2002-08-28 Alan Modra <amodra@bigpond.net.au> + + * emultempl/aix.em (gld${EMULATION_NAME}_parse_args): Replace strtoll, + strtoul and strtoull with bfd_scan_vma. + (gld${EMULATION_NAME}_read_file): Likewise. + +2002-08-28 Alan Modra <amodra@bigpond.net.au> + + * configure.tgt: Remove h8[35]00-*-hms*. Add h8500-*-rtems*. + +2002-08-27 Egor Duda <deo@logos-m.ru> + + * scripttempl/pe.sc: Handle .rdata_runtime_pseudo_reloc sections. + Add symbols for application to access them. + +2002-08-27 Nick Clifton <nickc@redhat.com> + + * emultempl/armelf.em: Revert this patch, it is not needed. + + 2002-08-22 Adam Nemet <anemet@lnxw.com> + +2002-08-20 Dan Kegel <dank@kegel.com> + + * configure.in: added --with-lib-path argument to ld's configure + to set LIB_PATH. + * NEWS: Document new switch. + * README: Mention new switch. + * configure: Regenerate. + * Makefile.in: Regenerate. + + Based on this patch: + 2001-04-25 Christopher Faylor <cgf@cygnus.com> + + * Makefile.in (LIB_PATH): Make configurable. + (GENSCRIPTS): Set LIB_PATH in environment. + * configure.in: Substitute LIB_PATH. + +2002-08-22 Adam Nemet <anemet@lnxw.com> + + * emultempl/armelf.em: Include elf-bfd.h and elf/arm.h. + (arm_elf_finish): Set the last bit of DT_INIT and DT_FINI + depending on the type of the function. + (arm_elf_convert_thumb_symbol_to_address): New function. + +2002-08-22 Graeme Peterson <gp@qnx.com> + + * Makefile.am: Add esh{l}elf_nto.o files. + * Makefile.in: Regenerate. + * configure.tgt: Add support for sh-**-nto* targets. + * emulparams/shelf_nto.sh: New file. + * emulparams/shlelf_nto.sh: New file. + +2002-08-21 John David Anglin <dave@hiauly1.hia.nrc.ca> + + * ldlang.c (offsetof): Define if not defined. + +2002-08-14 H.J. Lu <hjl@gnu.org> + + * configure.tgt: Always enable 64bit emulations for 32bit + Linux/mips. + +2002-08-13 Alan Modra <amodra@bigpond.net.au> + + * emulparams/elf32_dlx.sh (TARGET_PAGE_SIZE): Set to 1. + (MAXPAGESIZE): Set to 1. + + * ld.h (ALIGN_N): Delete. + * ldexp.h (align_n): Declare. + * ldexp.c (align_n): New function. + (fold_binary): Use align_n instead of ALIGN_N. + (exp_fold_tree): Likewise. + * ldlang.c (lang_size_sections_1): Likewise. + (lang_one_common): Likewise. + * ld.texinfo (ALIGN): Remove power of 2 restriction. + +2002-07-31 Graeme Peterson <gp@qnx.com> + + * configure.tgt: Add support for powerpc{le}-*-nto* targets. + * Makefile.am: Add eelf32{l}ppcnto.o files. + * Makefile.in: Regenerate. + * emulparams/elf32lppcnto.sh: New file. + * emulparams/elf32ppcnto.sh: New file. + +2002-08-07 H.J. Lu <hjl@gnu.org> + + * ld.texinfo: Document --no-undefined-version. + + * ldlang.c (lang_new_vers_pattern): Set the `symver' and + `script.' fields to 0. + + * ldmain.c (main): Initialize the allow_undefined_version to + true. + + * lexsup.c (OPTION_NO_UNDEFINED_VERSION): New. + (ld_options): Add --no-undefined-version. + (parse_args): Support OPTION_NO_UNDEFINED_VERSION. + +2002-08-07 Nick Clifton <nickc@redhat.com> + + * emultempl/armelf.em (arm_elf_before_allocation): Only search for + an interworking bfd if there are input bfds. (107501) + +2002-08-06 Alan Modra <amodra@bigpond.net.au> + + * emultempl/aix.em (gld*_before_parse): Set default arch. Reverts + 2002-05-10 change. + +2002-08-01 Nick Clifton <nickc@redhat.com> + + * emulparams/armelf.sh: Revert previous delta. + * scripttempl/elf.sc: Revert previous delta. + +2002-07-31 H.J. Lu <hjl@gnu.org> + + * configure.tgt (powerpc*-*-linux*): Enable elf64ppc for + --enable-64-bit-bfd. + +2002-07-31 H.J. Lu <hjl@gnu.org> + + * configure.tgt: Enable x86-64 emulation for Linux/i386 if + 64bit BFD is selected. + +2002-07-31 H.J. Lu <hjl@gnu.org> + + * configure.tgt: Enable 64bit emulations for 32bit Linux/mips + if 64bit BFD is selected. + +2002-07-31 Ian Dall <ian@sibyl.beware.dropbear.id.au> + + * emultempl/netbsd.em (LDEMUL_BEFORE_PARSE): New file to custom set + link_info.common_skip_ar_aymbols. + * emulparams/ns32knbsd.sh (EXTRA_EM_FILE): Refer to extra file. + + * ldmain.c (main): Initialize new field + link_info.common_skip_ar_aymbols. + +2002-07-31 Adam Nemet <anemet@lnxw.com> + + * emulparams/armelf.sh (OTHER_PLT_SECTIONS): New variable. Set it + to .plt.thumb. + * scripttempl/elf.sc: Comment it. Use the same way as ${PLT} is + used. + +2002-07-31 Nick Clifton <nickc@redhat.com> + + * NEWS: Retroactively add entry for Lars Brinkhoff's contribution + of the PDP-11 and 2.11BSD a.out support. + +2002-07-31 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + + * Makefile.am (eelf32btsmipn32.o, eelf32ltsmipn32.o): New emulations + for n32 ABI support. + * Makefile.in: Regenerate. + * configure.tgt (mips64*el-*-linux-gnu*,mips64*-*-linux-gnu*): Add + n32 ABI emulations for these 64 bit targets. + * emulparams/elf32bmipn32.sh: Expand comment. + * emulparams/elf32btsmipn32.sh: New file, for traditional big endian + n32 ABI. + * emulparams/elf32ltsmipn32.sh: Likewise for little endian. + +2002-07-30 Graeme Peterson <gp@qnx.com> + + * configure.tgt: Add support for arm-*-nto target. + * Makefile.am: Add earmnto.o file. + * Makefile.in: Regenerate. + * NEWS: Mention port of ARM support to QNX. + * emulparams/armnto.sh: New file. + +2002-07-30 Jakub Jelinek <jakub@redhat.com> + + * ldlang.c (lang_add_section): Don't turn .tbss into normal sections + for relocatable link. + (lang_size_sections_1): Don't make .tbss zero size for relocatable + link. + +2002-07-26 Bernd Schmidt <bernds@redhat.com> + + * emulparams/elf32frv.sh (OTHER_RELOCATING_SECTIONS): Delete. + (STACK_ADDR): New. + +2002-07-25 Nick Clifton <nickc@redhat.com> + + * po/sv.po: Updated Swedish translation. + * po/es.po: Updated Spanish translation. + * po/fr.po: Updated French translation. + +2002-07-24 Nick Clifton <nickc@redhat.com> + + * po/sv.po: Updated Swedish translation. + * po/es.po: Updated Spanish translation. + +2002-07-23 Nick Clifton <nickc@redhat.com> + + * po/fr.po: Updated French translation. + +2002-07-20 Alan Modra <amodra@bigpond.net.au> + + * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't + bomb on /DISCARD/ input section. + * emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise. + * emultempl/mmo.em (mmo_place_orphan): Likewise. + +2002-07-19 Hans-Peter Nilsson <hp@bitrange.com> + + * emultempl/mmo.em (mmo_place_orphan): Handle case of no .text + output section. + +2002-07-16 Denis Chertykov <denisc@overta.ru> + Nick Clifton <nickc@redhat.com> + Frank Ch. Eigler <fche@redhat.com> + John Healy <jhealy@redhat.com> + + * configure.tgt: Add support for ip2k-elf. + * Makefile.am: Add support for ip2k-elf. + * Makefile.in: Regenerate. + * emulparams/elf32ip2k.sh: New file. + * scripttempl/ip2k.sc: New file + * NEWS: Mention support for new port. + +2002-07-16 Nick Clifton <nickc@cambridge.redhat.com> + + * NEWS: Add 'Changes in 2.13'. + +2002-07-14 H.J. Lu <hjl@gnu.org> + + * ld.texinfo: Document a .symver takes precedence over a + version script. + +2002-07-12 Alan Modra <amodra@bigpond.net.au> + + * emulparams/elf64ppc.sh (ARCH): Set to powerpc:common64. + (COMMONPAGESIZE): Define. + +2002-07-09 Alan Modra <amodra@bigpond.net.au> + + * emulparams/hppanbsd.sh: Remark that hppaobsd.sh references this file. + +2002-07-09 Federico G. Schwindt <fgsch@olimpo.com.br> + + * configure.tgt: Add support for alpha-*-openbsd*, hppa-*-openbsd*, + powerpc-*-openbsd* and sparc64-*-openbsd*. + * Makefile.am (ALL_EMULATIONS): Add ehppaobsd.o. + * Makefile.in: Regenerate. + * emulparams/hppaobsd.sh: New file. + +2002-07-05 Alan Modra <amodra@bigpond.net.au> + + * ldlang.c (print_wild_statement): Fix output formatting. + +2002-07-04 Alan Modra <amodra@bigpond.net.au> + + * ldlang.c: (strip_excluded_output_sections): New function. + (lang_process): Call it. + (lang_size_sections_1): Revert 2002-06-10 change. + +2002-07-03 Alan Modra <amodra@bigpond.net.au> + + * Makefile.am (check-DEJAGNU): Revert 2002-06-25 change. + Run "make dep-am". + * Makefile.in: Regenerate. + +2002-07-02 Alan Modra <amodra@bigpond.net.au> + + * ldfile.c (ldfile_try_open_bfd): Formatting. + + * ldmisc.c (demangle): Move so that it doesn't intrude between + vfinfo comment and body. Add comment. + +2002-07-01 John David Anglin <dave@hiauly1.hia.nrc.ca> + + * emulparams/vax.sh (OUTPUT_FORMAT): Use a.out-vax-bsd format. + +2002-07-01 Alan Modra <amodra@bigpond.net.au> + + * ldlang.h (entry_sym): Make it a struct bfd_sym_chain. + * ldlang.c (entry_sym): Likewise. + (ldlang_undef_chain_list_type): Likewise. + (lang_finish): Adjust references to entry_symbol. + (lang_add_entry): Likewise. + (lang_gc_sections): Use link_info.gc_sym_list. + (lang_process): Set link_info.gc_sym_list. + * ldlex.l: Include bfdlink.h. + * ldmain.c (main): Init link_info.gc_sym_list. + * emultempl/aix.em: Adjust references to entry_symbol. + * emultempl/armcoff.em: Likewise. + * emultempl/armelf.em: Likewise. + * emultempl/pe.em: Likewise. + * emultempl/ppc64elf.em (ppc_after_open): New function. + (LDEMUL_AFTER_OPEN): Define. + * emulparams/elf64ppc.sh: KEEP .opd sections. + +2002-06-29 Stephane Carrez <stcarrez@nerim.fr> + + * emulparams/m68hc12elfb.sh (EEPROM_MEMORY): Define. + * emulparams/m68hc11elfb.sh (EEPROM_MEMORY): Define. + * emulparams/m68hc11elf.sh (EEPROM_SIZE): Define. + (EEPROM_START_ADDR): Define. + (EEPROM_MEMORY): Define. + * emulparams/m68hc12elf.sh: Likewise. + * scripttempl/elfm68hc11.sc: Handle .eeprom section; handle .softregs + section to put soft registers in .page0. + * scripttempl/elfm68hc12.sc: Likewise but put soft registers in bss. + +2002-06-26 John David Anglin <dave@hiauly1.hia.nrc.ca> + + * emulparams/hppa64linux.sh (OTHER_GOT_RELOC_SECTIONS): Add rela.opd + section. Add ${RELOCATING-0}. + +2002-06-26 J"orn Rennecke <joern.rennecke@superh.com> + + * emulparams/shelf.sh (STACK_ADDR): Don't define. + (OTHER_SECTIONS): Define. + * emulparams/shelf_nbsd.sh ((STACK_ADDR): Don't undef. + (OTHER_SECTIONS): Undef. + +2002-06-26 Alan Modra <amodra@bigpond.net.au> + + * ldmisc.c (demangle): Restore dots stripped from sym name. + +2002-06-25 H.J. Lu <hjl@gnu.org> + + * Makefile.am (check-DEJAGNU): Set LC_ALL=C and export it. + * Makefile.in: Regenerated. + +2002-06-20 Nick Clifton <nickc@cambridge.redhat.com> + + * ld.texinfo (Bug Reporting): Update text to suggest a limit on + the size of attached object files, to allow make the object files + available via FTP or HTTP and to mention that the mail will be + sent to a mailing list. + +2002-06-20 Nathanael Nerode <neroden@twcny.rr.com> + + * configure.host (romp): Drop support. + +2002-06-18 Chris Demetriou <cgd@broadcom.com> + + * emultempl/mipself.em (mips_elf${ELFSIZE}_check_sections): Check + section flags for SEC_DATA, rather than for SEC_CODE being unset. + +2002-06-18 Chris Demetriou <cgd@broadcom.com> + + * emultempl/mipself.em (mips_elf${ELFSIZE}_check_sections): Fix + format specifier used to print BFD name. + +2002-06-18 Dave Brolley <brolley@redhat.com> + + From Catherine Moore, Michael Meissner, Jim Blandy: + * emulparams/elf32frv.sh: New file. + * configure.tgt: Support frv-*-*. + * Makefile.am (ALL_EMULATIONS): Add eelf32frv.o. + (eelf32frv.c): New target. + +2002-06-17 Tom Rix <trix@redhat.com> + + * emultempl/elf32.em: gld*_get_script: Check for + GENERATE_COMBRELOC_SCRIPT. + * scripttempl/elfd10v.sc : Fix STACK and INSN. + * emulparams/d10velf.sh : Fix TEXT_START_ADDR. + +2002-06-13 J"orn Rennecke <joern.rennecke@superh.com> + + * configure.tgt: Add support for sh[1234]*le*-*-elf, sh[1234]*-*-elf. + +2002-06-12 H.J. Lu <hjl@gnu.org> + + * emultempl/elf32.em (gld${EMULATION_NAME}_try_needed): Return + false if xvec doesn't match. + +2002-06-10 Richard Sandiford <rsandifo@redhat.com> + + * ldlang.c (lang_size_sections_1): Skip removed output sections. + +2002-06-08 Alan Modra <amodra@bigpond.net.au> + + * ldexp.c: Replace CONST with const. + * ldfile.c: Likewise. + * ldfile.h: Likewise. + * ldlex.l: Likewise. + * mri.c: Likewise. + * pe-dll.h: Likewise. + +2002-06-07 Alan Modra <amodra@bigpond.net.au> + + * emultempl/ppc64elf.em (new_vers_pattern): Warning fix. + +2002-06-07 Charles Wilson <cwilson@ece.gatech.edu> + + * ldmain.c (main): initialize link_info.pei386_auto_import + to -1 == implicit enable. + * emultempl/pe.em (gld_${EMULATION_NAME}_before_parse): + initialize link_info.pei386_auto_import to -1 == implicit + enable. + (gld_${EMULATION_NAME}_parse_args): When processing + --enable-auto-import and --disable-auto-import options, use + '1' and '0' instead of 'true' and 'false'. + (pe_find_data_imports): Only issue message about auto-import + when the feature is implicitly enabled. Downgrade message to + informational instead of warning. + +2002-06-07 Alan Modra <amodra@bigpond.net.au> + + * scripttempl/elf.sc (.tbss): Fix mismatched parentheses/braces. + +2002-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca> + + * configure.host (hppa*64*-*-hpux11*): Define NATIVE_LIB_DIRS, + HOSTING_CRT0 and HOSTING_LIBS. + +2002-06-05 J"orn Rennecke <joern.rennecke@superh.com> + + * configure.tgt (shle*-*-elf*, sh64le-*-elf*): New configurations. + +2002-06-05 Jason Thorpe <thorpej@wasabisystems.com> + + * emulparams/ns32knbsd.sh (EXECUTABLE_SYMBOLS): Set _DYNAMIC to 0. + (NONPAGED_TEXT_START_ADDR): Set to 0x1000. + +2002-06-05 Alan Modra <amodra@bigpond.net.au> + + * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Place + SEC_EXCLUDE sections when doing a relocatable link. + +2002-06-04 Jason Thorpe <thorpej@wasabisystems.com> + + * Makefile.am (ALL_EMULATIONS): Add eshelf32_nbsd.o, + eshlelf32_nbsd.o, eshelf64_nbsd.o, and eshlelf64_nbsd.o. + (eshelf32_nbsd.c, eshelf64_nbsd.c, eshlelf32_nbsd.c) + (eshlelf64_nbsd.c): New rules. + * Makefile.in: Regenerate. + * configure.tgt (sh5le-*-netbsd*, sh5-*-netbsd*, sh64le-*-netbsd*) + (sh64-*-netbsd*): New targets. + * emulparams/shelf32_nbsd.sh: New file. + * emulparams/shelf64_nbsd.sh: New file. + * emulparams/shlelf32_nbsd.sh: New file. + * emulparams/shlelf64_nbsd.sh: New file. + +2002-06-04 Alan Modra <amodra@bigpond.net.au> + + * ldlang.c (section_already_linked): Call bfd_discard_group. Typo fix. + +2002-06-02 Marek Michalkiewicz <marekm@amelek.gda.pl> + + * scripttempl/avr.sc: Changes to support current GCC and avr-libc, + C++ constructors/destructors, loosely based on the m68hc11 port. + +2002-05-31 Alan Modra <amodra@bigpond.net.au> + + * Makefile.in: Regenerate. + * aclocal.m4: Regenerate. + * config.in: Regenerate. + * configure: Regenerate. + +2002-05-31 Graeme Peterson <gp@qnx.com> + + * Makefile.am (ALL_EMULATIONS): Add ei386nto.o. + (ei386nto.c): Add rule. + * Makefile.in: Regenerate. + * configure.tgt: Add i[3456]86-*-nto-qnx*. + * emulparams/i386nto.sh: New file. + +2002-05-29 Jason Thorpe <thorpej@wasabisystems.com> + + * NEWS: Add entry for VAX ELF support. + +2002-05-29 Matt Thomas <matt@3am-software.com> + Jason Thorpe <thorpej@wasabisystems.com> + + * Makefile.am (ALL_EMULATIONS): Add eelf32vax.o and evaxnbsd.o. + (eelf32vax.c) + (evaxnbsd.c): New rules. + * Makefile.in: Regenerate. + * configure.tgt (vax-*-netbsdelf*) + (vax-*-netbsdaout*) + (vax-*-netbsd*): New targets. + * emulparams/elf32vax.sh: New file. + * emulparams/vaxnbsd.sh: New file. + +2002-05-29 Adam Nemet <anemet@lnxw.com> + + * emultempl/armelf.em (arm_elf_after_open): Don't determine + bfd_for_interwork, instead add glue sections to each input bfd. + (bfd_for_interwork): New global. + (arm_elf_set_bfd_for_interworking): New function. + (arm_elf_before_allocation): Use it. + +2002-05-28 Kuang Hwa Lin <kuang@sbcglobal.net> + + * Makefile.am: Add DLX make target. + * configure.tgt: Add DLX configuration. + * Makefile.in: Regenerate. + * emulparams/elf32_dlx.sh: New file + * scripttempl/dlx.sc: New file + +2002-05-27 Per Lundberg <per@caleb.dnsalias.org> + + * Makefile.am (eelf_i386_chaos): Use elf_chaos.sc script. + * Makefile.in: Regenerate. + * emulparams/elf_chaos.sh: Use elf_chaos script. + * scripttempl/elf_chaos.sc: New file. + +2002-05-27 Richard Sandiford <rsandifo@redhat.com> + + * ldlang.c (lang_size_sections_1): Move check for conflicting load + addresses and regions from here... + (lang_get_regions): ...to this new function. + (lang_leave_output_section_statement): Use lang_get_regions. + (lang_leave_overlay): Likewise. + * mri.c (mri_draw_tree): Pass null as last argument to + lang_leave_output_section_statement. + * emultempl/elf32.em (gld*_place_orphan): Likewise. + * emultempl/mmo.em (mmo_place_orphan): Likewise. + * emultempl/pe.em (gld*_place_orphan): Likewise. + +2002-05-26 Jason Thorpe <thorpej@wasabisystems.com> + + * configure.tgt: Use ns32k-*-netbsd* instead of ns32k-pc532-netbsd*. + +2002-05-25 Kazu Hirata <kazu@cs.umass.edu> + + * ldemul.c: Fix formatting. + * ldfile.c: Likewise. + * pe-dll.c: Likewise. + * pe-dll.h: Likewise. + +2002-05-25 Alan Modra <amodra@bigpond.net.au> + + * ldlang.c (lang_process): Formatting, grammar. + + * ldlex.l: Use #include "" instead of <> for local header files. + +2002-05-24 TAMURA Kent <kent@netbsd.org> + + * configure.tgt: Add a target for i386-netbsdpe. + +2002-05-23 Jakub Jelinek <jakub@redhat.com> + + * scripttempl/elf.sc: Add .rel{,a}.t{bss,data}, .tdata and .tbss. + * ldlang.c (lang_add_section): Set SEC_THREAD_LOCAL for + output section if necessary. Handle .tbss. + (lang_size_sections): Clear _raw_size for .tbss section + (it allocates space in PT_TLS segment only). + * ldwrite.c (build_link_order): Build link order for .tbss too. + +2002-05-23 Alan Modra <amodra@bigpond.net.au> + + * configure.in: Correct spelling of AC_PREREQ. + +2002-05-21 Danny Smith <dannysmith@users.sourceforge.net> + + * pe-dll.c (autofilter_liblist): Add more system libs excluded by + default. + (autofilter_objlist): Add crtbegin.o, crtend.o. + +2002-05-21 Danny Smith <dannysmith@users.sourceforge.net> + + * emultempl/pe.em (OPTION_EXCLUDE_LIBS): Add new define. + (longopts): Add new option --exclude-libs. + (gld_${EMULATION_NAME}_list_options): Give quick help about it. + (gld_${EMULATION_NAME}_parse_args): Use it. + * pe-dll.h (pe_dll_add_excludes): Add second param to prototype. + * pe-dll.c (exclude_list_struct): Add field type to distinguish symbols + from whole archives. + (pe_dll_add_excludes): Set excludes->type. + (auto_export): Add new variable libname and set to archive basename if + abfd. Use it when filtering default and user-specified libarary + excludes. Let string "ALL" mean all libs when filtering user-specified + libs. + * ld.texinfo: Document --exclude-libs. + +2002-05-22 Alan Modra <amodra@bigpond.net.au> + + * ldemul.c (ldemul_new_vers_pattern): New function. + * ldemul.h (ldemul_new_vers_pattern): Declare. + (struct ld_emulation_xfer_struct): Add new_vers_pattern. + * ldlang.c (lang_new_vers_pattern): Call ldemul_new_vers_pattern. + * emultempl/ppc64elf.em (dotsyms): New static var. + (gld${EMULATION_NAME}_new_vers_pattern): New function. + (LDEMUL_NEW_VERS_PATTERN): Define. + (PARSE_AND_LIST_PROLOGUE): Add OPTION_DOTSYMS, OPTION_NO_DOTSYMS. + (PARSE_AND_LIST_LONGOPTS): Likewise. + (PARSE_AND_LIST_ARGS_CASES): Handle them. + * emultempl/aix.em (ld_${EMULATION_NAME}_emulation): Update + initialiser. + * emultempl/armcoff.em: Likewise. + * emultempl/armelf_oabi.em: Likewise. + * emultempl/beos.em: Likewise. + * emultempl/elf32.em: Likewise. + * emultempl/generic.em: Likewise. + * emultempl/gld960.em: Likewise. + * emultempl/gld960c.em: Likewise. + * emultempl/linux.em: Likewise. + * emultempl/lnk960.em: Likewise. + * emultempl/m68kcoff.em: Likewise. + * emultempl/mipsecoff.em: Likewise. + * emultempl/pe.em: Likewise. + * emultempl/sunos.em: Likewise. + * emultempl/ticoff.em: Likewise. + * emultempl/vanilla.em: Likewise. + +2002-05-22 Alan Modra <amodra@bigpond.net.au> + + * genscripts.sh (LIB_PATH): For native targets, concatenate $libdir + and $NATIVE_LIB_DIRS. Add $tool_lib before other libs. + (LIB_SEARCH_DIRS): No need to use "tr". + (COMPILE_IN): Only set for native targets. + * configure.host (NATIVE_LIB_DIRS): Specify all native search dirs + here, rather than adding lib:/usr/lib:/usr/local/lib in genscripts.sh. + * configure.tgt (powerpc*): Set tdir_*. + (powerpcle*): Correct targ_extra_emuls. + * emulparams/elf32ppc.sh (LIB_PATH): Set up native 64 bit dirs. + * emulparams/elf64ppc.sh (LIB_PATH): Likewise. + +2002-05-22 Alan Modra <amodra@bigpond.net.au> + + * emultempl/pe.em (set_pe_subsystem): Don't set "cmdline" when + calling lang_add_entry. + +2002-05-21 H.J. Lu (hjl@gnu.org) + + * emultempl/elf32.em (gld${EMULATION_NAME}_parse_args): Handle + "-z muldefs". + (gld${EMULATION_NAME}_list_options): Add "-z muldefs". + + * ld.texinfo: Updated for --allow-multiple-definition and + "-z muldefs". + + * ldmain.c (main): Initialize the allow_multiple_definition + field to false. + + * lexsup.c (OPTION_ALLOW_MULTIPLE_DEFINITION): New. + (ld_options): Add --allow-multiple-definition. + (parse_args): Support OPTION_ALLOW_MULTIPLE_DEFINITION. + +2002-05-21 Jason Thorpe <thorpej@wasabisystems.com> + + * Makefile.am (ALL_EMULATIONS): Add earmelfb_nbsd.o. + (earmelfb_nbsd.c): New rule. + * Makefile.in: Regenerate. + * configure.tgt (armeb-*-netbsdelf*): New target. + (arm-*-netbsdelf*): Add armelfb_nbsd to targ_extra_emuls. + (arm-*-netbsd*): Likewise. + * emulparams/armelfb_nbsd.sh: New file. + +2002-05-18 Tom Rix <trix@redhat.com> + + * emultempl/aix.em (gld*_parse_args): Add -bnortl and -bnortllib + support. + +2002-05-17 Marek Michalkiewicz <marekm@amelek.gda.pl> + + * Makefile.am: Add new emulations avr1, avr2, avr3, avr4, avr5. + * Makefile.in: Regenerate. + * configure.tgt (avr-*-*): Add avr[1-5] to targ_extra_emuls. + +2002-05-16 Marek Michalkiewicz <marekm@amelek.gda.pl> + + * emulparams/avr1.sh: New file. + * emulparams/avr2.sh: New file. + * emulparams/avr3.sh: New file. + * emulparams/avr4.sh: New file. + * emulparams/avr5.sh: New file. + * scripttempl/avr.sc: New file. + +2002-05-15 Alan Modra <amodra@bigpond.net.au> + + * ldlang.c (section_already_linked): Call bfd_link_just_syms. + (lang_place_orphans): Abort if just_syms_flag. + +2002-05-10 Tom Rix <trix@redhat.com> + + * emultempl/aix.em: (gld*_set_output_arch): New function. Use + architecture and machine information in the output bfd. + (gld*_before_parse): Remove old arch and machine code. + (choose_target): Rename to gld*_choose_target. + (rtld): Change type to int. + * ldfile.c (ldfile_try_open_bfd): Disable compatiblity check for + objects in XCOFF archives. + * ldfile.h: Update copyright date. + +2002-05-10 Jakub Jelinek <jakub@redhat.com> + + * ldmain.c (main): Enable -z combreloc by default. + +2002-05-07 Federico G. Schwindt <fgsch@olimpo.com.br> + + * Makefile.am: Honour DESTDIR. + * Makefile.in: Regenerate. + +2002-05-07 Richard Sandiford <rsandifo@redhat.com> + + * ldlang.h (lang_output_section_statement_type): Add update_dot_tree. + (lang_enter_overlay): Remove the last two parameters. + (lang_leave_overlay): Take them here instead. + * ldgram.y (memspec_at_opt): Set $$ to null if no region is given. + (section): Pass LMA and crossref flag to lang_leave_overlay rather + than lang_enter_overlay. + * ldlang.c (lang_memory_region_lookup): Return null for null names. + (lang_output_section_statement_lookup): Initialize update_dot_tree. + (lang_size_sections_1): Evaluate it. + (lang_leave_output_section_statement): Rework LMA lookup. + (overlay_lma, overlay_nocrossrefs): Remove. + (lang_enter_overlay): Remove LMA and crossref arguments. + (lang_enter_overlay_section): Don't set the LMA here. + (lang_leave_overlay): Take LMA and crossref arguments. Move the '.' + assignment to the last section's update_dot_tree. Unconditionally + use the load and run-time regions specified in the OVERLAY statement. + Likewise the first section's LMA. Only set the other sections' LMAs + when no load region is given. + +2002-05-06 Nick Clifton <nickc@redhat.com> + + * po/sv.po: New translation. + +2002-05-04 Alan Modra <amodra@bigpond.net.au> + + * emultempl/hppaelf.em (build_section_lists): New function. + (gld${EMULATION_NAME}_finish): Call elf32_hppa_setup_section_lists + and build_section_lists. + +2002-05-03 Kazu Hirata <kazu@cs.umass.edu> + + * ld.h: Fix formatting. + * ldexp.c: Likewise. + * ldfile.c: Likewise. + * ldlang.c: Likewise. + * ldmain.c: Likewise. + * lexsup.c: Likewise. + * pe-dll.c: Likewise. + +2002-05-02 Alan Modra <amodra@bigpond.net.au> + + * emultempl/ppc64elf.em (gld${EMULATION_NAME}_after_allocation): + Adjust for ppc64_elf_set_toc change. #include libbfd.h. + (build_section_lists): Do output_section tests here. + +2002-04-30 Tom Rix <trix@redhat.com> + + * emultempl/aix.em : (gld*_parse_arge): Formatting changes. + +2002-05-01 Alan Modra <amodra@bigpond.net.au> + + Long branch stubs, multiple stub sections. + * emultempl/ppc64elf.em: Include ldctor.h. + (stub_file): New var. + (group_size): New var. + (ppc_create_output_section_statements): New function. + (struct hook_stub_info): New. + (hook_in_stub): New function. + (ppc_add_stub_section): New function. + (ppc_layout_sections_again): New function. + (build_section_lists): New function. + (gld${EMULATION_NAME}_finish): Rewrite. + (real_func): New var. + (ppc_for_each_input_file_wrapper): New function. + (ppc_lang_for_each_input_file): New function. + (lang_for_each_input_file): Define. + (PARSE_AND_LIST_PROLOGUE): Define. + (PARSE_AND_LIST_LONGOPTS): Define. + (PARSE_AND_LIST_OPTIONS): Define. + (PARSE_AND_LIST_ARGS_CASES): Define. + (LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS): Define. + +2002-04-30 Tom Rix <trix@redhat.com> + + * emultempl/aix.em (gld*_parse_arge, gld*_before_allocation): Add + -blibpath, -bnolibpath support. + +2002-04-30 Mark Mitchell <mark@codesourcery.com> + + * Makefile.am (ALL_EMULATIONS): Add elf32ppcwindiss.o. + (eelf32ppcwindiss.c): New target. + * Makefile.in: Regenerated. + * configure.tgt: Add support for powerpc-*-windiss. + * emulparams/elf32ppcwindiss.sh: New file. + +2002-04-30 Richard Sandiford <rsandifo@redhat.com> + + * ldlang.c (print_assignment): Update print_dot for assignments to ".". + * ldexp.c (exp_print_token): Add "infix_p" argument. + (exp_print_tree): Update accordingly. + +2002-04-28 Alan Modra <amodra@bigpond.net.au> + + * Makefile.am (mpw): New maintainer mode rule to make mpw-*.c files. + * Makefile.in: Regenerate. + * mpw-elfmips.c: Delete. + * mpw-eppcmac.c: Delete. + * mpw-esh.c: Delete. + * mpw-idtmips.c: Delete. + +2002-04-17 J"orn Rennecke <joern.rennecke@superh.com> + + * emulparams/shelf32.sh (MACHINE): Now sh5. + +2002-04-17 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + + * ldgram.y: Fix syntax warning. + +2002-04-11 Nick Clifton <nickc@cambridge.redhat.com> + + * emultempl/armelf.em (PARSE_AND_LIST_SHORTOPTS): Add 'n' in order + to prevent "-n" from being taken as an abbreviation for + "--no-pipeline-knowledge". + +2002-04-08 Alan Modra <amodra@bigpond.net.au> + + * ldlang.c (lang_size_sections_1): Don't complain about + SEC_NEVER_LOAD sections having no memory region specified. + + * ld.texinfo (Format Commands <OUTPUT_FORMAT>): Typo fix. + +2002-04-07 matthew green <mrg@redhat.com> + + * configure.host (*-*-netbsd*): Add support for NetBSD/ELF. + +2002-04-04 Alan Modra <amodra@bigpond.net.au> + + * dep-in.sed: Cope with absolute paths. + * Makefile.am (dep.sed): Subst TOPDIR and BFDDIR. + Run "make dep-am". + * Makefile.in: Regenerate. + +2002-04-04 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + + * emulparams/elf64btsmip.sh: n64 replaces .reginfo with .MIPS.options. + +2002-04-03 Jakub Jelinek <jakub@redhat.com> + + * ldexp.c (fold_binary) [DATA_SEGMENT_ALIGN]: If common page size + is smaller than maximum, round dot up to common page boundary. + +2002-03-28 Alan Modra <amodra@bigpond.net.au> + + * configure.host: Set up for generic hosts first, then tweak as + necessary in more specific targets. + (HOSTING_LIBS): Include libgcc_eh.a if found. + +2002-03-23 Andreas Jaeger <aj@suse.de> + + * emulparams/elf_x86_64.sh (COMMONPAGESIZE): Set it. + +2002-03-21 Alan Modra <amodra@bigpond.net.au> + + * Makefile.am: Run "make dep-am". + * Makefile.in: Regenerate. + +2002-03-21 Albert Chin-A-Young <china@thewrittenword.com> + + * genscripts.sh (LIB_SEARCH_DIRS): Quote path. + +2002-03-20 Alan Modra <amodra@bigpond.net.au> + + * ldlang.c (ldlang_add_undef): If the output bfd has been opened, + add the symbol to the linker hash table immediately. + (lang_place_undefineds): Split symbol creation out.. + (insert_undefined): ..to here. + +2002-03-18 David O'Brien <obrien@FreeBSD.org> + + * emultempl/elf32.em: Use lbasename vs. basename to fix problem where + the contents of the buffer returned from basename function will are + getting overwritten while still being used. + +2002-03-18 Jan Hubicka <jh@suse.cz> + Andreas Jaeger <aj@suse.de> + Andreas Schwab <schwab@suse.de> + + * configure.tgt (x86_64-*-linux-gnu*): Configure i386 as native. + * elf_x86_64.sh (ARCH): Set to i386:x86-64 + set libraries to default to lib64 paths. + +2002-03-18 Tom Rix <trix@redhat.com> + + * Makefile.am : Add eaix5ppc and eaix5rs6, AIX 5 support. + * configure.tgt : Same. + * emulparms/aix5ppc.sh : New file. For eaix5ppc. + * emulparms/aix5rs6.sh : New file. For eaix5rs6. + * emulparms/aixppc.sh : OUPUT_FORMAT_32BIT and OUTPUT_FORMAT_64BIT + emulation parameters for better -b32, -b64 support. + * emulparms/aixrs6.sh : Same. + * emulparms/ppcmacos.sh : Same. + * emultempl/aix.em (choose_target) : Use new emulation parameters + OUTPUT_FORMAT_32BIT and OUTPUT_FORMAT_64BIT. + * Makefile.in : Regenerate. + +2002-03-18 Nick Clifton <nickc@cambridge.redhat.com> + + * po/fr.po: Updated version. + +2002-03-18 Alan Modra <amodra@bigpond.net.au> + + * ldmain.c (main): Move .text readonly flag fudges from here.. + * ldlang.c (lang_process): ..to here. + +2002-03-14 Alan Modra <amodra@bigpond.net.au> + + * ldlang.c (lang_check): Remove the word size check added in last + change. Treat emitrelocations case as for relocatable links. + +2002-03-13 Nick Clifton <nickc@cambridge.redhat.com> + + * po/fr.po: Updated version. + +2002-03-13 Alan Modra <amodra@bigpond.net.au> + + * ldlang.c (lang_check): Do relocatable link checks first, so that + warn_mismatch can't override. Check compatible and word size too. + +2002-03-07 Daniel Jacobowitz <drow@mvista.com> + + * ld.texinfo: Wrap @menu in @ifnottex, not @ifinfo. + +2002-03-05 Jakub Jelinek <jakub@redhat.com> + + * scripttempl/elf.sc: Only use DATA_SEGMENT_END() together with + DATA_SEGMENT_ALIGN. + +2002-03-04 H.J. Lu <hjl@gnu.org> + + * scripttempl/elf.sc: Put .preinit_array, .init_array and + .fini_array in the data segment. + +2002-03-04 Alan Modra <amodra@bigpond.net.au> + + * scripttempl/elf.sc: Correct syntax errors in 2002-03-01 commit. + +2002-03-01 David Mosberger <davidm@hpl.hp.com> + + * scripttempl/elf.sc (SECTIONS): Add entries for .preinit_array, + .init_array, and .fini_array. + +2002-02-20 Andreas Schwab <schwab@suse.de> + + * emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Don't fold + .IA64_unwind* in a relocatable link. + +2002-02-20 Nick Clifton <nickc@cambridge.redhat.com> + + * NEWS: Mark 2.12 branch. + +2002-02-19 Martin Schwidefsky <schwidefsky@de.ibm.com> + + * emulparams/elf64_s390.sh (ARCH): Change to "s390:64-bit". + * emulparams/elf_s390.sh (ARCH): Change to "s390:31-bit". + +2002-02-18 Tom Rix <trix@redhat.com> + + * emultempl/aix.em (gld*_parse_args): Add -brtl support. + (gld*_before_allocation): Same. + (gld*_create_output_section_statements): Generate + __rtinit if run time linking. Add librtl.a to the link. + (gld*_read_file): Clean. + +2002-02-18 Alan Modra <amodra@bigpond.net.au> + + * emulparams/elf64ppc.sh (OTHER_TEXT_SECTIONS): Define. + +2002-02-18 David O'Brien <obrien@FreeBSD.org> + + * Makefile.am: Add new files earmelf_fbsd, eelf32ppc_fbsd, + eelf_i386_fbsd, eelf64_ia64_fbsd, eelf_x86_64_fbsd, eelf64_sparc_fbsd, + and eelf64alpha_fbsd. + * Makefile.in: Regenerate. + * configure.tgt(sparc64-*-freebsd, ia64-*-freebsd, i[3456]86-*-freebsd, + x86_64-*-freebsd, arm-*-freebsd, alpha*-*-freebsd, powerpc-*-freebsd): + use a FreeBSD-specific emulation rather than the psABI one. + * emulparams/elf_fbsd.sh (ELF_INTERPRETER_NAME): Set appropriate value + for all FreeBSD ELF systems. + * emulparams/armelf_fbsd.sh: Bridge elf_fbsd.sh and the "native" psABI + emulation. + * emulparams/elf32ppc_fbsd.sh: Likewise. + * emulparams/elf64_ia64_fbsd.sh: Likewise. + * emulparams/elf64_sparc_fbsd.sh: Likewise. + * emulparams/elf64alpha_fbsd.sh: Likewise. + * emulparams/elf_i386_fbsd.sh: Likewise. + * emulparams/elf_x86_64_fbsd.sh: Likewise. + +2002-02-18 Nick Clifton <nickc@cambridge.redhat.com> + + * po/tr.po: Updated version. + +2002-02-18 Alan Modra <amodra@bigpond.net.au> + + * ld.texinfo (Output Section Fill): Fix amateur texinfo. + (FILL): Likewise. + +2002-02-17 Hans-Peter Nilsson <hp@bitrange.com> + + * emultempl/mmo.em (mmo_after_open): Don't call + _bfd_mmix_check_all_relocs when producing ELF output. + +2002-02-15 Richard Henderson <rth@redhat.com> + + * emulparams/elf64alpha.sh (NOP): Adjust for big-endian + definition. Emit a unop+nop pair. + +2002-02-15 Hans-Peter Nilsson <hp@bitrange.com> + + * emultempl/mmix-elfnmmo.em (mmix_after_allocation): Also check + for presence of .MMIX.reg_contents.linker_allocated before early + exit. + + * NEWS: Mention support for MMIX. + +2002-02-15 Alan Modra <amodra@bigpond.net.au> + + Support arbitrary length fill patterns. + * ld.texinfo (Output Section Fill): Describe fill expressions. + (FILL): Refer to the above. + * ldexp.h (etree_value_type): Add "str" field. + (union etree_union): Add "str" to "value" struct. + (exp_bigintop): Declare. + (exp_get_fill): Declare. + * ldexp.c: Include "safe-ctype.h". + (exp_intop): Set value.str to NULL. + (exp_bigintop): New function. + (new_rel): Pass in "str", and set new.str from it. + (new_rel_from_section): Set new.str to NULL. + (fold_name): Adjust calls to new_rel. + (exp_fold_tree): Likewise. + (exp_get_fill): New function. + * ldgram.y (struct big_int bigint, fill_type *fill): New. + (INT): Returns a "bigint". Adjust all code handling INTs. + (fill_opt): Returns a "fill". + (fill_exp): Split out of fill_opt, use for FILL. + * ldlang.h (struct _fill_type): New. + (fill_type): Move typedef to ldexp.h. + (lang_output_section_statement_type): "fill" is now a pointer. + (lang_fill_statement_type): Likewise. + (lang_padding_statement_type): Likewise. + (lang_add_fill): Now takes a "fill_type *" param. + (lang_leave_output_section_statement): Likewise. + (lang_do_assignments): Likewise. + (lang_size_sections): Likewise. + (lang_leave_overlay_section): Likewise. + (lang_leave_overlay): Likewise. + * ldlang.c: Include ldgram.h after ldexp.h. + (lang_output_section_statement_lookup): Adjust for fill_type change. + (print_fill_statement): Likewise. + (print_padding_statement): Likewise. + (insert_pad): Now takes a "fill_type *" arg. + (size_input_section): Likewise. + (lang_size_sections_1): Likewise. + (lang_size_sections): Likewise. + (lang_do_assignments): Likewise. + (lang_add_fill): Likewise. + (lang_leave_output_section_statement): Likewise. + (lang_leave_overlay_section): Likewise. + (lang_leave_overlay): Likewise. + Adjust all callers of the above function. + * ldlex.l: Include ldgram.h after ldexp.h. Allow hex numbers + starting with "0X" as well as "0x". Return bigint.str for hex + numbers starting with "0x" or "0X", zero bigint.str otherwise. + Always use base 16 for numbers starting with "$". + * ldmain.c: Include ldgram.h after ldexp.h. + * ldwrite.c (build_link_order): Use bfd_data_link_order in place + of bfd_fill_link_order. + * pe-dll.c: Adjust lang_do_assignments calls. + * emultempl/elf32.em: Likewise. + * emultempl/hppaelf.em: Likewise. + * emultempl/ppc64elf.em: Likewise. + * emultempl/beos.em: Include ldgram.h after ldexp.h, adjust + lang_add_assignment call. + * emultempl/pe.em: Likewise. + +2002-02-14 Phil Edwards <pme@gcc.gnu.org> + + * ld.texinfo (VERSION scripts): Symbol names are globbing patterns. + * ldgram.y (lang_new_vers_regex): Rename to lang_new_vers_pattern; + the pattern in question is not a regexp. + * ldlang.c: Likewise. + * ldlang.h: Likewise. + * ldlex.l (V_IDENTIFIER): Allow '[', ']', '-', '!', and '^' also. + +2002-02-12 Jakub Jelinek <jakub@redhat.com> + + * ldlex.l (DATA_SEGMENT_ALIGN, DATA_SEGMENT_END): New tokens. + * ldgram.y (DATA_SEGMENT_ALIGN, DATA_SEGMENT_END): New tokens. + (exp): Add DATA_SEGMENT_ALIGN (exp, exp) and DATA_SEGMENT_END (exp). + * ldexp.c (exp_data_seg): New variable. + (exp_print_token): Handle DATA_SEGMENT_ALIGN and DATA_SEGMENT_END. + (fold_binary): Handle DATA_SEGMENT_ALIGN. + (exp_fold_tree): Handle DATA_SEGMENT_END. + Pass allocation_done when recursing instead of hardcoding + lang_allocating_phase_enum. + * ldexp.h (exp_data_seg): New. + * ldlang.c (lang_size_sections_1): Renamed from lang_size_sections. + (lang_size_sections): New. + * ld.texinfo (DATA_SEGMENT_ALIGN, DATA_SEGMENT_END): Document. + * scripttempl/elf.sc: Use DATA_SEGMENT_ALIGN and DATA_SEGMENT_END + if COMMONPAGESIZE is defined. + * emulparams/elf_i386.sh (COMMONPAGESIZE): Set to 4K. + * emulparams/elf32_sparc.sh (COMMONPAGESIZE): Set to 8K. + * emulparams/elf64_sparc.sh (COMMONPAGESIZE): Set to 8K. + * emulparams/elf64alpha.sh (COMMONPAGESIZE): Set to 8K. + * emulparams/elf64_ia64.sh (COMMONPAGESIZE): Set to 16K for shared + libraries only. + +2002-02-11 Alan Modra <amodra@bigpond.net.au> + + * Makefile.in: Regenerate. + +2002-02-10 Daniel Jacobowitz <drow@mvista.com> + + * lexsup.c: Remove strtoul declaration. + +2002-02-10 Daniel Jacobowitz <drow@mvista.com> + + * ldmain.c: Add prototype for main (). + * lexsup.c: Guard declaration of strtoul with HAVE_STDLIB_H. + * emultempl/lnk960.em (lnk960_choose_target): Function should + take two arguments. + +2002-02-10 Alan Modra <amodra@bigpond.net.au> + + * ldlang.c (entry_section): New initialised variable. + (lang_finish): Use it. + * ldlang.h (entry_section): Declare. + * emultempl/ppc64elf.em (gld${EMULATION_NAME}_finish): Set + entry_section to ".opd". + +2002-02-09 Chris Demetriou <cgd@broadcom.com> + + * ld.texinfo (Options): Add back in -nostdlib documentation, + which had been inadvertently removed. + +2002-02-09 Hans-Peter Nilsson <hp@bitrange.com> + + * emultempl/mmix-elfnmmo.em (mmix_after_allocation): Adjust + register section vma to a sane value after emitting error. Make + fatal conditions cause program exit when emitting message. + +2002-02-08 Ivan Guzvinec <ivang@opencores.org> + + * configure.tgt: Add or32-*-rtems target. + +2002-02-08 Alexandre Oliva <aoliva@redhat.com> + + Contribute sh64-elf. + 2002-01-24 Alexandre Oliva <aoliva@redhat.com> + * emulparams/shelf32.sh (STACK_ADDR): Define as formerly defined + in OTHER_RELOCATABLE_SECTIONS. + 2002-01-18 Alexandre Oliva <aoliva@redhat.com> + * emulparams/shelf32.sh (STACK_ADDR): Define. + (OTHER_RELOCATABLE_SECTIONS): Renamed to... + (OTHER_SECTIONS): this. Removed stack settings. + * emulparams/shelf64.sh (OTHER_RELOCATABLE_SECTIONS): Do not set. + (OTHER_SECTIONS): Reset after sourcing shelf32.sh. + 2001-03-12 DJ Delorie <dj@redhat.com> + * emultempl/sh64elf.em (sh64_elf_$_before_allocation): Disable + relaxing if any shmedia or mixed sections are found. + 2001-03-07 DJ Delorie <dj@redhat.com> + * emultempl/sh64elf.em (sh64_elf_before_allocation): Pass f to + einfo. Gracefully decline to output to non-elf formats. + 2001-03-06 Hans-Peter Nilsson <hpn@redhat.com> + * emulparams/shelf64.sh (OTHER_RELOCATING_SECTIONS) <.stack>: + Default to _end aligned to next multiple of 0x40000, plus 0x40000. + * emulparams/shelf32.sh: Ditto. + 2001-01-14 Hans-Peter Nilsson <hpn@cygnus.com> + * emulparams/shelf32.sh (OTHER_RELOCATING_SECTIONS): Tweak + comment. + 2001-01-10 Ben Elliston <bje@redhat.com> + * emulparams/shelf32.sh (OTHER_RELOCATING_SECTIONS): Avoid + non-portable shell constructs. From Hans-Peter Nilsson. + 2001-01-09 Hans-Peter Nilsson <hpn@cygnus.com> + * emulparams/shelf64.sh (EXTRA_EM_FILE): Define empty. + * Makefile.am (eshelf64.c, eshlelf64.c, eshlelf32.c): Adjust + dependencies to the shell script include chain. + * Makefile.in: Regenerate. + 2001-01-06 Hans-Peter Nilsson <hpn@cygnus.com> + * emultempl/sh64elf.em: Update and tweak comments. + (sh64_elf_${EMULATION_NAME}_after_allocation): Always allocate and + make a .cranges section SEC_IN_MEMORY. + 2000-12-30 Hans-Peter Nilsson <hpn@cygnus.com> + * emultempl/sh64elf.em + (sh64_elf_${EMULATION_NAME}_before_allocation): Don't stop when + .cranges section found to be necessary; continue and set stored + section contents flags for sections with non-mixed contents. + Use a struct sh64_section_data container and sh64_elf_section_data + to store contents-type flags. + Remove unused update of "isec". + (sh64_elf_${EMULATION_NAME}_after_allocation): Only process + sections marked SHF_SH5_ISA32_MIXED. Use sh64_elf_section_data to + access contents-type flags. Assert that the associated container + is initialized. Use that container, not elf_gp_size, to hold size + of linker-generated cranges contents. + 2000-12-18 Hans-Peter Nilsson <hpn@cygnus.com> + * emultempl/sh64elf.em + (sh64_elf_${EMULATION_NAME}_before_allocation): Exit early if + there's already a .cranges section. When section flag difference + is found, don't NULL-check cranges a second time. Tweak comments. + (sh64_elf_${EMULATION_NAME}_after_allocation): Use size after + merging, not max size, as size of ld-generated .cranges contents. + Don't set ELF section flags in output section. When checking for + needed .cranges descriptors, don't use a variable; compare + incoming ELF section flags directly to SHF_SH5_ISA32_MIXED. Tweak + comments. + 2000-12-18 Hans-Peter Nilsson <hpn@cygnus.com> + * emultempl/sh64elf.em: New file. + * Makefile.am (eshelf32.c, eshlelf32.c): Adjust dependencies. + * Makefile.in: Regenerate. + * emulparams/shelf32.sh (OUTPUT_FORMAT): Only set if not set. + (OTHER_RELOCATING_SECTIONS): Ditto. + (EXTRA_EM_FILE): New, set to sh64elf if not set. + * emulparams/shlelf32.sh: Stub out all settings except + OUTPUT_FORMAT. Source shelf32.sh. + * emulparams/shelf64.sh: Similar, but also keep ELF_SIZE and + OTHER_RELOCATING_SECTIONS. + (OTHER_RELOCATING_SECTIONS): Remove .cranges. + * emulparams/shlelf64.sh: Stub out all settings except + OUTPUT_FORMAT. Source shelf64.sh. + 2000-12-15 Hans-Peter Nilsson <hpn@cygnus.com> + * emulparams/shelf64.sh (OTHER_RELOCATING_SECTIONS): Include + .cranges section. + (DATA_START_SYMBOLS): Define, provide ___data. + (OTHER_READONLY_SYMBOLS): Define, provide ___rodata and align to 8 + for consecutive .data section. + (OTHER_GOT_SECTIONS): Define, align to 8 for consecutive .bss + section after .data section. + * emulparams/shlelf64.sh: Ditto. + * emulparams/shelf32.sh: Ditto. + (ALIGNMENT): Define to 8. + * emulparams/shelf32.sh: Ditto. + 2000-12-12 Hans-Peter Nilsson <hpn@cygnus.com> + * configure.tgt (sh64-*-elf*): Assign targ_extra_libpath to get + built-in linker scripts. + 2000-11-30 Hans-Peter Nilsson <hpn@cygnus.com> + * emulparams/shlelf64.sh: New. + * emulparams/shelf64.sh: New. + * configure.tgt (sh64-*-elf*): Add shelf64 and shlelf64 to + targ_extra_emuls. + * Makefile.am: Add support for shlelf64 and shelf64. + * Makefile.in: Regenerate. + 2000-11-29 Hans-Peter Nilsson <hpn@cygnus.com> + * configure.tgt (sh64-*-elf*): Add shelf as default. + Add shlelf to targ_extra_emuls. + 2000-11-24 Hans-Peter Nilsson <hpn@cygnus.com> + * emulparams/shelf32.sh: New file. + * emulparams/shlelf32.sh: New file. + * Makefile.am: Add support for shlelf32 and shelf32. + * configure.tgt: Map sh64-*-elf* to shlelf32 and shelf32. + * Makefile.in: Regenerate. + +2002-02-05 Hans-Peter Nilsson <hp@axis.com> + + * ldlang.c (lang_reset_memory_regions): Rename from + reset_memory_regions. Change all callers. Make public. + * ldlang.h (lang_reset_memory_regions): Prototype. + * emultempl/elf32.em (gld${EMULATION_NAME}_finish): Call + lang_reset_memory_regions before lang_size_sections. + * emultempl/hppaelf.em (hppaelf_layout_sections_again): Likewise. + * emultempl/ppc64elf.em (gld${EMULATION_NAME}_finish): Likewise. + +2002-02-04 Hans-Peter Nilsson <hp@bitrange.com> + + * emultempl/mmix-elfnmmo.em (mmix_after_allocation): Use signed + arithmetic when checking for too many global registers. + +2002-02-02 Jason Thorpe <thorpej@wasabisystems.com> + + * Makefile.am (ALL_EMULATIONS): Add ehppanbsd.o. + (ehppanbsd.c): New rule. + * Makefile.in: Regenerate. + * configure.tgt (hppa*-*-netbsd*): New target. + * emulparams/hppalinux.sh: Add comment to check other files + that source this file it is modified, and list which + files that do. + * emulparams/hppanbsd.sh: New file. + +2002-02-01 Geoffrey Keating <geoffk@redhat.com> + + * scripttempl/xstormy16.sc: Don't allocate extra space for the + stack. + +2002-02-01 Hans-Peter Nilsson <hp@bitrange.com> + + Support on-demand global register allocation from + R_MMIX_BASE_PLUS_OFFSET relocs. + * emultempl/mmix-elfnmmo.em (mmix_after_allocation): Rename from + mmix_set_reg_section_vma. Call + _bfd_mmix_finalize_linker_allocated_gregs. + (mmix_before_allocation): New function. + (LDEMUL_AFTER_ALLOCATION): Set to mmix_after_allocation. + (LDEMUL_BEFORE_ALLOCATION): Define to mmix_before_allocation. + * scripttempl/mmo.sc (.text): Mark .init, .fini as KEEP. + (.MMIX.reg_contents): Add .MMIX.reg_contents.linker_allocated + before .MMIX.reg_contents. + * emultempl/mmo.em (gldmmo_before_allocation): Define to default. + (mmo_after_open): New function. + (LDEMUL_AFTER_OPEN): Define to mmo_after_open. + * emulparams/elf64mmix.sh (OTHER_SECTIONS): Tweak formatting. Add + .MMIX.reg_contents.linker_allocated before .MMIX.reg_contents. + +2002-01-31 Ivan Guzvinec <ivang@opencores.org> + + * emulparams/or32.sh: New file. + * emulparams/or32elf.sh: New file. + * scripttempl/or32.sc: New file. + * configure.tgt : Add support for or32. + * configure: Regenerate + * Makefile.am: Add support for or32. + * Makefile.in: Regenerate. + * NEWS: Mention support for or32. + * po/ld.pot: Regenerate. + +2002-01-29 Chris Demetriou <cgd@broadcom.com> + Mitch Lichtenberg <mpl@broadcom.com> + + * emulparams/elf32bmip.sh (EXTRA_EM_FILE): Define to be mipself. + * emultempl/mipself.em: New file to handle MIPS ELF embedded + reloc creation (ld --embedded-relocs). + +2002-01-27 Daniel Jacobowitz <drow@mvista.com> + + * configure: Regenerated. + +2002-01-26 Hans-Peter Nilsson <hp@bitrange.com> + + * Makefile.am (install): Depend on install-info. + * Makefile.in: Regenerate. + +2002-01-26 Christian Rose <menthos@menthos.com> + + * ldmain.c (main): Use full sentences to ease translation. + +2002-01-26 Nick Clifton <nickc@cambridge.redhat.com> + + * po/fr.po: Updated version. + +2002-01-25 Nick Clifton <nickc@cambridge.redhat.com> + + * po/es.po: Updated version. + +2002-01-25 Andreas Jaeger <aj@suse.de> + + * ldlex.l (yy_input): Correct error check. + +2002-01-25 Alan Modra <amodra@bigpond.net.au> + + * ldmisc.c (demangle): Put back dots when string not demangled. + +2002-01-22 Richard Henderson <rth@redhat.com> + + * emulparams/elf64alpha.sh (NOP): Use unop. + +2002-01-21 Andreas Jaeger <aj@suse.de> + + * ldlex.l: Use fread instead of read. + +2002-01-21 Jason Thorpe <thorpej@wasabisystems.com> + + * configure.tgt (ia64-*-netbsd*): New target. + +2002-01-21 H.J. Lu <hjl@gnu.org> + + * emulparams/elf32btsmip.sh (SHLIB_TEXT_START_ADDR): Change to + 0. + * emulparams/elf64btsmip.sh (SHLIB_TEXT_START_ADDR): Likewise. + +2002-01-18 Andreas Jaeger <aj@suse.de> + + * ldver.c (ldversion): Update year. + +2002-01-17 Nick Clifton <nickc@cambridge.redhat.com> + + * po/ld.pot: Regenerate. + +2002-01-16 Alan Modra <amodra@bigpond.net.au> + + * Makefile.am (eelf64ppc.c, eelf64lppc.c): Depend on ppc64elf.em. + * Makefile.in: Regenerate. + * emulparams/elf64ppc.sh (EXTRA_EM_FILE): Define. + * emultempl/ppc64elf.em: New file. + +2002-01-15 DJ Delorie <dj@redhat.com> + + * scripttempl/pe.sc: Add support for constructor priorities. + +2002-01-07 Marek Michalkiewicz <marekm@amelek.gda.pl> + + * emulparams/avr1200.sh (DATA_START): Define as 0x60. + * emulparams/avr23xx.sh: Likewise. + * emulparams/avr4433.sh: Likewise. + * emulparams/avr44x4.sh: Likewise. + * emulparams/avr85xx.sh: Likewise. + * emulparams/avrmega103.sh: Likewise. + * emulparams/avrmega161.sh: Likewise. + * emulparams/avrmega603.sh: Likewise. + * scripttempl/elf32avr.sc: Use DATA_START instead of 0x60. + +2002-01-08 Alexandre Oliva <aoliva@redhat.com> + + * ldlang.c (walk_wild_section): Exclude object file if enclosing + archive is excluded. + +2002-01-07 Jason Thorpe <thorpej@wasabisystems.com> + + * Makefile.am (ALL_EMULATIONS): Add eshelf_nbsd.o and eshlelf_nbsd.o. + (eshelf_nbsd.c): New rule. + (eshlelf_nbsd.c): New rule. + * Makefile.in: Regenerate. + * configure.tgt (sh*le-*-netbsdelf*): New target. + (sh*-*-netbsdelf*): New target. + * emulparams/shelf.sh: Document that shelf_nbsd.sh sources this file. + * emulparams/shelf_nbsd.sh: New emulation. + * emulparams/shlelf_nbsd.sh: New emulation. + +2002-01-07 Nick Clifton <nickc@cambridge.redhat.com> + + * po/es.po: New file: Spanish translation. + * configure.in (ALL_LINGUAS): Add es. + * configure: Regenerate. + +2002-01-06 John Marshall <jmarshall@acm.org> + + * ld.texinfo: Note that --emit-relocs is currently only + implemented for ELF. + +2002-01-05 Alan Modra <amodra@bigpond.net.au> + + * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Make use + of bfd_section_list_remove and bfd_section_list_insert macros. + * emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise. + * emultempl/mmo.em (mmo_place_orphan): Likewise. + +2002-01-04 Jason Thorpe <thorpej@wasabisystems.com> + + * configure.tgt (x86_64-*-netbsd*): New target. + For older changes see ChangeLog-0001 Local Variables: diff --git a/ld/Makefile.am b/ld/Makefile.am index 25b1cfb..308d422 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -149,6 +149,7 @@ ALL_EMULATIONS = \ eelf32_i860.o \ eelf32_sparc.o \ eelf32b4300.o \ + eelf32cr16c.o \ eelf32bmip.o \ eelf32bmipn32.o \ eelf32btsmip.o \ @@ -626,54 +627,54 @@ eelf32_i960.c: $(srcdir)/emulparams/elf32_i960.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_i960 "$(tdir_elf32_i960)" eelf32b4300.c: $(srcdir)/emulparams/elf32b4300.sh \ - $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emultempl/mipself.em \ + $(srcdir)/emulparams/elf32bmip.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32b4300 "$(tdir_elf32b4300)" +eelf32cr16c.c: $(srcdir)/emulparams/elf32cr16c.sh \ + $(srcdir)/emultempl/elf32.em \ + $(srcdir)/scripttempl/elf32cr16c.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32cr16c "$(tdir_elf32cr16c)" eelf32bmip.c: $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/mipself.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32bmip "$(tdir_elf32bmip)" eelf32bsmip.c: $(srcdir)/emulparams/elf32bsmip.sh \ - $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emultempl/mipself.em \ + $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emultempl/irix.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32bsmip "$(tdir_elf32bsmip)" eelf32btsmip.c: $(srcdir)/emulparams/elf32btsmip.sh \ - $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emultempl/mipself.em \ + $(srcdir)/emulparams/elf32bmip.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32btsmip "$(tdir_elf32btsmip)" eelf32btsmipn32.c: $(srcdir)/emulparams/elf32btsmipn32.sh \ - $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emultempl/mipself.em \ + $(srcdir)/emulparams/elf32bmip.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32btsmipn32 "$(tdir_elf32btsmipn32)" eelf32ltsmip.c: $(srcdir)/emulparams/elf32ltsmip.sh \ $(srcdir)/emulparams/elf32btsmip.sh $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/mipself.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ltsmip "$(tdir_elf32ltsmip)" eelf32ltsmipn32.c: $(srcdir)/emulparams/elf32ltsmipn32.sh \ $(srcdir)/emulparams/elf32btsmip.sh $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/mipself.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ltsmipn32 "$(tdir_elf32ltsmipn32)" eelf32ebmip.c: $(srcdir)/emulparams/elf32ebmip.sh \ - $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emultempl/mipself.em \ + $(srcdir)/emulparams/elf32bmip.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ebmip "$(tdir_elf32ebmip)" eelf32elmip.c: $(srcdir)/emulparams/elf32elmip.sh \ $(srcdir)/emulparams/elf32lmip.sh $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/mipself.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32elmip "$(tdir_elf32elmip)" eelf32bmipn32.c: $(srcdir)/emulparams/elf32bmipn32.sh \ + $(srcdir)/emultempl/irix.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32bmipn32 "$(tdir_elf32bmipn32)" eelf32l4300.c: $(srcdir)/emulparams/elf32l4300.sh \ $(srcdir)/emulparams/elf32b4300.sh $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/mipself.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32l4300 "$(tdir_elf32l4300)" eelf32lmip.c: $(srcdir)/emulparams/elf32lmip.sh \ - $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emultempl/mipself.em \ + $(srcdir)/emulparams/elf32bmip.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32lmip "$(tdir_elf32lmip)" eelf32mipswindiss.c: $(srcdir)/emulparams/elf32mipswindiss.sh \ @@ -701,7 +702,6 @@ eelf32ppcwindiss.c: $(srcdir)/emulparams/elf32ppcwindiss.sh \ ${GENSCRIPTS} elf32ppcwindiss "$(tdir_elf32ppcwindiss)" eelf32lsmip.c: $(srcdir)/emulparams/elf32lsmip.sh \ $(srcdir)/emulparams/elf32lmip.sh $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/mipself.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32lsmip "$(tdir_elf32lsmip)" eelf32openrisc.c: $(srcdir)/emulparams/elf32openrisc.sh \ @@ -781,7 +781,7 @@ eelf64_sparc_fbsd.c: $(srcdir)/emulparams/elf64_sparc_fbsd.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_sparc_fbsd "$(tdir_elf64_sparc_fbsd)" eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \ - $(srcdir)/emulparams/elf32bmipn32.sh \ + $(srcdir)/emulparams/elf32bmipn32.sh $(srcdir)/emultempl/irix.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64bmip "$(tdir_elf64bmip)" eelf64mmix.c: $(srcdir)/emulparams/elf64mmix.sh \ @@ -1656,29 +1656,6 @@ dep-am: DEP .PHONY: dep dep-in dep-am -@MAINT@.PHONY: mpw -@MAINT@mpw: $(srcdir)/mpw-ei386go32.c $(srcdir)/mpw-elfmips.c \ -@MAINT@ $(srcdir)/mpw-em68kcoff.c $(srcdir)/mpw-eppcmac.c \ -@MAINT@ $(srcdir)/mpw-esh.c $(srcdir)/mpw-idtmips.c -@MAINT@ -@MAINT@$(srcdir)/mpw-ei386go32.c: ei386go32.c -@MAINT@ $(srcdir)/../move-if-change $< $@ -@MAINT@ -@MAINT@$(srcdir)/mpw-elfmips.c: eelf32ebmip.c -@MAINT@ $(srcdir)/../move-if-change $< $@ -@MAINT@ -@MAINT@$(srcdir)/mpw-em68kcoff.c: em68kcoff.c -@MAINT@ $(srcdir)/../move-if-change $< $@ -@MAINT@ -@MAINT@$(srcdir)/mpw-eppcmac.c: eppcmacos.c -@MAINT@ $(srcdir)/../move-if-change $< $@ -@MAINT@ -@MAINT@$(srcdir)/mpw-esh.c: esh.c -@MAINT@ $(srcdir)/../move-if-change $< $@ -@MAINT@ -@MAINT@$(srcdir)/mpw-idtmips.c: emipsidt.c -@MAINT@ $(srcdir)/../move-if-change $< $@ - # What appears below is generated by a hacked mkdep using gcc -MM. # DO NOT DELETE THIS LINE -- mkdep uses it. diff --git a/ld/Makefile.in b/ld/Makefile.in index 5a91690..40051ef 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -263,6 +263,7 @@ ALL_EMULATIONS = \ eelf32_i860.o \ eelf32_sparc.o \ eelf32b4300.o \ + eelf32cr16c.o \ eelf32bmip.o \ eelf32bmipn32.o \ eelf32btsmip.o \ @@ -1352,54 +1353,54 @@ eelf32_i960.c: $(srcdir)/emulparams/elf32_i960.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_i960 "$(tdir_elf32_i960)" eelf32b4300.c: $(srcdir)/emulparams/elf32b4300.sh \ - $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emultempl/mipself.em \ + $(srcdir)/emulparams/elf32bmip.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32b4300 "$(tdir_elf32b4300)" +eelf32cr16c.c: $(srcdir)/emulparams/elf32cr16c.sh \ + $(srcdir)/emultempl/elf32.em \ + $(srcdir)/scripttempl/elf32cr16c.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32cr16c "$(tdir_elf32cr16c)" eelf32bmip.c: $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/mipself.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32bmip "$(tdir_elf32bmip)" eelf32bsmip.c: $(srcdir)/emulparams/elf32bsmip.sh \ - $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emultempl/mipself.em \ + $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emultempl/irix.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32bsmip "$(tdir_elf32bsmip)" eelf32btsmip.c: $(srcdir)/emulparams/elf32btsmip.sh \ - $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emultempl/mipself.em \ + $(srcdir)/emulparams/elf32bmip.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32btsmip "$(tdir_elf32btsmip)" eelf32btsmipn32.c: $(srcdir)/emulparams/elf32btsmipn32.sh \ - $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emultempl/mipself.em \ + $(srcdir)/emulparams/elf32bmip.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32btsmipn32 "$(tdir_elf32btsmipn32)" eelf32ltsmip.c: $(srcdir)/emulparams/elf32ltsmip.sh \ $(srcdir)/emulparams/elf32btsmip.sh $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/mipself.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ltsmip "$(tdir_elf32ltsmip)" eelf32ltsmipn32.c: $(srcdir)/emulparams/elf32ltsmipn32.sh \ $(srcdir)/emulparams/elf32btsmip.sh $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/mipself.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ltsmipn32 "$(tdir_elf32ltsmipn32)" eelf32ebmip.c: $(srcdir)/emulparams/elf32ebmip.sh \ - $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emultempl/mipself.em \ + $(srcdir)/emulparams/elf32bmip.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ebmip "$(tdir_elf32ebmip)" eelf32elmip.c: $(srcdir)/emulparams/elf32elmip.sh \ $(srcdir)/emulparams/elf32lmip.sh $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/mipself.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32elmip "$(tdir_elf32elmip)" eelf32bmipn32.c: $(srcdir)/emulparams/elf32bmipn32.sh \ + $(srcdir)/emultempl/irix.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32bmipn32 "$(tdir_elf32bmipn32)" eelf32l4300.c: $(srcdir)/emulparams/elf32l4300.sh \ $(srcdir)/emulparams/elf32b4300.sh $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/mipself.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32l4300 "$(tdir_elf32l4300)" eelf32lmip.c: $(srcdir)/emulparams/elf32lmip.sh \ - $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emultempl/mipself.em \ + $(srcdir)/emulparams/elf32bmip.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32lmip "$(tdir_elf32lmip)" eelf32mipswindiss.c: $(srcdir)/emulparams/elf32mipswindiss.sh \ @@ -1427,7 +1428,6 @@ eelf32ppcwindiss.c: $(srcdir)/emulparams/elf32ppcwindiss.sh \ ${GENSCRIPTS} elf32ppcwindiss "$(tdir_elf32ppcwindiss)" eelf32lsmip.c: $(srcdir)/emulparams/elf32lsmip.sh \ $(srcdir)/emulparams/elf32lmip.sh $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/mipself.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32lsmip "$(tdir_elf32lsmip)" eelf32openrisc.c: $(srcdir)/emulparams/elf32openrisc.sh \ @@ -1507,7 +1507,7 @@ eelf64_sparc_fbsd.c: $(srcdir)/emulparams/elf64_sparc_fbsd.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_sparc_fbsd "$(tdir_elf64_sparc_fbsd)" eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \ - $(srcdir)/emulparams/elf32bmipn32.sh \ + $(srcdir)/emulparams/elf32bmipn32.sh $(srcdir)/emultempl/irix.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64bmip "$(tdir_elf64bmip)" eelf64mmix.c: $(srcdir)/emulparams/elf64mmix.sh \ @@ -2356,29 +2356,6 @@ dep-am: DEP .PHONY: dep dep-in dep-am -@MAINT@.PHONY: mpw -@MAINT@mpw: $(srcdir)/mpw-ei386go32.c $(srcdir)/mpw-elfmips.c \ -@MAINT@ $(srcdir)/mpw-em68kcoff.c $(srcdir)/mpw-eppcmac.c \ -@MAINT@ $(srcdir)/mpw-esh.c $(srcdir)/mpw-idtmips.c -@MAINT@ -@MAINT@$(srcdir)/mpw-ei386go32.c: ei386go32.c -@MAINT@ $(srcdir)/../move-if-change $< $@ -@MAINT@ -@MAINT@$(srcdir)/mpw-elfmips.c: eelf32ebmip.c -@MAINT@ $(srcdir)/../move-if-change $< $@ -@MAINT@ -@MAINT@$(srcdir)/mpw-em68kcoff.c: em68kcoff.c -@MAINT@ $(srcdir)/../move-if-change $< $@ -@MAINT@ -@MAINT@$(srcdir)/mpw-eppcmac.c: eppcmacos.c -@MAINT@ $(srcdir)/../move-if-change $< $@ -@MAINT@ -@MAINT@$(srcdir)/mpw-esh.c: esh.c -@MAINT@ $(srcdir)/../move-if-change $< $@ -@MAINT@ -@MAINT@$(srcdir)/mpw-idtmips.c: emipsidt.c -@MAINT@ $(srcdir)/../move-if-change $< $@ - # What appears below is generated by a hacked mkdep using gcc -MM. # DO NOT DELETE THIS LINE -- mkdep uses it. @@ -1,5 +1,13 @@ -*- text -*- +* The linker script operator DEFINED() will now yield 1 only for a symbol that + is defined before the statement where DEFINED is used. + +* The MIPS --embedded-relocs (used to embed relocations into binaries for + Embedded-PIC code) is deprecated and will be removed in a future release. + +* cr16c support added by NSC. + * m32r Linux (ELF) support added by Renesas. * Improved linker's handling of unresolved symbols. The switch diff --git a/ld/config.in b/ld/config.in index f76bb42..acf484d 100644 --- a/ld/config.in +++ b/ld/config.in @@ -25,9 +25,6 @@ /* Define to `long' if <sys/types.h> doesn't define. */ #undef off_t -/* Define if you need to in order for stat and other things to work. */ -#undef _POSIX_SOURCE - /* Define to `unsigned' if <sys/types.h> doesn't define. */ #undef size_t @@ -130,6 +127,12 @@ /* Define if you have the <sys/param.h> header file. */ #undef HAVE_SYS_PARAM_H +/* Define if you have the <sys/stat.h> header file. */ +#undef HAVE_SYS_STAT_H + +/* Define if you have the <sys/types.h> header file. */ +#undef HAVE_SYS_TYPES_H + /* Define if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H diff --git a/ld/configure.host b/ld/configure.host index 809a1fe..f2e1eb4 100644 --- a/ld/configure.host +++ b/ld/configure.host @@ -155,10 +155,6 @@ ia64-*-aix*) HOSTING_LIBS='-L`dirname \`${CC} --print-file-name=libc.so\`` '"$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} --print-file-name=crtend.o; fi` `${CC} --print-file-name=crtn.o`' ;; -mips*-dec-bsd*) - HOSTING_CRT0=/usr/lib/crt0.o - ;; - mips*-sgi-irix4* | mips*-sgi-irix5*) HOSTING_CRT0=/usr/lib/crt1.o HOSTING_LIBS="$HOSTING_LIBS"' /usr/lib/crtn.o' diff --git a/ld/configure.tgt b/ld/configure.tgt index 2c85431..772f8ad 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -26,6 +26,7 @@ arm-*-pe) targ_emul=armpe ; arc-*-elf*) targ_emul=arcelf ;; avr-*-*) targ_emul=avr2 targ_extra_emuls="avr1 avr3 avr4 avr5" ;; +cr16c-*-elf*) targ_emul=elf32cr16c ;; cris-*-*aout*) targ_emul=crisaout targ_extra_emuls="criself crislinux" targ_extra_libpath=$targ_extra_emuls ;; @@ -408,7 +409,6 @@ mips*-sgi-irix6*) targ_emul=elf32bmipn32 mips*-sgi-irix*) targ_emul=mipsbig ;; mips*el-*-ecoff*) targ_emul=mipsidtl ;; mips*-*-ecoff*) targ_emul=mipsidt ;; -mips*-dec-bsd*) targ_emul=mipsbsd ;; mips*el-*-netbsd*) targ_emul=elf32lmip targ_extra_emuls="elf32bmip" ;; diff --git a/ld/emulparams/elf32bmip.sh b/ld/emulparams/elf32bmip.sh index 94e1c9c..7badcb8 100644 --- a/ld/emulparams/elf32bmip.sh +++ b/ld/emulparams/elf32bmip.sh @@ -33,5 +33,4 @@ OTHER_SECTIONS=' ARCH=mips MACHINE= TEMPLATE_NAME=elf32 -EXTRA_EM_FILE=mipself GENERATE_SHLIB_SCRIPT=yes diff --git a/ld/emulparams/elf32bmipn32.sh b/ld/emulparams/elf32bmipn32.sh index 3de791c..a320eb2 100755 --- a/ld/emulparams/elf32bmipn32.sh +++ b/ld/emulparams/elf32bmipn32.sh @@ -18,3 +18,5 @@ EXECUTABLE_SYMBOLS=" # Following the IRIX linker, we simply put .rodata in the data # segment. WRITABLE_RODATA= + +EXTRA_EM_FILE=irix diff --git a/ld/emulparams/elf32bsmip.sh b/ld/emulparams/elf32bsmip.sh index 5b2939a..dfe0fe0 100644 --- a/ld/emulparams/elf32bsmip.sh +++ b/ld/emulparams/elf32bsmip.sh @@ -1,2 +1,3 @@ . ${srcdir}/emulparams/elf32bmip.sh ENTRY=__start +EXTRA_EM_FILE=irix diff --git a/ld/emulparams/elf32cr16c.sh b/ld/emulparams/elf32cr16c.sh new file mode 100644 index 0000000..e78e5ed --- /dev/null +++ b/ld/emulparams/elf32cr16c.sh @@ -0,0 +1,5 @@ +SCRIPT_NAME=elf32cr16c +TEMPLATE_NAME=elf32 +OUTPUT_FORMAT="elf32-cr16c" +ARCH=cr16c +ENTRY=_start diff --git a/ld/emulparams/elf32frvfd.sh b/ld/emulparams/elf32frvfd.sh index 224abed..1e2ef59 100644 --- a/ld/emulparams/elf32frvfd.sh +++ b/ld/emulparams/elf32frvfd.sh @@ -1,6 +1,6 @@ . ${srcdir}/emulparams/elf32frv.sh unset STACK_ADDR -MAXPAGESIZE=0x10000 +MAXPAGESIZE=0x4000 TEMPLATE_NAME=elf32 GENERATE_SHLIB_SCRIPT=yes EMBEDDED= # This gets us program headers mapped as part of the text segment. diff --git a/ld/emulparams/elf64bmip.sh b/ld/emulparams/elf64bmip.sh index 4673c52..a4ce6d4 100755 --- a/ld/emulparams/elf64bmip.sh +++ b/ld/emulparams/elf64bmip.sh @@ -19,3 +19,5 @@ EXECUTABLE_SYMBOLS=" # Following the IRIX linker, we simply put .rodata in the data # segment. WRITABLE_RODATA= + +EXTRA_EM_FILE=irix diff --git a/ld/emulparams/mipsidt.sh b/ld/emulparams/mipsidt.sh index 63176f5..f381267 100644 --- a/ld/emulparams/mipsidt.sh +++ b/ld/emulparams/mipsidt.sh @@ -7,5 +7,6 @@ ARCH=mips ENTRY=start TEXT_START_ADDR=0xa0012000 DATA_ADDR=. -TEMPLATE_NAME=mipsecoff +TEMPLATE_NAME=generic +EXTRA_EM_FILE=mipsecoff EMBEDDED=yes diff --git a/ld/emulparams/mipsidtl.sh b/ld/emulparams/mipsidtl.sh index 02279de..52447ff 100644 --- a/ld/emulparams/mipsidtl.sh +++ b/ld/emulparams/mipsidtl.sh @@ -7,5 +7,6 @@ ARCH=mips ENTRY=start TEXT_START_ADDR=0xa0012000 DATA_ADDR=. -TEMPLATE_NAME=mipsecoff +TEMPLATE_NAME=generic +EXTRA_EM_FILE=mipsecoff EMBEDDED=yes diff --git a/ld/emultempl/armelf.em b/ld/emultempl/armelf.em index 0c051ad..beeb40c 100644 --- a/ld/emultempl/armelf.em +++ b/ld/emultempl/armelf.em @@ -27,6 +27,7 @@ cat >>e${EMULATION_NAME}.c <<EOF static int no_pipeline_knowledge = 0; static char *thumb_entry_symbol = NULL; static bfd *bfd_for_interwork; +static int byteswap_code = 0; static void gld${EMULATION_NAME}_before_parse (void) @@ -117,7 +118,8 @@ arm_elf_before_allocation (void) LANG_FOR_EACH_INPUT_STATEMENT (is) { if (!bfd_elf32_arm_process_before_allocation (is->the_bfd, & link_info, - no_pipeline_knowledge)) + no_pipeline_knowledge, + byteswap_code)) { /* xgettext:c-format */ einfo (_("Errors encountered processing file %s"), is->filename); @@ -184,6 +186,7 @@ EOF # PARSE_AND_LIST_PROLOGUE=' #define OPTION_THUMB_ENTRY 301 +#define OPTION_BE8 302 ' PARSE_AND_LIST_SHORTOPTS=p @@ -191,11 +194,13 @@ PARSE_AND_LIST_SHORTOPTS=p PARSE_AND_LIST_LONGOPTS=' { "no-pipeline-knowledge", no_argument, NULL, '\'p\''}, { "thumb-entry", required_argument, NULL, OPTION_THUMB_ENTRY}, + { "be8", no_argument, NULL, OPTION_BE8}, ' PARSE_AND_LIST_OPTIONS=' fprintf (file, _(" -p --no-pipeline-knowledge Stop the linker knowing about the pipeline length\n")); fprintf (file, _(" --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n")); + fprintf (file, _(" --be8 Oputput BE8 format image\n")); ' PARSE_AND_LIST_ARGS_CASES=' @@ -206,6 +211,10 @@ PARSE_AND_LIST_ARGS_CASES=' case OPTION_THUMB_ENTRY: thumb_entry_symbol = optarg; break; + + case OPTION_BE8: + byteswap_code = 1; + break; ' # We have our own after_open and before_allocation functions, but they call diff --git a/ld/emultempl/armelf_oabi.em b/ld/emultempl/armelf_oabi.em index d75c658..8ff2ad1 100644 --- a/ld/emultempl/armelf_oabi.em +++ b/ld/emultempl/armelf_oabi.em @@ -68,7 +68,7 @@ gld${EMULATION_NAME}_before_allocation (void) { LANG_FOR_EACH_INPUT_STATEMENT (is) { - if (!bfd_elf32_arm_process_before_allocation (is->the_bfd, &link_info, 0)) + if (!bfd_elf32_arm_process_before_allocation (is->the_bfd, &link_info, 0, 0)) { /* xgettext:c-format */ einfo (_("Errors encountered processing file %s"), is->filename); diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index 45749e7..1a838f3 100644 --- a/ld/emultempl/elf32.em +++ b/ld/emultempl/elf32.em @@ -89,6 +89,28 @@ gld${EMULATION_NAME}_before_parse (void) EOF fi +if test x"$LDEMUL_RECOGNIZED_FILE" != xgld"${EMULATION_NAME}"_load_symbols; then +cat >>e${EMULATION_NAME}.c <<EOF +/* Handle as_needed DT_NEEDED. */ + +static bfd_boolean +gld${EMULATION_NAME}_load_symbols (lang_input_statement_type *entry) +{ + if (!entry->as_needed + || (bfd_get_file_flags (entry->the_bfd) & DYNAMIC) == 0) + return FALSE; + + /* Tell the ELF linker that we don't want the output file to have a + DT_NEEDED entry for this file, unless it is used to resolve + references in a regular object. */ + bfd_elf_set_dyn_lib_class (entry->the_bfd, DYN_AS_NEEDED); + + /* Continue on with normal load_symbols processing. */ + return FALSE; +} +EOF +fi + cat >>e${EMULATION_NAME}.c <<EOF /* These variables are required to pass information back and forth @@ -336,14 +358,13 @@ cat >>e${EMULATION_NAME}.c <<EOF return TRUE; } - /* Tell the ELF backend that we don't want the output file to have a - DT_NEEDED entry for this file. */ - bfd_elf_set_dt_needed_name (abfd, ""); + /* Specify the soname to use. */ + bfd_elf_set_dt_needed_name (abfd, soname); - /* Tell the ELF backend that the output file needs a DT_NEEDED - entry for this file if it is used to resolve the reference in - a regular object. */ - bfd_elf_set_dt_needed_soname (abfd, soname); + /* Tell the ELF linker that we don't want the output file to have a + DT_NEEDED entry for this file, unless it is used to resolve + references in a regular object. */ + bfd_elf_set_dyn_lib_class (abfd, DYN_DT_NEEDED); /* Add this file into the symbol table. */ if (! bfd_link_add_symbols (abfd, &link_info)) @@ -850,7 +871,7 @@ gld${EMULATION_NAME}_before_allocation (void) rpath = command_line.rpath; if (rpath == NULL) rpath = (const char *) getenv ("LD_RUN_PATH"); - if (! (bfd_elf${ELFSIZE}_size_dynamic_sections + if (! (bfd_elf_size_dynamic_sections (output_bfd, command_line.soname, rpath, command_line.filter_shlib, (const char * const *) command_line.auxiliary_filters, @@ -1121,7 +1142,7 @@ gld${EMULATION_NAME}_place_orphan (lang_input_statement_type *file, asection *s) isdyn = 1; } - if (isdyn || (!config.unique_orphan_sections && !unique_section_p (secname))) + if (isdyn || (!config.unique_orphan_sections && !unique_section_p (s))) { /* Look through the script to see where to place this section. */ os = lang_output_section_find (secname); @@ -1386,7 +1407,7 @@ cat >>e${EMULATION_NAME}.c <<EOF static void gld${EMULATION_NAME}_finish (void) { - if (bfd_elf${ELFSIZE}_discard_info (output_bfd, &link_info)) + if (bfd_elf_discard_info (output_bfd, &link_info)) { lang_reset_memory_regions (); @@ -1752,7 +1773,7 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation = gld${EMULATION_NAME}_handle_option, ${LDEMUL_UNRECOGNIZED_FILE-NULL}, ${LDEMUL_LIST_OPTIONS-gld${EMULATION_NAME}_list_options}, - ${LDEMUL_RECOGNIZED_FILE-NULL}, + ${LDEMUL_RECOGNIZED_FILE-gld${EMULATION_NAME}_load_symbols}, ${LDEMUL_FIND_POTENTIAL_LIBRARIES-NULL}, ${LDEMUL_NEW_VERS_PATTERN-NULL} }; diff --git a/ld/emultempl/hppaelf.em b/ld/emultempl/hppaelf.em index e9445f2..93e88ad 100644 --- a/ld/emultempl/hppaelf.em +++ b/ld/emultempl/hppaelf.em @@ -254,11 +254,11 @@ build_section_lists (lang_statement_union_type *statement) static void gld${EMULATION_NAME}_finish (void) { - /* bfd_elf32_discard_info just plays with debugging sections, + /* bfd_elf_discard_info just plays with debugging sections, ie. doesn't affect any code, so we can delay resizing the sections. It's likely we'll resize everything in the process of adding stubs. */ - if (bfd_elf${ELFSIZE}_discard_info (output_bfd, &link_info)) + if (bfd_elf_discard_info (output_bfd, &link_info)) need_laying_out = 1; /* If generating a relocatable output file, then we don't diff --git a/ld/emultempl/irix.em b/ld/emultempl/irix.em new file mode 100644 index 0000000..19511dd --- /dev/null +++ b/ld/emultempl/irix.em @@ -0,0 +1,41 @@ +# This shell script emits a C file. -*- C -*- +# Copyright 2004 Free Software Foundation, Inc. +# +# This file is part of GLD, the Gnu Linker. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# + +cat >>e${EMULATION_NAME}.c <<EOF + +#include "ld.h" +#include "ldmain.h" +#include "libiberty.h" + +/* The native IRIX linker will always create a DT_SONAME for shared objects. + While this shouldn't really be necessary for ABI conformance, some versions + of the native linker will segfault if the tag is missing. */ + +static void +irix_after_open (void) +{ + if (link_info.shared && command_line.soname == 0) + command_line.soname = basename (bfd_get_filename (output_bfd)); + + gld${EMULATION_NAME}_after_open (); +} +EOF + +LDEMUL_AFTER_OPEN=irix_after_open diff --git a/ld/emultempl/mipsecoff.em b/ld/emultempl/mipsecoff.em index dde33c2..5d160cd 100644 --- a/ld/emultempl/mipsecoff.em +++ b/ld/emultempl/mipsecoff.em @@ -1,51 +1,30 @@ # This shell script emits a C file. -*- C -*- -# It does some substitutions. +# Copyright 1994, 1995, 1997, 2000, 2002, 2003, 2004 +# Free Software Foundation, Inc. +# +# This file is part of GLD, the Gnu Linker. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# + if [ -z "$MACHINE" ]; then OUTPUT_ARCH=${ARCH} else OUTPUT_ARCH=${ARCH}:${MACHINE} fi -cat >e${EMULATION_NAME}.c <<EOF -/* This file is is generated by a shell script. DO NOT EDIT! */ - -/* Handle embedded relocs for MIPS. - Copyright 1994, 1995, 1997, 2000, 2002, 2003, 2004 - Free Software Foundation, Inc. - Written by Ian Lance Taylor <ian@cygnus.com> based on generic.em. - -This file is part of GLD, the Gnu Linker. - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#define TARGET_IS_${EMULATION_NAME} - -#include "bfd.h" -#include "sysdep.h" -#include "bfdlink.h" - -#include "ld.h" -#include "ldmain.h" -#include "ldmisc.h" - -#include "ldexp.h" -#include "ldlang.h" -#include "ldfile.h" -#include "ldemul.h" - -static void check_sections (bfd *, asection *, void *); - +cat >>e${EMULATION_NAME}.c <<EOF static void gld${EMULATION_NAME}_before_parse (void) { @@ -53,196 +32,6 @@ gld${EMULATION_NAME}_before_parse (void) ldfile_set_output_arch ("${OUTPUT_ARCH}", bfd_arch_`echo ${ARCH} | sed -e 's/:.*//'`); #endif /* not TARGET_ */ } - -/* This function is run after all the input files have been opened. - We create a .rel.sdata section for each input file with a non zero - .sdata section. The BFD backend will fill in these sections with - magic numbers which can be used to relocate the data section at run - time. This will only do the right thing if all the input files - have been compiled using -membedded-pic. */ - -static void -gld${EMULATION_NAME}_after_open (void) -{ - bfd *abfd; - - if (! command_line.embedded_relocs - || link_info.relocatable) - return; - - for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next) - { - asection *datasec; - - /* As first-order business, make sure that each input BFD is ECOFF. It - better be, as we are directly calling an ECOFF backend function. */ - if (bfd_get_flavour (abfd) != bfd_target_ecoff_flavour) - einfo ("%F%B: all input objects must be ECOFF for --embedded-relocs\n"); - - datasec = bfd_get_section_by_name (abfd, ".sdata"); - - /* Note that we assume that the reloc_count field has already - been set up. We could call bfd_get_reloc_upper_bound, but - that returns the size of a memory buffer rather than a reloc - count. We do not want to call bfd_canonicalize_reloc, - because although it would always work it would force us to - read in the relocs into BFD canonical form, which would waste - a significant amount of time and memory. */ - if (datasec != NULL && datasec->reloc_count > 0) - { - asection *relsec; - - relsec = bfd_make_section (abfd, ".rel.sdata"); - if (relsec == NULL - || ! bfd_set_section_flags (abfd, relsec, - (SEC_ALLOC - | SEC_LOAD - | SEC_HAS_CONTENTS - | SEC_IN_MEMORY)) - || ! bfd_set_section_alignment (abfd, relsec, 2) - || ! bfd_set_section_size (abfd, relsec, - datasec->reloc_count * 4)) - einfo ("%F%B: can not create .rel.sdata section: %E\n"); - } - - /* Double check that all other data sections are empty, as is - required for embedded PIC code. */ - bfd_map_over_sections (abfd, check_sections, datasec); - } -} - -/* Check that of the data sections, only the .sdata section has - relocs. This is called via bfd_map_over_sections. */ - -static void -check_sections (bfd *abfd, asection *sec, void *sdatasec) -{ - if ((bfd_get_section_flags (abfd, sec) & SEC_CODE) == 0 - && sec != sdatasec - && sec->reloc_count != 0) - einfo ("%B%X: section %s has relocs; can not use --embedded-relocs\n", - abfd, bfd_get_section_name (abfd, sec)); -} - -/* This function is called after the section sizes and offsets have - been set. If we are generating embedded relocs, it calls a special - BFD backend routine to do the work. */ - -static void -gld${EMULATION_NAME}_after_allocation (void) -{ - bfd *abfd; - - if (! command_line.embedded_relocs - || link_info.relocatable) - return; - - for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next) - { - asection *datasec, *relsec; - char *errmsg; - - datasec = bfd_get_section_by_name (abfd, ".sdata"); - - if (datasec == NULL || datasec->reloc_count == 0) - continue; - - relsec = bfd_get_section_by_name (abfd, ".rel.sdata"); - ASSERT (relsec != NULL); - - if (! bfd_mips_ecoff_create_embedded_relocs (abfd, &link_info, - datasec, relsec, - &errmsg)) - { - if (errmsg == NULL) - einfo ("%B%X: can not create runtime reloc information: %E\n", - abfd); - else - einfo ("%X%B: can not create runtime reloc information: %s\n", - abfd, errmsg); - } - } -} - -static char * -gld${EMULATION_NAME}_get_script (int *isfile) EOF -if test -n "$COMPILE_IN" -then -# Scripts compiled in. - -# sed commands to quote an ld script as a C string. -sc="-f stringify.sed" - -cat >>e${EMULATION_NAME}.c <<EOF -{ - *isfile = 0; - - if (link_info.relocatable && config.build_constructors) - return -EOF -sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c -echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c -echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c -echo ' ; else return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c -echo '; }' >> e${EMULATION_NAME}.c - -else -# Scripts read from the filesystem. - -cat >>e${EMULATION_NAME}.c <<EOF -{ - *isfile = 1; - - if (link_info.relocatable && config.build_constructors) - return "ldscripts/${EMULATION_NAME}.xu"; - else if (link_info.relocatable) - return "ldscripts/${EMULATION_NAME}.xr"; - else if (!config.text_read_only) - return "ldscripts/${EMULATION_NAME}.xbn"; - else if (!config.magic_demand_paged) - return "ldscripts/${EMULATION_NAME}.xn"; - else - return "ldscripts/${EMULATION_NAME}.x"; -} -EOF - -fi - -cat >>e${EMULATION_NAME}.c <<EOF - -struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation = -{ - gld${EMULATION_NAME}_before_parse, - syslib_default, - hll_default, - after_parse_default, - gld${EMULATION_NAME}_after_open, - gld${EMULATION_NAME}_after_allocation, - set_output_arch_default, - ldemul_default_target, - before_allocation_default, - gld${EMULATION_NAME}_get_script, - "${EMULATION_NAME}", - "${OUTPUT_FORMAT}", - NULL, /* finish */ - NULL, /* create output section statements */ - NULL, /* open dynamic archive */ - NULL, /* place orphan */ - NULL, /* set symbols */ - NULL, /* parse args */ - NULL, /* add_options */ - NULL, /* handle_option */ - NULL, /* unrecognized file */ - NULL, /* list options */ - NULL, /* recognized file */ - NULL, /* find_potential_libraries */ - NULL /* new_vers_pattern */ -}; -EOF +LDEMUL_BEFORE_PARSE=gld${EMULATION_NAME}_before_parse diff --git a/ld/emultempl/mipself.em b/ld/emultempl/mipself.em deleted file mode 100644 index a950fb1..0000000 --- a/ld/emultempl/mipself.em +++ /dev/null @@ -1,177 +0,0 @@ -# This shell script emits a C file. -*- C -*- -# Copyright 2002, 2003 Free Software Foundation, Inc. -# Written by Mitch Lichtenberg <mpl@broadcom.com> and -# Chris Demetriou <cgd@broadcom.com> based on m68kelf.em and mipsecoff.em. -# -# This file is part of GLD, the Gnu Linker. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - -# This file is sourced from elf32.em, and defines some extra routines for m68k -# embedded systems using ELF and for some other systems using m68k ELF. While -# it is sourced from elf32.em for all m68k ELF configurations, here we include -# only the features we want depending on the configuration. - -case ${target} in - mips*-*-elf) - echo "#define SUPPORT_EMBEDDED_RELOCS" >>e${EMULATION_NAME}.c - ;; -esac - -cat >>e${EMULATION_NAME}.c <<EOF - -#ifdef SUPPORT_EMBEDDED_RELOCS -static void mips_elf${ELFSIZE}_check_sections (bfd *, asection *, void *); -#endif - -/* This function is run after all the input files have been opened. */ - -static void -mips_elf${ELFSIZE}_after_open (void) -{ - /* Call the standard elf routine. */ - gld${EMULATION_NAME}_after_open (); - -#ifdef SUPPORT_EMBEDDED_RELOCS - if (command_line.embedded_relocs && (! link_info.relocatable)) - { - bfd *abfd; - - /* In the embedded relocs mode we create a .rel.sdata section for - each input file with a .sdata section which has has - relocations. The BFD backend will fill in these sections - with magic numbers which can be used to relocate the data - section at run time. */ - for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next) - { - asection *datasec; - - /* As first-order business, make sure that each input BFD is - ELF. We need to call a special BFD backend function to - generate the embedded relocs, and we have that function - only for ELF */ - - if (bfd_get_flavour (abfd) != bfd_target_elf_flavour) - einfo ("%F%B: all input objects must be ELF for --embedded-relocs\n"); - - if (bfd_get_arch_size (abfd) != ${ELFSIZE}) - einfo ("%F%B: all input objects must be ${ELFSIZE}-bit ELF for --embedded-relocs\n"); - - datasec = bfd_get_section_by_name (abfd, ".sdata"); - - /* Note that we assume that the reloc_count field has already - been set up. We could call bfd_get_reloc_upper_bound, but - that returns the size of a memory buffer rather than a reloc - count. We do not want to call bfd_canonicalize_reloc, - because although it would always work it would force us to - read in the relocs into BFD canonical form, which would waste - a significant amount of time and memory. */ - - if (datasec != NULL && datasec->reloc_count > 0) - { - asection *relsec; - - relsec = bfd_make_section (abfd, ".rel.sdata"); - if (relsec == NULL - || ! bfd_set_section_flags (abfd, relsec, - (SEC_ALLOC - | SEC_LOAD - | SEC_HAS_CONTENTS - | SEC_IN_MEMORY)) - || ! bfd_set_section_alignment (abfd, relsec, - (${ELFSIZE} == 32) ? 2 : 3) - || ! bfd_set_section_size (abfd, relsec, - datasec->reloc_count - * ((${ELFSIZE} / 8) + 8))) - einfo ("%F%B: cannot create .rel.sdata section: %E\n"); - } - - /* Double check that all other data sections have no relocs, - as is required for embedded PIC code. */ - bfd_map_over_sections (abfd, mips_elf${ELFSIZE}_check_sections, - datasec); - } - } -#endif /* SUPPORT_EMBEDDED_RELOCS */ -} - -#ifdef SUPPORT_EMBEDDED_RELOCS -/* Check that of the data sections, only the .sdata section has - relocs. This is called via bfd_map_over_sections. */ - -static void -mips_elf${ELFSIZE}_check_sections (bfd *abfd, asection *sec, void *sdatasec) -{ - if ((bfd_get_section_flags (abfd, sec) & SEC_DATA) - && sec != sdatasec - && sec->reloc_count != 0) - einfo ("%B%X: section %s has relocs; cannot use --embedded-relocs\n", - abfd, bfd_get_section_name (abfd, sec)); -} -#endif /* SUPPORT_EMBEDDED_RELOCS */ - -/* This function is called after the section sizes and offsets have - been set. If we are generating embedded relocs, it calls a special - BFD backend routine to do the work. */ - -static void -mips_elf${ELFSIZE}_after_allocation (void) -{ - /* Call the standard elf routine. */ - after_allocation_default (); - -#ifdef SUPPORT_EMBEDDED_RELOCS - if (command_line.embedded_relocs && (! link_info.relocatable)) - { - bfd *abfd; - - for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next) - { - asection *datasec, *relsec; - char *errmsg; - - datasec = bfd_get_section_by_name (abfd, ".sdata"); - - if (datasec == NULL || datasec->reloc_count == 0) - continue; - - relsec = bfd_get_section_by_name (abfd, ".rel.sdata"); - ASSERT (relsec != NULL); - - if (! bfd_mips_elf${ELFSIZE}_create_embedded_relocs (abfd, - &link_info, - datasec, - relsec, - &errmsg)) - { - if (errmsg == NULL) - einfo ("%B%X: can not create runtime reloc information: %E\n", - abfd); - else - einfo ("%X%B: can not create runtime reloc information: %s\n", - abfd, errmsg); - } - } - } -#endif /* SUPPORT_EMBEDDED_RELOCS */ -} - -EOF - -# We have our own after_open and after_allocation functions, but they call -# the standard routines, so give them a different name. -LDEMUL_AFTER_OPEN=mips_elf${ELFSIZE}_after_open -LDEMUL_AFTER_ALLOCATION=mips_elf${ELFSIZE}_after_allocation diff --git a/ld/emultempl/ppc64elf.em b/ld/emultempl/ppc64elf.em index 5746f79..4f408a9 100644 --- a/ld/emultempl/ppc64elf.em +++ b/ld/emultempl/ppc64elf.em @@ -1,5 +1,5 @@ # This shell script emits a C file. -*- C -*- -# Copyright 2002, 2003 Free Software Foundation, Inc. +# Copyright 2002, 2003, 2004 Free Software Foundation, Inc. # # This file is part of GLD, the Gnu Linker. # @@ -65,6 +65,8 @@ ppc_create_output_section_statements (void) && link_info.hash->creator != &bfd_elf64_powerpcle_vec) return; + link_info.wrap_char = '.'; + stub_file = lang_add_input_file ("linker stubs", lang_input_file_is_fake_enum, NULL); @@ -316,11 +318,11 @@ gld${EMULATION_NAME}_finish (void) descriptor in the .opd section. */ entry_section = ".opd"; - /* bfd_elf64_discard_info just plays with debugging sections, + /* bfd_elf_discard_info just plays with debugging sections, ie. doesn't affect any code, so we can delay resizing the sections. It's likely we'll resize everything in the process of adding stubs. */ - if (bfd_elf${ELFSIZE}_discard_info (output_bfd, &link_info)) + if (bfd_elf_discard_info (output_bfd, &link_info)) need_laying_out = 1; /* If generating a relocatable output file, then we don't have any diff --git a/ld/emultempl/sh64elf.em b/ld/emultempl/sh64elf.em index 7f2b037..83bfe67 100644 --- a/ld/emultempl/sh64elf.em +++ b/ld/emultempl/sh64elf.em @@ -379,7 +379,7 @@ sh64_elf_${EMULATION_NAME}_after_allocation (void) lang_process, and the second time when lang_process calls ldemul_finish, which calls gld${EMULATION_NAME}_finish, e.g. gldshelf32_finish, which is defined in emultempl/elf32.em and calls ldemul_after_allocation, - if bfd_elf${ELFSIZE}_discard_info returned true. */ + if bfd_elf_discard_info returned true. */ if (cranges->contents != NULL) free (cranges->contents); diff --git a/ld/ld.texinfo b/ld/ld.texinfo index 55f861e..f50d79a 100644 --- a/ld/ld.texinfo +++ b/ld/ld.texinfo @@ -972,6 +972,18 @@ behaviour from release 2.14 onwards is to reject such input files, and so the @samp{--accept-unknown-input-arch} option has been added to restore the old behaviour. +@kindex --as-needed +@kindex --no-as-needed +@item --as-needed +@itemx --no-as-needed +This option affects ELF DT_NEEDED tags for dynamic libraries mentioned +on the command line after the @option{--as-needed} option. Normally, +the linker will add a DT_NEEDED tag for each dynamic library mentioned +on the command line, regardless of whether the library is actually +needed. @option{--as-needed} causes DT_NEEDED tags to only be emitted +for libraries that satisfy some reference from regular objects. +@option{--no-as-needed} restores the default behaviour. + @kindex -assert @var{keyword} @item -assert @var{keyword} This option is ignored for SunOS compatibility. @@ -1101,15 +1113,6 @@ generating dynamically linked ELF executables. The default dynamic linker is normally correct; don't use this unless you know what you are doing. -@cindex MIPS embedded PIC code -@kindex --embedded-relocs -@item --embedded-relocs -This option is only meaningful when linking MIPS embedded PIC code, -generated by the -membedded-pic option to the @sc{gnu} compiler and -assembler. It causes the linker to create a table which may be used at -runtime to relocate any data which was statically initialized to pointer -values. See the code in testsuite/ld-empic for details. - @kindex --fatal-warnings @item --fatal-warnings @@ -1133,9 +1136,9 @@ it ends in a @code{.exe} suffix. @itemx --gc-sections Enable garbage collection of unused input sections. It is ignored on targets that do not support this option. This option is not compatible -with @samp{-r}, nor should it be used with dynamic linking. The default -behaviour (of not performing this garbage collection) can be restored by -specifying @samp{--no-gc-sections} on the command line. +with @samp{-r}. The default behaviour (of not performing this garbage +collection) can be restored by specifying @samp{--no-gc-sections} on +the command line. @cindex help @cindex usage @@ -1702,9 +1705,9 @@ Here is a trivial example: @smallexample void * -__wrap_malloc (int c) +__wrap_malloc (size_t c) @{ - printf ("malloc called with %ld\n", c); + printf ("malloc called with %zu\n", c); return __real_malloc (c); @} @end smallexample @@ -2353,7 +2356,7 @@ at address @samp{0x8000000}. After the linker places the @samp{.data} output section, the value of the location counter will be @samp{0x8000000} plus the size of the @samp{.data} output section. The effect is that the linker will place the @samp{.bss} output section -immediately after the @samp{.data} output section in memory +immediately after the @samp{.data} output section in memory. The linker will ensure that each output section has the required alignment, by increasing the location counter if necessary. In this @@ -4643,6 +4646,23 @@ page of memory, and changes them to use the eight-bit address form. (That is: the linker turns @samp{mov.b @code{@@}@var{aa}:16} into @samp{mov.b @code{@@}@var{aa}:8} whenever the address @var{aa} is in the top page of memory). + +@item bit manipulation instructions +@command{ld} finds all bit manipulation instructions like @code{band, bclr, +biand, bild, bior, bist, bixor, bld, bnot, bor, bset, bst, btst, bxor} +which use 32 bit and 16 bit absolute address form, but refer to the top +page of memory, and changes them to use the 8 bit address form. +(That is: the linker turns @samp{bset #xx:3,@code{@@}@var{aa}:32} into +@samp{bset #xx:3,@code{@@}@var{aa}:8} whenever the address @var{aa} is in +the top page of memory). + +@item system control instructions +@command{ld} finds all @code{ldc.w, stc.w} instrcutions which use the +32 bit absolute address form, but refer to the top page of memory, and +changes them to use 16 bit address form. +(That is: the linker turns @samp{ldc.w @code{@@}@var{aa}:32,ccr} into +@samp{ldc.w @code{@@}@var{aa}:16,ccr} whenever the address @var{aa} is in +the top page of memory). @end table @ifclear GENERIC @@ -4750,6 +4770,12 @@ But it also sets the bottom bit of the address, so that it can be branched to using a BX instruction, and the program will start executing in Thumb mode straight away. +@cindex BE8 +@kindex --be8 +The @samp{--be8} switch instructs @command{ld} to generate BE8 format +executables. This option is only valid when linking big-endian objects. +The resulting image will contain big-endian data and little-endian code. + @ifclear GENERIC @lowersections @end ifclear diff --git a/ld/ldfile.c b/ld/ldfile.c index a6f0d60..e7a7d8c 100644 --- a/ld/ldfile.c +++ b/ld/ldfile.c @@ -44,7 +44,6 @@ unsigned long ldfile_output_machine; enum bfd_architecture ldfile_output_architecture; search_dirs_type * search_head; -#ifndef MPW #ifdef VMS char * slash = ""; #else @@ -54,10 +53,6 @@ char * slash = "\\"; char * slash = "/"; #endif #endif -#else /* MPW */ -/* The MPW path char is a colon. */ -char * slash = ":"; -#endif /* MPW */ typedef struct search_arch { diff --git a/ld/ldlang.c b/ld/ldlang.c index 9a6feb2..d2b5fed 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -121,10 +121,17 @@ stat_alloc (size_t size) } bfd_boolean -unique_section_p (const char *secnam) +unique_section_p (const asection *sec) { struct unique_sections *unam; + const char *secnam; + if (link_info.relocatable + && sec->owner != NULL + && bfd_is_group_section (sec->owner, sec)) + return TRUE; + + secnam = sec->name; for (unam = unique_section_list; unam; unam = unam->next) if (wildcardp (unam->name) ? fnmatch (unam->name, secnam, 0) == 0 @@ -445,6 +452,7 @@ new_afile (const char *name, p->next = NULL; p->symbol_count = 0; p->dynamic = config.dynamic_link; + p->as_needed = as_needed; p->whole_archive = whole_archive; p->loaded = FALSE; lang_statement_append (&input_file_chain, @@ -1261,7 +1269,7 @@ output_section_callback (lang_wild_statement_type *ptr, lang_statement_union_type *before; /* Exclude sections that match UNIQUE_SECTION_LIST. */ - if (unique_section_p (bfd_get_section_name (file->the_bfd, section))) + if (unique_section_p (section)) return; /* If the wild pattern was marked KEEP, the member sections @@ -1842,7 +1850,7 @@ open_input_bfds (lang_statement_union_type *s, bfd_boolean force) /* Maybe we should load the file's symbols. */ if (s->wild_statement.filename && ! wildcardp (s->wild_statement.filename)) - (void) lookup_name (s->wild_statement.filename); + lookup_name (s->wild_statement.filename); open_input_bfds (s->wild_statement.children.head, force); break; case lang_group_statement_enum: @@ -3348,11 +3356,12 @@ lang_do_assignments_1 if (os->bfd_section != NULL) { dot = os->bfd_section->vma; - (void) lang_do_assignments_1 (os->children.head, os, - os->fill, dot); - dot = (os->bfd_section->vma - + TO_ADDR (os->bfd_section->_raw_size)); - + lang_do_assignments_1 (os->children.head, os, os->fill, dot); + /* .tbss sections effectively have zero size. */ + if ((os->bfd_section->flags & SEC_HAS_CONTENTS) != 0 + || (os->bfd_section->flags & SEC_THREAD_LOCAL) == 0 + || link_info.relocatable) + dot += TO_ADDR (os->bfd_section->_raw_size); } if (os->load_base) { @@ -3687,7 +3696,7 @@ lang_check (void) if (! bfd_merge_private_bfd_data (input_bfd, output_bfd)) { if (command_line.warn_mismatch) - einfo (_("%E%X: failed to merge target specific data of file %B\n"), + einfo (_("%P%X: failed to merge target specific data of file %B\n"), input_bfd); } if (! command_line.warn_mismatch) @@ -3938,24 +3947,6 @@ lang_for_each_file (void (*func) (lang_input_statement_type *)) } } -#if 0 - -/* Not used. */ - -void -lang_for_each_input_section (void (*func) (bfd *ab, asection *as)) -{ - LANG_FOR_EACH_INPUT_STATEMENT (f) - { - asection *s; - - for (s = f->the_bfd->sections; s != NULL; s = s->next) - func (f->the_bfd, s); - } -} - -#endif - void ldlang_add_file (lang_input_statement_type *entry) { diff --git a/ld/ldlang.h b/ld/ldlang.h index d518398..0ba31bb 100644 --- a/ld/ldlang.h +++ b/ld/ldlang.h @@ -264,6 +264,10 @@ typedef struct lang_input_statement_struct /* Whether to search for this entry as a dynamic archive. */ bfd_boolean dynamic; + /* Whether this entry should cause a DT_NEEDED tag only when + satisfying references from regular files, or always. */ + bfd_boolean as_needed; + /* Whether to include the entire contents of an archive. */ bfd_boolean whole_archive; @@ -552,7 +556,7 @@ extern struct bfd_elf_version_deps *lang_add_vers_depend extern void lang_register_vers_node (const char *, struct bfd_elf_version_tree *, struct bfd_elf_version_deps *); bfd_boolean unique_section_p - (const char *); + (const asection *); extern void lang_add_unique (const char *); extern const char *lang_get_output_target @@ -28,11 +28,6 @@ This was written by steve chamberlain #include <stdio.h> -#ifdef MPW -/* Prevent enum redefinition problems. */ -#define TRUE_FALSE_ALREADY_DEFINED -#endif /* MPW */ - #include "bfd.h" #include "sysdep.h" #include "safe-ctype.h" diff --git a/ld/ldmain.c b/ld/ldmain.c index 88b5c75..d0e0b12 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c @@ -1,6 +1,6 @@ /* Main program of GNU linker. Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, - 2002, 2003 + 2002, 2003, 2004 Free Software Foundation, Inc. Written by Steve Chamberlain steve@cygnus.com @@ -93,6 +93,10 @@ bfd_boolean version_printed; /* Nonzero means link in every member of an archive. */ bfd_boolean whole_archive; +/* Nonzero means create DT_NEEDED entries only if a dynamic library + actually satisfies some reference in a regular object. */ +bfd_boolean as_needed; + /* TRUE if we should demangle symbol names. */ bfd_boolean demangling; diff --git a/ld/ldmain.h b/ld/ldmain.h index 10169dd..8cab5fe 100644 --- a/ld/ldmain.h +++ b/ld/ldmain.h @@ -1,5 +1,5 @@ /* ldmain.h - - Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2002, 2003 + Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GLD, the Gnu Linker. @@ -32,6 +32,7 @@ extern bfd_boolean trace_files; extern bfd_boolean trace_file_tries; extern bfd_boolean version_printed; extern bfd_boolean whole_archive; +extern bfd_boolean as_needed; extern bfd_boolean demangling; extern int g_switch_value; extern const char *output_filename; diff --git a/ld/lexsup.c b/ld/lexsup.c index e43e15e..b377bd4 100644 --- a/ld/lexsup.c +++ b/ld/lexsup.c @@ -1,6 +1,6 @@ /* Parse options for the GNU linker. Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002, 2003 + 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GLD, the Gnu Linker. @@ -112,6 +112,8 @@ enum option_values OPTION_SPLIT_BY_RELOC, OPTION_SPLIT_BY_FILE , OPTION_WHOLE_ARCHIVE, + OPTION_AS_NEEDED, + OPTION_NO_AS_NEEDED, OPTION_WRAP, OPTION_FORCE_EXE_SUFFIX, OPTION_GC_SECTIONS, @@ -438,6 +440,10 @@ static const struct ld_option ld_options[] = TWO_DASHES }, { {"whole-archive", no_argument, NULL, OPTION_WHOLE_ARCHIVE}, '\0', NULL, N_("Include all objects from following archives"), TWO_DASHES }, + { {"as-needed", no_argument, NULL, OPTION_AS_NEEDED}, + '\0', NULL, N_("Only set DT_NEEDED for following dynamic libs if used"), TWO_DASHES }, + { {"no-as-needed", no_argument, NULL, OPTION_NO_AS_NEEDED}, + '\0', NULL, N_("Always set DT_NEEDED for following dynamic libs"), TWO_DASHES }, { {"wrap", required_argument, NULL, OPTION_WRAP}, '\0', N_("SYMBOL"), N_("Use wrapper functions for SYMBOL"), TWO_DASHES } }; @@ -634,27 +640,9 @@ parse_args (unsigned argc, char **argv) break; case OPTION_CALL_SHARED: config.dynamic_link = TRUE; - /* When linking against shared libraries, the default behaviour is - to report any unresolved references. Although strictly speaking - it is not a failure to encounter unresolved symbols at link time - - the symbol *might* be available at load time - it is a strong - indication that the resulting executable will not work. Plus it - is necessary for the correct execution of the autoconf package, - which needs to be able to detect functions that are not provided - by the host OS. */ - if (link_info.unresolved_syms_in_objects == RM_NOT_YET_SET) - link_info.unresolved_syms_in_objects = how_to_report_unresolved_symbols; - if (link_info.unresolved_syms_in_shared_libs == RM_NOT_YET_SET) - link_info.unresolved_syms_in_shared_libs = how_to_report_unresolved_symbols; break; case OPTION_NON_SHARED: config.dynamic_link = FALSE; - /* When linking against static libraries, the default - behaviour is to report any unresolved references. */ - if (link_info.unresolved_syms_in_objects == RM_NOT_YET_SET) - link_info.unresolved_syms_in_objects = how_to_report_unresolved_symbols; - if (link_info.unresolved_syms_in_shared_libs == RM_NOT_YET_SET) - link_info.unresolved_syms_in_shared_libs = how_to_report_unresolved_symbols; break; case OPTION_CREF: command_line.cref = TRUE; @@ -1156,6 +1144,12 @@ parse_args (unsigned argc, char **argv) case OPTION_WHOLE_ARCHIVE: whole_archive = TRUE; break; + case OPTION_AS_NEEDED: + as_needed = TRUE; + break; + case OPTION_NO_AS_NEEDED: + as_needed = FALSE; + break; case OPTION_WRAP: add_wrap (optarg); break; diff --git a/ld/mac-ld.r b/ld/mac-ld.r deleted file mode 100644 index b316fc5..0000000 --- a/ld/mac-ld.r +++ /dev/null @@ -1,42 +0,0 @@ -/* Resources for GNU LD. */ - -#include "SysTypes.r" - -/* Version resources. */ - -resource 'vers' (1) { - 0, - 0, - 0, - 0, - verUs, - VERSION_STRING, - VERSION_STRING " (C) 1986-95 FSF, Inc." -}; - -resource 'vers' (2, purgeable) { - 0, - 0, - 0, - 0, - verUs, - VERSION_STRING, - "GLD " VERSION_STRING " for MPW" -}; - -#ifdef WANT_CFRG - -#include "CodeFragmentTypes.r" - -resource 'cfrg' (0) { - { - kPowerPC, - kFullLib, - kNoVersionNum, kNoVersionNum, - 0, 0, - kIsApp, kOnDiskFlat, kZeroOffset, kWholeFork, - PROG_NAME - } -}; - -#endif /* WANT_CFRG */ diff --git a/ld/mpw-config.in b/ld/mpw-config.in deleted file mode 100644 index b2542cc..0000000 --- a/ld/mpw-config.in +++ /dev/null @@ -1,52 +0,0 @@ -# Configuration fragment for LD. - -If "{target_canonical}" =~ /m68k-apple-macos/ - Set emulname m68kcoff - forward-include "{srcdir}"mpw-em68kcoff.c em68kcoff.c - Set emulation_ofiles "{o}"em68kcoff.c.o - -Else If "{target_canonical}" =~ /powerpc-apple-macos/ - Set emulname ppcmacos - forward-include "{srcdir}"mpw-eppcmac.c eppcmacos.c - Set emulation_ofiles "{o}"eppcmacos.c.o - -Else If "{target_canonical}" =~ /i386-\Option-x-go32/ - Set emulname i386go32 - forward-include "{srcdir}"mpw-ei386go32.c ei386go32.c - Set emulation_ofiles "{o}"ei386go32.c.o - -Else If "{target_canonical}" =~ /mips-\Option-x-ecoff/ - Set emulname mipsidt - forward-include "{srcdir}"mpw-idtmips.c emipsidt.c - Set emulation_ofiles "{o}"emipsidt.c.o - -Else If "{target_canonical}" =~ /mips-\Option-x-\Option-x/ - Set emulname elf32ebmip - forward-include "{srcdir}"mpw-elfmips.c eelf32ebmip.c - Set emulation_ofiles "{o}"eelf32ebmip.c.o - -Else If "{target_canonical}" =~ /sh-\Option-x-hms/ - Set emulname sh - forward-include "{srcdir}"mpw-esh.c esh.c - Set emulation_ofiles "{o}"esh.c.o -End If - -Echo '/* This file is automatically generated. DO NOT EDIT! */' > "{o}"ldemul-tmp.h -Echo "extern ld_emulation_xfer_type ld_{emulname}_emulation;" >> "{o}"ldemul-tmp.h -Echo '#define EMULATION_LIST \' >> "{o}"ldemul-tmp.h -Echo " &ld_{emulname}_emulation, \" >> "{o}"ldemul-tmp.h -Echo ' 0' >> "{o}"ldemul-tmp.h - -MoveIfChange "{o}"ldemul-tmp.h "{o}"ldemul-list.h - -Echo '# From mpw-config.in' > "{o}"mk.tmp -Echo "EMUL = " {emulname} >> "{o}"mk.tmp -Echo "EMULATION_OFILES = " {emulation_ofiles} >> "{o}"mk.tmp -Echo 'version = ' `Search 'ld version ' {srcdir}ldver.c | sed -e 's/.*ld version \([^ ]*\).*/\1/'` >> "{o}"mk.tmp -Echo "TDEFINES = " >> "{o}"mk.tmp -Echo '# End from mpw-config.in' >> "{o}"mk.tmp - -Echo '/* config.h. Generated by mpw-configure. */' > "{o}"config.new -Echo '#include "mpw.h"' >> "{o}"config.new - -MoveIfChange "{o}"config.new "{o}"config.h diff --git a/ld/mpw-make.sed b/ld/mpw-make.sed deleted file mode 100644 index c919708..0000000 --- a/ld/mpw-make.sed +++ /dev/null @@ -1,95 +0,0 @@ -# Sed commands to finish translating the ld Makefile.in into MPW syntax. - -/HDEFINES/s/@HDEFINES@// - -/^target_alias = @target_alias@/s/^/#/ - -/^EMUL = @EMUL@/s/^/#/ - -/^EMULATION_OFILES = @EMULATION_OFILES@/s/^/#/ - -# Fixadd to the include paths. -/^INCLUDES = .*$/s/$/ -i "{INCDIR}":mpw: -i ::extra-include:/ -/BFDDIR/s/-i {BFDDIR} /-i "{BFDDIR}": / -/INCDIR/s/-i {INCDIR} /-i "{INCDIR}": / - -# Use byacc instead of bison (for now anyway). -/BISON/s/^BISON =.*$/BISON = byacc/ -#/BISONFLAGS/s/^BISONFLAGS =.*$/BISONFLAGS = / - -# Suppress the suppression of smart makes. -/^\.y\.c/d - -# Hack up ldmain compile. -/^"{o}"ldmain.c.o \\Option-f .* config.status$/,/^$/c\ -"{o}"ldmain.c.o \\Option-f "{s}"ldmain.c\ - {CC} @DASH_C_FLAG@ -d DEFAULT_EMULATION={dq}{EMUL}{dq} -d SCRIPTDIR={dq}{scriptdir}{dq} {ALL_CFLAGS} "{s}"ldmain.c -o "{o}"ldmain.c.o\ - - -# Remove ldemul-list.h build, rely on configure to make one. -/^ldemul-list.h /,/Rename -y "{s}"ldemul-tmp.h /d - -# Fix pathnames to generated files. -/config.h/s/"{s}"config\.h/"{o}"config.h/g -/config.h/s/^config\.h/"{o}"config.h/ - -/y.tab.c/s/"{s}"y\.tab\.c/"{o}"y.tab.c/g -/y.tab.c/s/^y\.tab\.c/"{o}"y.tab.c/ -/y.tab.h/s/"{s}"y\.tab\.h/"{o}"y.tab.h/g -/y.tab.h/s/^y\.tab\.h/"{o}"y.tab.h/ - -/ldgram.c/s/"{s}"ldgram\.c/"{o}"ldgram.c/g -/ldgram.c/s/^ldgram\.c/"{o}"ldgram.c/ - -/ldgram.h/s/"{s}"ldgram\.h/"{o}"ldgram.h/g -/ldgram.h/s/^ldgram\.h/"{o}"ldgram.h/ - -/ldlex.c/s/"{s}"ldlex\.c/"{o}"ldlex.c/g -/ldlex.c/s/^ldlex\.c/"{o}"ldlex.c/ - -/ldlex.c.new/s/"{s}"ldlex\.c\.new/"{o}"ldlex.c.new/g - -/lex.yy.c/s/"{s}"lex\.yy\.c/"{o}"lex.yy.c/g - -/ldemul-list.h/s/"{s}"ldemul-list\.h/"{o}"ldemul-list.h/g -/ldemul-list.h/s/^ldemul-list\.h/"{o}"ldemul-list.h/ - -# Edit pathnames to emulation files. -/"{s}"e.*\.c/s/"{s}"e\([-_a-z0-9]*\)\.c/"{o}"e\1.c/g -/^e.*\.c/s/^e\([-_a-z0-9]*\)\.c/"{o}"e\1.c/ - -# We can't run genscripts, so don't try. -/{GENSCRIPTS}/s/{GENSCRIPTS}/null-command/ - -# Comment out the TDIRS bits. -/^TDIRS@/s/^/#/ - -# Point at the BFD library directly. -/@BFDLIB@/s/@BFDLIB@/::bfd:libbfd.o/ - -# Don't need this. -/@HLDFLAGS@/s/@HLDFLAGS@// - -#/sed.*free/,/> "{o}"ldlex.c.new/c\ -# \ Catenate "{o}"lex.yy.c >"{o}"ldlex.c.new - -# The resource file is called mac-ld.r. -/{LD_PROG}.r/s/{LD_PROG}\.r/mac-ld.r/ - -/^install \\Option-f /,/^$/c\ -install \\Option-f all install-only\ -\ -install-only \\Option-f\ - NewFolderRecursive "{bindir}"\ - Duplicate -y :ld.new "{bindir}"ld\ - - -# Remove dependency rebuilding crud. -/^.dep /,/# .PHONY /d - -# Remove the lintlog action, pipe symbols in column 1 lose. -/^lintlog \\Option-f/,/^$/d - -/^Makefile \\Option-f/,/^$/d -/^"{o}"config.h \\Option-f/,/^$/d -/^config.status \\Option-f/,/^$/d diff --git a/ld/pe-dll.c b/ld/pe-dll.c index ce3f443..45d00ae 100644 --- a/ld/pe-dll.c +++ b/ld/pe-dll.c @@ -917,9 +917,9 @@ fill_edata (bfd *abfd, struct bfd_link_info *info ATTRIBUTE_UNUSED) { int s, hint; unsigned char *edirectory; - unsigned long *eaddresses; - unsigned long *enameptrs; - unsigned short *eordinals; + unsigned char *eaddresses; + unsigned char *enameptrs; + unsigned char *eordinals; unsigned char *enamestr; time_t now; @@ -929,10 +929,10 @@ fill_edata (bfd *abfd, struct bfd_link_info *info ATTRIBUTE_UNUSED) /* Note use of array pointer math here. */ edirectory = edata_d; - eaddresses = (unsigned long *) (edata_d + 40); - enameptrs = eaddresses + export_table_size; - eordinals = (unsigned short *) (enameptrs + count_exported_byname); - enamestr = (char *) (eordinals + count_exported_byname); + eaddresses = edata_d + 40; + enameptrs = eaddresses + 4 * export_table_size; + eordinals = enameptrs + 4 * count_exported_byname; + enamestr = eordinals + 2 * count_exported_byname; #define ERVA(ptr) (((unsigned char *)(ptr) - edata_d) \ + edata_s->output_section->vma - image_base) @@ -966,27 +966,27 @@ fill_edata (bfd *abfd, struct bfd_link_info *info ATTRIBUTE_UNUSED) hint = 0; for (s = 0; s < NE; s++) { - if (pe_def_file->exports[s].ordinal != -1) + struct bfd_section *ssec = exported_symbol_sections[s]; + if (ssec && pe_def_file->exports[s].ordinal != -1) { - struct bfd_section *ssec = exported_symbol_sections[s]; unsigned long srva = (exported_symbol_offsets[s] + ssec->output_section->vma + ssec->output_offset); int ord = pe_def_file->exports[s].ordinal; bfd_put_32 (abfd, srva - image_base, - (void *) (eaddresses + ord - min_ordinal)); + eaddresses + 4 * (ord - min_ordinal)); if (!pe_def_file->exports[s].flag_noname) { char *ename = pe_def_file->exports[s].name; - bfd_put_32 (abfd, ERVA (enamestr), (void *) enameptrs); - enameptrs++; + bfd_put_32 (abfd, ERVA (enamestr), enameptrs); + enameptrs += 4; strcpy (enamestr, ename); enamestr += strlen (enamestr) + 1; - bfd_put_16 (abfd, ord - min_ordinal, (void *) eordinals); - eordinals++; + bfd_put_16 (abfd, ord - min_ordinal, eordinals); + eordinals += 2; pe_def_file->exports[s].hint = hint++; } } @@ -2257,6 +2257,9 @@ pe_dll_generate_implib (def_file *def, const char *impfilename) char *internal = def->exports[i].internal_name; bfd *n; + /* Don't add PRIVATE entries to import lib. */ + if (pe_def_file->exports[i].flag_private) + continue; def->exports[i].internal_name = def->exports[i].name; n = make_one (def->exports + i, outarch); n->next = head; diff --git a/ld/po/ld.pot b/ld/po/ld.pot index 371423c..a61785a 100644 --- a/ld/po/ld.pot +++ b/ld/po/ld.pot @@ -7,7 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2003-07-11 13:58+0930\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2004-03-19 15:00+1030\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,10 +17,12 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: emultempl/armcoff.em:72 +#, c-format msgid " --support-old-code Support interworking with old code\n" msgstr "" #: emultempl/armcoff.em:73 +#, c-format msgid " --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n" msgstr "" @@ -28,161 +31,191 @@ msgstr "" msgid "Errors encountered processing file %s" msgstr "" -#: emultempl/armcoff.em:188 emultempl/pe.em:1396 +#: emultempl/armcoff.em:188 emultempl/pe.em:1429 msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n" msgstr "" -#: emultempl/armcoff.em:193 emultempl/pe.em:1401 +#: emultempl/armcoff.em:193 emultempl/pe.em:1434 msgid "%P: warning: connot find thumb start symbol %s\n" msgstr "" -#: emultempl/pe.em:300 +#: emultempl/pe.em:292 +#, c-format msgid "" " --base_file <basefile> Generate a base file for relocatable " "DLLs\n" msgstr "" -#: emultempl/pe.em:301 +#: emultempl/pe.em:293 +#, c-format msgid "" " --dll Set image base to the default for DLLs\n" msgstr "" -#: emultempl/pe.em:302 +#: emultempl/pe.em:294 +#, c-format msgid " --file-alignment <size> Set file alignment\n" msgstr "" -#: emultempl/pe.em:303 +#: emultempl/pe.em:295 +#, c-format msgid " --heap <size> Set initial size of the heap\n" msgstr "" -#: emultempl/pe.em:304 +#: emultempl/pe.em:296 +#, c-format msgid "" " --image-base <address> Set start address of the executable\n" msgstr "" -#: emultempl/pe.em:305 +#: emultempl/pe.em:297 +#, c-format msgid "" " --major-image-version <number> Set version number of the executable\n" msgstr "" -#: emultempl/pe.em:306 +#: emultempl/pe.em:298 +#, c-format msgid " --major-os-version <number> Set minimum required OS version\n" msgstr "" -#: emultempl/pe.em:307 +#: emultempl/pe.em:299 +#, c-format msgid "" " --major-subsystem-version <number> Set minimum required OS subsystem " "version\n" msgstr "" -#: emultempl/pe.em:308 +#: emultempl/pe.em:300 +#, c-format msgid "" " --minor-image-version <number> Set revision number of the executable\n" msgstr "" -#: emultempl/pe.em:309 +#: emultempl/pe.em:301 +#, c-format msgid " --minor-os-version <number> Set minimum required OS revision\n" msgstr "" -#: emultempl/pe.em:310 +#: emultempl/pe.em:302 +#, c-format msgid "" " --minor-subsystem-version <number> Set minimum required OS subsystem " "revision\n" msgstr "" -#: emultempl/pe.em:311 +#: emultempl/pe.em:303 +#, c-format msgid " --section-alignment <size> Set section alignment\n" msgstr "" -#: emultempl/pe.em:312 +#: emultempl/pe.em:304 +#, c-format msgid " --stack <size> Set size of the initial stack\n" msgstr "" -#: emultempl/pe.em:313 +#: emultempl/pe.em:305 +#, c-format msgid "" " --subsystem <name>[:<version>] Set required OS subsystem [& version]\n" msgstr "" -#: emultempl/pe.em:314 +#: emultempl/pe.em:306 +#, c-format msgid "" " --support-old-code Support interworking with old code\n" msgstr "" -#: emultempl/pe.em:315 +#: emultempl/pe.em:307 +#, c-format msgid "" " --thumb-entry=<symbol> Set the entry point to be Thumb " "<symbol>\n" msgstr "" -#: emultempl/pe.em:317 +#: emultempl/pe.em:309 +#, c-format msgid "" " --add-stdcall-alias Export symbols with and without @nn\n" msgstr "" -#: emultempl/pe.em:318 +#: emultempl/pe.em:310 +#, c-format msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n" msgstr "" -#: emultempl/pe.em:319 +#: emultempl/pe.em:311 +#, c-format msgid "" " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n" msgstr "" -#: emultempl/pe.em:320 +#: emultempl/pe.em:312 +#, c-format msgid "" " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n" msgstr "" -#: emultempl/pe.em:321 +#: emultempl/pe.em:313 +#, c-format msgid "" " --exclude-libs lib,lib,... Exclude libraries from automatic " "export\n" msgstr "" -#: emultempl/pe.em:322 +#: emultempl/pe.em:314 +#, c-format msgid "" " --export-all-symbols Automatically export all globals to " "DLL\n" msgstr "" -#: emultempl/pe.em:323 +#: emultempl/pe.em:315 +#, c-format msgid " --kill-at Remove @nn from exported symbols\n" msgstr "" -#: emultempl/pe.em:324 +#: emultempl/pe.em:316 +#, c-format msgid " --out-implib <file> Generate import library\n" msgstr "" -#: emultempl/pe.em:325 +#: emultempl/pe.em:317 +#, c-format msgid "" " --output-def <file> Generate a .DEF file for the built DLL\n" msgstr "" -#: emultempl/pe.em:326 +#: emultempl/pe.em:318 +#, c-format msgid " --warn-duplicate-exports Warn about duplicate exports.\n" msgstr "" -#: emultempl/pe.em:327 +#: emultempl/pe.em:319 +#, c-format msgid "" " --compat-implib Create backward compatible import " "libs;\n" " create __imp_<SYMBOL> as well.\n" msgstr "" -#: emultempl/pe.em:329 +#: emultempl/pe.em:321 +#, c-format msgid "" " --enable-auto-image-base Automatically choose image base for " "DLLs\n" " unless user specifies one\n" msgstr "" -#: emultempl/pe.em:331 +#: emultempl/pe.em:323 +#, c-format msgid "" " --disable-auto-image-base Do not auto-choose image base. " "(default)\n" msgstr "" -#: emultempl/pe.em:332 +#: emultempl/pe.em:324 +#, c-format msgid "" " --dll-search-prefix=<string> When linking dynamically to a dll " "without\n" @@ -191,19 +224,22 @@ msgid "" " in preference to lib<basename>.dll \n" msgstr "" -#: emultempl/pe.em:335 +#: emultempl/pe.em:327 +#, c-format msgid "" " --enable-auto-import Do sophistcated linking of _sym to\n" " __imp_sym for DATA references\n" msgstr "" -#: emultempl/pe.em:337 +#: emultempl/pe.em:329 +#, c-format msgid "" " --disable-auto-import Do not auto-import DATA items from " "DLLs\n" msgstr "" -#: emultempl/pe.em:338 +#: emultempl/pe.em:330 +#, c-format msgid "" " --enable-runtime-pseudo-reloc Work around auto-import limitations by\n" " adding pseudo-relocations resolved " @@ -211,14 +247,16 @@ msgid "" " runtime.\n" msgstr "" -#: emultempl/pe.em:341 +#: emultempl/pe.em:333 +#, c-format msgid "" " --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations " "for\n" " auto-imported DATA.\n" msgstr "" -#: emultempl/pe.em:343 +#: emultempl/pe.em:335 +#, c-format msgid "" " --enable-extra-pe-debug Enable verbose debug output when " "building\n" @@ -226,70 +264,70 @@ msgid "" "import)\n" msgstr "" -#: emultempl/pe.em:412 +#: emultempl/pe.em:404 msgid "%P: warning: bad version number in -subsystem option\n" msgstr "" -#: emultempl/pe.em:448 +#: emultempl/pe.em:440 msgid "%P%F: invalid subsystem type %s\n" msgstr "" -#: emultempl/pe.em:460 +#: emultempl/pe.em:452 msgid "%P%F: invalid hex number for PE parameter '%s'\n" msgstr "" -#: emultempl/pe.em:477 +#: emultempl/pe.em:469 msgid "%P%F: strange hex info for PE parameter '%s'\n" msgstr "" -#: emultempl/pe.em:494 +#: emultempl/pe.em:486 #, c-format msgid "%s: Can't open base file %s\n" msgstr "" -#: emultempl/pe.em:707 +#: emultempl/pe.em:699 msgid "%P: warning, file alignment > section alignment.\n" msgstr "" -#: emultempl/pe.em:794 emultempl/pe.em:821 +#: emultempl/pe.em:786 emultempl/pe.em:813 #, c-format msgid "Warning: resolving %s by linking to %s\n" msgstr "" -#: emultempl/pe.em:799 emultempl/pe.em:826 +#: emultempl/pe.em:791 emultempl/pe.em:818 msgid "Use --enable-stdcall-fixup to disable these warnings\n" msgstr "" -#: emultempl/pe.em:800 emultempl/pe.em:827 +#: emultempl/pe.em:792 emultempl/pe.em:819 msgid "Use --disable-stdcall-fixup to disable these fixups\n" msgstr "" -#: emultempl/pe.em:846 +#: emultempl/pe.em:838 #, c-format msgid "%C: Cannot get section contents - auto-import exception\n" msgstr "" -#: emultempl/pe.em:883 +#: emultempl/pe.em:875 #, c-format msgid "Info: resolving %s by linking to %s (auto-import)\n" msgstr "" -#: emultempl/pe.em:954 +#: emultempl/pe.em:948 msgid "%F%P: PE operations on non PE file.\n" msgstr "" -#: emultempl/pe.em:1188 +#: emultempl/pe.em:1221 #, c-format msgid "Errors encountered processing file %s\n" msgstr "" -#: emultempl/pe.em:1211 +#: emultempl/pe.em:1244 #, c-format msgid "Errors encountered processing file %s for interworking" msgstr "" -#: emultempl/pe.em:1273 ldlang.c:1904 ldlang.c:4397 ldlang.c:4428 -#: ldmain.c:1122 +#: emultempl/pe.em:1306 ldexp.c:505 ldlang.c:2042 ldlang.c:4556 ldlang.c:4587 +#: ldmain.c:1124 msgid "%P%F: bfd_link_hash_lookup failed: %E\n" msgstr "" @@ -302,6 +340,7 @@ msgid "%X%P: cref_hash_lookup failed: %E\n" msgstr "" #: ldcref.c:225 +#, c-format msgid "" "\n" "Cross Reference Table\n" @@ -313,10 +352,12 @@ msgid "Symbol" msgstr "" #: ldcref.c:234 +#, c-format msgid "File\n" msgstr "" #: ldcref.c:238 +#, c-format msgid "No symbols\n" msgstr "" @@ -328,11 +369,11 @@ msgstr "" msgid "%B%F: could not read symbols; %E\n" msgstr "" -#: ldcref.c:452 ldmain.c:1187 ldmain.c:1191 +#: ldcref.c:452 ldmain.c:1189 ldmain.c:1193 msgid "%B%F: could not read symbols: %E\n" msgstr "" -#: ldcref.c:517 ldcref.c:524 ldmain.c:1234 ldmain.c:1241 +#: ldcref.c:517 ldcref.c:524 ldmain.c:1236 ldmain.c:1243 msgid "%B%F: could not read relocs: %E\n" msgstr "" @@ -367,85 +408,78 @@ msgid "" "\n" msgstr "" -#: ldemul.c:247 +#: ldemul.c:226 #, c-format msgid "%S SYSLIB ignored\n" msgstr "" -#: ldemul.c:254 +#: ldemul.c:232 #, c-format msgid "%S HLL ignored\n" msgstr "" -#: ldemul.c:275 +#: ldemul.c:252 msgid "%P: unrecognised emulation mode: %s\n" msgstr "" -#: ldemul.c:276 +#: ldemul.c:253 msgid "Supported emulations: " msgstr "" -#: ldemul.c:320 +#: ldemul.c:295 +#, c-format msgid " no emulation specific options.\n" msgstr "" -#: ldexp.c:148 -msgid "%F%P: %s uses undefined section %s\n" -msgstr "" - -#: ldexp.c:150 -msgid "%F%P: %s forward reference of section %s\n" -msgstr "" - -#: ldexp.c:355 +#: ldexp.c:346 #, c-format msgid "%F%S %% by zero\n" msgstr "" -#: ldexp.c:362 +#: ldexp.c:353 #, c-format msgid "%F%S / by zero\n" msgstr "" -#: ldexp.c:533 +#: ldexp.c:518 #, c-format msgid "%X%S: unresolvable symbol `%s' referenced in expression\n" msgstr "" -#: ldexp.c:553 +#: ldexp.c:538 #, c-format msgid "%F%S: undefined symbol `%s' referenced in expression\n" msgstr "" -#: ldexp.c:677 +#: ldexp.c:664 #, c-format msgid "%F%S can not PROVIDE assignment to location counter\n" msgstr "" -#: ldexp.c:687 +#: ldexp.c:674 #, c-format msgid "%F%S invalid assignment to location counter\n" msgstr "" -#: ldexp.c:691 +#: ldexp.c:678 #, c-format msgid "%F%S assignment to location counter invalid outside of SECTION\n" msgstr "" -#: ldexp.c:700 +#: ldexp.c:687 msgid "%F%S cannot move location counter backwards (from %V to %V)\n" msgstr "" -#: ldexp.c:727 +#: ldexp.c:714 msgid "%P%F:%s: hash creation failed\n" msgstr "" -#: ldexp.c:1003 ldexp.c:1035 +#: ldexp.c:992 ldexp.c:1024 #, c-format msgid "%F%S nonconstant expression for %s\n" msgstr "" -#: ldexp.c:1089 +#: ldexp.c:1078 #, c-format msgid "%F%S non constant expression for %s\n" msgstr "" @@ -469,11 +503,11 @@ msgid "%P: skipping incompatible %s when searching for %s\n" msgstr "" #: ldfile.c:377 -msgid "%F%P: cannot open %s for %s: %E\n" +msgid "%F%P: %s (%s): No such file: %E\n" msgstr "" #: ldfile.c:380 -msgid "%F%P: cannot open %s: %E\n" +msgid "%F%P: %s: No such file: %E\n" msgstr "" #: ldfile.c:410 @@ -506,211 +540,233 @@ msgstr "" msgid "%P%F: target architecture respecified\n" msgstr "" -#: ldfile.c:594 +#: ldfile.c:595 msgid "%P%F: cannot represent machine `%s'\n" msgstr "" -#: ldlang.c:640 +#: ldlang.c:495 +msgid "%P%F: out of memory during initialization" +msgstr "" + +#: ldlang.c:534 +msgid "%P:%S: warning: redeclaration of memory region '%s'\n" +msgstr "" + +#: ldlang.c:553 +msgid "%P:%S: warning: memory region %s not declared\n" +msgstr "" + +#: ldlang.c:670 msgid "" "\n" "Memory Configuration\n" "\n" msgstr "" -#: ldlang.c:642 +#: ldlang.c:672 msgid "Name" msgstr "" -#: ldlang.c:642 +#: ldlang.c:672 msgid "Origin" msgstr "" -#: ldlang.c:642 +#: ldlang.c:672 msgid "Length" msgstr "" -#: ldlang.c:642 +#: ldlang.c:672 msgid "Attributes" msgstr "" -#: ldlang.c:682 +#: ldlang.c:712 +#, c-format msgid "" "\n" "Linker script and memory map\n" "\n" msgstr "" -#: ldlang.c:698 +#: ldlang.c:728 msgid "%P%F: Illegal use of `%s' section\n" msgstr "" -#: ldlang.c:707 +#: ldlang.c:737 msgid "%P%F: output format %s cannot represent section called %s\n" msgstr "" -#: ldlang.c:867 +#: ldlang.c:901 msgid "%P: %B: warning: ignoring duplicate section `%s'\n" msgstr "" -#: ldlang.c:870 +#: ldlang.c:904 msgid "%P: %B: warning: ignoring duplicate `%s' section symbol `%s'\n" msgstr "" -#: ldlang.c:884 +#: ldlang.c:918 msgid "%P: %B: warning: duplicate section `%s' has different size\n" msgstr "" -#: ldlang.c:936 +#: ldlang.c:970 msgid "%P%F: Failed to create hash table\n" msgstr "" -#: ldlang.c:1351 +#: ldlang.c:1386 msgid "%B: file not recognized: %E\n" msgstr "" -#: ldlang.c:1352 +#: ldlang.c:1387 msgid "%B: matching formats:" msgstr "" -#: ldlang.c:1359 +#: ldlang.c:1394 msgid "%F%B: file not recognized: %E\n" msgstr "" -#: ldlang.c:1418 +#: ldlang.c:1453 msgid "%F%B: member %B in archive is not an object\n" msgstr "" -#: ldlang.c:1429 ldlang.c:1443 +#: ldlang.c:1464 ldlang.c:1478 msgid "%F%B: could not read symbols: %E\n" msgstr "" -#: ldlang.c:1698 +#: ldlang.c:1733 msgid "" "%P: warning: could not find any targets that match endianness requirement\n" msgstr "" -#: ldlang.c:1711 +#: ldlang.c:1746 msgid "%P%F: target %s not found\n" msgstr "" -#: ldlang.c:1713 +#: ldlang.c:1748 msgid "%P%F: cannot open output file %s: %E\n" msgstr "" -#: ldlang.c:1723 +#: ldlang.c:1758 msgid "%P%F:%s: can not make object file: %E\n" msgstr "" -#: ldlang.c:1727 +#: ldlang.c:1762 msgid "%P%F:%s: can not set architecture: %E\n" msgstr "" -#: ldlang.c:1731 +#: ldlang.c:1766 msgid "%P%F: can not create link hash table: %E\n" msgstr "" -#: ldlang.c:2069 +#: ldlang.c:1935 +msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n" +msgstr "" + +#: ldlang.c:1953 +msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n" +msgstr "" + +#: ldlang.c:2211 msgid " load address 0x%V" msgstr "" -#: ldlang.c:2204 +#: ldlang.c:2346 msgid "%W (size before relaxing)\n" msgstr "" -#: ldlang.c:2288 +#: ldlang.c:2429 #, c-format msgid "Address of section %s set to " msgstr "" -#: ldlang.c:2443 +#: ldlang.c:2582 #, c-format msgid "Fail with %d\n" msgstr "" -#: ldlang.c:2683 +#: ldlang.c:2822 msgid "%X%P: section %s [%V -> %V] overlaps section %s [%V -> %V]\n" msgstr "" -#: ldlang.c:2711 +#: ldlang.c:2850 msgid "%X%P: address 0x%v of %B section %s is not within region %s\n" msgstr "" -#: ldlang.c:2719 +#: ldlang.c:2858 msgid "%X%P: region %s is full (%B section %s)\n" msgstr "" -#: ldlang.c:2770 +#: ldlang.c:2906 msgid "%P%X: Internal error on COFF shared library section %s\n" msgstr "" -#: ldlang.c:2826 +#: ldlang.c:2959 msgid "%P%F: error: no memory region specified for loadable section `%s'\n" msgstr "" -#: ldlang.c:2830 +#: ldlang.c:2963 msgid "%P: warning: no memory region specified for loadable section `%s'\n" msgstr "" -#: ldlang.c:2846 +#: ldlang.c:2979 msgid "%P: warning: changing start of section %s by %u bytes\n" msgstr "" -#: ldlang.c:2859 +#: ldlang.c:2995 #, c-format -msgid "%F%S: non constant address expression for section %s\n" +msgid "" +"%F%S: non constant or forward reference address expression for section %s\n" msgstr "" -#: ldlang.c:3036 +#: ldlang.c:3180 msgid "%P%F: can't relax section: %E\n" msgstr "" -#: ldlang.c:3232 +#: ldlang.c:3393 msgid "%F%P: invalid data statement\n" msgstr "" -#: ldlang.c:3269 +#: ldlang.c:3432 msgid "%F%P: invalid reloc statement\n" msgstr "" -#: ldlang.c:3408 +#: ldlang.c:3578 msgid "%P%F:%s: can't set start address\n" msgstr "" -#: ldlang.c:3421 ldlang.c:3439 +#: ldlang.c:3591 ldlang.c:3609 msgid "%P%F: can't set start address\n" msgstr "" -#: ldlang.c:3433 +#: ldlang.c:3603 msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n" msgstr "" -#: ldlang.c:3444 +#: ldlang.c:3614 msgid "%P: warning: cannot find entry symbol %s; not setting start address\n" msgstr "" -#: ldlang.c:3488 +#: ldlang.c:3660 msgid "" "%P%F: Relocatable linking with relocations from format %s (%B) to format %s " "(%B) is not supported\n" msgstr "" -#: ldlang.c:3497 +#: ldlang.c:3669 msgid "" "%P: warning: %s architecture of input file `%B' is incompatible with %s " "output\n" msgstr "" -#: ldlang.c:3518 -msgid "%E%X: failed to merge target specific data of file %B\n" +#: ldlang.c:3690 +msgid "%P%X: failed to merge target specific data of file %B\n" msgstr "" -#: ldlang.c:3604 +#: ldlang.c:3774 msgid "" "\n" "Allocating common symbols\n" msgstr "" -#: ldlang.c:3605 +#: ldlang.c:3775 msgid "" "Common symbol size file\n" "\n" @@ -719,270 +775,284 @@ msgstr "" #. This message happens when using the #. svr3.ifile linker script, so I have #. disabled it. -#: ldlang.c:3681 +#: ldlang.c:3851 msgid "%P: no [COMMON] command, defaulting to .bss\n" msgstr "" -#: ldlang.c:3737 +#: ldlang.c:3907 msgid "%P%F: invalid syntax in flags\n" msgstr "" -#: ldlang.c:4325 +#: ldlang.c:4479 msgid "%P%Fmultiple STARTUP files\n" msgstr "" -#: ldlang.c:4368 +#: ldlang.c:4526 msgid "%X%P:%S: section has both a load address and a load region\n" msgstr "" -#: ldlang.c:4608 +#: ldlang.c:4766 msgid "%F%P: bfd_record_phdr failed: %E\n" msgstr "" -#: ldlang.c:4627 +#: ldlang.c:4785 msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n" msgstr "" -#: ldlang.c:4919 +#: ldlang.c:5171 msgid "%X%P: unknown language `%s' in version information\n" msgstr "" -#: ldlang.c:4969 +#: ldlang.c:5313 msgid "" "%X%P: anonymous version tag cannot be combined with other version tags\n" msgstr "" -#: ldlang.c:4977 +#: ldlang.c:5321 msgid "%X%P: duplicate version tag `%s'\n" msgstr "" -#: ldlang.c:4990 ldlang.c:5003 +#: ldlang.c:5341 ldlang.c:5349 ldlang.c:5366 ldlang.c:5374 msgid "%X%P: duplicate expression `%s' in version information\n" msgstr "" -#: ldlang.c:5043 +#: ldlang.c:5414 msgid "%X%P: unable to find version dependency `%s'\n" msgstr "" -#: ldlang.c:5065 +#: ldlang.c:5436 msgid "%X%P: unable to read .exports section contents\n" msgstr "" -#: ldmain.c:247 +#: ldmain.c:251 msgid "%X%P: can't set BFD default target to `%s': %E\n" msgstr "" -#: ldmain.c:349 -msgid "%P%F: -r and --mpc860c0 may not be used together\n" -msgstr "" - -#: ldmain.c:351 +#: ldmain.c:352 msgid "%P%F: --relax and -r may not be used together\n" msgstr "" -#: ldmain.c:353 +#: ldmain.c:354 msgid "%P%F: -r and -shared may not be used together\n" msgstr "" -#: ldmain.c:359 +#: ldmain.c:360 msgid "%P%F: -F may not be used without -shared\n" msgstr "" -#: ldmain.c:361 +#: ldmain.c:362 msgid "%P%F: -f may not be used without -shared\n" msgstr "" -#: ldmain.c:403 +#: ldmain.c:404 msgid "using external linker script:" msgstr "" -#: ldmain.c:405 +#: ldmain.c:406 msgid "using internal linker script:" msgstr "" -#: ldmain.c:439 +#: ldmain.c:440 msgid "%P%F: no input files\n" msgstr "" -#: ldmain.c:443 +#: ldmain.c:444 msgid "%P: mode %s\n" msgstr "" -#: ldmain.c:459 +#: ldmain.c:460 msgid "%P%F: cannot open map file %s: %E\n" msgstr "" -#: ldmain.c:489 +#: ldmain.c:490 msgid "%P: link errors found, deleting executable `%s'\n" msgstr "" -#: ldmain.c:498 +#: ldmain.c:499 msgid "%F%B: final close failed: %E\n" msgstr "" -#: ldmain.c:524 +#: ldmain.c:525 msgid "%X%P: unable to open for source of copy `%s'\n" msgstr "" -#: ldmain.c:527 +#: ldmain.c:528 msgid "%X%P: unable to open for destination of copy `%s'\n" msgstr "" -#: ldmain.c:534 +#: ldmain.c:535 msgid "%P: Error writing file `%s'\n" msgstr "" -#: ldmain.c:539 pe-dll.c:1443 +#: ldmain.c:540 pe-dll.c:1451 #, c-format msgid "%P: Error closing file `%s'\n" msgstr "" -#: ldmain.c:555 +#: ldmain.c:556 #, c-format msgid "%s: total time in link: %ld.%06ld\n" msgstr "" -#: ldmain.c:558 +#: ldmain.c:559 #, c-format msgid "%s: data size %ld\n" msgstr "" -#: ldmain.c:596 +#: ldmain.c:597 msgid "%P%F: missing argument to -m\n" msgstr "" -#: ldmain.c:741 ldmain.c:759 ldmain.c:789 +#: ldmain.c:743 ldmain.c:761 ldmain.c:791 msgid "%P%F: bfd_hash_table_init failed: %E\n" msgstr "" -#: ldmain.c:745 ldmain.c:763 +#: ldmain.c:747 ldmain.c:765 msgid "%P%F: bfd_hash_lookup failed: %E\n" msgstr "" -#: ldmain.c:777 +#: ldmain.c:779 msgid "%X%P: error: duplicate retain-symbols-file\n" msgstr "" -#: ldmain.c:819 +#: ldmain.c:821 msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n" msgstr "" -#: ldmain.c:824 +#: ldmain.c:826 msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n" msgstr "" -#: ldmain.c:899 +#: ldmain.c:901 +#, c-format msgid "" "Archive member included because of file (symbol)\n" "\n" msgstr "" -#: ldmain.c:969 +#: ldmain.c:971 msgid "%X%C: multiple definition of `%T'\n" msgstr "" -#: ldmain.c:972 +#: ldmain.c:974 msgid "%D: first defined here\n" msgstr "" -#: ldmain.c:976 +#: ldmain.c:978 msgid "%P: Disabling relaxation: it will not work with multiple definitions\n" msgstr "" -#: ldmain.c:1006 +#: ldmain.c:1008 msgid "%B: warning: definition of `%T' overriding common\n" msgstr "" -#: ldmain.c:1009 +#: ldmain.c:1011 msgid "%B: warning: common is here\n" msgstr "" -#: ldmain.c:1016 +#: ldmain.c:1018 msgid "%B: warning: common of `%T' overridden by definition\n" msgstr "" -#: ldmain.c:1019 +#: ldmain.c:1021 msgid "%B: warning: defined here\n" msgstr "" -#: ldmain.c:1026 +#: ldmain.c:1028 msgid "%B: warning: common of `%T' overridden by larger common\n" msgstr "" -#: ldmain.c:1029 +#: ldmain.c:1031 msgid "%B: warning: larger common is here\n" msgstr "" -#: ldmain.c:1033 +#: ldmain.c:1035 msgid "%B: warning: common of `%T' overriding smaller common\n" msgstr "" -#: ldmain.c:1036 +#: ldmain.c:1038 msgid "%B: warning: smaller common is here\n" msgstr "" -#: ldmain.c:1040 +#: ldmain.c:1042 msgid "%B: warning: multiple common of `%T'\n" msgstr "" -#: ldmain.c:1042 +#: ldmain.c:1044 msgid "%B: warning: previous common is here\n" msgstr "" -#: ldmain.c:1062 ldmain.c:1100 +#: ldmain.c:1064 ldmain.c:1102 msgid "%P: warning: global constructor %s used\n" msgstr "" -#: ldmain.c:1110 +#: ldmain.c:1112 msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n" msgstr "" -#: ldmain.c:1287 ldmisc.c:533 +#: ldmain.c:1289 ldmisc.c:533 msgid "%F%P: bfd_hash_table_init failed: %E\n" msgstr "" -#: ldmain.c:1294 ldmisc.c:540 +#: ldmain.c:1296 ldmisc.c:540 msgid "%F%P: bfd_hash_lookup failed: %E\n" msgstr "" -#: ldmain.c:1314 -msgid "%C: undefined reference to `%T'\n" +#: ldmain.c:1317 +msgid "%X%C: undefined reference to `%T'\n" msgstr "" #: ldmain.c:1320 -msgid "%D: more undefined references to `%T' follow\n" +msgid "%C: warning: undefined reference to `%T'\n" +msgstr "" + +#: ldmain.c:1326 +msgid "%X%D: more undefined references to `%T' follow\n" +msgstr "" + +#: ldmain.c:1329 +msgid "%D: warning: more undefined references to `%T' follow\n" +msgstr "" + +#: ldmain.c:1340 +msgid "%X%B: undefined reference to `%T'\n" +msgstr "" + +#: ldmain.c:1343 +msgid "%B: warning: undefined reference to `%T'\n" msgstr "" -#: ldmain.c:1327 -msgid "%B: undefined reference to `%T'\n" +#: ldmain.c:1349 +msgid "%X%B: more undefined references to `%T' follow\n" msgstr "" -#: ldmain.c:1333 -msgid "%B: more undefined references to `%T' follow\n" +#: ldmain.c:1352 +msgid "%B: warning: more undefined references to `%T' follow\n" msgstr "" -#: ldmain.c:1364 ldmain.c:1392 ldmain.c:1410 +#: ldmain.c:1386 ldmain.c:1414 ldmain.c:1432 msgid "%P%X: generated" msgstr "" -#: ldmain.c:1371 +#: ldmain.c:1393 msgid " additional relocation overflows omitted from the output\n" msgstr "" -#: ldmain.c:1375 +#: ldmain.c:1397 msgid " relocation truncated to fit: %s %T" msgstr "" -#: ldmain.c:1395 +#: ldmain.c:1417 #, c-format msgid "dangerous relocation: %s\n" msgstr "" -#: ldmain.c:1413 +#: ldmain.c:1435 msgid " reloc refers to symbol `%T' which is not being output\n" msgstr "" #: ldmisc.c:147 +#, c-format msgid "no symbol" msgstr "" @@ -1016,594 +1086,618 @@ msgid "%P%F: please report this bug\n" msgstr "" #. Output for noisy == 2 is intended to follow the GNU standards. -#: ldver.c:39 +#: ldver.c:38 #, c-format msgid "GNU ld version %s\n" msgstr "" -#: ldver.c:43 +#: ldver.c:42 +#, c-format msgid "Copyright 2002 Free Software Foundation, Inc.\n" msgstr "" -#: ldver.c:44 +#: ldver.c:43 +#, c-format msgid "" "This program is free software; you may redistribute it under the terms of\n" "the GNU General Public License. This program has absolutely no warranty.\n" msgstr "" -#: ldver.c:53 +#: ldver.c:52 +#, c-format msgid " Supported emulations:\n" msgstr "" -#: ldwrite.c:54 ldwrite.c:190 +#: ldwrite.c:55 ldwrite.c:191 msgid "%P%F: bfd_new_link_order failed\n" msgstr "" -#: ldwrite.c:310 +#: ldwrite.c:343 +msgid "%F%P: cannot create split section name for %s\n" +msgstr "" + +#: ldwrite.c:355 msgid "%F%P: clone section failed: %E\n" msgstr "" -#: ldwrite.c:348 +#: ldwrite.c:394 #, c-format msgid "%8x something else\n" msgstr "" -#: ldwrite.c:525 +#: ldwrite.c:572 msgid "%F%P: final link failed: %E\n" msgstr "" -#: lexsup.c:179 lexsup.c:284 +#: lexsup.c:185 lexsup.c:290 msgid "KEYWORD" msgstr "" -#: lexsup.c:179 +#: lexsup.c:185 msgid "Shared library control for HP/UX compatibility" msgstr "" -#: lexsup.c:182 +#: lexsup.c:188 msgid "ARCH" msgstr "" -#: lexsup.c:182 +#: lexsup.c:188 msgid "Set architecture" msgstr "" -#: lexsup.c:184 lexsup.c:357 +#: lexsup.c:190 lexsup.c:363 msgid "TARGET" msgstr "" -#: lexsup.c:184 +#: lexsup.c:190 msgid "Specify target for following input files" msgstr "" -#: lexsup.c:186 lexsup.c:229 lexsup.c:241 lexsup.c:254 lexsup.c:329 -#: lexsup.c:364 lexsup.c:408 +#: lexsup.c:192 lexsup.c:235 lexsup.c:247 lexsup.c:260 lexsup.c:335 +#: lexsup.c:370 lexsup.c:417 msgid "FILE" msgstr "" -#: lexsup.c:186 +#: lexsup.c:192 msgid "Read MRI format linker script" msgstr "" -#: lexsup.c:188 +#: lexsup.c:194 msgid "Force common symbols to be defined" msgstr "" -#: lexsup.c:192 lexsup.c:398 lexsup.c:400 lexsup.c:402 +#: lexsup.c:198 lexsup.c:404 lexsup.c:406 lexsup.c:408 msgid "ADDRESS" msgstr "" -#: lexsup.c:192 +#: lexsup.c:198 msgid "Set start address" msgstr "" -#: lexsup.c:194 +#: lexsup.c:200 msgid "Export all dynamic symbols" msgstr "" -#: lexsup.c:196 +#: lexsup.c:202 msgid "Link big-endian objects" msgstr "" -#: lexsup.c:198 +#: lexsup.c:204 msgid "Link little-endian objects" msgstr "" -#: lexsup.c:200 lexsup.c:203 +#: lexsup.c:206 lexsup.c:209 msgid "SHLIB" msgstr "" -#: lexsup.c:200 +#: lexsup.c:206 msgid "Auxiliary filter for shared object symbol table" msgstr "" -#: lexsup.c:203 +#: lexsup.c:209 msgid "Filter for shared object symbol table" msgstr "" -#: lexsup.c:205 +#: lexsup.c:211 msgid "Ignored" msgstr "" -#: lexsup.c:207 +#: lexsup.c:213 msgid "SIZE" msgstr "" -#: lexsup.c:207 +#: lexsup.c:213 msgid "Small data size (if no size, same as --shared)" msgstr "" -#: lexsup.c:210 +#: lexsup.c:216 msgid "FILENAME" msgstr "" -#: lexsup.c:210 +#: lexsup.c:216 msgid "Set internal name of shared library" msgstr "" -#: lexsup.c:212 +#: lexsup.c:218 msgid "PROGRAM" msgstr "" -#: lexsup.c:212 +#: lexsup.c:218 msgid "Set PROGRAM as the dynamic linker to use" msgstr "" -#: lexsup.c:214 +#: lexsup.c:220 msgid "LIBNAME" msgstr "" -#: lexsup.c:214 +#: lexsup.c:220 msgid "Search for library LIBNAME" msgstr "" -#: lexsup.c:216 +#: lexsup.c:222 msgid "DIRECTORY" msgstr "" -#: lexsup.c:216 +#: lexsup.c:222 msgid "Add DIRECTORY to library search path" msgstr "" -#: lexsup.c:218 +#: lexsup.c:224 msgid "EMULATION" msgstr "" -#: lexsup.c:218 +#: lexsup.c:224 msgid "Set emulation" msgstr "" -#: lexsup.c:220 +#: lexsup.c:226 msgid "Print map file on standard output" msgstr "" -#: lexsup.c:222 +#: lexsup.c:228 msgid "Do not page align data" msgstr "" -#: lexsup.c:224 +#: lexsup.c:230 msgid "Do not page align data, do not make text readonly" msgstr "" -#: lexsup.c:227 +#: lexsup.c:233 msgid "Page align data, make text readonly" msgstr "" -#: lexsup.c:229 +#: lexsup.c:235 msgid "Set output file name" msgstr "" -#: lexsup.c:231 +#: lexsup.c:237 msgid "Optimize output file" msgstr "" -#: lexsup.c:233 +#: lexsup.c:239 msgid "Ignored for SVR4 compatibility" msgstr "" -#: lexsup.c:237 +#: lexsup.c:243 msgid "Generate relocatable output" msgstr "" -#: lexsup.c:241 +#: lexsup.c:247 msgid "Just link symbols (if directory, same as --rpath)" msgstr "" -#: lexsup.c:244 +#: lexsup.c:250 msgid "Strip all symbols" msgstr "" -#: lexsup.c:246 +#: lexsup.c:252 msgid "Strip debugging symbols" msgstr "" -#: lexsup.c:248 +#: lexsup.c:254 msgid "Strip symbols in discarded sections" msgstr "" -#: lexsup.c:250 +#: lexsup.c:256 msgid "Do not strip symbols in discarded sections" msgstr "" -#: lexsup.c:252 +#: lexsup.c:258 msgid "Trace file opens" msgstr "" -#: lexsup.c:254 +#: lexsup.c:260 msgid "Read linker script" msgstr "" -#: lexsup.c:256 lexsup.c:272 lexsup.c:315 lexsup.c:327 lexsup.c:392 -#: lexsup.c:411 lexsup.c:431 +#: lexsup.c:262 lexsup.c:278 lexsup.c:321 lexsup.c:333 lexsup.c:398 +#: lexsup.c:420 lexsup.c:448 msgid "SYMBOL" msgstr "" -#: lexsup.c:256 +#: lexsup.c:262 msgid "Start with undefined reference to SYMBOL" msgstr "" -#: lexsup.c:258 +#: lexsup.c:264 msgid "[=SECTION]" msgstr "" -#: lexsup.c:258 +#: lexsup.c:264 msgid "Don't merge input [SECTION | orphan] sections" msgstr "" -#: lexsup.c:260 +#: lexsup.c:266 msgid "Build global constructor/destructor tables" msgstr "" -#: lexsup.c:262 +#: lexsup.c:268 msgid "Print version information" msgstr "" -#: lexsup.c:264 +#: lexsup.c:270 msgid "Print version and emulation information" msgstr "" -#: lexsup.c:266 +#: lexsup.c:272 msgid "Discard all local symbols" msgstr "" -#: lexsup.c:268 +#: lexsup.c:274 msgid "Discard temporary local symbols (default)" msgstr "" -#: lexsup.c:270 +#: lexsup.c:276 msgid "Don't discard any local symbols" msgstr "" -#: lexsup.c:272 +#: lexsup.c:278 msgid "Trace mentions of SYMBOL" msgstr "" -#: lexsup.c:274 lexsup.c:366 lexsup.c:368 +#: lexsup.c:280 lexsup.c:372 lexsup.c:374 msgid "PATH" msgstr "" -#: lexsup.c:274 +#: lexsup.c:280 msgid "Default search path for Solaris compatibility" msgstr "" -#: lexsup.c:276 +#: lexsup.c:282 msgid "Start a group" msgstr "" -#: lexsup.c:278 +#: lexsup.c:284 msgid "End a group" msgstr "" -#: lexsup.c:280 +#: lexsup.c:286 msgid "Accept input files whose architecture cannot be determined" msgstr "" -#: lexsup.c:282 +#: lexsup.c:288 msgid "Reject input files whose architecture is unknown" msgstr "" -#: lexsup.c:284 +#: lexsup.c:290 msgid "Ignored for SunOS compatibility" msgstr "" -#: lexsup.c:286 +#: lexsup.c:292 msgid "Link against shared libraries" msgstr "" -#: lexsup.c:292 +#: lexsup.c:298 msgid "Do not link against shared libraries" msgstr "" -#: lexsup.c:300 +#: lexsup.c:306 msgid "Bind global references locally" msgstr "" -#: lexsup.c:302 +#: lexsup.c:308 msgid "Check section addresses for overlaps (default)" msgstr "" -#: lexsup.c:304 +#: lexsup.c:310 msgid "Do not check section addresses for overlaps" msgstr "" -#: lexsup.c:307 +#: lexsup.c:313 msgid "Output cross reference table" msgstr "" -#: lexsup.c:309 +#: lexsup.c:315 msgid "SYMBOL=EXPRESSION" msgstr "" -#: lexsup.c:309 +#: lexsup.c:315 msgid "Define a symbol" msgstr "" -#: lexsup.c:311 +#: lexsup.c:317 msgid "[=STYLE]" msgstr "" -#: lexsup.c:311 +#: lexsup.c:317 msgid "Demangle symbol names [using STYLE]" msgstr "" -#: lexsup.c:313 +#: lexsup.c:319 msgid "Generate embedded relocs" msgstr "" -#: lexsup.c:315 +#: lexsup.c:321 msgid "Call SYMBOL at unload-time" msgstr "" -#: lexsup.c:317 +#: lexsup.c:323 msgid "Force generation of file with .exe suffix" msgstr "" -#: lexsup.c:319 +#: lexsup.c:325 msgid "Remove unused sections (on some targets)" msgstr "" -#: lexsup.c:322 +#: lexsup.c:328 msgid "Don't remove unused sections (default)" msgstr "" -#: lexsup.c:325 +#: lexsup.c:331 msgid "Print option help" msgstr "" -#: lexsup.c:327 +#: lexsup.c:333 msgid "Call SYMBOL at load-time" msgstr "" -#: lexsup.c:329 +#: lexsup.c:335 msgid "Write a map file" msgstr "" -#: lexsup.c:331 +#: lexsup.c:337 msgid "Do not define Common storage" msgstr "" -#: lexsup.c:333 +#: lexsup.c:339 msgid "Do not demangle symbol names" msgstr "" -#: lexsup.c:335 +#: lexsup.c:341 msgid "Use less memory and more disk I/O" msgstr "" -#: lexsup.c:337 -msgid "Allow no undefined symbols" +#: lexsup.c:343 +msgid "Do not allow unresolved references in object files" msgstr "" -#: lexsup.c:339 -msgid "Allow undefined symbols in shared objects (the default)" +#: lexsup.c:345 +msgid "Allow unresolved references in shared libaries" msgstr "" -#: lexsup.c:341 -msgid "Do not allow undefined symbols in shared objects" +#: lexsup.c:347 +msgid "Do not allow unresolved references in shared libs" msgstr "" -#: lexsup.c:343 +#: lexsup.c:349 msgid "Allow multiple definitions" msgstr "" -#: lexsup.c:345 +#: lexsup.c:351 msgid "Disallow undefined version" msgstr "" -#: lexsup.c:347 +#: lexsup.c:353 msgid "Don't warn about mismatched input files" msgstr "" -#: lexsup.c:349 +#: lexsup.c:355 msgid "Turn off --whole-archive" msgstr "" -#: lexsup.c:351 +#: lexsup.c:357 msgid "Create an output file even if errors occur" msgstr "" -#: lexsup.c:355 +#: lexsup.c:361 msgid "" "Only use library directories specified on\n" "\t\t\t\tthe command line" msgstr "" -#: lexsup.c:357 +#: lexsup.c:363 msgid "Specify target of output file" msgstr "" -#: lexsup.c:359 +#: lexsup.c:365 msgid "Ignored for Linux compatibility" msgstr "" -#: lexsup.c:361 +#: lexsup.c:367 msgid "Relax branches on certain targets" msgstr "" -#: lexsup.c:364 +#: lexsup.c:370 msgid "Keep only symbols listed in FILE" msgstr "" -#: lexsup.c:366 +#: lexsup.c:372 msgid "Set runtime shared library search path" msgstr "" -#: lexsup.c:368 +#: lexsup.c:374 msgid "Set link time shared library search path" msgstr "" -#: lexsup.c:370 +#: lexsup.c:376 msgid "Create a shared library" msgstr "" -#: lexsup.c:374 +#: lexsup.c:380 msgid "Create a position independent executable" msgstr "" -#: lexsup.c:378 +#: lexsup.c:384 msgid "Sort common symbols by size" msgstr "" -#: lexsup.c:382 +#: lexsup.c:388 msgid "COUNT" msgstr "" -#: lexsup.c:382 +#: lexsup.c:388 msgid "How many tags to reserve in .dynamic section" msgstr "" -#: lexsup.c:384 +#: lexsup.c:390 msgid "[=SIZE]" msgstr "" -#: lexsup.c:384 +#: lexsup.c:390 msgid "Split output sections every SIZE octets" msgstr "" -#: lexsup.c:386 +#: lexsup.c:392 msgid "[=COUNT]" msgstr "" -#: lexsup.c:386 +#: lexsup.c:392 msgid "Split output sections every COUNT relocs" msgstr "" -#: lexsup.c:388 +#: lexsup.c:394 msgid "Print memory usage statistics" msgstr "" -#: lexsup.c:390 +#: lexsup.c:396 msgid "Display target specific options" msgstr "" -#: lexsup.c:392 +#: lexsup.c:398 msgid "Do task level linking" msgstr "" -#: lexsup.c:394 +#: lexsup.c:400 msgid "Use same format as native linker" msgstr "" -#: lexsup.c:396 +#: lexsup.c:402 msgid "SECTION=ADDRESS" msgstr "" -#: lexsup.c:396 +#: lexsup.c:402 msgid "Set address of named section" msgstr "" -#: lexsup.c:398 +#: lexsup.c:404 msgid "Set address of .bss section" msgstr "" -#: lexsup.c:400 +#: lexsup.c:406 msgid "Set address of .data section" msgstr "" -#: lexsup.c:402 +#: lexsup.c:408 msgid "Set address of .text section" msgstr "" -#: lexsup.c:404 +#: lexsup.c:410 +msgid "" +"How to handle unresolved symbols. <method> is:\n" +"\t\t\t\tignore-all, report-all, ignore-in-object-files,\n" +"\t\t\t\tignore-in-shared-libs" +msgstr "" + +#: lexsup.c:413 msgid "Output lots of information during link" msgstr "" -#: lexsup.c:408 +#: lexsup.c:417 msgid "Read version information script" msgstr "" -#: lexsup.c:411 +#: lexsup.c:420 msgid "" "Take export symbols list from .exports, using\n" "\t\t\t\tSYMBOL as the version." msgstr "" -#: lexsup.c:414 +#: lexsup.c:423 msgid "Warn about duplicate common symbols" msgstr "" -#: lexsup.c:416 +#: lexsup.c:425 msgid "Warn if global constructors/destructors are seen" msgstr "" -#: lexsup.c:419 +#: lexsup.c:428 msgid "Warn if the multiple GP values are used" msgstr "" -#: lexsup.c:421 +#: lexsup.c:430 msgid "Warn only once per undefined symbol" msgstr "" -#: lexsup.c:423 +#: lexsup.c:432 msgid "Warn if start of section changes due to alignment" msgstr "" -#: lexsup.c:426 +#: lexsup.c:435 +msgid "Report unresolved symbols as warnings" +msgstr "" + +#: lexsup.c:437 +msgid "Report unresolved symbols as errors" +msgstr "" + +#: lexsup.c:439 msgid "Treat warnings as errors" msgstr "" -#: lexsup.c:429 +#: lexsup.c:442 msgid "Include all objects from following archives" msgstr "" -#: lexsup.c:431 -msgid "Use wrapper functions for SYMBOL" +#: lexsup.c:444 +msgid "Only set DT_NEEDED for following dynamic libs if used" msgstr "" -#: lexsup.c:433 -msgid "[=WORDS]" +#: lexsup.c:446 +msgid "Always set DT_NEEDED for following dynamic libs" msgstr "" -#: lexsup.c:433 -msgid "" -"Modify problematic branches in last WORDS (1-10,\n" -"\t\t\t\tdefault 5) words of a page" +#: lexsup.c:448 +msgid "Use wrapper functions for SYMBOL" msgstr "" -#: lexsup.c:602 +#: lexsup.c:595 msgid "%P: unrecognized option '%s'\n" msgstr "" -#: lexsup.c:604 +#: lexsup.c:597 msgid "%P%F: use the --help option for usage information\n" msgstr "" -#: lexsup.c:622 +#: lexsup.c:615 msgid "%P%F: unrecognized -a option `%s'\n" msgstr "" -#: lexsup.c:635 +#: lexsup.c:628 msgid "%P%F: unrecognized -assert option `%s'\n" msgstr "" -#: lexsup.c:678 +#: lexsup.c:689 msgid "%F%P: unknown demangling style `%s'" msgstr "" -#: lexsup.c:737 +#: lexsup.c:748 msgid "%P%F: invalid number `%s'\n" msgstr "" +#: lexsup.c:834 +msgid "%P%F: bad --unresolved-symbols option: %s\n" +msgstr "" + #. This can happen if the user put "-rpath,a" on the command #. line. (Or something similar. The comma is important). #. Getopt becomes confused and thinks that this is a -r option @@ -1612,69 +1706,66 @@ msgstr "" #. an error message here. We cannot just make this a warning, #. increment optind, and continue because getopt is too confused #. and will seg-fault the next time around. -#: lexsup.c:849 +#: lexsup.c:899 msgid "%P%F: bad -rpath option\n" msgstr "" -#: lexsup.c:953 +#: lexsup.c:1011 msgid "%P%F: -shared not supported\n" msgstr "" -#: lexsup.c:962 +#: lexsup.c:1020 msgid "%P%F: -pie not supported\n" msgstr "" -#: lexsup.c:994 +#: lexsup.c:1052 msgid "%P%F: invalid argument to option \"--section-start\"\n" msgstr "" -#: lexsup.c:1000 +#: lexsup.c:1058 msgid "%P%F: missing argument(s) to option \"--section-start\"\n" msgstr "" -#: lexsup.c:1158 +#: lexsup.c:1222 msgid "%P%F: may not nest groups (--help for usage)\n" msgstr "" -#: lexsup.c:1165 +#: lexsup.c:1229 msgid "%P%F: group ended before it began (--help for usage)\n" msgstr "" -#: lexsup.c:1179 -msgid "%P%F: invalid argument to option \"mpc860c0\"\n" -msgstr "" - -#: lexsup.c:1234 +#: lexsup.c:1290 msgid "%P%F: invalid hex number `%s'\n" msgstr "" -#: lexsup.c:1246 +#: lexsup.c:1302 #, c-format msgid "Usage: %s [options] file...\n" msgstr "" -#: lexsup.c:1248 +#: lexsup.c:1304 +#, c-format msgid "Options:\n" msgstr "" #. Note: Various tools (such as libtool) depend upon the #. format of the listings below - do not change them. -#: lexsup.c:1331 +#: lexsup.c:1387 #, c-format msgid "%s: supported targets:" msgstr "" -#: lexsup.c:1339 +#: lexsup.c:1395 #, c-format msgid "%s: supported emulations: " msgstr "" -#: lexsup.c:1344 +#: lexsup.c:1400 #, c-format msgid "%s: emulation specific options:\n" msgstr "" -#: lexsup.c:1348 +#: lexsup.c:1404 #, c-format msgid "Report bugs to %s\n" msgstr "" @@ -1683,67 +1774,68 @@ msgstr "" msgid "%P%F: unknown format type %s\n" msgstr "" -#: pe-dll.c:301 +#: pe-dll.c:304 #, c-format msgid "%XUnsupported PEI architecture: %s\n" msgstr "" -#: pe-dll.c:650 +#: pe-dll.c:653 #, c-format msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n" msgstr "" -#: pe-dll.c:657 +#: pe-dll.c:660 #, c-format msgid "Warning, duplicate EXPORT: %s\n" msgstr "" -#: pe-dll.c:723 +#: pe-dll.c:726 #, c-format msgid "%XCannot export %s: symbol not defined\n" msgstr "" -#: pe-dll.c:729 +#: pe-dll.c:732 #, c-format msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n" msgstr "" -#: pe-dll.c:736 +#: pe-dll.c:739 #, c-format msgid "%XCannot export %s: symbol not found\n" msgstr "" -#: pe-dll.c:848 +#: pe-dll.c:851 #, c-format msgid "%XError, ordinal used twice: %d (%s vs %s)\n" msgstr "" -#: pe-dll.c:1165 +#: pe-dll.c:1173 #, c-format msgid "%XError: %d-bit reloc in dll\n" msgstr "" -#: pe-dll.c:1296 +#: pe-dll.c:1304 #, c-format msgid "%s: Can't open output def file %s\n" msgstr "" -#: pe-dll.c:1439 +#: pe-dll.c:1447 +#, c-format msgid "; no contents available\n" msgstr "" -#: pe-dll.c:2203 +#: pe-dll.c:2212 msgid "" "%C: variable '%T' can't be auto-imported. Please read the documentation for " "ld's --enable-auto-import for details.\n" msgstr "" -#: pe-dll.c:2233 +#: pe-dll.c:2242 #, c-format msgid "%XCan't open .lib file: %s\n" msgstr "" -#: pe-dll.c:2238 +#: pe-dll.c:2247 #, c-format msgid "Creating library file: %s\n" msgstr "" diff --git a/ld/po/sv.po b/ld/po/sv.po index 63008b2..4c17a25 100644 --- a/ld/po/sv.po +++ b/ld/po/sv.po @@ -1,166 +1,166 @@ # Swedish messages for ld. -# Copyright (C) 2001, 2002 Free Software Foundation, Inc. -# Christian Rose <menthos@menthos.com>, 2001, 2002. +# Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. +# Christian Rose <menthos@menthos.com>, 2001, 2002, 2004. # msgid "" msgstr "" -"Project-Id-Version: ld 2.12.91\n" -"POT-Creation-Date: 2002-07-23 15:58-0400\n" -"PO-Revision-Date: 2002-07-24 12:31+0200\n" +"Project-Id-Version: ld 2.14rel030712\n" +"POT-Creation-Date: 2003-07-11 13:58+0930\n" +"PO-Revision-Date: 2004-03-22 15:32+0100\n" "Last-Translator: Christian Rose <menthos@menthos.com>\n" "Language-Team: Swedish <sv@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" -#: emultempl/armcoff.em:71 +#: emultempl/armcoff.em:72 msgid " --support-old-code Support interworking with old code\n" msgstr " --support-old-code Stöd interaktion med gammal kod\n" -#: emultempl/armcoff.em:72 +#: emultempl/armcoff.em:73 msgid " --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n" msgstr "" " --thumb-entry=<sym> Ställ in ingångspunkten till att vara tumsymbolen\n" " <sym>\n" -#: emultempl/armcoff.em:141 +#: emultempl/armcoff.em:121 #, c-format msgid "Errors encountered processing file %s" msgstr "Fel inträffade vid bearbetning av filen %s" -#: emultempl/armcoff.em:207 emultempl/pe.em:1422 +#: emultempl/armcoff.em:188 emultempl/pe.em:1396 msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n" msgstr "%P: varning: \"--thumb-entry %s\" åsidosätter \"-e %s\"\n" -#: emultempl/armcoff.em:212 emultempl/pe.em:1427 +#: emultempl/armcoff.em:193 emultempl/pe.em:1401 msgid "%P: warning: connot find thumb start symbol %s\n" msgstr "%P: varning: kan inte hitta tumstartsymbol %s\n" -#: emultempl/pe.em:317 +#: emultempl/pe.em:300 msgid " --base_file <basefile> Generate a base file for relocatable DLLs\n" msgstr "" " --base_file <basfil> Generera en basfil för\n" " omlokaliseringsbara DLL:er\n" -#: emultempl/pe.em:318 +#: emultempl/pe.em:301 msgid " --dll Set image base to the default for DLLs\n" msgstr "" " --dll Ställ in bildbas till standard för\n" " DLL:er\n" -#: emultempl/pe.em:319 +#: emultempl/pe.em:302 msgid " --file-alignment <size> Set file alignment\n" msgstr " --file-alignment <storlek> Ställ in filjustering\n" -#: emultempl/pe.em:320 +#: emultempl/pe.em:303 msgid " --heap <size> Set initial size of the heap\n" msgstr " --heap <storlek> Ställ in initial storlek på högen\n" -#: emultempl/pe.em:321 +#: emultempl/pe.em:304 msgid " --image-base <address> Set start address of the executable\n" msgstr " --image-base <adress> Ställ in startadressen för det körbara\n" -#: emultempl/pe.em:322 +#: emultempl/pe.em:305 msgid " --major-image-version <number> Set version number of the executable\n" msgstr " --major-image-version <nummer> Ställ in versionsnummer för det körbara\n" -#: emultempl/pe.em:323 +#: emultempl/pe.em:306 msgid " --major-os-version <number> Set minimum required OS version\n" msgstr " --major-os-version <nummer> Ställ in lägsta nödvändiga OS-version\n" -#: emultempl/pe.em:324 +#: emultempl/pe.em:307 msgid " --major-subsystem-version <number> Set minimum required OS subsystem version\n" msgstr "" " --major-subsystem-version <nummer> Ställ in lägsta nödvändiga\n" " OS-undersystemsversion\n" -#: emultempl/pe.em:325 +#: emultempl/pe.em:308 msgid " --minor-image-version <number> Set revision number of the executable\n" msgstr "" " --minor-image-version <nummer> Ställ in underrevisionsnummer för\n" " det körbara\n" -#: emultempl/pe.em:326 +#: emultempl/pe.em:309 msgid " --minor-os-version <number> Set minimum required OS revision\n" msgstr " --minor-os-version <nummer> Ställ in lägsta nödvändiga OS-revision\n" -#: emultempl/pe.em:327 +#: emultempl/pe.em:310 msgid " --minor-subsystem-version <number> Set minimum required OS subsystem revision\n" msgstr "" " --minor-subsystem-version <nummer> Ställ in lägsta nödvändiga\n" " OS-undersystemsrevision\n" -#: emultempl/pe.em:328 +#: emultempl/pe.em:311 msgid " --section-alignment <size> Set section alignment\n" msgstr " --section-alignment <storlek> Ställ in sektionsjustering\n" -#: emultempl/pe.em:329 +#: emultempl/pe.em:312 msgid " --stack <size> Set size of the initial stack\n" msgstr " --stack <storlek> Ställ in storlek på initiala stacken\n" -#: emultempl/pe.em:330 +#: emultempl/pe.em:313 msgid " --subsystem <name>[:<version>] Set required OS subsystem [& version]\n" msgstr "" " --subsystem <namn>[:<version>] Ställ in nödvändigt OS-undersystem\n" " [och nödvändig version]\n" -#: emultempl/pe.em:331 +#: emultempl/pe.em:314 msgid " --support-old-code Support interworking with old code\n" msgstr " --support-old-code Stöd interaktion med gammal kod\n" -#: emultempl/pe.em:332 +#: emultempl/pe.em:315 msgid " --thumb-entry=<symbol> Set the entry point to be Thumb <symbol>\n" msgstr "" " --thumb-entry=<symbol> Ställ in ingångspunkten till att\n" " vara tummen <symbol>\n" -#: emultempl/pe.em:334 +#: emultempl/pe.em:317 msgid " --add-stdcall-alias Export symbols with and without @nn\n" msgstr " --add-stdcall-alias Exportera symboler med och utan @nn\n" -#: emultempl/pe.em:335 +#: emultempl/pe.em:318 msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n" msgstr " --disable-stdcall-fixup Länka inte _sym till _sym@nn\n" -#: emultempl/pe.em:336 +#: emultempl/pe.em:319 msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n" msgstr " --enable-stdcall-fixup Länka _sym till _sym@nn utan varningar\n" -#: emultempl/pe.em:337 +#: emultempl/pe.em:320 msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n" msgstr "" " --exclude-symbols sym,sym,... Exkludera symboler från automatisk\n" " export\n" -#: emultempl/pe.em:338 +#: emultempl/pe.em:321 msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n" msgstr "" " --exclude-libs bibl,bibl,... Exkludera bibliotek från automatisk\n" " export\n" -#: emultempl/pe.em:339 +#: emultempl/pe.em:322 msgid " --export-all-symbols Automatically export all globals to DLL\n" msgstr "" " --export-all-symbols Exportera automatiskt alla symboler\n" " till DLL\n" -#: emultempl/pe.em:340 +#: emultempl/pe.em:323 msgid " --kill-at Remove @nn from exported symbols\n" msgstr " --kill-at Ta bort @nn från exporterade symboler\n" -#: emultempl/pe.em:341 +#: emultempl/pe.em:324 msgid " --out-implib <file> Generate import library\n" msgstr " --out-implib <fil> Generera importbibliotek\n" -#: emultempl/pe.em:342 +#: emultempl/pe.em:325 msgid " --output-def <file> Generate a .DEF file for the built DLL\n" msgstr " --output-def <fil> Generera en .DEF-fil för byggd DLL\n" -#: emultempl/pe.em:343 +#: emultempl/pe.em:326 msgid " --warn-duplicate-exports Warn about duplicate exports.\n" msgstr " --warn-duplicate-exports Varna för dubbla exporter.\n" -#: emultempl/pe.em:344 +#: emultempl/pe.em:327 msgid "" " --compat-implib Create backward compatible import libs;\n" " create __imp_<SYMBOL> as well.\n" @@ -168,7 +168,7 @@ msgstr "" " --compat-implib Skapa bakåtkompatibla importbibliotek;\n" " och skapa även __imp_<SYMBOL>.\n" -#: emultempl/pe.em:346 +#: emultempl/pe.em:329 msgid "" " --enable-auto-image-base Automatically choose image base for DLLs\n" " unless user specifies one\n" @@ -176,37 +176,57 @@ msgstr "" " --enable-auto-image-base Välj automatiskt bildbas för DLL:er\n" " såvida inte användaren anger en\n" -#: emultempl/pe.em:348 +#: emultempl/pe.em:331 msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n" msgstr "" " --disable-auto-image-base Välj inte bildbas automatiskt\n" " (standard).\n" -#: emultempl/pe.em:349 +#: emultempl/pe.em:332 msgid "" -" --dll-search-prefix=<string> When linking dynamically to a dll without an\n" -" importlib, use <string><basename>.dll \n" +" --dll-search-prefix=<string> When linking dynamically to a dll without\n" +" an importlib, use <string><basename>.dll\n" " in preference to lib<basename>.dll \n" msgstr "" " --dll-search-prefix=<sträng> Använd <sträng><basnamn>.dll istället\n" " för lib<basnamn>.dll vid dynamisk\n" " länkning utan ett importbibliotek\n" -#: emultempl/pe.em:352 +#: emultempl/pe.em:335 msgid "" -" --enable-auto-import Do sophistcated linking of _sym to \n" +" --enable-auto-import Do sophistcated linking of _sym to\n" " __imp_sym for DATA references\n" msgstr "" " --enable-auto-import Utför sofistikerad länkning av _sym till\n" " __imp_sym för DATA-referenser\n" -#: emultempl/pe.em:354 +#: emultempl/pe.em:337 msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n" msgstr "" " --disable-auto-import Importera inte DATA-objekt från DLL:er\n" " automatiskt\n" -#: emultempl/pe.em:355 +#: emultempl/pe.em:338 +msgid "" +" --enable-runtime-pseudo-reloc Work around auto-import limitations by\n" +" adding pseudo-relocations resolved at\n" +" runtime.\n" +msgstr "" +" --enable-runtime-pseudo-reloc Kringgå begränsningar i automatisk\n" +" import genom att lägga till\n" +" pseudoomlokaliseringar som löses under\n" +" körtid.\n" + +#: emultempl/pe.em:341 +msgid "" +" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for\n" +" auto-imported DATA.\n" +msgstr "" +" --disable-runtime-pseudo-reloc Lägg inte till pseudoomlokaliseringar\n" +" för automatisk importerad DATA under\n" +" körtid.\n" + +#: emultempl/pe.em:343 msgid "" " --enable-extra-pe-debug Enable verbose debug output when building\n" " or linking to DLLs (esp. auto-import)\n" @@ -215,85 +235,82 @@ msgstr "" " bygge av eller länkning till DLL:er\n" " (särskilt automatisk import)\n" -#: emultempl/pe.em:424 +#: emultempl/pe.em:412 msgid "%P: warning: bad version number in -subsystem option\n" msgstr "%P: varning: felaktigt nummer i flaggan -subsystem\n" -#: emultempl/pe.em:460 +#: emultempl/pe.em:448 msgid "%P%F: invalid subsystem type %s\n" msgstr "%P%F: ogiltig typ av undersystem %s\n" -#: emultempl/pe.em:475 +#: emultempl/pe.em:460 msgid "%P%F: invalid hex number for PE parameter '%s'\n" msgstr "%P%F: ogiltigt hexadecimalt tal för PE-parametern \"%s\"\n" -#: emultempl/pe.em:493 +#: emultempl/pe.em:477 msgid "%P%F: strange hex info for PE parameter '%s'\n" msgstr "%P%F: konstig hexadecimal information för PE-parametern \"%s\"\n" -#: emultempl/pe.em:532 +#: emultempl/pe.em:494 #, c-format msgid "%s: Can't open base file %s\n" msgstr "%s: Kan inte öppna basfilen %s\n" -#: emultempl/pe.em:738 +#: emultempl/pe.em:707 msgid "%P: warning, file alignment > section alignment.\n" msgstr "%P: varning, filjusteringen > sektionsjusteringen.\n" -#: emultempl/pe.em:822 emultempl/pe.em:848 +#: emultempl/pe.em:794 emultempl/pe.em:821 #, c-format msgid "Warning: resolving %s by linking to %s\n" msgstr "Varning: löser upp %s genom att länka till %s\n" -#: emultempl/pe.em:827 emultempl/pe.em:853 +#: emultempl/pe.em:799 emultempl/pe.em:826 msgid "Use --enable-stdcall-fixup to disable these warnings\n" msgstr "Använd --enable-stdcall-fixup för att stänga av dessa varningar\n" -#: emultempl/pe.em:828 emultempl/pe.em:854 +#: emultempl/pe.em:800 emultempl/pe.em:827 msgid "Use --disable-stdcall-fixup to disable these fixups\n" msgstr "Använd --disable-stdcall-fixup för att stänga av dessa korrigeringar\n" -#: emultempl/pe.em:879 +#: emultempl/pe.em:846 +#, c-format msgid "%C: Cannot get section contents - auto-import exception\n" msgstr "%C: Kan inte få tag i sektionsinnehåll - undantag i automatisk import\n" -#: emultempl/pe.em:887 -msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n" -msgstr "%C: variabeln \"%T\" kan inte importeras automatiskt. Läs dokumentationen för ld:s --enable-auto-import för detaljer.\n" - -#: emultempl/pe.em:916 +#: emultempl/pe.em:883 #, c-format msgid "Info: resolving %s by linking to %s (auto-import)\n" msgstr "Info: löser upp %s genom att länka till %s (automatisk import)\n" -#: emultempl/pe.em:997 +#: emultempl/pe.em:954 msgid "%F%P: PE operations on non PE file.\n" msgstr "%F%P: PE-operationer på fil som inte är PE.\n" -#: emultempl/pe.em:1226 +#: emultempl/pe.em:1188 #, c-format msgid "Errors encountered processing file %s\n" msgstr "Fel uppstod vid behandling av filen %s\n" -#: emultempl/pe.em:1249 +#: emultempl/pe.em:1211 #, c-format msgid "Errors encountered processing file %s for interworking" msgstr "Fel uppstod vid behandling av filen %s för interaktion" -#: emultempl/pe.em:1305 ldlang.c:2065 ldlang.c:4608 ldlang.c:4641 -#: ldmain.c:1061 +#: emultempl/pe.em:1273 ldlang.c:1904 ldlang.c:4397 ldlang.c:4428 +#: ldmain.c:1122 msgid "%P%F: bfd_link_hash_lookup failed: %E\n" msgstr "%P%F: bfd_link_hash_lookup misslyckades: %E\n" -#: ldcref.c:158 +#: ldcref.c:153 msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n" msgstr "%X%P: bfd_hash_table_init av korsreferenstabellen misslyckades: %E\n" -#: ldcref.c:164 +#: ldcref.c:159 msgid "%X%P: cref_hash_lookup failed: %E\n" msgstr "%X%P: cref_hash_lookup misslyckades: %E\n" -#: ldcref.c:235 +#: ldcref.c:225 msgid "" "\n" "Cross Reference Table\n" @@ -303,31 +320,31 @@ msgstr "" "Korsreferenstabell\n" "\n" -#: ldcref.c:236 +#: ldcref.c:226 msgid "Symbol" msgstr "Symbol" -#: ldcref.c:244 +#: ldcref.c:234 msgid "File\n" msgstr "Fil\n" -#: ldcref.c:248 +#: ldcref.c:238 msgid "No symbols\n" msgstr "Inga symboler\n" -#: ldcref.c:400 +#: ldcref.c:384 msgid "%P: symbol `%T' missing from main hash table\n" msgstr "%P: symbolen \"%T\" saknas från hastabellen\n" -#: ldcref.c:465 +#: ldcref.c:448 msgid "%B%F: could not read symbols; %E\n" msgstr "%B%F: kunde inte läsa symboler; %E\n" -#: ldcref.c:469 ldmain.c:1127 ldmain.c:1131 +#: ldcref.c:452 ldmain.c:1187 ldmain.c:1191 msgid "%B%F: could not read symbols: %E\n" msgstr "%B%F: kunde inte läsa symboler: %E\n" -#: ldcref.c:537 ldcref.c:544 ldmain.c:1177 ldmain.c:1184 +#: ldcref.c:517 ldcref.c:524 ldmain.c:1234 ldmain.c:1241 msgid "%B%F: could not read relocs: %E\n" msgstr "%B%F: kunde inte läsa omlokaliseringar: %E\n" @@ -335,27 +352,27 @@ msgstr "%B%F: kunde inte läsa omlokaliseringar: %E\n" #. in OUTSECNAME. This reloc is from a section which is #. mapped into a section from which references to OUTSECNAME #. are prohibited. We must report an error. -#: ldcref.c:563 +#: ldcref.c:543 msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n" msgstr "%X%C: förbjuden korsreferens från %s till \"%T\" i %s\n" -#: ldctor.c:88 +#: ldctor.c:84 msgid "%P%X: Different relocs used in set %s\n" msgstr "%P%X: Olika omlokaliseringar använda i gruppen %s\n" -#: ldctor.c:106 +#: ldctor.c:102 msgid "%P%X: Different object file formats composing set %s\n" msgstr "%P%X: Olika objektfilformat utgör gruppen %s\n" -#: ldctor.c:288 ldctor.c:302 +#: ldctor.c:281 ldctor.c:295 msgid "%P%X: %s does not support reloc %s for set %s\n" msgstr "%P%X: %s stöder inte omlokaliseringen %s för gruppen %s\n" -#: ldctor.c:323 +#: ldctor.c:316 msgid "%P%X: Unsupported size %d for set %s\n" msgstr "%P%X: Storleken %d för gruppen %s stöds inte\n" -#: ldctor.c:344 +#: ldctor.c:337 msgid "" "\n" "Set Symbol\n" @@ -365,135 +382,150 @@ msgstr "" "Grupp Symbol\n" "\n" -#: ldemul.c:225 +#: ldemul.c:247 +#, c-format msgid "%S SYSLIB ignored\n" msgstr "%S SYSLIB ignorerades\n" -#: ldemul.c:232 +#: ldemul.c:254 +#, c-format msgid "%S HLL ignored\n" msgstr "%S HLL ignorerades\n" -#: ldemul.c:253 +#: ldemul.c:275 msgid "%P: unrecognised emulation mode: %s\n" msgstr "%P: okänt emuleringsläge: %s\n" -#: ldemul.c:254 +#: ldemul.c:276 msgid "Supported emulations: " msgstr "Emuleringar som stöds: " -#: ldemul.c:298 +#: ldemul.c:320 msgid " no emulation specific options.\n" msgstr " inga emuleringsspecifika flaggor.\n" -#: ldexp.c:174 +#: ldexp.c:148 msgid "%F%P: %s uses undefined section %s\n" msgstr "%F%P: %s använder odefinierad sektion %s\n" -#: ldexp.c:176 +#: ldexp.c:150 msgid "%F%P: %s forward reference of section %s\n" msgstr "%F%P: %s framåtreferens av sektionen %s\n" -#: ldexp.c:304 +#: ldexp.c:355 +#, c-format msgid "%F%S %% by zero\n" msgstr "%F%S %% med noll\n" -#: ldexp.c:311 +#: ldexp.c:362 +#, c-format msgid "%F%S / by zero\n" msgstr "%F%S / med noll\n" -#: ldexp.c:463 +#: ldexp.c:533 +#, c-format msgid "%X%S: unresolvable symbol `%s' referenced in expression\n" msgstr "%X%S: oupplösningsbara symbolen \"%s\" refererades i uttrycket\n" -#: ldexp.c:483 +#: ldexp.c:553 +#, c-format msgid "%F%S: undefined symbol `%s' referenced in expression\n" msgstr "%F%S: odefinierade symbolen \"%s\" refererades i uttrycket\n" -#: ldexp.c:685 +#: ldexp.c:677 +#, c-format msgid "%F%S can not PROVIDE assignment to location counter\n" msgstr "%F%S kan inte TILLHANDAHÅLLA tilldelning till platsräknare\n" -#: ldexp.c:695 +#: ldexp.c:687 +#, c-format msgid "%F%S invalid assignment to location counter\n" msgstr "%F%S ogiltig tilldelning till platsräknare\n" -#: ldexp.c:699 +#: ldexp.c:691 +#, c-format msgid "%F%S assignment to location counter invalid outside of SECTION\n" msgstr "%F%S tilldelning till platsräknare som är ogiltig utanför SEKTION\n" -#: ldexp.c:708 +#: ldexp.c:700 msgid "%F%S cannot move location counter backwards (from %V to %V)\n" msgstr "%F%S kan inte flytta platsräknare bakåt (från %V till %V)\n" -#: ldexp.c:735 +#: ldexp.c:727 msgid "%P%F:%s: hash creation failed\n" msgstr "%P%F:%s: skapande av hash misslyckades\n" -#: ldexp.c:1037 ldexp.c:1071 +#: ldexp.c:1003 ldexp.c:1035 +#, c-format msgid "%F%S nonconstant expression for %s\n" msgstr "%F%S ickekonstant uttryck för %s\n" -#: ldexp.c:1126 +#: ldexp.c:1089 +#, c-format msgid "%F%S non constant expression for %s\n" msgstr "%F%S ickekonstant uttryck för %s\n" -#: ldfile.c:105 +#: ldfile.c:144 #, c-format msgid "attempt to open %s failed\n" msgstr "försök att öppna %s misslyckades\n" -#: ldfile.c:107 +#: ldfile.c:146 #, c-format msgid "attempt to open %s succeeded\n" msgstr "försök att öppna %s lyckades\n" -#: ldfile.c:113 +#: ldfile.c:152 msgid "%F%P: invalid BFD target `%s'\n" msgstr "%F%P: ogiltigt BFD-mål \"%s\"\n" -#: ldfile.c:142 +#: ldfile.c:258 ldfile.c:275 msgid "%P: skipping incompatible %s when searching for %s\n" msgstr "%P: hoppar över inkompatibel %s vid sökning av %s\n" -#: ldfile.c:234 +#: ldfile.c:377 msgid "%F%P: cannot open %s for %s: %E\n" msgstr "%F%P: kan inte öppna %s för %s: %E\n" -#: ldfile.c:237 +#: ldfile.c:380 msgid "%F%P: cannot open %s: %E\n" msgstr "%F%P: kan inte öppna %s: %E\n" -#: ldfile.c:267 +#: ldfile.c:410 +msgid "%F%P: cannot find %s inside %s\n" +msgstr "%F%P: kan inte hitta %s inuti %s\n" + +#: ldfile.c:413 msgid "%F%P: cannot find %s\n" msgstr "%F%P: kan inte hitta %s\n" -#: ldfile.c:286 ldfile.c:302 +#: ldfile.c:430 ldfile.c:446 #, c-format msgid "cannot find script file %s\n" msgstr "kan inte hitta skriptfilen %s\n" -#: ldfile.c:288 ldfile.c:304 +#: ldfile.c:432 ldfile.c:448 #, c-format msgid "opened script file %s\n" msgstr "öppnade skriptfilen %s\n" -#: ldfile.c:353 +#: ldfile.c:492 msgid "%P%F: cannot open linker script file %s: %E\n" msgstr "%P%F: kan inte öppna länkskriptfilen %s: %E\n" -#: ldfile.c:391 +#: ldfile.c:529 msgid "%P%F: unknown architecture: %s\n" msgstr "%P%F: okänd arkitektur: %s\n" -#: ldfile.c:407 +#: ldfile.c:543 msgid "%P%F: target architecture respecified\n" msgstr "%P%F: målarkitekturen specifierades om\n" -#: ldfile.c:461 +#: ldfile.c:594 msgid "%P%F: cannot represent machine `%s'\n" msgstr "%P%F: kan inte representera maskinen \"%s\"\n" -#: ldlang.c:784 +#: ldlang.c:640 msgid "" "\n" "Memory Configuration\n" @@ -503,23 +535,23 @@ msgstr "" "Minneskonfiguration\n" "\n" -#: ldlang.c:786 +#: ldlang.c:642 msgid "Name" msgstr "Namn" -#: ldlang.c:786 +#: ldlang.c:642 msgid "Origin" msgstr "Början" -#: ldlang.c:786 +#: ldlang.c:642 msgid "Length" msgstr "Längd" -#: ldlang.c:786 +#: ldlang.c:642 msgid "Attributes" msgstr "Attribut" -#: ldlang.c:828 +#: ldlang.c:682 msgid "" "\n" "Linker script and memory map\n" @@ -529,161 +561,166 @@ msgstr "" "Länkskript och minnestabell\n" "\n" -#: ldlang.c:845 +#: ldlang.c:698 msgid "%P%F: Illegal use of `%s' section\n" msgstr "%P%F: Otillåten användning av sektionen \"%s\"\n" -#: ldlang.c:855 +#: ldlang.c:707 msgid "%P%F: output format %s cannot represent section called %s\n" msgstr "%P%F: utdataformatet %s kan inte representera sektionen kallad %s\n" -#: ldlang.c:1016 +#: ldlang.c:867 msgid "%P: %B: warning: ignoring duplicate section `%s'\n" msgstr "%P: %B: varning: ignorerar dubbel sektion \"%s\"\n" -#: ldlang.c:1019 +#: ldlang.c:870 msgid "%P: %B: warning: ignoring duplicate `%s' section symbol `%s'\n" msgstr "%P: %B: varning: ignorerar dubbla \"%s\"-sektionssymbolen \"%s\"\n" -#: ldlang.c:1033 +#: ldlang.c:884 msgid "%P: %B: warning: duplicate section `%s' has different size\n" msgstr "%P: %B: varning: dubbla sektionen \"%s\" har annan storlek\n" -#: ldlang.c:1084 +#: ldlang.c:936 msgid "%P%F: Failed to create hash table\n" msgstr "%P%F: Misslyckades med att skapa hashtabell\n" -#: ldlang.c:1503 +#: ldlang.c:1351 msgid "%B: file not recognized: %E\n" msgstr "%B: filen inte igenkänd: %E\n" -#: ldlang.c:1504 +#: ldlang.c:1352 msgid "%B: matching formats:" msgstr "%B: matchande format:" -#: ldlang.c:1511 +#: ldlang.c:1359 msgid "%F%B: file not recognized: %E\n" msgstr "%F%B: filen inte igenkänd: %E\n" -#: ldlang.c:1567 +#: ldlang.c:1418 msgid "%F%B: member %B in archive is not an object\n" msgstr "%F%B: medlem %B i arkivet är inte ett objekt\n" -#: ldlang.c:1578 ldlang.c:1592 +#: ldlang.c:1429 ldlang.c:1443 msgid "%F%B: could not read symbols: %E\n" msgstr "%F%B: kunde inte läsa symboler: %E\n" -#: ldlang.c:1853 +#: ldlang.c:1698 msgid "%P: warning: could not find any targets that match endianness requirement\n" msgstr "%P: varning: kunde inte hitta några mål som matchar kravet på endianess\n" -#: ldlang.c:1866 +#: ldlang.c:1711 msgid "%P%F: target %s not found\n" msgstr "%P%F: målet %s hittades inte\n" -#: ldlang.c:1868 +#: ldlang.c:1713 msgid "%P%F: cannot open output file %s: %E\n" msgstr "%P%F: kan inte öppna utdatafilen %s: %E\n" -#: ldlang.c:1878 +#: ldlang.c:1723 msgid "%P%F:%s: can not make object file: %E\n" msgstr "%P%F:%s: kan inte skapa objektfilen: %E\n" -#: ldlang.c:1882 +#: ldlang.c:1727 msgid "%P%F:%s: can not set architecture: %E\n" msgstr "%P%F:%s: kan inte ställa in arkitektur: %E\n" -#: ldlang.c:1886 +#: ldlang.c:1731 msgid "%P%F: can not create link hash table: %E\n" msgstr "%P%F: kan inte skapa hashtabell över länkar: %E\n" -#: ldlang.c:2235 +#: ldlang.c:2069 msgid " load address 0x%V" msgstr " inläsningsadress 0x%V" -#: ldlang.c:2375 +#: ldlang.c:2204 msgid "%W (size before relaxing)\n" msgstr "%W (storlek innan avslappning)\n" -#: ldlang.c:2462 +#: ldlang.c:2288 #, c-format msgid "Address of section %s set to " msgstr "Adressen på sektionen %s ställd till " -#: ldlang.c:2623 +#: ldlang.c:2443 #, c-format msgid "Fail with %d\n" msgstr "Misslyckas med %d\n" -#: ldlang.c:2868 +#: ldlang.c:2683 msgid "%X%P: section %s [%V -> %V] overlaps section %s [%V -> %V]\n" msgstr "%X%P: sektionen %s [%V -> %V] överlappar med sektionen %s [%V -> %V]\n" -#: ldlang.c:2897 +#: ldlang.c:2711 msgid "%X%P: address 0x%v of %B section %s is not within region %s\n" msgstr "%X%P: adressen 0x%v i %B-sektionen %s är inte inom området %s\n" -#: ldlang.c:2905 +#: ldlang.c:2719 msgid "%X%P: region %s is full (%B section %s)\n" msgstr "%X%P: området %s är fullt (%B-sektion %s)\n" -#: ldlang.c:2955 +#: ldlang.c:2770 msgid "%P%X: Internal error on COFF shared library section %s\n" msgstr "%P%X: Internt fel i delat COFF-bibliotek sektion %s\n" -#: ldlang.c:2999 -msgid "%P: warning: no memory region specified for section `%s'\n" -msgstr "%P: varning: inget minnesområde angivet för sektionen \"%s\"\n" +#: ldlang.c:2826 +msgid "%P%F: error: no memory region specified for loadable section `%s'\n" +msgstr "%P%F: fel: inget minnesområde angivet för inläsbara sektionen \"%s\"\n" -#: ldlang.c:3014 +#: ldlang.c:2830 +msgid "%P: warning: no memory region specified for loadable section `%s'\n" +msgstr "%P: varning: inget minnesområde angivet för inläsbara sektionen \"%s\"\n" + +#: ldlang.c:2846 msgid "%P: warning: changing start of section %s by %u bytes\n" msgstr "%P: varning: ändrar start på sektionen %s med %u byte\n" -#: ldlang.c:3028 +#: ldlang.c:2859 +#, c-format msgid "%F%S: non constant address expression for section %s\n" msgstr "%F%S: ickekonstant adressuttryck för sektionen %s\n" -#: ldlang.c:3203 +#: ldlang.c:3036 msgid "%P%F: can't relax section: %E\n" msgstr "%P%F: kan inte slappna av sektion: %E\n" -#: ldlang.c:3398 +#: ldlang.c:3232 msgid "%F%P: invalid data statement\n" msgstr "%F%P: ogiltig datasats\n" -#: ldlang.c:3435 +#: ldlang.c:3269 msgid "%F%P: invalid reloc statement\n" msgstr "%F%P: ogiltig omlokaliseringssats\n" -#: ldlang.c:3574 +#: ldlang.c:3408 msgid "%P%F:%s: can't set start address\n" msgstr "%P%F:%s: kan inte ställa in startadress\n" -#: ldlang.c:3587 ldlang.c:3605 +#: ldlang.c:3421 ldlang.c:3439 msgid "%P%F: can't set start address\n" msgstr "%P%F: kan inte ställa in startadress\n" -#: ldlang.c:3599 +#: ldlang.c:3433 msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n" msgstr "%P: varning: kan inte hitta ingångssymbolen %s; använder som standard %V\n" -#: ldlang.c:3610 +#: ldlang.c:3444 msgid "%P: warning: cannot find entry symbol %s; not setting start address\n" msgstr "%P: varning: kan inte hitta ingångssymbolen %s; ställer inte in startadress\n" -#: ldlang.c:3660 +#: ldlang.c:3488 msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n" msgstr "%P%F: Omlokaliseringsbar länkning med omlänkningar från formatet %s (%B) till formatet %s (%B) stöds inte\n" -#: ldlang.c:3669 +#: ldlang.c:3497 msgid "%P: warning: %s architecture of input file `%B' is incompatible with %s output\n" msgstr "%P: varning: %s-arkitekturen i indatafilen \"%B\" är inkompatibel med %s-utdata\n" -#: ldlang.c:3690 +#: ldlang.c:3518 msgid "%E%X: failed to merge target specific data of file %B\n" msgstr "%E%X: misslyckades med att slå samman målspecifik data i filen %B\n" -#: ldlang.c:3779 +#: ldlang.c:3604 msgid "" "\n" "Allocating common symbols\n" @@ -691,7 +728,7 @@ msgstr "" "\n" "Allokerar gemensamma symboler\n" -#: ldlang.c:3780 +#: ldlang.c:3605 msgid "" "Common symbol size file\n" "\n" @@ -702,158 +739,158 @@ msgstr "" #. This message happens when using the #. svr3.ifile linker script, so I have #. disabled it. -#: ldlang.c:3858 +#: ldlang.c:3681 msgid "%P: no [COMMON] command, defaulting to .bss\n" msgstr "%P: inget [COMMON]-kommando, använder standardalternativet .bss\n" -#: ldlang.c:3917 +#: ldlang.c:3737 msgid "%P%F: invalid syntax in flags\n" msgstr "%P%F: ogiltig syntax i flaggor\n" -#: ldlang.c:4532 +#: ldlang.c:4325 msgid "%P%Fmultiple STARTUP files\n" msgstr "%P%Fflera samtidiga STARTUP-filer\n" -#: ldlang.c:4575 +#: ldlang.c:4368 msgid "%X%P:%S: section has both a load address and a load region\n" msgstr "%X%P:%S: sektionen har både en inläsningsadress och ett minnesinläsningsområde\n" -#: ldlang.c:4825 +#: ldlang.c:4608 msgid "%F%P: bfd_record_phdr failed: %E\n" msgstr "%F%P: bfd_record_phdr misslyckades: %E\n" -#: ldlang.c:4844 +#: ldlang.c:4627 msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n" msgstr "%X%P: sektionen \"%s\" är tilldelad till ickexisterande phvd \"%s\"\n" -#: ldlang.c:5143 +#: ldlang.c:4919 msgid "%X%P: unknown language `%s' in version information\n" msgstr "%X%P: okänt språk i \"%s\" i versionsinformation\n" -#: ldlang.c:5195 +#: ldlang.c:4969 msgid "%X%P: anonymous version tag cannot be combined with other version tags\n" msgstr "%X%P: anonym versionstagg kan inte kombineras med andra versionstaggar\n" -#: ldlang.c:5202 +#: ldlang.c:4977 msgid "%X%P: duplicate version tag `%s'\n" msgstr "%X%P: dubbel versionstagg \"%s\"\n" -#: ldlang.c:5215 ldlang.c:5228 +#: ldlang.c:4990 ldlang.c:5003 msgid "%X%P: duplicate expression `%s' in version information\n" msgstr "%X%P: dubbelt uttryck \"%s\" i versionsinformation\n" -#: ldlang.c:5270 +#: ldlang.c:5043 msgid "%X%P: unable to find version dependency `%s'\n" msgstr "%X%P: kan inte hitta versionsberoende \"%s\"\n" -#: ldlang.c:5292 +#: ldlang.c:5065 msgid "%X%P: unable to read .exports section contents\n" msgstr "%X%P: kan inte läsa innehållet i .exports-sektionen\n" -#: ldmain.c:198 +#: ldmain.c:247 msgid "%X%P: can't set BFD default target to `%s': %E\n" msgstr "%X%P: kan inte ställa in BSD-standardmålet till \"%s\": %E\n" -#: ldmain.c:290 +#: ldmain.c:349 msgid "%P%F: -r and --mpc860c0 may not be used together\n" msgstr "%P%F: -r och --mpc860c0 kan inte användas tillsammans\n" -#: ldmain.c:292 +#: ldmain.c:351 msgid "%P%F: --relax and -r may not be used together\n" msgstr "%P%F: --relax och -r kan inte användas tillsammans\n" -#: ldmain.c:294 +#: ldmain.c:353 msgid "%P%F: -r and -shared may not be used together\n" msgstr "%P%F: -r och -shared kan inte användas tillsammans\n" -#: ldmain.c:300 +#: ldmain.c:359 msgid "%P%F: -F may not be used without -shared\n" msgstr "%P%F: -F kan inte användas utan -shared\n" -#: ldmain.c:302 +#: ldmain.c:361 msgid "%P%F: -f may not be used without -shared\n" msgstr "%P%F: -f kan inte användas utan -shared\n" -#: ldmain.c:341 +#: ldmain.c:403 msgid "using external linker script:" msgstr "använder externt länkskript:" -#: ldmain.c:343 +#: ldmain.c:405 msgid "using internal linker script:" msgstr "använder internt länkskript:" -#: ldmain.c:377 +#: ldmain.c:439 msgid "%P%F: no input files\n" msgstr "%P%F: inga indatafiler\n" -#: ldmain.c:382 +#: ldmain.c:443 msgid "%P: mode %s\n" msgstr "%P: läge %s\n" -#: ldmain.c:399 +#: ldmain.c:459 msgid "%P%F: cannot open map file %s: %E\n" msgstr "%P%F: kan inte öppna tabellfil %s: %E\n" -#: ldmain.c:432 +#: ldmain.c:489 msgid "%P: link errors found, deleting executable `%s'\n" msgstr "%P: länkfel hittades, tar bort den körbara filen \"%s\"\n" -#: ldmain.c:443 +#: ldmain.c:498 msgid "%F%B: final close failed: %E\n" msgstr "%F%B: avslutande stängning misslyckades: %E\n" -#: ldmain.c:467 +#: ldmain.c:524 msgid "%X%P: unable to open for source of copy `%s'\n" msgstr "%X%P: kan inte öppna för källkoden till kopian \"%s\"\n" -#: ldmain.c:469 +#: ldmain.c:527 msgid "%X%P: unable to open for destination of copy `%s'\n" msgstr "%X%P: kan inte öppna för mål av kopian \"%s\"\n" -#: ldmain.c:475 +#: ldmain.c:534 msgid "%P: Error writing file `%s'\n" msgstr "%P: Fel vid skrivning av filen \"%s\"\n" -#: ldmain.c:481 pe-dll.c:1463 +#: ldmain.c:539 pe-dll.c:1443 #, c-format msgid "%P: Error closing file `%s'\n" msgstr "%P: Fel vid stängning av filen \"%s\"\n" -#: ldmain.c:498 +#: ldmain.c:555 #, c-format msgid "%s: total time in link: %ld.%06ld\n" msgstr "%s: total tid i länkning: %ld.%06ld\n" -#: ldmain.c:501 +#: ldmain.c:558 #, c-format msgid "%s: data size %ld\n" msgstr "%s: datastorlek %ld\n" -#: ldmain.c:542 +#: ldmain.c:596 msgid "%P%F: missing argument to -m\n" msgstr "%P%F: argument saknas till -m\n" -#: ldmain.c:670 ldmain.c:691 ldmain.c:722 +#: ldmain.c:741 ldmain.c:759 ldmain.c:789 msgid "%P%F: bfd_hash_table_init failed: %E\n" msgstr "%P%F: bfd_hash_table_init misslyckades: %E\n" -#: ldmain.c:675 ldmain.c:694 +#: ldmain.c:745 ldmain.c:763 msgid "%P%F: bfd_hash_lookup failed: %E\n" msgstr "%P%F: bfd_hash_lookup misslyckades: %E\n" -#: ldmain.c:709 +#: ldmain.c:777 msgid "%X%P: error: duplicate retain-symbols-file\n" msgstr "%X%P: fel: dubbel retain-symbols-file\n" -#: ldmain.c:753 +#: ldmain.c:819 msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n" msgstr "%P%F: bfd_hash_lookup för ingång misslyckades: %E\n" -#: ldmain.c:758 +#: ldmain.c:824 msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n" msgstr "%P: \"-retain-symbols-file\" åsidosätter \"-s\" och \"-S\"\n" -#: ldmain.c:834 +#: ldmain.c:899 msgid "" "Archive member included because of file (symbol)\n" "\n" @@ -861,154 +898,155 @@ msgstr "" "Arkivmedlem inkluderad på grund av fil (symbol)\n" "\n" -#: ldmain.c:905 +#: ldmain.c:969 msgid "%X%C: multiple definition of `%T'\n" msgstr "%X%C: flera defintioner av \"%T\"\n" -#: ldmain.c:908 +#: ldmain.c:972 msgid "%D: first defined here\n" msgstr "%D: först definierad här\n" -#: ldmain.c:912 +#: ldmain.c:976 msgid "%P: Disabling relaxation: it will not work with multiple definitions\n" msgstr "%P: Stänger av avslappning: det kommer inte att fungera med flera definitioner\n" -#: ldmain.c:943 +#: ldmain.c:1006 msgid "%B: warning: definition of `%T' overriding common\n" msgstr "%B: varning: definitioner av \"%T\" åsidosätter gemensam\n" -#: ldmain.c:946 +#: ldmain.c:1009 msgid "%B: warning: common is here\n" msgstr "%B: varning: gemensam är här\n" -#: ldmain.c:953 +#: ldmain.c:1016 msgid "%B: warning: common of `%T' overridden by definition\n" msgstr "%B: varning: gemensam i \"%T\" åsidosattes av definition\n" -#: ldmain.c:956 +#: ldmain.c:1019 msgid "%B: warning: defined here\n" msgstr "%B: varning: definierad här\n" -#: ldmain.c:963 +#: ldmain.c:1026 msgid "%B: warning: common of `%T' overridden by larger common\n" msgstr "%B: varning: gemensam i \"%T\" åsidosattes av större gemensam\n" -#: ldmain.c:966 +#: ldmain.c:1029 msgid "%B: warning: larger common is here\n" msgstr "%B: varning: större gemensam är här\n" -#: ldmain.c:970 +#: ldmain.c:1033 msgid "%B: warning: common of `%T' overriding smaller common\n" msgstr "%B: varning: gemensam i \"%T\" åsidosätter mindre gemensam\n" -#: ldmain.c:973 +#: ldmain.c:1036 msgid "%B: warning: smaller common is here\n" msgstr "%B: varning: mindre gemensam är här\n" -#: ldmain.c:977 +#: ldmain.c:1040 msgid "%B: warning: multiple common of `%T'\n" msgstr "%B: varning: flera gemensamma i \"%T\"\n" -#: ldmain.c:979 +#: ldmain.c:1042 msgid "%B: warning: previous common is here\n" msgstr "%B: varning: föregående gemensam är här\n" -#: ldmain.c:1000 ldmain.c:1039 +#: ldmain.c:1062 ldmain.c:1100 msgid "%P: warning: global constructor %s used\n" msgstr "%P: varning: global konstruktor %s användes\n" -#: ldmain.c:1049 +#: ldmain.c:1110 msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n" msgstr "%P%F: Fel i BFD-backend: BFD_RELOC_CTOR stöds inte\n" -#: ldmain.c:1233 +#: ldmain.c:1287 ldmisc.c:533 msgid "%F%P: bfd_hash_table_init failed: %E\n" msgstr "%F%P: bfd_hash_table_init misslyckades: %E\n" -#: ldmain.c:1240 +#: ldmain.c:1294 ldmisc.c:540 msgid "%F%P: bfd_hash_lookup failed: %E\n" msgstr "%F%P: bfd_hash_lookup misslyckades: %E\n" -#: ldmain.c:1260 +#: ldmain.c:1314 msgid "%C: undefined reference to `%T'\n" msgstr "%C: odefinierad referens till \"%T\"\n" -#: ldmain.c:1266 +#: ldmain.c:1320 msgid "%D: more undefined references to `%T' follow\n" msgstr "%D: flera odefinierade referenser till \"%T\" följer\n" -#: ldmain.c:1273 +#: ldmain.c:1327 msgid "%B: undefined reference to `%T'\n" msgstr "%B: odefinierad referens till \"%T\"\n" -#: ldmain.c:1279 +#: ldmain.c:1333 msgid "%B: more undefined references to `%T' follow\n" msgstr "%B: flera odefinierade referenser till \"%T\" följer\n" -#: ldmain.c:1299 ldmain.c:1320 ldmain.c:1339 +#: ldmain.c:1364 ldmain.c:1392 ldmain.c:1410 msgid "%P%X: generated" msgstr "%P%X: genererad" -#: ldmain.c:1302 +#: ldmain.c:1371 +msgid " additional relocation overflows omitted from the output\n" +msgstr " ytterligare omlokaliseringsspill utelämnade från utdatan\n" + +#: ldmain.c:1375 msgid " relocation truncated to fit: %s %T" msgstr " omlokalisering trunkerad för att passa: %s %T" -#: ldmain.c:1323 +#: ldmain.c:1395 #, c-format msgid "dangerous relocation: %s\n" msgstr "farlig omlokalisering: %s\n" -#: ldmain.c:1342 +#: ldmain.c:1413 msgid " reloc refers to symbol `%T' which is not being output\n" msgstr " omlokalisering refererar till symbolen \"%T\" som inte skrivs ut\n" -#: ldmisc.c:157 +#: ldmisc.c:147 msgid "no symbol" msgstr "ingen symbol" -#: ldmisc.c:221 +#: ldmisc.c:211 #, c-format msgid "built in linker script:%u" msgstr "inbyggt länkskript:%u" -#: ldmisc.c:271 ldmisc.c:275 +#: ldmisc.c:260 ldmisc.c:264 msgid "%B%F: could not read symbols\n" msgstr "%B%F: kunde inte läsa symboler\n" -#. We use abfd->filename in this initial line, -#. in case filename is a .h file or something -#. similarly unhelpful. -#: ldmisc.c:311 -msgid "%B: In function `%T':\n" -msgstr "%B: I funktionen \"%T\":\n" +#: ldmisc.c:291 +msgid ": In function `%T':\n" +msgstr ": I funktionen \"%T\":\n" -#: ldmisc.c:463 +#: ldmisc.c:438 msgid "%F%P: internal error %s %d\n" msgstr "%F%P: internt fel %s %d\n" -#: ldmisc.c:513 +#: ldmisc.c:484 msgid "%P: internal error: aborting at %s line %d in %s\n" msgstr "%P: internt fel: avbryter vid %s rad %d i %s\n" -#: ldmisc.c:516 +#: ldmisc.c:487 msgid "%P: internal error: aborting at %s line %d\n" msgstr "%P: internt fel: avbryter vid %s rad %d\n" -#: ldmisc.c:518 +#: ldmisc.c:489 msgid "%P%F: please report this bug\n" msgstr "%P%F: rapportera detta fel\n" #. Output for noisy == 2 is intended to follow the GNU standards. -#: ldver.c:38 +#: ldver.c:39 #, c-format msgid "GNU ld version %s\n" msgstr "GNU ld version %s\n" -#: ldver.c:42 +#: ldver.c:43 msgid "Copyright 2002 Free Software Foundation, Inc.\n" msgstr "Copyright 2002 Free Software Foundation, Inc.\n" -#: ldver.c:43 +#: ldver.c:44 msgid "" "This program is free software; you may redistribute it under the terms of\n" "the GNU General Public License. This program has absolutely no warranty.\n" @@ -1017,371 +1055,398 @@ msgstr "" "villkoren i GNU General Public License. Detta program har ingen som\n" "helst garanti.\n" -#: ldver.c:52 +#: ldver.c:53 msgid " Supported emulations:\n" msgstr " Emuleringar som stöds:\n" -#: ldwrite.c:59 ldwrite.c:195 +#: ldwrite.c:54 ldwrite.c:190 msgid "%P%F: bfd_new_link_order failed\n" msgstr "%P%F: bfd_new_link_order misslyckades\n" -#: ldwrite.c:325 +#: ldwrite.c:310 msgid "%F%P: clone section failed: %E\n" msgstr "%F%P: klonsektion misslyckades: %E\n" -#: ldwrite.c:364 +#: ldwrite.c:348 #, c-format msgid "%8x something else\n" msgstr "%8x någonting annat\n" -#: ldwrite.c:547 +#: ldwrite.c:525 msgid "%F%P: final link failed: %E\n" msgstr "%F%P: avslutande länkning misslyckades: %E\n" -#: lexsup.c:172 lexsup.c:267 +#: lexsup.c:179 lexsup.c:284 msgid "KEYWORD" msgstr "NYCKELORD" -#: lexsup.c:172 +#: lexsup.c:179 msgid "Shared library control for HP/UX compatibility" msgstr "Styrning av delade bibliotek för kompatibilitet med HP/UX" -#: lexsup.c:175 +#: lexsup.c:182 msgid "ARCH" msgstr "ARK" -#: lexsup.c:175 +#: lexsup.c:182 msgid "Set architecture" msgstr "Ställ in arkitektur" -#: lexsup.c:177 lexsup.c:336 +#: lexsup.c:184 lexsup.c:357 msgid "TARGET" msgstr "MÅL" -#: lexsup.c:177 +#: lexsup.c:184 msgid "Specify target for following input files" msgstr "Ange mål för följande indatafiler" -#: lexsup.c:179 lexsup.c:220 lexsup.c:232 lexsup.c:241 lexsup.c:312 -#: lexsup.c:343 lexsup.c:383 +#: lexsup.c:186 lexsup.c:229 lexsup.c:241 lexsup.c:254 lexsup.c:329 +#: lexsup.c:364 lexsup.c:408 msgid "FILE" msgstr "FIL" -#: lexsup.c:179 +#: lexsup.c:186 msgid "Read MRI format linker script" msgstr "Läs länkskript i MRI-format" -#: lexsup.c:181 +#: lexsup.c:188 msgid "Force common symbols to be defined" msgstr "Tvinga gemensamma symboler att vara definierade" -#: lexsup.c:185 lexsup.c:373 lexsup.c:375 lexsup.c:377 +#: lexsup.c:192 lexsup.c:398 lexsup.c:400 lexsup.c:402 msgid "ADDRESS" msgstr "ADRESS" -#: lexsup.c:185 +#: lexsup.c:192 msgid "Set start address" msgstr "Ställ in startadress" -#: lexsup.c:187 +#: lexsup.c:194 msgid "Export all dynamic symbols" msgstr "Exportera alla dynamiska symboler" -#: lexsup.c:189 +#: lexsup.c:196 msgid "Link big-endian objects" msgstr "Länka objekt som är big-endian" -#: lexsup.c:191 +#: lexsup.c:198 msgid "Link little-endian objects" msgstr "Länka objekt som är little-endian" -#: lexsup.c:193 lexsup.c:196 +#: lexsup.c:200 lexsup.c:203 msgid "SHLIB" msgstr "DELBIBL" -#: lexsup.c:193 +#: lexsup.c:200 msgid "Auxiliary filter for shared object symbol table" msgstr "Yttre filter för symboltabell över delade objekt" -#: lexsup.c:196 +#: lexsup.c:203 msgid "Filter for shared object symbol table" msgstr "Filter för symboltabell över delade objekt" -#: lexsup.c:198 +#: lexsup.c:205 msgid "Ignored" msgstr "Ignorerad" -#: lexsup.c:200 +#: lexsup.c:207 msgid "SIZE" msgstr "STORLEK" -#: lexsup.c:200 +#: lexsup.c:207 msgid "Small data size (if no size, same as --shared)" msgstr "Liten datastorlek (om ingen storlek, samma som --shared)" -#: lexsup.c:203 +#: lexsup.c:210 msgid "FILENAME" msgstr "FILNAMN" -#: lexsup.c:203 +#: lexsup.c:210 msgid "Set internal name of shared library" msgstr "Ställ in internt namn på delat bibliotek" -#: lexsup.c:205 +#: lexsup.c:212 msgid "PROGRAM" msgstr "PROGRAM" -#: lexsup.c:205 +#: lexsup.c:212 msgid "Set PROGRAM as the dynamic linker to use" msgstr "Ställ in PROGRAM som den dynamiska länkare som ska användas" -#: lexsup.c:207 +#: lexsup.c:214 msgid "LIBNAME" msgstr "BIBLNAMN" -#: lexsup.c:207 +#: lexsup.c:214 msgid "Search for library LIBNAME" msgstr "Sök efter biblioteket BIBLNAMN" -#: lexsup.c:209 +#: lexsup.c:216 msgid "DIRECTORY" msgstr "KATALOG" -#: lexsup.c:209 +#: lexsup.c:216 msgid "Add DIRECTORY to library search path" msgstr "Lägg till KATALOG till bibliotekssökvägen" -#: lexsup.c:211 +#: lexsup.c:218 msgid "EMULATION" msgstr "EMULERING" -#: lexsup.c:211 +#: lexsup.c:218 msgid "Set emulation" msgstr "Ställ in emulering" -#: lexsup.c:213 +#: lexsup.c:220 msgid "Print map file on standard output" msgstr "Visa tabellfil på standard ut" -#: lexsup.c:215 +#: lexsup.c:222 msgid "Do not page align data" msgstr "Justera inte data efter jämna sidor" -#: lexsup.c:217 +#: lexsup.c:224 msgid "Do not page align data, do not make text readonly" msgstr "Justera inte data efter jämna sidor, gör inte texten endast läsbar" -#: lexsup.c:220 +#: lexsup.c:227 +msgid "Page align data, make text readonly" +msgstr "Sidjustera data, gör texten endast läsbar" + +#: lexsup.c:229 msgid "Set output file name" msgstr "Ställ in utdatafilnamnet" -#: lexsup.c:222 +#: lexsup.c:231 msgid "Optimize output file" msgstr "Optimera utdatafil" -#: lexsup.c:224 +#: lexsup.c:233 msgid "Ignored for SVR4 compatibility" msgstr "Ignorerad för kompatibilitet med SVR4" -#: lexsup.c:228 -msgid "Generate relocateable output" +#: lexsup.c:237 +msgid "Generate relocatable output" msgstr "Generera omlokaliseringsbar utdata" -#: lexsup.c:232 +#: lexsup.c:241 msgid "Just link symbols (if directory, same as --rpath)" msgstr "Länka bara symboler (om katalog, samma som --rpath)" -#: lexsup.c:235 +#: lexsup.c:244 msgid "Strip all symbols" msgstr "Ta bort alla symboler" -#: lexsup.c:237 +#: lexsup.c:246 msgid "Strip debugging symbols" msgstr "Ta bort felsökningssymboler" -#: lexsup.c:239 +#: lexsup.c:248 +msgid "Strip symbols in discarded sections" +msgstr "Ta bort symboler i kastade sektioner" + +#: lexsup.c:250 +msgid "Do not strip symbols in discarded sections" +msgstr "Ta inte bort symboler i kastade sektioner" + +#: lexsup.c:252 msgid "Trace file opens" msgstr "Spåra filöppningar" -#: lexsup.c:241 +#: lexsup.c:254 msgid "Read linker script" msgstr "Läs länkskript" -#: lexsup.c:243 lexsup.c:259 lexsup.c:298 lexsup.c:310 lexsup.c:367 -#: lexsup.c:386 lexsup.c:406 +#: lexsup.c:256 lexsup.c:272 lexsup.c:315 lexsup.c:327 lexsup.c:392 +#: lexsup.c:411 lexsup.c:431 msgid "SYMBOL" msgstr "SYMBOL" -#: lexsup.c:243 +#: lexsup.c:256 msgid "Start with undefined reference to SYMBOL" msgstr "Börja med odefinierad referens till SYMBOL" -#: lexsup.c:245 +#: lexsup.c:258 msgid "[=SECTION]" msgstr "[=SEKTION]" -#: lexsup.c:245 +#: lexsup.c:258 msgid "Don't merge input [SECTION | orphan] sections" msgstr "Slå inte samman [SEKTION | föräldralösa] sektioner" -#: lexsup.c:247 +#: lexsup.c:260 msgid "Build global constructor/destructor tables" msgstr "Bygg globala konstruktors-/destruktorstabeller" -#: lexsup.c:249 +#: lexsup.c:262 msgid "Print version information" msgstr "Visa versionsinformation" -#: lexsup.c:251 +#: lexsup.c:264 msgid "Print version and emulation information" msgstr "Visa versions- och emuleringsinformation" -#: lexsup.c:253 +#: lexsup.c:266 msgid "Discard all local symbols" msgstr "Kasta alla lokala symboler" -#: lexsup.c:255 +#: lexsup.c:268 msgid "Discard temporary local symbols (default)" msgstr "Kasta temporära lokala symboler (standard)" -#: lexsup.c:257 +#: lexsup.c:270 msgid "Don't discard any local symbols" msgstr "Kasta inte några lokala symboler" -#: lexsup.c:259 +#: lexsup.c:272 msgid "Trace mentions of SYMBOL" msgstr "Spåra omnämningar av SYMBOL" -#: lexsup.c:261 lexsup.c:345 lexsup.c:347 +#: lexsup.c:274 lexsup.c:366 lexsup.c:368 msgid "PATH" msgstr "SÖKVÄG" -#: lexsup.c:261 +#: lexsup.c:274 msgid "Default search path for Solaris compatibility" msgstr "Standardsökväg för Solaris-kompatibilitet" -#: lexsup.c:263 +#: lexsup.c:276 msgid "Start a group" msgstr "Starta en grupp" -#: lexsup.c:265 +#: lexsup.c:278 msgid "End a group" msgstr "Sluta en grupp" -#: lexsup.c:267 +#: lexsup.c:280 +msgid "Accept input files whose architecture cannot be determined" +msgstr "Acceptera indatafiler vars arkitektur inte kan avgöras" + +#: lexsup.c:282 +msgid "Reject input files whose architecture is unknown" +msgstr "Avvisa indatafiler vars arkitektur är okänd" + +#: lexsup.c:284 msgid "Ignored for SunOS compatibility" msgstr "Ignorerad för SunOS-kompatibilitet" -#: lexsup.c:269 +#: lexsup.c:286 msgid "Link against shared libraries" msgstr "Länka mot delade bibliotek" -#: lexsup.c:275 +#: lexsup.c:292 msgid "Do not link against shared libraries" msgstr "Länka inte mot delade bibliotek" -#: lexsup.c:283 +#: lexsup.c:300 msgid "Bind global references locally" msgstr "Bind globala referenser lokalt" -#: lexsup.c:285 +#: lexsup.c:302 msgid "Check section addresses for overlaps (default)" msgstr "Kontrollera sektionsadresser för överlappningar (standard)" -#: lexsup.c:287 +#: lexsup.c:304 msgid "Do not check section addresses for overlaps" msgstr "Kontrollera inte sektionsadresser för överlappningar" -#: lexsup.c:290 +#: lexsup.c:307 msgid "Output cross reference table" msgstr "Skapa korsreferenstabell" -#: lexsup.c:292 +#: lexsup.c:309 msgid "SYMBOL=EXPRESSION" msgstr "SYMBOL=UTTRYCK" -#: lexsup.c:292 +#: lexsup.c:309 msgid "Define a symbol" msgstr "Definiera en symbol" -#: lexsup.c:294 +#: lexsup.c:311 msgid "[=STYLE]" msgstr "[=STIL]" -#: lexsup.c:294 +#: lexsup.c:311 msgid "Demangle symbol names [using STYLE]" msgstr "Avkoda symbolnamn [använd STIL]" -#: lexsup.c:296 +#: lexsup.c:313 msgid "Generate embedded relocs" msgstr "Generera inbäddade omlokaliseringar" -#: lexsup.c:298 +#: lexsup.c:315 msgid "Call SYMBOL at unload-time" msgstr "Anropa SYMBOL vid urladdning" -#: lexsup.c:300 +#: lexsup.c:317 msgid "Force generation of file with .exe suffix" msgstr "Tvinga generering av fil med ändelsen .exe" -#: lexsup.c:302 +#: lexsup.c:319 msgid "Remove unused sections (on some targets)" msgstr "Ta bort oanvända sektioner (på vissa mål)" -#: lexsup.c:305 +#: lexsup.c:322 msgid "Don't remove unused sections (default)" msgstr "Ta inte bort oanvända sektioner (standard)" -#: lexsup.c:308 +#: lexsup.c:325 msgid "Print option help" msgstr "Visa hjälp om flaggor" -#: lexsup.c:310 +#: lexsup.c:327 msgid "Call SYMBOL at load-time" msgstr "Anropa SYMBOL vid inläsning" -#: lexsup.c:312 +#: lexsup.c:329 msgid "Write a map file" msgstr "Skriv en tabellfil" -#: lexsup.c:314 +#: lexsup.c:331 msgid "Do not define Common storage" msgstr "Definiera inte gemensam lagring" -#: lexsup.c:316 +#: lexsup.c:333 msgid "Do not demangle symbol names" msgstr "Avkoda inte symbolnamn" -#: lexsup.c:318 +#: lexsup.c:335 msgid "Use less memory and more disk I/O" msgstr "Använd mindre minne och mer disk-I/O" -#: lexsup.c:320 +#: lexsup.c:337 msgid "Allow no undefined symbols" msgstr "Tillåt inga odefinierade symboler" -#: lexsup.c:322 -msgid "Allow undefined symbols in shared objects" -msgstr "Tillåt odefinierade symboler i delade objekt" +#: lexsup.c:339 +msgid "Allow undefined symbols in shared objects (the default)" +msgstr "Tillåt odefinierade symboler i delade objekt (standardalternativet)" + +#: lexsup.c:341 +msgid "Do not allow undefined symbols in shared objects" +msgstr "Tillåt inte odefinierade symboler i delade objekt" -#: lexsup.c:324 +#: lexsup.c:343 msgid "Allow multiple definitions" msgstr "Tillåt flera defintioner" -# src/prefs.c:170 -#: lexsup.c:326 +#: lexsup.c:345 +msgid "Disallow undefined version" +msgstr "Tillåt inte odefinierad version" + +#: lexsup.c:347 msgid "Don't warn about mismatched input files" msgstr "Varna inte om opassande indatafiler" -#: lexsup.c:328 +#: lexsup.c:349 msgid "Turn off --whole-archive" msgstr "Slå av ---whole-archive" -#: lexsup.c:330 +#: lexsup.c:351 msgid "Create an output file even if errors occur" msgstr "Skapa en utdatafil även om fel förekommer" -#: lexsup.c:334 +#: lexsup.c:355 msgid "" "Only use library directories specified on\n" "\t\t\t\tthe command line" @@ -1389,107 +1454,111 @@ msgstr "" "Använd endast bibliotekskataloger som anges\n" "\t\t\t\tpå kommandoraden" -#: lexsup.c:336 +#: lexsup.c:357 msgid "Specify target of output file" msgstr "Ange mål för utdatafil" -#: lexsup.c:338 +#: lexsup.c:359 msgid "Ignored for Linux compatibility" msgstr "Ignorerad för kompatibilitet med Linux" -#: lexsup.c:340 +#: lexsup.c:361 msgid "Relax branches on certain targets" msgstr "Slappna av greningar på vissa mål" -#: lexsup.c:343 +#: lexsup.c:364 msgid "Keep only symbols listed in FILE" msgstr "Behåll endast symboler angivna i FIL" -#: lexsup.c:345 +#: lexsup.c:366 msgid "Set runtime shared library search path" msgstr "Ställ in körtidssökväg för delade bibliotek" -#: lexsup.c:347 +#: lexsup.c:368 msgid "Set link time shared library search path" msgstr "Ställ in länkningstidssökväg för delade bibliotek" -#: lexsup.c:349 +#: lexsup.c:370 msgid "Create a shared library" msgstr "Skapa ett delat bibliotek" -#: lexsup.c:353 +#: lexsup.c:374 +msgid "Create a position independent executable" +msgstr "Skapa en positionsoberoende körbar fil" + +#: lexsup.c:378 msgid "Sort common symbols by size" msgstr "Sortera gemensamma symboler efter storlek" -#: lexsup.c:357 +#: lexsup.c:382 msgid "COUNT" msgstr "ANTAL" -#: lexsup.c:357 +#: lexsup.c:382 msgid "How many tags to reserve in .dynamic section" msgstr "Hur många taggar som ska reserveras i .dynamic-sektion" -#: lexsup.c:359 +#: lexsup.c:384 msgid "[=SIZE]" msgstr "[=STORLEK]" -#: lexsup.c:359 +#: lexsup.c:384 msgid "Split output sections every SIZE octets" msgstr "Dela utdatasektioner var STORLEK oktett" -#: lexsup.c:361 +#: lexsup.c:386 msgid "[=COUNT]" msgstr "[=ANTAL]" -#: lexsup.c:361 +#: lexsup.c:386 msgid "Split output sections every COUNT relocs" msgstr "Dela utdatasektioner var ANTAL omlokalisering" -#: lexsup.c:363 +#: lexsup.c:388 msgid "Print memory usage statistics" msgstr "Visa statistik över minnesanvändning" -#: lexsup.c:365 +#: lexsup.c:390 msgid "Display target specific options" msgstr "Visa målspecifika flaggor" -#: lexsup.c:367 +#: lexsup.c:392 msgid "Do task level linking" msgstr "Utför länkning på uppgiftsnivå" -#: lexsup.c:369 +#: lexsup.c:394 msgid "Use same format as native linker" msgstr "Använd samma format som inhemska länkaren" -#: lexsup.c:371 +#: lexsup.c:396 msgid "SECTION=ADDRESS" msgstr "SEKTION=ADRESS" -#: lexsup.c:371 +#: lexsup.c:396 msgid "Set address of named section" msgstr "Ställ in adress på namngiven sektion" -#: lexsup.c:373 +#: lexsup.c:398 msgid "Set address of .bss section" msgstr "Ställ in adress på .bss-sektion" -#: lexsup.c:375 +#: lexsup.c:400 msgid "Set address of .data section" msgstr "Ställ in adress på .data-sektion" -#: lexsup.c:377 +#: lexsup.c:402 msgid "Set address of .text section" msgstr "Ställ in adress på .text-sektion" -#: lexsup.c:379 +#: lexsup.c:404 msgid "Output lots of information during link" msgstr "Visa mycket information under länkning" -#: lexsup.c:383 +#: lexsup.c:408 msgid "Read version information script" msgstr "Läs skript med versionsinformation" -#: lexsup.c:386 +#: lexsup.c:411 msgid "" "Take export symbols list from .exports, using\n" "\t\t\t\tSYMBOL as the version." @@ -1497,43 +1566,43 @@ msgstr "" "Plocka lista med exportsymboler från .exports och\n" "\t\t\t\tanvänd SYMBOL som version." -#: lexsup.c:389 +#: lexsup.c:414 msgid "Warn about duplicate common symbols" msgstr "Varna för dubbla gemensamma symboler" -#: lexsup.c:391 +#: lexsup.c:416 msgid "Warn if global constructors/destructors are seen" msgstr "Varna om globala konstruktorer/destruktorer hittas" -#: lexsup.c:394 +#: lexsup.c:419 msgid "Warn if the multiple GP values are used" msgstr "Varna om flera GP-värden används" -#: lexsup.c:396 +#: lexsup.c:421 msgid "Warn only once per undefined symbol" msgstr "Varna endast en gång per odefinierad symbol" -#: lexsup.c:398 +#: lexsup.c:423 msgid "Warn if start of section changes due to alignment" msgstr "Varna om början på sektionen ändras på grund av justering" -#: lexsup.c:401 +#: lexsup.c:426 msgid "Treat warnings as errors" msgstr "Behandla varningar som fel" -#: lexsup.c:404 +#: lexsup.c:429 msgid "Include all objects from following archives" msgstr "Inkludera alla objekt från följande arkiv" -#: lexsup.c:406 +#: lexsup.c:431 msgid "Use wrapper functions for SYMBOL" msgstr "Använd inkapslingsfunktioner för SYMBOL" -#: lexsup.c:408 +#: lexsup.c:433 msgid "[=WORDS]" msgstr "[=ORD]" -#: lexsup.c:408 +#: lexsup.c:433 msgid "" "Modify problematic branches in last WORDS (1-10,\n" "\t\t\t\tdefault 5) words of a page" @@ -1541,27 +1610,27 @@ msgstr "" "Ändra problematiska greningar i sista ORD (1-10,\n" "\t\t\t\tstandardvärde 5) orden på en sida" -#: lexsup.c:574 +#: lexsup.c:602 msgid "%P: unrecognized option '%s'\n" msgstr "%P: okänd flagga \"%s\"\n" -#: lexsup.c:576 +#: lexsup.c:604 msgid "%P%F: use the --help option for usage information\n" msgstr "%P%F: använd flaggan --help för användningsinformation\n" -#: lexsup.c:595 +#: lexsup.c:622 msgid "%P%F: unrecognized -a option `%s'\n" msgstr "%P%F: okänd -a-flagga \"%s\"\n" -#: lexsup.c:608 +#: lexsup.c:635 msgid "%P%F: unrecognized -assert option `%s'\n" msgstr "%P%F: okänd -assert-flagga \"%s\"\n" -#: lexsup.c:651 +#: lexsup.c:678 msgid "%F%P: unknown demangling style `%s'" msgstr "%F%P: okänd avkodningsstil \"%s\"" -#: lexsup.c:711 +#: lexsup.c:737 msgid "%P%F: invalid number `%s'\n" msgstr "%P%F: ogiltigt tal \"%s\"\n" @@ -1573,134 +1642,155 @@ msgstr "%P%F: ogiltigt tal \"%s\"\n" #. an error message here. We cannot just make this a warning, #. increment optind, and continue because getopt is too confused #. and will seg-fault the next time around. -#: lexsup.c:812 +#: lexsup.c:849 msgid "%P%F: bad -rpath option\n" msgstr "%P%F: okänd -rpath-flagga\n" -#: lexsup.c:910 +#: lexsup.c:953 msgid "%P%F: -shared not supported\n" msgstr "%P%F: -shared stöds inte\n" -#: lexsup.c:942 +#: lexsup.c:962 +msgid "%P%F: -pie not supported\n" +msgstr "%P%F: -pie stöds inte\n" + +#: lexsup.c:994 msgid "%P%F: invalid argument to option \"--section-start\"\n" msgstr "%P%F: ogiltigt argument till flaggan \"--section-start\"\n" -#: lexsup.c:948 +#: lexsup.c:1000 msgid "%P%F: missing argument(s) to option \"--section-start\"\n" msgstr "%P%F: argument saknas till flaggan \"--section-start\"\n" -#: lexsup.c:1097 +#: lexsup.c:1158 msgid "%P%F: may not nest groups (--help for usage)\n" msgstr "%P%F: får inte nästla grupper (--help för användning)\n" -#: lexsup.c:1104 +#: lexsup.c:1165 msgid "%P%F: group ended before it began (--help for usage)\n" msgstr "%P%F: gruppen slutade innan den började (--help för användning)\n" -#: lexsup.c:1118 +#: lexsup.c:1179 msgid "%P%F: invalid argument to option \"mpc860c0\"\n" msgstr "%P%F: ogiltigt argument till flaggan \"mpc860c0\"\n" -#: lexsup.c:1173 +#: lexsup.c:1234 msgid "%P%F: invalid hex number `%s'\n" msgstr "%P%F: ogiltigt hexadecimalt tal \"%s\"\n" -#: lexsup.c:1185 +#: lexsup.c:1246 #, c-format msgid "Usage: %s [options] file...\n" msgstr "Användning: %s [flaggor] fil...\n" -#: lexsup.c:1187 +#: lexsup.c:1248 msgid "Options:\n" msgstr "Alternativ:\n" #. Note: Various tools (such as libtool) depend upon the #. format of the listings below - do not change them. -#: lexsup.c:1270 +#: lexsup.c:1331 #, c-format msgid "%s: supported targets:" msgstr "%s: mål som stöds:" -#: lexsup.c:1278 +#: lexsup.c:1339 #, c-format msgid "%s: supported emulations: " msgstr "%s: emuleringar som stöds: " -#: lexsup.c:1283 +#: lexsup.c:1344 #, c-format msgid "%s: emulation specific options:\n" msgstr "%s: emuleringsspecifika flaggor:\n" -#: lexsup.c:1287 +#: lexsup.c:1348 #, c-format msgid "Report bugs to %s\n" msgstr "" "Rapportera fel till %s\n" "Rapportera fel i översättningen till sv@li.org\n" -#: mri.c:334 +#: mri.c:307 msgid "%P%F: unknown format type %s\n" msgstr "%P%F: okänd formattyp %s\n" -#: pe-dll.c:321 +#: pe-dll.c:301 #, c-format msgid "%XUnsupported PEI architecture: %s\n" msgstr "%XPEI-arkitekturen stöds inte: %s\n" -#: pe-dll.c:671 +#: pe-dll.c:650 #, c-format msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n" msgstr "%XFel, dubbel EXPORT med ordinaler: %s (%d gentemot %d)\n" -#: pe-dll.c:678 +#: pe-dll.c:657 #, c-format msgid "Warning, duplicate EXPORT: %s\n" msgstr "Varning, dubbel EXPORT: %s\n" -#: pe-dll.c:742 +#: pe-dll.c:723 #, c-format msgid "%XCannot export %s: symbol not defined\n" msgstr "%XKan inte exportera %s: symbolen är inte definierad\n" -#: pe-dll.c:748 +#: pe-dll.c:729 #, c-format msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n" msgstr "%XKan inte exportera %s: symbolen är av fel typ (%d gentemot %d)\n" -#: pe-dll.c:755 +#: pe-dll.c:736 #, c-format msgid "%XCannot export %s: symbol not found\n" msgstr "%XKan inte exportera %s: symbolen hittades inte\n" -#: pe-dll.c:870 +#: pe-dll.c:848 #, c-format msgid "%XError, ordinal used twice: %d (%s vs %s)\n" msgstr "%XFel, ordinalen användes två gånger: %d (%s gentemot %s)\n" -#: pe-dll.c:1181 +#: pe-dll.c:1165 #, c-format msgid "%XError: %d-bit reloc in dll\n" msgstr "%XFel: %d-bitars omlokalisering i dll\n" -#: pe-dll.c:1316 +#: pe-dll.c:1296 #, c-format msgid "%s: Can't open output def file %s\n" msgstr "%s: Kan inte öppna utdatadefinitionsfilen %s\n" -#: pe-dll.c:1459 +#: pe-dll.c:1439 msgid "; no contents available\n" msgstr "; inget innehåll är tillgängligt\n" -#: pe-dll.c:2128 +#: pe-dll.c:2203 +msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n" +msgstr "%C: variabeln \"%T\" kan inte importeras automatiskt. Läs dokumentationen för ld:s --enable-auto-import för detaljer.\n" + +#: pe-dll.c:2233 #, c-format msgid "%XCan't open .lib file: %s\n" msgstr "%XKan inte öppna .lib-filen: %s\n" -#: pe-dll.c:2133 +#: pe-dll.c:2238 #, c-format msgid "Creating library file: %s\n" msgstr "Skapar biblioteksfil: %s\n" +#~ msgid "" +#~ " --enable-auto-import Do sophisticated linking of _sym to\n" +#~ " __imp_sym for DATA references\n" +#~ msgstr "" +#~ " --enable-auto-import Utför sofistikerad länkning av _sym till\n" +#~ " __imp_sym för DATA-referenser\n" + +#~ msgid "%B: In function `%T':\n" +#~ msgstr "%B: I funktionen \"%T\":\n" + +#~ msgid "Allow undefined symbols in shared objects" +#~ msgstr "Tillåt odefinierade symboler i delade objekt" + #~ msgid " create __imp_<SYMBOL> as well.\n" #~ msgstr " skapa även __imp_<SYMBOL>.\n" diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc index 187a289..63551a2 100644 --- a/ld/scripttempl/elf.sc +++ b/ld/scripttempl/elf.sc @@ -264,6 +264,7 @@ cat <<EOF { ${RELOCATING+${TEXT_START_SYMBOLS}} *(.text .stub${RELOCATING+ .text.* .gnu.linkonce.t.*}) + KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) ${RELOCATING+${OTHER_TEXT_SECTIONS}} @@ -311,13 +312,14 @@ cat <<EOF { ${RELOCATING+${DATA_START_SYMBOLS}} *(.data${RELOCATING+ .data.* .gnu.linkonce.d.*}) + KEEP (*(.gnu.linkonce.d.*personality*)) ${CONSTRUCTING+SORT(CONSTRUCTORS)} } .data1 ${RELOCATING-0} : { *(.data1) } .tdata ${RELOCATING-0} : { *(.tdata${RELOCATING+ .tdata.* .gnu.linkonce.td.*}) } .tbss ${RELOCATING-0} : { *(.tbss${RELOCATING+ .tbss.* .gnu.linkonce.tb.*})${RELOCATING+ *(.tcommon)} } .eh_frame ${RELOCATING-0} : { KEEP (*(.eh_frame)) } - .gcc_except_table ${RELOCATING-0} : { *(.gcc_except_table) } + .gcc_except_table ${RELOCATING-0} : { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) } ${WRITABLE_RODATA+${RODATA}} ${OTHER_READWRITE_SECTIONS} ${TEXT_DYNAMIC-${DYNAMIC}} diff --git a/ld/scripttempl/elf32cr16c.sc b/ld/scripttempl/elf32cr16c.sc new file mode 100644 index 0000000..b02edfd --- /dev/null +++ b/ld/scripttempl/elf32cr16c.sc @@ -0,0 +1,52 @@ +# Linker Script for National Semiconductor's CR16C-ELF32. + +test -z "$ENTRY" && ENTRY=_start +cat <<EOF + +/* Example Linker Script for linking NS CR16C or CR16CPlus + elf32 files, which were compiled with either the near data + model or the default data model. */ + +/* Force the entry point to be entered in the output file as + an undefined symbol. This is needed in case the entry point + (which is not called explicitly) is in an archive (which is + the usual case). */ + +EXTERN(${ENTRY}) + +ENTRY(${ENTRY}) + +MEMORY +{ + near_rom : ORIGIN = 0x4, LENGTH = 512K - 4 + near_ram : ORIGIN = 512K, LENGTH = 512K - 64K + rom : ORIGIN = 1M, LENGTH = 3M + ram : ORIGIN = 4M, LENGTH = 10M +} + +SECTIONS +{ +/* The heap is located in near memory, to suit both the near and + default data models. The heap and stack are aligned to the bus + width, as a speed optimization for accessing data located + there. The alignment to 4 bytes is compatible for both the CR16C + bus width (2 bytes) and CR16CPlus bus width (4 bytes). */ + + .text : { __TEXT_START = .; *(.text) __TEXT_END = .; } > rom + .rdata : { __RDATA_START = .; *(.rdata_4) *(.rdata_2) *(.rdata_1) __RDATA_END = .; } > near_rom + .ctor ALIGN(4) : { __CTOR_LIST = .; *(.ctors) __CTOR_END = .; } > near_rom + .dtor ALIGN(4) : { __DTOR_LIST = .; *(.dtors) __DTOR_END = .; } > near_rom + .data : { __DATA_START = .; *(.data_4) *(.data_2) *(.data_1) *(.data) __DATA_END = .; } > ram AT > rom + .bss (NOLOAD) : { __BSS_START = .; *(.bss_4) *(.bss_2) *(.bss_1) *(.bss) *(COMMON) __BSS_END = .; } > ram + .nrdata : { __NRDATA_START = .; *(.nrdat_4) *(.nrdat_2) *(.nrdat_1) __NRDATA_END = .; } > near_rom + .ndata : { __NDATA_START = .; *(.ndata_4) *(.ndata_2) *(.ndata_1) __NDATA_END = .; } > near_ram AT > rom + .nbss (NOLOAD) : { __NBSS_START = .; *(.nbss_4) *(.nbss_2) *(.nbss_1) *(.ncommon) __NBSS_END = .; } > near_ram + .heap : { . = ALIGN(4); __HEAP_START = .; . += 0x2000; __HEAP_MAX = .; } > near_ram + .stack : { . = ALIGN(4); . += 0x6000; __STACK_START = .; } > ram + .istack : { . = ALIGN(2); . += 0x100; __ISTACK_START = .; } > ram +} + +__DATA_IMAGE_START = LOADADDR(.data); +__NDATA_IMAGE_START = LOADADDR(.ndata); + +EOF diff --git a/ld/scripttempl/mips.sc b/ld/scripttempl/mips.sc index d60aeed..972351f 100644 --- a/ld/scripttempl/mips.sc +++ b/ld/scripttempl/mips.sc @@ -29,9 +29,6 @@ SECTIONS *(.init) ${RELOCATING+ eprol = .}; *(.text) - ${RELOCATING+PROVIDE (__runtime_reloc_start = .);} - *(.rel.sdata) - ${RELOCATING+PROVIDE (__runtime_reloc_stop = .);} *(.fini) ${RELOCATING+ etext = .}; ${RELOCATING+ _etext = .}; diff --git a/ld/scripttempl/pe.sc b/ld/scripttempl/pe.sc index da09eb4..60d4ed1 100644 --- a/ld/scripttempl/pe.sc +++ b/ld/scripttempl/pe.sc @@ -58,9 +58,9 @@ SECTIONS *(.glue_7t) *(.glue_7) ${CONSTRUCTING+ ___CTOR_LIST__ = .; __CTOR_LIST__ = . ; - LONG (-1); *(SORT(.ctors.*)); *(.ctors); *(.ctor); LONG (0); } + LONG (-1);*(.ctors); *(.ctor); *(SORT(.ctors.*)); LONG (0); } ${CONSTRUCTING+ ___DTOR_LIST__ = .; __DTOR_LIST__ = . ; - LONG (-1); *(SORT(.dtors.*)); *(.dtors); *(.dtor); LONG (0); } + LONG (-1); *(.dtors); *(.dtor); *(SORT(.dtors.*)); LONG (0); } ${RELOCATING+ *(.fini)} /* ??? Why is .gcc_exc here? */ ${RELOCATING+ *(.gcc_exc)} @@ -159,13 +159,91 @@ SECTIONS .stab ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} : { - [ .stab ] + *(.stab) } .stabstr ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} : { - [ .stabstr ] + *(.stabstr) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section. Unlike other targets that fake this by putting the + section VMA at 0, the PE format will not allow it. */ + + /* DWARF 1.1 and DWARF 2. */ + .debug_aranges ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} : + { + *(.debug_aranges) + } + + .debug_pubnames ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} : + { + *(.debug_pubnames) + } + + /* DWARF 2. */ + .debug_info ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} : + { + *(.debug_info) *(.gnu.linkonce.wi.*) + } + + .debug_abbrev ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} : + { + *(.debug_abbrev) + } + + .debug_line ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} : + { + *(.debug_line) + } + + .debug_frame ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} : + { + *(.debug_frame) + } + + .debug_str ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} : + { + *(.debug_str) + } + + .debug_loc ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} : + { + *(.debug_loc) + } + + .debug_macinfo ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} : + { + *(.debug_macinfo) + } + + /* SGI/MIPS DWARF 2 extensions. */ + .debug_weaknames ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} : + { + *(.debug_weaknames) + } + + .debug_funcnames ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} : + { + *(.debug_funcnames) + } + + .debug_typenames ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} : + { + *(.debug_typenames) + } + + .debug_varnames ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} : + { + *(.debug_varnames) + } + + /* DWARF 3. */ + .debug_ranges ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} : + { + *(.debug_ranges) + } } EOF diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 807c08b..5a89dca 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,161 @@ +2004-04-24 Chris Demetriou <cgd@broadcom.com> + + * ld-elf/merge.d: XFAIL on all MIPS targets. + +2004-04-24 Alan Modra <amodra@bigpond.net.au> + + * ld-powerpc/tlsexe32.d: Update. + * ld-powerpc/tlsso32.d: Update. + +2004-04-23 Chris Demetriou <cgd@broadcom.com> + + * ld-mips-elf/reloc-3-r.d: Remove, as part of MIPS -membedded-pic + removal. + * ld-mips-elf/reloc-3-srec.d: Likewise. + * ld-mips-elf/reloc-3.ld: Likewise. + * ld-mips-elf/reloc-3a.s: Likewise. + * ld-mips-elf/reloc-3b.s: Likewise. + * ld-mips-elf/mips-elf.exp: Don't run now-removed tests. + +2004-04-22 Kaz Kojima <kkojima@rr.iij4u.or.jp> + + * ld-sh/tlsbin-1.d: Update + * ld-sh/tlspic-1.d: Update. + +2004-04-22 H.J. Lu <hongjiu.lu@intel.com> + + * ld-i386/tlspic.dd: Updated. + +2004-04-21 Chris Demetriou <cgd@broadcom.com> + + * ld-empic/run.c: Removed as part of MIPS --embedded-relocs removal. + * ld-empic/empic.exp: Likewise. + * ld-empic/relax.t: Likewise. + * ld-empic/relax1.c: Likewise. + * ld-empic/relax2.c: Likewise. + * ld-empic/relax3.c: Likewise. + * ld-empic/relax4.c: Likewise. + * ld-empic/runtest1.c: Likewise. + * ld-empic/runtest2.c: Likewise. + * ld-empic/runtesti.s: Likewise. + * ld-mips-elf/empic1-ln.d: Likewise. + * ld-mips-elf/empic1-lp.d: Likewise. + * ld-mips-elf/empic1-mn.d: Likewise. + * ld-mips-elf/empic1-mp.d: Likewise. + * ld-mips-elf/empic1-ref.s: Likewise. + * ld-mips-elf/empic1-sn.d: Likewise. + * ld-mips-elf/empic1-sp.d: Likewise. + * ld-mips-elf/empic1-space.s: Likewise. + * ld-mips-elf/empic1-tgt.s: Likewise. + * ld-mips-elf/empic2-fwd-0.d: Likewise. + * ld-mips-elf/empic2-fwd-1.d: Likewise. + * ld-mips-elf/empic2-fwd-tgt.s: Likewise. + * ld-mips-elf/empic2-ref.s: Likewise. + * ld-mips-elf/empic2-rev-0.d: Likewise. + * ld-mips-elf/empic2-rev-1.d: Likewise. + * ld-mips-elf/empic2-rev-tgt.s: Likewise. + * ld-mips-elf/empic2-space.s: Likewise. + * ld-mips-elf/emrelocs-eb.d: Likewise. + * ld-mips-elf/emrelocs-el.d: Likewise. + * ld-mips-elf/emrelocs.ld: Likewise. + * ld-mips-elf/emrelocs1.s: Likewise. + * ld-mips-elf/emrelocs2.s: Likewise. + * ld-mips-elf/mips-elf.exp: Don't run now-removed tests. + +2004-04-20 H.J. Lu <hongjiu.lu@intel.com> + + * ld-elfweak/elfweak.exp: Add an undefined weak size change + test. + + * ld-elfweak/size.dat: New file. + * ld-elfweak/size_bar.c: Likewise. + * ld-elfweak/size_foo.c: Likewise. + * ld-elfweak/size_main.c: Likewise. + +2004-04-14 Brian Ford <ford@vss.fsi.com> + DJ Delorie <dj@redhat.com> + + * ld-pe/pe.exp: New, tests for i?86 PE. + * ld-pe/secrel1.s: New, test R_SECREL32 reloc. + * ld-pe/secrel2.s: Likewise. + * ld-pe/secrel.d: Likewise. + +2004-04-19 Jakub Jelinek <jakub@redhat.com> + + * ld-elfvsb/elfvsb.exp: XFAIL some tests on sparc64. + * ld-shared/shared.exp: Likewise. + +2004-04-14 H.J. Lu <hongjiu.lu@intel.com> + + * ld-scripts/assert.s: Add a newline. + * ld-scripts/data.s: Likewise. + +2004-04-08 Alan Modra <amodra@bigpond.net.au> + + PR 47. + * ld-cdtest/cdtest.exp: Remove -fgnu-linker. + +2004-04-08 Alan Modra <amodra@bigpond.net.au> + + * ld-scripts/align.exp: Don't run on aix. + * ld-scripts/assert.s: Remove comment. + * ld-scripts/data.s: Likewise. + * ld-scripts/data.t: Set start address to allow for aout headers. + Make first LONG pc-relative. + * ld-scripts/data.d: Update. + * ld-scripts/defined2.d: Allow other random syms. + * ld-scripts/defined3.d: Likewise. + * ld-scripts/provide-1.s: Pad section. + * ld-scripts/provide-1.t: Set .data address and align. + * ld-scripts/provide-1.d: Update. + * ld-scripts/provide-2.s: Pad section. + * ld-scripts/provide-2.d: Allow random trailing syms. + * ld-scripts/provide-3.s: Pad section. + * ld-scripts/provide-3.d: Fix typos. + * ld-scripts/provide.exp: Don't run on aix. + * ld-scripts/size-1.s: Simplify test. + * ld-scripts/size-1.t: Rewrite. + * ld-scripts/size-1.d: Update. + * ld-scripts/size-2.s: Simplify. + * ld-scripts/size-2.t: Set start address. Set exe flag on image. + * ld-scripts/size-2.d: Update. + * ld-scripts/size.exp: Don't run on aix. Run size-2 on all elf + targets except mips. + +2004-03-27 Alexandre Oliva <aoliva@redhat.com> + + * ld-frv/fdpic*.d: Adjust to compensate for page size change. + +2004-03-26 Alan Modra <amodra@bigpond.net.au> + + * ld-powerpc/tlsexe.r: Update for changed sym type. + * ld-powerpc/tlsexetoc.r: Likewise. + +2004-03-22 Hans-Peter Nilsson <hp@axis.com> + + * ld-cris/dsofnf.s, ld-cris/dsofnf2.s, ld-cris/gotplt1.d, + ld-cris/gotplt2.d, ld-cris/gotplt3.d: New tests. + +2004-03-19 H.J. Lu <hongjiu.lu@intel.com> + + * ld-elfvers/vers.exp: Add new tests for versioned weak + definition. + + * ld-elfvers/vers28a.c: New file. + * ld-elfvers/vers28a.dsym: Likewise. + * ld-elfvers/vers28a.ver: Likewise. + * ld-elfvers/vers28b.c: Likewise. + * ld-elfvers/vers28b.dsym: Likewise. + * ld-elfvers/vers28b.map: Likewise. + * ld-elfvers/vers28b.ver: Likewise. + * ld-elfvers/vers28c.c: Likewise. + * ld-elfvers/vers28c.dsym: Likewise. + * ld-elfvers/vers28c.ver: Likewise. + +2004-03-19 Alan Modra <amodra@bigpond.net.au> + + * ld-scripts/provide-2.d: Ignore random symbols. + 2004-03-16 Alan Modra <amodra@bigpond.net.au> * ld-powerpc/tls.d: Update. @@ -12,14 +170,43 @@ 2004-03-05 Nathan Sidwell <nathan@codesourcery.com> + * ld-scripts/size-1.d: Add bigendian regexps. + * ld-scripts/size-2.d: Set --wide for readelf. + * ld-scripts/size.exp: New. * ld-scripts/size-[12].{d,s,t}: New. +2004-03-01 Richard Sandiford <rsandifo@redhat.com> + + * ld-frv/fr450-link[abc].s, fr450-link.d: New test. + * ld-frv/frv.exp: New harness. + +2004-02-24 Alexandre Oliva <aoliva@redhat.com> + + * ld-frv/fdpic-pie-2.d: Adjust for decay of FUNCDESC relocs that + bind locally. + * ld-frv/fdpic-pie-8.d: Likewise. + * ld-frv/fdpic-shared-4.d: Likewise. + * ld-frv/fdpic-pie-6-fail.d: Renamed from... + * ld-frv/fdpic-pie-6.d: New test. + * ld-frv/fdpic-shared-6-fail.d: Renamed from... + * ld-frv/fdpic-shared-6.d: New test. + * ld-frv/fdpic6.ldv: New. + * ld-frv/fdpic-static-6.d: Adjust test name. + * ld-frv/fdpic-pie-8-fail.d: Removed. + * ld-frv/fdpic.exp: Run new tests. + 2004-02-23 Nathan Sidwell <nathan@codesourcery.com> * ld-scripts/provide.exp: New. * ld-scripts/provide-{1,2,3}.{s,t,d}.exp: New. +2004-02-23 Alan Modra <amodra@bigpond.net.au> + + * ld-scripts/data.t: Set ".other" address so location doesn't + depend on target alignment. + * ld-scripts/data.d: Update. + 2004-02-20 Nathan Sidwell <nathan@codesourcery.com> * ld-scripts/align.{s,t,exp}: New. diff --git a/ld/testsuite/ld-cdtest/cdtest.exp b/ld/testsuite/ld-cdtest/cdtest.exp index 1c51f0d..d6a646a 100644 --- a/ld/testsuite/ld-cdtest/cdtest.exp +++ b/ld/testsuite/ld-cdtest/cdtest.exp @@ -35,9 +35,9 @@ if { [which $CXX] == 0 } { return } -if { ![ld_compile "$CXX $CXXFLAGS -fgnu-linker -fno-exceptions" $srcdir/$subdir/cdtest-foo.cc tmpdir/cdtest-foo.o] - || ![ld_compile "$CXX $CXXFLAGS -fgnu-linker -fno-exceptions" $srcdir/$subdir/cdtest-bar.cc tmpdir/cdtest-bar.o] - || ![ld_compile "$CXX $CXXFLAGS -fgnu-linker -fno-exceptions" $srcdir/$subdir/cdtest-main.cc tmpdir/cdtest-main.o] } { +if { ![ld_compile "$CXX $CXXFLAGS -fno-exceptions" $srcdir/$subdir/cdtest-foo.cc tmpdir/cdtest-foo.o] + || ![ld_compile "$CXX $CXXFLAGS -fno-exceptions" $srcdir/$subdir/cdtest-bar.cc tmpdir/cdtest-bar.o] + || ![ld_compile "$CXX $CXXFLAGS -fno-exceptions" $srcdir/$subdir/cdtest-main.cc tmpdir/cdtest-main.o] } { unresolved $test1 unresolved $test2 return diff --git a/ld/testsuite/ld-elf/merge.d b/ld/testsuite/ld-elf/merge.d index 4038cc8..192e8a2 100644 --- a/ld/testsuite/ld-elf/merge.d +++ b/ld/testsuite/ld-elf/merge.d @@ -3,7 +3,7 @@ #objdump: -s #xfail: "arc-*-*" "avr-*-*" "cris-*-*" "dlx-*-*" "fr30-*-*" "frv-*-*" #xfail: "hppa*-*-*" "h8300-*-*" "i960-*-*" "ip2k-*-*" "m32r-*-*" "mcore-*-*" -#xfail: "mn10*-*-*" "mips64*-*-linux*" "openrisc-*-*" "pj-*-*" "sparc*-*-*" +#xfail: "mn10*-*-*" "mips*-*-*" "openrisc-*-*" "pj-*-*" "sparc*-*-*" #xfail: "xtensa-*-*" .*: file format .*elf.* diff --git a/ld/testsuite/ld-elfvers/vers.exp b/ld/testsuite/ld-elfvers/vers.exp index 47be40e..a9b3778 100644 --- a/ld/testsuite/ld-elfvers/vers.exp +++ b/ld/testsuite/ld-elfvers/vers.exp @@ -938,3 +938,9 @@ build_vers_lib_pic "vers27d2" vers27d2.c vers27d2 "" "" vers27b.ver vers27b.dsym build_executable "vers27d3" vers27d3.c vers27d3 "vers27b.o vers27d2.so vers27d1.so" "" vers27b.ver vers27b.dsym "" build_vers_lib_pic "vers27d4" vers27d2.c vers27d4 "vers27a.so" "" vers27d4.ver vers27d4.dsym "" build_executable "vers27d5" vers27d3.c vers27d5 "vers27d4.so vers27b.o vers27a.so" "" vers27b.ver vers27b.dsym "" + +# Test weak versioned definition vs. strong definition in different +# files. +build_vers_lib_pic "vers28a" vers28a.c vers28a "" "" vers28a.ver vers28a.dsym "" +build_vers_lib_pic "vers28b" vers28b.c vers28b "" vers28b.map vers28b.ver vers28b.dsym "" +build_vers_lib_pic "vers28c" vers28c.c vers28c "vers28b.so vers28a.so" "" vers28c.ver vers28c.dsym "" diff --git a/ld/testsuite/ld-elfvsb/elfvsb.exp b/ld/testsuite/ld-elfvsb/elfvsb.exp index f1f3f1f..cd7c15f 100644 --- a/ld/testsuite/ld-elfvsb/elfvsb.exp +++ b/ld/testsuite/ld-elfvsb/elfvsb.exp @@ -1,5 +1,5 @@ # Expect script for ld-visibility tests -# Copyright 2000, 2001, 2003 Free Software Foundation, Inc. +# Copyright 2000, 2001, 2003, 2004 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -261,6 +261,9 @@ proc visibility_run {visibility} { && ![ string match $visibility "hidden_undef_def" ] && ![ string match $visibility "protected_undef" ] } { setup_xfail "s390x-*-linux*" + if { [istarget sparc*-*-linux*] && [is_elf64 $tmpdir/mainnp.o] } { + setup_xfail "sparc*-*-linux*" + } } setup_xfail "x86_64-*-linux*" if { ![istarget hppa*64*-*-linux*] } { @@ -289,6 +292,9 @@ proc visibility_run {visibility} { || [ string match $visibility "protected_weak" ] || [ string match $visibility "normal" ] } { setup_xfail "powerpc-*-linux*" + if { [istarget sparc*-*-linux*] && [is_elf64 $tmpdir/mainnp.o] } { + setup_xfail "sparc*-*-linux*" + } } if { ![ string match $visibility "hidden_undef" ] && ![ string match $visibility "protected_undef" ] } { @@ -358,6 +364,9 @@ proc visibility_run {visibility} { && ![ string match $visibility "hidden_undef_def" ] && ![ string match $visibility "protected_undef" ] } { setup_xfail "s390x-*-linux*" + if { [istarget sparc*-*-linux*] && [is_elf64 $tmpdir/mainp.o] } { + setup_xfail "sparc*-*-linux*" + } } setup_xfail "x86_64-*-linux*" if { ![istarget hppa*64*-*-linux*] } { diff --git a/ld/testsuite/ld-elfweak/elfweak.exp b/ld/testsuite/ld-elfweak/elfweak.exp index 8fc6832..78b6358 100644 --- a/ld/testsuite/ld-elfweak/elfweak.exp +++ b/ld/testsuite/ld-elfweak/elfweak.exp @@ -287,7 +287,8 @@ proc build_lib {test libname objs dynsymexp} { return } - if {![objdump_dynsymstuff $objdump $tmpdir/$libname.so $srcdir/$subdir/$dynsymexp]} { + if {![string match "" $dynsymexp] \ + && ![objdump_dynsymstuff $objdump $tmpdir/$libname.so $srcdir/$subdir/$dynsymexp]} { fail $test return } @@ -465,3 +466,30 @@ build_exec "ELF weak data first DSO" foo "main1.o libbar1a.so libfoo1a.so" "-Wl, build_exec "ELF weak data last DSO" foo "libfoo1a.so main1.o libbar1a.so" "-Wl,-rpath,." weakdata weakdata.dsym "" build_exec "ELF weak data first DSO common" foo "main1.o libbar1a.so libfoo1b.so" "-Wl,-rpath,." weakdata weakdata.dsym "" build_exec "ELF weak data last DSO common" foo "libfoo1b.so main1.o libbar1a.so" "-Wl,-rpath,." weakdata weakdata.dsym "" + +if ![ld_compile "$CC $CFLAGS $picflag" $srcdir/$subdir/size_foo.c $tmpdir/size_foo.o] { + unresolved "ELF weak (size)" + return +} + +if ![ld_compile "$CC $CFLAGS $picflag" $srcdir/$subdir/size_bar.c $tmpdir/size_bar.o] { + unresolved "ELF weak (size)" + return +} + +build_lib "ELF DSO small bar (size)" libsize_bar "size_bar.o" "" +build_lib "ELF DSO foo with small bar (size)" libsize_foo "size_foo.o libsize_bar.so" "" + +if ![ld_compile "$CC $CFLAGS $picflag -DSIZE_BIG" $srcdir/$subdir/size_bar.c $tmpdir/size_bar.o] { + unresolved "ELF weak (size)" + return +} + +build_lib "ELF DSO big bar (size)" libsize_bar "size_bar.o" "" + +if ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/size_main.c $tmpdir/size_main.o] { + unresolved "ELF weak (size)" + return +} + +build_exec "ELF weak size" size_main "size_main.o libsize_foo.so libsize_bar.so" "-Wl,-rpath,." size "" "" diff --git a/ld/testsuite/ld-elfweak/size.dat b/ld/testsuite/ld-elfweak/size.dat new file mode 100644 index 0000000..01e79c3 --- /dev/null +++ b/ld/testsuite/ld-elfweak/size.dat @@ -0,0 +1,3 @@ +1 +2 +3 diff --git a/ld/testsuite/ld-elfweak/size_bar.c b/ld/testsuite/ld-elfweak/size_bar.c new file mode 100644 index 0000000..7f32890 --- /dev/null +++ b/ld/testsuite/ld-elfweak/size_bar.c @@ -0,0 +1,11 @@ +#include <stdio.h> + +void +bar () +{ +#ifdef SIZE_BIG + printf ("1\n"); + printf ("2\n"); + printf ("3\n"); +#endif +} diff --git a/ld/testsuite/ld-elfweak/size_foo.c b/ld/testsuite/ld-elfweak/size_foo.c new file mode 100644 index 0000000..2276f62 --- /dev/null +++ b/ld/testsuite/ld-elfweak/size_foo.c @@ -0,0 +1,8 @@ +#pragma weak bar + +extern void bar (); + +foo () +{ + bar (); +} diff --git a/ld/testsuite/ld-elfweak/size_main.c b/ld/testsuite/ld-elfweak/size_main.c new file mode 100644 index 0000000..2cee0a9 --- /dev/null +++ b/ld/testsuite/ld-elfweak/size_main.c @@ -0,0 +1,8 @@ +extern void foo (); + +int +main () +{ + foo (); + return 0; +} diff --git a/ld/testsuite/ld-empic/empic.exp b/ld/testsuite/ld-empic/empic.exp deleted file mode 100644 index f72b1f3..0000000 --- a/ld/testsuite/ld-empic/empic.exp +++ /dev/null @@ -1,263 +0,0 @@ -# Expect script for ld-empic tests -# Copyright 1994, 1995, 1996 Free Software Foundation, Inc. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# Written by Ian Lance Taylor (ian@cygnus.com) -# - -# Test the handling of MIPS embedded PIC code. This test essentially -# tests the compiler and assembler as well as the linker, since MIPS -# embedded PIC is a GNU enhancement to standard MIPS tools. - -# Embedded PIC is only supported for MIPS ECOFF targets. -if ![istarget mips*-*-ecoff*] { - return -} - -set testname relax - -if { [which $CC] == 0 } { - untested $testname - return -} - -# Test that relaxation works correctly. This testsuite was composed -# (by experimentation) to force the linker to relax twice--that is, -# the first relaxation pass will force another call to be out of -# range, requiring a second relaxation pass. -if { ![ld_compile "$CC $CFLAGS -membedded-pic" $srcdir/$subdir/relax1.c tmpdir/relax1.o] - || ![ld_compile "$CC $CFLAGS -membedded-pic" $srcdir/$subdir/relax2.c tmpdir/relax2.o] - || ![ld_compile "$CC $CFLAGS -membedded-pic" $srcdir/$subdir/relax3.c tmpdir/relax3.o] - || ![ld_compile "$CC $CFLAGS -membedded-pic" $srcdir/$subdir/relax4.c tmpdir/relax4.o] } { - unresolved $testname - return -} - -if ![ld_simple_link $ld tmpdir/relax "--relax -T $srcdir/$subdir/relax.t tmpdir/relax1.o tmpdir/relax2.o tmpdir/relax3.o tmpdir/relax4.o"] { - fail $testname -} else { - # Check that the relaxation produced the correct result. Check - # each bal instruction. Some will go directly to the start of a - # function, which is OK. Some will form part of the five - # instruction expanded call sequence, in which case we compute the - # real destination and make sure it is the start of a function. - # Some bal instructions are used to locate the start of the - # function in order to do position independent addressing into the - # text section, in which case we just check that it correctly - # computes the start of the function. - - # Get the symbol table. - if ![ld_nm $nm "" tmpdir/relax] { - unresolved $testname - return - } - - # Get a disassembly. - send_log "$objdump -d tmpdir/relax >tmpdir/relax.dis\n" - verbose "$objdump -d tmpdir/relax >tmpdir/relax.dis" - catch "exec $objdump -d tmpdir/relax >tmpdir/relax.dis" exec_output - if ![string match "" $exec_output] { - send_log "$exec_output\n" - verbose $exec_output - unresolved $testname - return - } - - set balcnt 0 - set file [open tmpdir/relax.dis r] - while { [gets $file line] != -1 } { - verbose "$line" 2 - - if ![string match "*bal*" $line] { - continue - } - - verbose "$line" - - incr balcnt - - if ![regexp "^(\[0-9a-fA-F\]+) (<\[a-z+0-9A-Z.\]+>)? bal (\[0-9a-fA-F\]+)" $line whole addr label dest] { - perror "unrecognized format for $line" - unresolved $testname - return - } - - if "0x$addr + 8 != 0x$dest" { - # This is a straight function call. All function calls in - # this example are to either foo or bar. - if "0x$dest != $nm_output(foo) && 0x$dest != $nm_output(bar)" { - send_log "fail 1\n" - send_log "$line\n" - fail $testname - return - } - } else { - # Pick up the next line. If it is sll, this is a switch - # prologue, and there is not much we can do to test it. - # Otherwise, it should be lui, and the next instruction - # should be an addiu, followed by an addu to $31. - if { [gets $file l] == -1 } { - send_log "fail 2\n" - send_log "$line\n" - fail $testname - return - } - verbose $l - - if [string match "*sll*" $l] { - continue - } - if ![regexp "lui (\[\$a-z0-9\]+),(\[0-9a-fA-Fx\]+)" $l whole reg upper] { - send_log "fail 3\n" - send_log "$line\n" - send_log "$l\n" - fail $testname - return - } - - if { [gets $file l] == -1 } { - send_log "fail 4\n" - send_log "$line\n" - fail $testname - return - } - verbose "$l" - if ![regexp "addiu \\$reg,\\$reg,(\[-0-9\]+)" $l whole lower] { - send_log "fail 5\n" - send_log "$line\n" - send_log "$l\n" - send_log "addiu \\$reg,\\$reg,(\[-0-9\]+)\n" - fail $testname - return - } - - if { [gets $file l] == -1 } { - send_log "fail 6\n" - send_log "$line\n" - fail $testname - return - } - verbose "$l" - if ![regexp "addu \\$reg,\\$reg,\\\$ra" $l] { - send_log "fail 7\n" - send_log "$line\n" - send_log "$l\n" - fail $testname - return - } - - # The next line will be jalr in the case of an expanded - # call. Otherwise, the code is getting the start of the - # function, and the next line can be anything. - - if { [gets $file l] == -1 } { - send_log "fail 8\n" - send_log "$line\n" - fail $testname - return - } - verbose "$l" - if [string match "*jalr*" $l] { - set dest [expr 0x$addr + 8 + ($upper << 16) + $lower] - if { $dest != $nm_output(foo) && $dest != $nm_output(bar) } { - send_log "fail 9\n" - send_log "$line\n" - fail $testname - return - } - } else { - set dest [expr ($upper << 16) + $lower] - if ![regexp "<(\[.a-z\]+)\\+(\[0-9a-fA-F\]+)>" $label whole base offset] { - send_log "fail 10\n" - send_log "$line\n" - fail $testname - return - } - set offset 0x$offset - if { $base == ".foo" } { - set offset [expr $offset - ($nm_output(foo) - 0x30)] - } - if { $offset + 8 != - $dest } { - send_log "fail 11\n" - send_log "$line\n" - fail $testname - return - } - } - } - } - - close $file - - if {$balcnt < 10} { - send_log "fail 12\n" - fail $testname - } else { - verbose "$balcnt bal instructions" - pass $testname - } -} - -# We now test actually running embedded MIPS PIC code. This can only -# be done on a MIPS host with the same endianness as our target. -if [istarget mipsel-*-*] { - if ![ishost mips*-*-ultrix*] { - return - } -} else { - if ![ishost mips*-*-irix*] { - return - } -} - -set testname "run embedded PIC code" - -# Compile the program which will run the test. This code must be -# compiled for the host, not the target. -send_log "$CC_FOR_HOST $CFLAGS_FOR_HOST -o tmpdir/run $srcdir/$subdir/run.c\n" -verbose "$CC_FOR_HOST $CFLAGS_FOR_HOST -o tmpdir/run $srcdir/$subdir/run.c" -catch "exec $CC_FOR_HOST $CFLAGS_FOR_HOST -o tmpdir/run $srcdir/$subdir/run.c" exec_output -if ![string match "" $exec_output] { - send_log "$exec_output\n" - verbose "$exec_output" - unresolved $testname - return -} - -# Compile and link the test. -if { ![ld_compile "$CC $CFLAGS -membedded-pic" $srcdir/$subdir/runtesti.s tmpdir/runtesti.o] - || ![ld_compile "$CC $CFLAGS -membedded-pic" $srcdir/$subdir/runtest1.c tmpdir/runtest1.o] - || ![ld_compile "$CC $CFLAGS -membedded-pic" $srcdir/$subdir/runtest2.c tmpdir/runtest2.o] } { - unresolved $testname - return -} -if ![ld_simple_link $ld tmpdir/runtest "--embedded-relocs tmpdir/runtesti.o tmpdir/runtest1.o tmpdir/runtest2.o"] { - fail $testname -} else { - # Now run the test. - send_log "tmpdir/run tmpdir/runtest\n" - verbose "tmpdir/run tmpdir/runtest" - catch "exec tmpdir/run tmpdir/runtest" exec_output - if [string match "*ran and returned 0*" $exec_output] { - send_log "$exec_output\n" - verbose "$exec_output" - pass $testname - } else { - send_log "$exec_output\n" - verbose "$exec_output" - fail $testname - } -} diff --git a/ld/testsuite/ld-empic/relax.t b/ld/testsuite/ld-empic/relax.t deleted file mode 100644 index 8c18b69..0000000 --- a/ld/testsuite/ld-empic/relax.t +++ /dev/null @@ -1,49 +0,0 @@ -OUTPUT_FORMAT("ecoff-bigmips") -SECTIONS -{ - .foo 0x30 : { - tmpdir/relax3.o(.text) - tmpdir/relax1.o(.text) - } - .text 0x20000 : { - _ftext = . ; - *(.init) - eprol = .; - tmpdir/relax4.o(.text) - *(.text) - *(.fini) - etext = .; - _etext = .; - } - .rdata . : { - *(.rdata) - } - _fdata = .; - .data . : { - *(.data) - CONSTRUCTORS - } - _gp = . + 0x8000; - .lit8 . : { - *(.lit8) - } - .lit4 . : { - *(.lit4) - } - .sdata . : { - *(.sdata) - } - edata = .; - _edata = .; - _fbss = .; - .sbss . : { - *(.sbss) - *(.scommon) - } - .bss . : { - *(.bss) - *(COMMON) - } - end = .; - _end = .; -} diff --git a/ld/testsuite/ld-empic/relax1.c b/ld/testsuite/ld-empic/relax1.c deleted file mode 100644 index 20ec39e..0000000 --- a/ld/testsuite/ld-empic/relax1.c +++ /dev/null @@ -1,22 +0,0 @@ -/* First source file in relaxation test. */ - -extern int bar (); -static int foo2 (); - -int foo (int i) -{ - switch (i) - { - case 0: bar (0); break; - case 1: bar (1); break; - case 2: bar (2); break; - case 3: bar (3); break; - case 4: bar (foo2); break; - case 5: bar (bar); break; - } - while (1) - if (i) - return bar (); -} - -static int foo2 () { } diff --git a/ld/testsuite/ld-empic/relax2.c b/ld/testsuite/ld-empic/relax2.c deleted file mode 100644 index 58854a0..0000000 --- a/ld/testsuite/ld-empic/relax2.c +++ /dev/null @@ -1,19 +0,0 @@ -/* Second source file in relaxation test. */ - -int bar2 () -{ - int i; - - for (i = 0; i < 100; i++) - foo (); - return foo () + foo () + foo () + foo (); -} - -int bar (int i) -{ - while (1) - if (i) - return foo (); - else - return foo (); -} diff --git a/ld/testsuite/ld-empic/relax3.c b/ld/testsuite/ld-empic/relax3.c deleted file mode 100644 index 1aaa532..0000000 --- a/ld/testsuite/ld-empic/relax3.c +++ /dev/null @@ -1,3 +0,0 @@ -/* Third source file in relaxation test. */ - -int quux () { return 0; } diff --git a/ld/testsuite/ld-empic/relax4.c b/ld/testsuite/ld-empic/relax4.c deleted file mode 100644 index 21cfb05..0000000 --- a/ld/testsuite/ld-empic/relax4.c +++ /dev/null @@ -1,3 +0,0 @@ -/* Fourth source file in relaxation test. */ - -int xyzzy () { return 0; } diff --git a/ld/testsuite/ld-empic/run.c b/ld/testsuite/ld-empic/run.c deleted file mode 100644 index 9a0377e..0000000 --- a/ld/testsuite/ld-empic/run.c +++ /dev/null @@ -1,160 +0,0 @@ -/* Load and run a MIPS position independent ECOFF file. - Written by Ian Lance Taylor <ian@cygnus.com> - Public domain. */ - -/* This program will load an ECOFF file into memory and execute it. - The file must have been compiled using the GNU -membedded-pic - switch to produce position independent code. This will only work - if this program is run on a MIPS system with the same endianness as - the ECOFF file. The ECOFF file must be complete. System calls may - not work correctly. - - There are further restrictions on the file (they could be removed - by doing some additional programming). The file must be aligned - such that it does not require any gaps introduced in the data - segment; the GNU linker produces such files by default. However, - the file must not assume that the text or data segment is aligned - on a page boundary. The start address must be at the start of the - text segment. - - The ECOFF file is run by calling it as though it were a function. - The address of the data segment is passed as the only argument. - The file is expected to return an integer value, which will be - printed. */ - -#include <stdio.h> -#include <sys/types.h> -#include <sys/stat.h> - -/* Structures used in ECOFF files. We assume that a short is two - bytes and an int is four bytes. This is not much of an assumption, - since we already assume that we are running on a MIPS host with the - same endianness as the file we are examining. */ - -struct ecoff_filehdr { - unsigned short f_magic; /* magic number */ - unsigned short f_nscns; /* number of sections */ - unsigned int f_timdat; /* time & date stamp */ - unsigned int f_symptr; /* file pointer to symtab */ - unsigned int f_nsyms; /* number of symtab entries */ - unsigned short f_opthdr; /* sizeof(optional hdr) */ - unsigned short f_flags; /* flags */ -}; - -struct ecoff_aouthdr -{ - unsigned short magic; /* type of file */ - unsigned short vstamp; /* version stamp */ - unsigned int tsize; /* text size in bytes, padded to FW bdry*/ - unsigned int dsize; /* initialized data " " */ - unsigned int bsize; /* uninitialized data " " */ - unsigned int entry; /* entry pt. */ - unsigned int text_start; /* base of text used for this file */ - unsigned int data_start; /* base of data used for this file */ - unsigned int bss_start; /* base of bss used for this file */ - unsigned int gprmask; /* ?? */ - unsigned int cprmask[4]; /* ?? */ - unsigned int gp_value; /* value for gp register */ -}; - -#define ECOFF_SCNHDR_SIZE (40) - -static void -die (s) - char *s; -{ - perror (s); - exit (1); -} - -int -main (argc, argv) - int argc; - char **argv; -{ - FILE *f; - struct stat s; - char *z; - struct ecoff_filehdr *fh; - struct ecoff_aouthdr *ah; - unsigned int toff; - char *t, *d; - int (*pfn) (); - int ret; - - if (argc != 2) - { - fprintf (stderr, "Usage: %s file\n", argv[0]); - exit (1); - } - - f = fopen (argv[1], "r"); - if (f == NULL) - die (argv[1]); - - if (stat (argv[1], &s) < 0) - die ("stat"); - - z = (char *) malloc (s.st_size); - if (z == NULL) - die ("malloc"); - - if (fread (z, 1, s.st_size, f) != s.st_size) - die ("fread"); - - /* We need to figure out the start of the text segment, which is the - location we are going to call, and the start of the data segment, - which we are going to pass as an argument. We also need the size - and start address of the bss segment. This information is all in - the ECOFF a.out header. */ - - fh = (struct ecoff_filehdr *) z; - if (fh->f_opthdr != sizeof (struct ecoff_aouthdr)) - { - fprintf (stderr, "%s: unexpected opthdr size: is %u, want %u\n", - argv[1], (unsigned int) fh->f_opthdr, - (unsigned int) sizeof (struct ecoff_aouthdr)); - exit (1); - } - - ah = (struct ecoff_aouthdr *) (z + sizeof (struct ecoff_filehdr)); - if (ah->magic != 0413) - { - fprintf (stderr, "%s: bad aouthdr magic number 0%o (want 0413)\n", - argv[1], (unsigned int) ah->magic); - exit (1); - } - - /* We should clear the bss segment at this point. This is the - ah->bsize bytes starting at ah->bss_start, To do this correctly, - we would have to make sure our memory block is large enough. It - so happens that our test case does not have any additional pages - for the bss segment--it is contained within the data segment. - So, we don't bother. */ - if (ah->bsize != 0) - { - fprintf (stderr, - "%s: bss segment is %u bytes; non-zero sizes not supported\n", - argv[1], ah->bsize); - exit (1); - } - - /* The text section starts just after all the headers, rounded to a - 16 byte boundary. */ - toff = (sizeof (struct ecoff_filehdr) + sizeof (struct ecoff_aouthdr) - + fh->f_nscns * ECOFF_SCNHDR_SIZE); - toff += 15; - toff &=~ 15; - t = z + toff; - - /* The tsize field gives us the start of the data segment. */ - d = z + ah->tsize; - - /* Call the code as a function. */ - pfn = (int (*) ()) t; - ret = (*pfn) (d); - - printf ("%s ran and returned %d\n", argv[1], ret); - - exit (0); -} diff --git a/ld/testsuite/ld-empic/runtest1.c b/ld/testsuite/ld-empic/runtest1.c deleted file mode 100644 index f9ab6eb..0000000 --- a/ld/testsuite/ld-empic/runtest1.c +++ /dev/null @@ -1,117 +0,0 @@ -/* First C source file for actual execution test. */ - -/* The main point of this test is to make sure that the code and data - are truly position independent. We statically initialize several - global variables, and make sure that they are correctly adjusted at - runtime. */ - -int i = 1; -int j = 0; -extern int k; -int l; -char small_buf[] = "aaaa"; -char *small_pointer = small_buf; -char big_buf[] = "aaaaaaaaaaaaaaaa"; -char *big_pointer = big_buf; - -extern int bar (); -int (*pbar) () = bar; - -static int -foo2 (arg) - int arg; -{ - l = arg; - return i + j; -} - -int (*pfoo2) () = foo2; - -int -chkstr (z, c) - char *z; - int c; -{ - /* Switch statements need extra effort to be position independent, - so we run one here, even though most of the cases will never be - taken. */ - switch (c) - { - case 1: - case 2: - case 3: - return i - 1; - case 4: - break; - case 5: - case 6: - case 7: - case 8: - case 9: - return i * j; - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - return j; - case 16: - break; - default: - return 0; - } - - while (c-- != 0) - if (*z++ != 'a') - return 0; - - return *z == '\0'; -} - -/* This function is called by the assembler startup routine. It tries - to test that everything was correctly initialized. It returns 0 on - success, something else on failure. */ - -int -foo () -{ - if (i != 1) - return 1; - if (j != 0) - return 2; - if (! chkstr (small_buf, 4)) - return 3; - if (! chkstr (small_pointer, 4)) - return 4; - if (! chkstr (big_buf, 16)) - return 5; - if (! chkstr (big_pointer, 16)) - return 6; - - if (l != 0) - return 7; - if (foo2 (1) != 1) - return 8; - if (l != 1) - return 9; - if ((*pfoo2) (2) != 1) - return 10; - if (l != 2) - return 11; - - if (bar (1) != 0) - return 12; - if (bar (-1) != 1) - return 13; - if ((*pbar) (0xa5a5a5a5) != -1) - return 14; - if (k != 0xa5a5a5a5) - return 15; - if ((*pbar) (0) != 0xa5a5a5a5) - return 16; - if (k != 0) - return 17; - - return 0; -} diff --git a/ld/testsuite/ld-empic/runtest2.c b/ld/testsuite/ld-empic/runtest2.c deleted file mode 100644 index 000525f..0000000 --- a/ld/testsuite/ld-empic/runtest2.c +++ /dev/null @@ -1,26 +0,0 @@ -/* Second C source file for actual execution test. */ - -int k; -extern int i; -extern int j; -extern char small_buf[]; -extern char *small_pointer; - -extern int chkstr (); - -int -bar (n) - int n; -{ - int r; - - if (i != 1 - || j != 0 - || ! chkstr (small_buf, 4) - || ! chkstr (small_pointer, 4)) - return k + 1; - - r = k; - k = n; - return r; -} diff --git a/ld/testsuite/ld-empic/runtesti.s b/ld/testsuite/ld-empic/runtesti.s deleted file mode 100644 index efa1953..0000000 --- a/ld/testsuite/ld-empic/runtesti.s +++ /dev/null @@ -1,94 +0,0 @@ -# Assembler initialization code for actual execution test. - -# This code becomes the start of the execution test program. It is -# responsible for initializing the static data, invoking the C code, -# and returning the result. It is called as though it were a C -# function with an argument of the address of the data segment. - -# We need to know the value of _ftext and _fdata at link time, but we -# have no way to actually get that at runtime. This is because when -# this code is compiled with -membedded-pic, the la instruction will -# be turned into an addiu $gp instruction. We work around this by -# storing the information in words in the .data section. We then load -# the values of these words *before* doing the runtime relocation. - .sdata -text_start: - .word _ftext -data_start: - .word _fdata - - .globl start - .text -start: - # Grab some space on the stack, just as though we were a real - # function. - addiu $sp,$sp,-8 - sw $31,0($sp) - - # Save the $gp register, and set it up for our data section. - sw $gp,4($sp) - - addu $gp,$4,0x8000 # macro - - # The start of the data segment is in $4. - - # Get the address of start into $5 in a position independent - # fashion. - .set noreorder - $LF1 = . + 8 - bal $LF1 - la $5,start-$LF1 # macro - .set reorder - addu $5,$5,$31 - - # Now get the address of _ftext into $6. - la $6,_ftext-start # macro - addu $6,$6,$5 - - # Get the value of _ftext used to link into $7. - lw $7,text_start # macro - - # Get the value of _fdata used to link into $8. - lw $8,data_start # macro - - # Get the address of __runtime_reloc_start into $9. - la $9,__runtime_reloc_start-start # macro - addu $9,$9,$5 - - # Get the address of __runtime_reloc_stop into $10. - la $10,__runtime_reloc_stop-start # macro - addu $10,$10,$5 - - # The words between $9 and $10 are the runtime initialization - # instructions. Step through and relocate them. First set - # $11 and $12 to the values to add to text and data sections, - # respectively. - subu $11,$6,$7 - subu $12,$4,$8 - -1: - bge $9,$10,3f # macro - lw $13,0($9) - and $14,$13,0xfffffffe # macro - move $15,$11 - beq $13,$14,2f - move $15,$12 -2: - addu $14,$14,$4 - lw $24,0($14) - addu $24,$24,$15 - sw $24,0($14) - addiu $9,$9,4 - b 1b -3: - - # Now the statically initialized data has been relocated - # correctly, and we can call the C code which does the actual - # testing. - bal foo - - # We return the value returned by the C code. - lw $31,0($sp) - lw $gp,4($sp) - addu $sp,$sp,8 - j $31 diff --git a/ld/testsuite/ld-frv/fdpic-pie-1.d b/ld/testsuite/ld-frv/fdpic-pie-1.d index da356ae..15d36ae 100644 --- a/ld/testsuite/ld-frv/fdpic-pie-1.d +++ b/ld/testsuite/ld-frv/fdpic-pie-1.d @@ -32,27 +32,27 @@ Disassembly of section \.text: 418: 80 f8 00 00 sethi hi\(0x0\),gr0 Disassembly of section \.data: -00010430 <D1>: - 10430: 00 00 00 04 add\.p gr0,gr4,gr0 - 10430: R_FRV_32 \.data - -00010434 <\.D0>: - 10434: 00 00 00 00 add\.p gr0,gr0,gr0 - 10434: R_FRV_32 \.got - 10438: 00 00 00 04 add\.p gr0,gr4,gr0 - 10438: R_FRV_32 \.text +00004430 <D1>: + 4430: 00 00 00 04 add\.p gr0,gr4,gr0 + 4430: R_FRV_32 \.data + +00004434 <\.D0>: + 4434: 00 00 00 00 add\.p gr0,gr0,gr0 + 4434: R_FRV_32 \.got + 4438: 00 00 00 04 add\.p gr0,gr4,gr0 + 4438: R_FRV_32 \.text Disassembly of section \.got: -000104b8 <_GLOBAL_OFFSET_TABLE_-0x8>: - 104b8: 00 00 00 04 add\.p gr0,gr4,gr0 - 104b8: R_FRV_FUNCDESC_VALUE \.text - 104bc: 00 00 00 02 add\.p gr0,fp,gr0 +000044b8 <_GLOBAL_OFFSET_TABLE_-0x8>: + 44b8: 00 00 00 04 add\.p gr0,gr4,gr0 + 44b8: R_FRV_FUNCDESC_VALUE \.text + 44bc: 00 00 00 02 add\.p gr0,fp,gr0 -000104c0 <_GLOBAL_OFFSET_TABLE_>: +000044c0 <_GLOBAL_OFFSET_TABLE_>: \.\.\. - 104cc: 00 00 00 04 add\.p gr0,gr4,gr0 - 104cc: R_FRV_32 \.text - 104d0: 00 00 00 00 add\.p gr0,gr0,gr0 - 104d0: R_FRV_32 \.got - 104d4: 00 00 00 04 add\.p gr0,gr4,gr0 - 104d4: R_FRV_32 \.data + 44cc: 00 00 00 04 add\.p gr0,gr4,gr0 + 44cc: R_FRV_32 \.text + 44d0: 00 00 00 00 add\.p gr0,gr0,gr0 + 44d0: R_FRV_32 \.got + 44d4: 00 00 00 04 add\.p gr0,gr4,gr0 + 44d4: R_FRV_32 \.data diff --git a/ld/testsuite/ld-frv/fdpic-pie-2.d b/ld/testsuite/ld-frv/fdpic-pie-2.d index fb7691a..fb5e1e6 100644 --- a/ld/testsuite/ld-frv/fdpic-pie-2.d +++ b/ld/testsuite/ld-frv/fdpic-pie-2.d @@ -32,39 +32,41 @@ Disassembly of section \.text: 618: 80 f8 00 00 sethi hi\(0x0\),gr0 Disassembly of section \.data: -00010630 <D2>: - 10630: 00 00 00 04 add\.p gr0,gr4,gr0 - 10630: R_FRV_32 \.data +00004630 <D2>: + 4630: 00 00 00 04 add\.p gr0,gr4,gr0 + 4630: R_FRV_32 \.data -00010634 <GD0>: - 10634: 00 00 00 00 add\.p gr0,gr0,gr0 - 10634: R_FRV_FUNCDESC GFb - 10638: 00 00 00 04 add\.p gr0,gr4,gr0 - 10638: R_FRV_32 \.text +00004634 <GD0>: + 4634: 00 00 00 04 add\.p gr0,gr4,gr0 + 4634: R_FRV_FUNCDESC \.text + 4638: 00 00 00 04 add\.p gr0,gr4,gr0 + 4638: R_FRV_32 \.text Disassembly of section \.got: -000106b8 <_GLOBAL_OFFSET_TABLE_-0x18>: - 106b8: 00 00 00 04 add\.p gr0,gr4,gr0 - 106b8: R_FRV_FUNCDESC_VALUE \.text - 106bc: 00 00 00 02 add\.p gr0,fp,gr0 - 106c0: 00 00 00 04 add\.p gr0,gr4,gr0 - 106c0: R_FRV_FUNCDESC_VALUE \.text - 106c4: 00 00 00 02 add\.p gr0,fp,gr0 - 106c8: 00 00 00 04 add\.p gr0,gr4,gr0 - 106c8: R_FRV_FUNCDESC_VALUE \.text - 106cc: 00 00 00 02 add\.p gr0,fp,gr0 +000046b8 <_GLOBAL_OFFSET_TABLE_-0x18>: + 46b8: 00 00 00 04 add\.p gr0,gr4,gr0 + 46b8: R_FRV_FUNCDESC_VALUE \.text + 46bc: 00 00 00 02 add\.p gr0,fp,gr0 + 46c0: 00 00 00 04 add\.p gr0,gr4,gr0 + 46c0: R_FRV_FUNCDESC_VALUE \.text + 46c4: 00 00 00 02 add\.p gr0,fp,gr0 + 46c8: 00 00 00 04 add\.p gr0,gr4,gr0 + 46c8: R_FRV_FUNCDESC_VALUE \.text + 46cc: 00 00 00 02 add\.p gr0,fp,gr0 -000106d0 <_GLOBAL_OFFSET_TABLE_>: +000046d0 <_GLOBAL_OFFSET_TABLE_>: \.\.\. - 106dc: R_FRV_FUNCDESC GF4 - 106e0: 00 00 00 04 add\.p gr0,gr4,gr0 - 106e0: R_FRV_32 \.text - \.\.\. - 106e4: R_FRV_FUNCDESC GF6 - 106e8: R_FRV_FUNCDESC GF5 - 106ec: 00 00 00 04 add\.p gr0,gr4,gr0 - 106ec: R_FRV_32 \.data - 106f0: 00 00 00 04 add\.p gr0,gr4,gr0 - 106f0: R_FRV_32 \.text - 106f4: 00 00 00 04 add\.p gr0,gr4,gr0 - 106f4: R_FRV_32 \.text + 46dc: 00 00 00 04 add\.p gr0,gr4,gr0 + 46dc: R_FRV_FUNCDESC \.text + 46e0: 00 00 00 04 add\.p gr0,gr4,gr0 + 46e0: R_FRV_32 \.text + 46e4: 00 00 00 04 add\.p gr0,gr4,gr0 + 46e4: R_FRV_FUNCDESC \.text + 46e8: 00 00 00 04 add\.p gr0,gr4,gr0 + 46e8: R_FRV_FUNCDESC \.text + 46ec: 00 00 00 04 add\.p gr0,gr4,gr0 + 46ec: R_FRV_32 \.data + 46f0: 00 00 00 04 add\.p gr0,gr4,gr0 + 46f0: R_FRV_32 \.text + 46f4: 00 00 00 04 add\.p gr0,gr4,gr0 + 46f4: R_FRV_32 \.text diff --git a/ld/testsuite/ld-frv/fdpic-pie-6.d b/ld/testsuite/ld-frv/fdpic-pie-6.d index eaca671..c9263f7 100644 --- a/ld/testsuite/ld-frv/fdpic-pie-6.d +++ b/ld/testsuite/ld-frv/fdpic-pie-6.d @@ -1,6 +1,74 @@ -#name: FRV uClinux PIC relocs to undefined symbols, pie linking +#name: FRV uClinux PIC relocs to weak undefined symbols, pie linking #source: fdpic6.s #objdump: -DR -j .text -j .data -j .got -j .plt #as: -mfdpic -#ld: -pie -#error: different segments +#ld: -pie --defsym WD1=D6 + +.*: file format elf.*frv.* + +Disassembly of section \.plt: + +000005a8 <\.plt>: + 5a8: 00 00 00 08 add\.p gr0,gr8,gr0 + 5ac: c0 1a 00 06 bra 5c4 <F6-0x10> + 5b0: 00 00 00 00 add\.p gr0,gr0,gr0 + 5b4: c0 1a 00 04 bra 5c4 <F6-0x10> + 5b8: 00 00 00 10 add\.p gr0,gr16,gr0 + 5bc: c0 1a 00 02 bra 5c4 <F6-0x10> + 5c0: 00 00 00 18 add\.p gr0,gr24,gr0 + 5c4: 88 08 f1 40 ldd @\(gr15,gr0\),gr4 + 5c8: 80 30 40 00 jmpl @\(gr4,gr0\) + 5cc: 9c cc ff f0 lddi @\(gr15,-16\),gr14 + 5d0: 80 30 e0 00 jmpl @\(gr14,gr0\) +Disassembly of section \.text: + +000005d4 <F6>: + 5d4: fe 3f ff fe call 5cc <F6-0x8> + 5d8: 80 40 f0 0c addi gr15,12,gr0 + 5dc: 80 fc 00 24 setlos 0x24,gr0 + 5e0: 80 f4 00 20 setlo 0x20,gr0 + 5e4: 80 f8 00 00 sethi hi\(0x0\),gr0 + 5e8: 80 40 f0 10 addi gr15,16,gr0 + 5ec: 80 fc 00 18 setlos 0x18,gr0 + 5f0: 80 f4 00 1c setlo 0x1c,gr0 + 5f4: 80 f8 00 00 sethi hi\(0x0\),gr0 + 5f8: 80 40 ff f8 addi gr15,-8,gr0 + 5fc: 80 fc ff e8 setlos 0xffffffe8,gr0 + 600: 80 f4 ff e0 setlo 0xffe0,gr0 + 604: 80 f8 ff ff sethi 0xffff,gr0 + 608: 80 f4 ff 44 setlo 0xff44,gr0 + 60c: 80 f8 ff ff sethi 0xffff,gr0 + 610: 80 f4 00 14 setlo 0x14,gr0 + 614: 80 f8 00 00 sethi hi\(0x0\),gr0 +Disassembly of section \.data: + +0000462c <D6>: + \.\.\. + 462c: R_FRV_32 WD0 + 4630: R_FRV_FUNCDESC WFb + 4634: R_FRV_32 WFb +Disassembly of section \.got: + +000046c8 <_GLOBAL_OFFSET_TABLE_-0x20>: + 46c8: 00 00 05 c4 subxcc\.p gr0,gr4,gr0,icc1 + 46c8: R_FRV_FUNCDESC_VALUE WF9 + 46cc: 00 00 00 02 add\.p gr0,fp,gr0 + 46d0: 00 00 05 bc subx\.p gr0,gr60,gr0,icc1 + 46d0: R_FRV_FUNCDESC_VALUE WF8 + 46d4: 00 00 00 02 add\.p gr0,fp,gr0 + 46d8: 00 00 05 b4 subx\.p gr0,gr52,gr0,icc1 + 46d8: R_FRV_FUNCDESC_VALUE WF0 + 46dc: 00 00 00 02 add\.p gr0,fp,gr0 + 46e0: 00 00 05 ac subx\.p gr0,gr44,gr0,icc1 + 46e0: R_FRV_FUNCDESC_VALUE WF7 + 46e4: 00 00 00 02 add\.p gr0,fp,gr0 + +000046e8 <_GLOBAL_OFFSET_TABLE_>: + \.\.\. + 46f4: R_FRV_32 WF1 + 46f8: R_FRV_FUNCDESC WF4 + 46fc: R_FRV_32 WD2 + 4700: R_FRV_FUNCDESC WF5 + 4704: R_FRV_FUNCDESC WF6 + 4708: R_FRV_32 WF3 + 470c: R_FRV_32 WF2 diff --git a/ld/testsuite/ld-frv/fdpic-pie-7.d b/ld/testsuite/ld-frv/fdpic-pie-7.d index a3f0478..67a6abf 100644 --- a/ld/testsuite/ld-frv/fdpic-pie-7.d +++ b/ld/testsuite/ld-frv/fdpic-pie-7.d @@ -32,27 +32,27 @@ Disassembly of section \.text: 418: 80 f8 00 00 sethi hi\(0x0\),gr0 Disassembly of section \.data: -00010430 <D7>: - 10430: 00 00 00 08 add\.p gr0,gr8,gr0 - 10430: R_FRV_32 \.data - -00010434 <\.D0>: - 10434: 00 00 00 00 add\.p gr0,gr0,gr0 - 10434: R_FRV_32 \.got - 10438: 00 00 00 08 add\.p gr0,gr8,gr0 - 10438: R_FRV_32 \.text +00004430 <D7>: + 4430: 00 00 00 08 add\.p gr0,gr8,gr0 + 4430: R_FRV_32 \.data + +00004434 <\.D0>: + 4434: 00 00 00 00 add\.p gr0,gr0,gr0 + 4434: R_FRV_32 \.got + 4438: 00 00 00 08 add\.p gr0,gr8,gr0 + 4438: R_FRV_32 \.text Disassembly of section \.got: -000104b8 <_GLOBAL_OFFSET_TABLE_-0x8>: - 104b8: 00 00 00 08 add\.p gr0,gr8,gr0 - 104b8: R_FRV_FUNCDESC_VALUE \.text - 104bc: 00 00 00 02 add\.p gr0,fp,gr0 +000044b8 <_GLOBAL_OFFSET_TABLE_-0x8>: + 44b8: 00 00 00 08 add\.p gr0,gr8,gr0 + 44b8: R_FRV_FUNCDESC_VALUE \.text + 44bc: 00 00 00 02 add\.p gr0,fp,gr0 -000104c0 <_GLOBAL_OFFSET_TABLE_>: +000044c0 <_GLOBAL_OFFSET_TABLE_>: \.\.\. - 104cc: 00 00 00 08 add\.p gr0,gr8,gr0 - 104cc: R_FRV_32 \.text - 104d0: 00 00 00 00 add\.p gr0,gr0,gr0 - 104d0: R_FRV_32 \.got - 104d4: 00 00 00 08 add\.p gr0,gr8,gr0 - 104d4: R_FRV_32 \.data + 44cc: 00 00 00 08 add\.p gr0,gr8,gr0 + 44cc: R_FRV_32 \.text + 44d0: 00 00 00 00 add\.p gr0,gr0,gr0 + 44d0: R_FRV_32 \.got + 44d4: 00 00 00 08 add\.p gr0,gr8,gr0 + 44d4: R_FRV_32 \.data diff --git a/ld/testsuite/ld-frv/fdpic-pie-8-fail.d b/ld/testsuite/ld-frv/fdpic-pie-8-fail.d deleted file mode 100644 index f797b6a..0000000 --- a/ld/testsuite/ld-frv/fdpic-pie-8-fail.d +++ /dev/null @@ -1,6 +0,0 @@ -#name: FRV uClinux PIC relocs to global symbols with addends, failing pie linking -#source: fdpic8.s -#objdump: -DR -j .text -j .data -j .got -j .plt -#as: -mfdpic -#ld: -pie -#error: nonzero addend diff --git a/ld/testsuite/ld-frv/fdpic-pie-8.d b/ld/testsuite/ld-frv/fdpic-pie-8.d index 882f816..20b0ea0 100644 --- a/ld/testsuite/ld-frv/fdpic-pie-8.d +++ b/ld/testsuite/ld-frv/fdpic-pie-8.d @@ -2,83 +2,71 @@ #source: fdpic8.s #objdump: -DR -j .text -j .data -j .got -j .plt #as: -mfdpic -#ld: -pie --version-script fdpic8min.ldv +#ld: -pie .*: file format elf.*frv.* Disassembly of section \.text: -00000498 <F8>: - 498: 80 3c 00 02 call 4a0 <GF1\+0x4> +000005d0 <F8>: + 5d0: 80 3c 00 02 call 5d8 <GF0\+0x4> -0000049c <GF1>: - 49c: 80 40 f0 10 addi gr15,16,gr0 - 4a0: 80 fc 00 14 setlos 0x14,gr0 - 4a4: 80 f4 00 24 setlo 0x24,gr0 - 4a8: 80 f8 00 00 sethi hi\(0x0\),gr0 - 4ac: 80 40 f0 0c addi gr15,12,gr0 - 4b0: 80 fc 00 1c setlos 0x1c,gr0 - 4b4: 80 f4 00 18 setlo 0x18,gr0 - 4b8: 80 f8 00 00 sethi hi\(0x0\),gr0 - 4bc: 80 40 ff f8 addi gr15,-8,gr0 - 4c0: 80 fc ff f0 setlos 0xfffffff0,gr0 - 4c4: 80 f4 ff c8 setlo 0xffc8,gr0 - 4c8: 80 f8 ff ff sethi 0xffff,gr0 - 4cc: 80 40 ff 48 addi gr15,-184,gr0 - 4d0: 80 fc ff 48 setlos 0xffffff48,gr0 - 4d4: 80 f4 ff 48 setlo 0xff48,gr0 - 4d8: 80 f8 ff ff sethi 0xffff,gr0 - 4dc: 80 f4 00 20 setlo 0x20,gr0 - 4e0: 80 f8 00 00 sethi hi\(0x0\),gr0 +000005d4 <GF0>: + 5d4: 80 40 f0 10 addi gr15,16,gr0 + 5d8: 80 fc 00 14 setlos 0x14,gr0 + 5dc: 80 f4 00 24 setlo 0x24,gr0 + 5e0: 80 f8 00 00 sethi hi\(0x0\),gr0 + 5e4: 80 40 f0 0c addi gr15,12,gr0 + 5e8: 80 fc 00 1c setlos 0x1c,gr0 + 5ec: 80 f4 00 18 setlo 0x18,gr0 + 5f0: 80 f8 00 00 sethi hi\(0x0\),gr0 + 5f4: 80 40 ff f8 addi gr15,-8,gr0 + 5f8: 80 fc ff f0 setlos 0xfffffff0,gr0 + 5fc: 80 f4 ff e8 setlo 0xffe8,gr0 + 600: 80 f8 ff ff sethi 0xffff,gr0 + 604: 80 40 ff 68 addi gr15,-152,gr0 + 608: 80 fc ff 68 setlos 0xffffff68,gr0 + 60c: 80 f4 ff 68 setlo 0xff68,gr0 + 610: 80 f8 ff ff sethi 0xffff,gr0 + 614: 80 f4 00 20 setlo 0x20,gr0 + 618: 80 f8 00 00 sethi hi\(0x0\),gr0 Disassembly of section \.data: -000104f8 <D8>: - 104f8: 00 00 00 08 add\.p gr0,gr8,gr0 - 104f8: R_FRV_32 \.data +00004630 <D8>: + 4630: 00 00 00 08 add\.p gr0,gr8,gr0 + 4630: R_FRV_32 \.data -000104fc <GD0>: - 104fc: 00 00 00 10 add\.p gr0,gr16,gr0 - 104fc: R_FRV_32 \.got - 10500: 00 00 00 08 add\.p gr0,gr8,gr0 - 10500: R_FRV_32 \.text +00004634 <GD0>: + 4634: 00 00 00 08 add\.p gr0,gr8,gr0 + 4634: R_FRV_FUNCDESC \.text + 4638: 00 00 00 08 add\.p gr0,gr8,gr0 + 4638: R_FRV_32 \.text Disassembly of section \.got: -00010580 <_GLOBAL_OFFSET_TABLE_-0x38>: - 10580: 00 00 00 08 add\.p gr0,gr8,gr0 - 10580: R_FRV_FUNCDESC_VALUE \.text - 10584: 00 00 00 02 add\.p gr0,fp,gr0 - 10588: 00 00 00 08 add\.p gr0,gr8,gr0 - 10588: R_FRV_FUNCDESC_VALUE \.text - 1058c: 00 00 00 02 add\.p gr0,fp,gr0 - 10590: 00 00 00 08 add\.p gr0,gr8,gr0 - 10590: R_FRV_FUNCDESC_VALUE \.text - 10594: 00 00 00 02 add\.p gr0,fp,gr0 - 10598: 00 00 00 08 add\.p gr0,gr8,gr0 - 10598: R_FRV_FUNCDESC_VALUE \.text - 1059c: 00 00 00 02 add\.p gr0,fp,gr0 - 105a0: 00 00 00 08 add\.p gr0,gr8,gr0 - 105a0: R_FRV_FUNCDESC_VALUE \.text - 105a4: 00 00 00 02 add\.p gr0,fp,gr0 - 105a8: 00 00 00 08 add\.p gr0,gr8,gr0 - 105a8: R_FRV_FUNCDESC_VALUE \.text - 105ac: 00 00 00 02 add\.p gr0,fp,gr0 - 105b0: 00 00 00 08 add\.p gr0,gr8,gr0 - 105b0: R_FRV_FUNCDESC_VALUE \.text - 105b4: 00 00 00 02 add\.p gr0,fp,gr0 +000046b8 <_GLOBAL_OFFSET_TABLE_-0x18>: + 46b8: 00 00 00 08 add\.p gr0,gr8,gr0 + 46b8: R_FRV_FUNCDESC_VALUE \.text + 46bc: 00 00 00 02 add\.p gr0,fp,gr0 + 46c0: 00 00 00 08 add\.p gr0,gr8,gr0 + 46c0: R_FRV_FUNCDESC_VALUE \.text + 46c4: 00 00 00 02 add\.p gr0,fp,gr0 + 46c8: 00 00 00 08 add\.p gr0,gr8,gr0 + 46c8: R_FRV_FUNCDESC_VALUE \.text + 46cc: 00 00 00 02 add\.p gr0,fp,gr0 -000105b8 <_GLOBAL_OFFSET_TABLE_>: +000046d0 <_GLOBAL_OFFSET_TABLE_>: \.\.\. - 105c4: 00 00 00 08 add\.p gr0,gr8,gr0 - 105c4: R_FRV_32 \.got - 105c8: 00 00 00 08 add\.p gr0,gr8,gr0 - 105c8: R_FRV_32 \.text - 105cc: 00 00 00 08 add\.p gr0,gr8,gr0 - 105cc: R_FRV_32 \.text - 105d0: 00 00 00 20 add\.p gr0,gr32,gr0 - 105d0: R_FRV_32 \.got - 105d4: 00 00 00 18 add\.p gr0,gr24,gr0 - 105d4: R_FRV_32 \.got - 105d8: 00 00 00 08 add\.p gr0,gr8,gr0 - 105d8: R_FRV_32 \.data - 105dc: 00 00 00 08 add\.p gr0,gr8,gr0 - 105dc: R_FRV_32 \.text + 46dc: 00 00 00 04 add\.p gr0,gr4,gr0 + 46dc: R_FRV_FUNCDESC \.text + 46e0: 00 00 00 08 add\.p gr0,gr8,gr0 + 46e0: R_FRV_32 \.text + 46e4: 00 00 00 08 add\.p gr0,gr8,gr0 + 46e4: R_FRV_32 \.text + 46e8: 00 00 00 04 add\.p gr0,gr4,gr0 + 46e8: R_FRV_FUNCDESC \.text + 46ec: 00 00 00 04 add\.p gr0,gr4,gr0 + 46ec: R_FRV_FUNCDESC \.text + 46f0: 00 00 00 08 add\.p gr0,gr8,gr0 + 46f0: R_FRV_32 \.data + 46f4: 00 00 00 08 add\.p gr0,gr8,gr0 + 46f4: R_FRV_32 \.text diff --git a/ld/testsuite/ld-frv/fdpic-shared-1.d b/ld/testsuite/ld-frv/fdpic-shared-1.d index aeb3bc4..f0c5ce8 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-1.d +++ b/ld/testsuite/ld-frv/fdpic-shared-1.d @@ -32,27 +32,27 @@ Disassembly of section \.text: 424: 80 f8 00 00 sethi hi\(0x0\),gr0 Disassembly of section \.data: -0001042c <D1>: - 1042c: 00 00 00 04 add\.p gr0,gr4,gr0 - 1042c: R_FRV_32 \.data - -00010430 <\.D0>: - 10430: 00 00 00 00 add\.p gr0,gr0,gr0 - 10430: R_FRV_32 \.got - 10434: 00 00 00 04 add\.p gr0,gr4,gr0 - 10434: R_FRV_32 \.text +0000442c <D1>: + 442c: 00 00 00 04 add\.p gr0,gr4,gr0 + 442c: R_FRV_32 \.data + +00004430 <\.D0>: + 4430: 00 00 00 00 add\.p gr0,gr0,gr0 + 4430: R_FRV_32 \.got + 4434: 00 00 00 04 add\.p gr0,gr4,gr0 + 4434: R_FRV_32 \.text Disassembly of section \.got: -000104b0 <_GLOBAL_OFFSET_TABLE_-0x8>: - 104b0: 00 00 00 04 add\.p gr0,gr4,gr0 - 104b0: R_FRV_FUNCDESC_VALUE \.text - 104b4: 00 00 00 00 add\.p gr0,gr0,gr0 +000044b0 <_GLOBAL_OFFSET_TABLE_-0x8>: + 44b0: 00 00 00 04 add\.p gr0,gr4,gr0 + 44b0: R_FRV_FUNCDESC_VALUE \.text + 44b4: 00 00 00 00 add\.p gr0,gr0,gr0 -000104b8 <_GLOBAL_OFFSET_TABLE_>: +000044b8 <_GLOBAL_OFFSET_TABLE_>: \.\.\. - 104c4: 00 00 00 04 add\.p gr0,gr4,gr0 - 104c4: R_FRV_32 \.text - 104c8: 00 00 00 00 add\.p gr0,gr0,gr0 - 104c8: R_FRV_32 \.got - 104cc: 00 00 00 04 add\.p gr0,gr4,gr0 - 104cc: R_FRV_32 \.data + 44c4: 00 00 00 04 add\.p gr0,gr4,gr0 + 44c4: R_FRV_32 \.text + 44c8: 00 00 00 00 add\.p gr0,gr0,gr0 + 44c8: R_FRV_32 \.got + 44cc: 00 00 00 04 add\.p gr0,gr4,gr0 + 44cc: R_FRV_32 \.data diff --git a/ld/testsuite/ld-frv/fdpic-shared-2.d b/ld/testsuite/ld-frv/fdpic-shared-2.d index b506788..04b7f98 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-2.d +++ b/ld/testsuite/ld-frv/fdpic-shared-2.d @@ -46,36 +46,36 @@ Disassembly of section \.text: 63c: 80 f8 00 00 sethi hi\(0x0\),gr0 Disassembly of section \.data: -00010644 <D2>: - 10644: 00 00 00 00 add\.p gr0,gr0,gr0 - 10644: R_FRV_32 GD0 +00004644 <D2>: + 4644: 00 00 00 00 add\.p gr0,gr0,gr0 + 4644: R_FRV_32 GD0 -00010648 <GD0>: +00004648 <GD0>: \.\.\. - 10648: R_FRV_FUNCDESC GFb - 1064c: R_FRV_32 GFb + 4648: R_FRV_FUNCDESC GFb + 464c: R_FRV_32 GFb Disassembly of section \.got: -000106e0 <_GLOBAL_OFFSET_TABLE_-0x20>: - 106e0: 00 00 05 dc subxcc\.p gr0,gr28,gr0,icc1 - 106e0: R_FRV_FUNCDESC_VALUE GF9 - 106e4: 00 00 00 00 add\.p gr0,gr0,gr0 - 106e8: 00 00 05 d4 subxcc\.p gr0,gr20,gr0,icc1 - 106e8: R_FRV_FUNCDESC_VALUE GF8 - 106ec: 00 00 00 00 add\.p gr0,gr0,gr0 - 106f0: 00 00 05 e4 subxcc\.p gr0,gr36,gr0,icc1 - 106f0: R_FRV_FUNCDESC_VALUE GF7 - 106f4: 00 00 00 00 add\.p gr0,gr0,gr0 - 106f8: 00 00 05 cc subxcc\.p gr0,gr12,gr0,icc1 - 106f8: R_FRV_FUNCDESC_VALUE GF0 - 106fc: 00 00 00 00 add\.p gr0,gr0,gr0 +000046e0 <_GLOBAL_OFFSET_TABLE_-0x20>: + 46e0: 00 00 05 dc subxcc\.p gr0,gr28,gr0,icc1 + 46e0: R_FRV_FUNCDESC_VALUE GF9 + 46e4: 00 00 00 00 add\.p gr0,gr0,gr0 + 46e8: 00 00 05 d4 subxcc\.p gr0,gr20,gr0,icc1 + 46e8: R_FRV_FUNCDESC_VALUE GF8 + 46ec: 00 00 00 00 add\.p gr0,gr0,gr0 + 46f0: 00 00 05 e4 subxcc\.p gr0,gr36,gr0,icc1 + 46f0: R_FRV_FUNCDESC_VALUE GF7 + 46f4: 00 00 00 00 add\.p gr0,gr0,gr0 + 46f8: 00 00 05 cc subxcc\.p gr0,gr12,gr0,icc1 + 46f8: R_FRV_FUNCDESC_VALUE GF0 + 46fc: 00 00 00 00 add\.p gr0,gr0,gr0 -00010700 <_GLOBAL_OFFSET_TABLE_>: +00004700 <_GLOBAL_OFFSET_TABLE_>: \.\.\. - 1070c: R_FRV_FUNCDESC GF4 - 10710: R_FRV_32 GF1 - 10714: R_FRV_FUNCDESC GF6 - 10718: R_FRV_FUNCDESC GF5 - 1071c: R_FRV_32 GD4 - 10720: R_FRV_32 GF3 - 10724: R_FRV_32 GF2 + 470c: R_FRV_FUNCDESC GF4 + 4710: R_FRV_32 GF1 + 4714: R_FRV_FUNCDESC GF6 + 4718: R_FRV_FUNCDESC GF5 + 471c: R_FRV_32 GD4 + 4720: R_FRV_32 GF3 + 4724: R_FRV_32 GF2 diff --git a/ld/testsuite/ld-frv/fdpic-shared-3.d b/ld/testsuite/ld-frv/fdpic-shared-3.d index 625975b..3c7d03a 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-3.d +++ b/ld/testsuite/ld-frv/fdpic-shared-3.d @@ -32,53 +32,53 @@ Disassembly of section \.text: 474: 80 f8 00 00 sethi hi\(0x0\),gr0 Disassembly of section \.data: -0001047c <D3>: - 1047c: 00 00 00 04 add\.p gr0,gr4,gr0 - 1047c: R_FRV_32 \.data +0000447c <D3>: + 447c: 00 00 00 04 add\.p gr0,gr4,gr0 + 447c: R_FRV_32 \.data -00010480 <HD0>: - 10480: 00 00 00 08 add\.p gr0,gr8,gr0 - 10480: R_FRV_32 \.got - 10484: 00 00 00 04 add\.p gr0,gr4,gr0 - 10484: R_FRV_32 \.text +00004480 <HD0>: + 4480: 00 00 00 08 add\.p gr0,gr8,gr0 + 4480: R_FRV_32 \.got + 4484: 00 00 00 04 add\.p gr0,gr4,gr0 + 4484: R_FRV_32 \.text Disassembly of section \.got: -00010500 <_GLOBAL_OFFSET_TABLE_-0x38>: - 10500: 00 00 00 04 add\.p gr0,gr4,gr0 - 10500: R_FRV_FUNCDESC_VALUE \.text - 10504: 00 00 00 00 add\.p gr0,gr0,gr0 - 10508: 00 00 00 04 add\.p gr0,gr4,gr0 - 10508: R_FRV_FUNCDESC_VALUE \.text - 1050c: 00 00 00 00 add\.p gr0,gr0,gr0 - 10510: 00 00 00 04 add\.p gr0,gr4,gr0 - 10510: R_FRV_FUNCDESC_VALUE \.text - 10514: 00 00 00 00 add\.p gr0,gr0,gr0 - 10518: 00 00 00 04 add\.p gr0,gr4,gr0 - 10518: R_FRV_FUNCDESC_VALUE \.text - 1051c: 00 00 00 00 add\.p gr0,gr0,gr0 - 10520: 00 00 00 04 add\.p gr0,gr4,gr0 - 10520: R_FRV_FUNCDESC_VALUE \.text - 10524: 00 00 00 00 add\.p gr0,gr0,gr0 - 10528: 00 00 00 04 add\.p gr0,gr4,gr0 - 10528: R_FRV_FUNCDESC_VALUE \.text - 1052c: 00 00 00 00 add\.p gr0,gr0,gr0 - 10530: 00 00 00 04 add\.p gr0,gr4,gr0 - 10530: R_FRV_FUNCDESC_VALUE \.text - 10534: 00 00 00 00 add\.p gr0,gr0,gr0 +00004500 <_GLOBAL_OFFSET_TABLE_-0x38>: + 4500: 00 00 00 04 add\.p gr0,gr4,gr0 + 4500: R_FRV_FUNCDESC_VALUE \.text + 4504: 00 00 00 00 add\.p gr0,gr0,gr0 + 4508: 00 00 00 04 add\.p gr0,gr4,gr0 + 4508: R_FRV_FUNCDESC_VALUE \.text + 450c: 00 00 00 00 add\.p gr0,gr0,gr0 + 4510: 00 00 00 04 add\.p gr0,gr4,gr0 + 4510: R_FRV_FUNCDESC_VALUE \.text + 4514: 00 00 00 00 add\.p gr0,gr0,gr0 + 4518: 00 00 00 04 add\.p gr0,gr4,gr0 + 4518: R_FRV_FUNCDESC_VALUE \.text + 451c: 00 00 00 00 add\.p gr0,gr0,gr0 + 4520: 00 00 00 04 add\.p gr0,gr4,gr0 + 4520: R_FRV_FUNCDESC_VALUE \.text + 4524: 00 00 00 00 add\.p gr0,gr0,gr0 + 4528: 00 00 00 04 add\.p gr0,gr4,gr0 + 4528: R_FRV_FUNCDESC_VALUE \.text + 452c: 00 00 00 00 add\.p gr0,gr0,gr0 + 4530: 00 00 00 04 add\.p gr0,gr4,gr0 + 4530: R_FRV_FUNCDESC_VALUE \.text + 4534: 00 00 00 00 add\.p gr0,gr0,gr0 -00010538 <_GLOBAL_OFFSET_TABLE_>: +00004538 <_GLOBAL_OFFSET_TABLE_>: \.\.\. - 10544: 00 00 00 04 add\.p gr0,gr4,gr0 - 10544: R_FRV_32 \.text - 10548: 00 00 00 00 add\.p gr0,gr0,gr0 - 10548: R_FRV_32 \.got - 1054c: 00 00 00 28 add\.p gr0,gr40,gr0 - 1054c: R_FRV_32 \.got - 10550: 00 00 00 04 add\.p gr0,gr4,gr0 - 10550: R_FRV_32 \.text - 10554: 00 00 00 04 add\.p gr0,gr4,gr0 - 10554: R_FRV_32 \.text - 10558: 00 00 00 18 add\.p gr0,gr24,gr0 - 10558: R_FRV_32 \.got - 1055c: 00 00 00 04 add\.p gr0,gr4,gr0 - 1055c: R_FRV_32 \.data + 4544: 00 00 00 04 add\.p gr0,gr4,gr0 + 4544: R_FRV_32 \.text + 4548: 00 00 00 00 add\.p gr0,gr0,gr0 + 4548: R_FRV_32 \.got + 454c: 00 00 00 28 add\.p gr0,gr40,gr0 + 454c: R_FRV_32 \.got + 4550: 00 00 00 04 add\.p gr0,gr4,gr0 + 4550: R_FRV_32 \.text + 4554: 00 00 00 04 add\.p gr0,gr4,gr0 + 4554: R_FRV_32 \.text + 4558: 00 00 00 18 add\.p gr0,gr24,gr0 + 4558: R_FRV_32 \.got + 455c: 00 00 00 04 add\.p gr0,gr4,gr0 + 455c: R_FRV_32 \.data diff --git a/ld/testsuite/ld-frv/fdpic-shared-4.d b/ld/testsuite/ld-frv/fdpic-shared-4.d index a441832..8c1098f 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-4.d +++ b/ld/testsuite/ld-frv/fdpic-shared-4.d @@ -32,40 +32,41 @@ Disassembly of section \.text: 64c: 80 f8 00 00 sethi hi\(0x0\),gr0 Disassembly of section \.data: -00010654 <D4>: - 10654: 00 00 00 04 add\.p gr0,gr4,gr0 - 10654: R_FRV_32 \.data +00004654 <D4>: + 4654: 00 00 00 04 add\.p gr0,gr4,gr0 + 4654: R_FRV_32 \.data -00010658 <PD0>: - 10658: 00 00 00 00 add\.p gr0,gr0,gr0 - 10658: R_FRV_FUNCDESC PFb - 1065c: 00 00 00 04 add\.p gr0,gr4,gr0 - 1065c: R_FRV_32 \.text +00004658 <PD0>: + 4658: 00 00 00 04 add\.p gr0,gr4,gr0 + 4658: R_FRV_FUNCDESC \.text + 465c: 00 00 00 04 add\.p gr0,gr4,gr0 + 465c: R_FRV_32 \.text Disassembly of section \.got: -000106d8 <_GLOBAL_OFFSET_TABLE_-0x18>: - 106d8: 00 00 00 04 add\.p gr0,gr4,gr0 - 106d8: R_FRV_FUNCDESC_VALUE \.text - 106dc: 00 00 00 00 add\.p gr0,gr0,gr0 - 106e0: 00 00 00 04 add\.p gr0,gr4,gr0 - 106e0: R_FRV_FUNCDESC_VALUE \.text - 106e4: 00 00 00 00 add\.p gr0,gr0,gr0 - 106e8: 00 00 00 04 add\.p gr0,gr4,gr0 - 106e8: R_FRV_FUNCDESC_VALUE \.text - 106ec: 00 00 00 00 add\.p gr0,gr0,gr0 +000046d8 <_GLOBAL_OFFSET_TABLE_-0x18>: + 46d8: 00 00 00 04 add\.p gr0,gr4,gr0 + 46d8: R_FRV_FUNCDESC_VALUE \.text + 46dc: 00 00 00 00 add\.p gr0,gr0,gr0 + 46e0: 00 00 00 04 add\.p gr0,gr4,gr0 + 46e0: R_FRV_FUNCDESC_VALUE \.text + 46e4: 00 00 00 00 add\.p gr0,gr0,gr0 + 46e8: 00 00 00 04 add\.p gr0,gr4,gr0 + 46e8: R_FRV_FUNCDESC_VALUE \.text + 46ec: 00 00 00 00 add\.p gr0,gr0,gr0 -000106f0 <_GLOBAL_OFFSET_TABLE_>: +000046f0 <_GLOBAL_OFFSET_TABLE_>: \.\.\. - 106fc: R_FRV_FUNCDESC PF4 - 10700: 00 00 00 04 add\.p gr0,gr4,gr0 - 10700: R_FRV_32 \.text - 10704: 00 00 00 04 add\.p gr0,gr4,gr0 - 10704: R_FRV_32 \.data - 10708: 00 00 00 00 add\.p gr0,gr0,gr0 - 10708: R_FRV_FUNCDESC PF6 - 1070c: 00 00 00 04 add\.p gr0,gr4,gr0 - 1070c: R_FRV_32 \.text - 10710: 00 00 00 04 add\.p gr0,gr4,gr0 - 10710: R_FRV_32 \.text - 10714: 00 00 00 00 add\.p gr0,gr0,gr0 - 10714: R_FRV_FUNCDESC PF5 + 46fc: 00 00 00 04 add\.p gr0,gr4,gr0 + 46fc: R_FRV_FUNCDESC \.text + 4700: 00 00 00 04 add\.p gr0,gr4,gr0 + 4700: R_FRV_32 \.text + 4704: 00 00 00 04 add\.p gr0,gr4,gr0 + 4704: R_FRV_32 \.data + 4708: 00 00 00 04 add\.p gr0,gr4,gr0 + 4708: R_FRV_FUNCDESC \.text + 470c: 00 00 00 04 add\.p gr0,gr4,gr0 + 470c: R_FRV_32 \.text + 4710: 00 00 00 04 add\.p gr0,gr4,gr0 + 4710: R_FRV_32 \.text + 4714: 00 00 00 04 add\.p gr0,gr4,gr0 + 4714: R_FRV_FUNCDESC \.text diff --git a/ld/testsuite/ld-frv/fdpic-shared-5.d b/ld/testsuite/ld-frv/fdpic-shared-5.d index d0767f6..9fcc933 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-5.d +++ b/ld/testsuite/ld-frv/fdpic-shared-5.d @@ -40,44 +40,44 @@ Disassembly of section \.text: 5fc: 80 f8 00 00 sethi hi\(0x0\),gr0 Disassembly of section \.data: -00010604 <D5>: - 10604: 00 00 00 00 add\.p gr0,gr0,gr0 - 10604: R_FRV_32 UD0 - 10608: 00 00 00 00 add\.p gr0,gr0,gr0 - 10608: R_FRV_FUNCDESC UFb - 1060c: 00 00 00 00 add\.p gr0,gr0,gr0 - 1060c: R_FRV_32 UFb +00004604 <D5>: + 4604: 00 00 00 00 add\.p gr0,gr0,gr0 + 4604: R_FRV_32 UD0 + 4608: 00 00 00 00 add\.p gr0,gr0,gr0 + 4608: R_FRV_FUNCDESC UFb + 460c: 00 00 00 00 add\.p gr0,gr0,gr0 + 460c: R_FRV_32 UFb Disassembly of section \.got: -000106a0 <_GLOBAL_OFFSET_TABLE_-0x20>: - 106a0: 00 00 05 b4 subx\.p gr0,gr52,gr0,icc1 - 106a0: R_FRV_FUNCDESC_VALUE UF9 - 106a4: 00 00 00 00 add\.p gr0,gr0,gr0 - 106a8: 00 00 05 9c subx\.p gr0,gr28,gr0,icc1 - 106a8: R_FRV_FUNCDESC_VALUE UF8 - 106ac: 00 00 00 00 add\.p gr0,gr0,gr0 - 106b0: 00 00 05 ac subx\.p gr0,gr44,gr0,icc1 - 106b0: R_FRV_FUNCDESC_VALUE UF0 - 106b4: 00 00 00 00 add\.p gr0,gr0,gr0 - 106b8: 00 00 05 a4 subx\.p gr0,gr36,gr0,icc1 - 106b8: R_FRV_FUNCDESC_VALUE UF7 - 106bc: 00 00 00 00 add\.p gr0,gr0,gr0 +000046a0 <_GLOBAL_OFFSET_TABLE_-0x20>: + 46a0: 00 00 05 b4 subx\.p gr0,gr52,gr0,icc1 + 46a0: R_FRV_FUNCDESC_VALUE UF9 + 46a4: 00 00 00 00 add\.p gr0,gr0,gr0 + 46a8: 00 00 05 9c subx\.p gr0,gr28,gr0,icc1 + 46a8: R_FRV_FUNCDESC_VALUE UF8 + 46ac: 00 00 00 00 add\.p gr0,gr0,gr0 + 46b0: 00 00 05 ac subx\.p gr0,gr44,gr0,icc1 + 46b0: R_FRV_FUNCDESC_VALUE UF0 + 46b4: 00 00 00 00 add\.p gr0,gr0,gr0 + 46b8: 00 00 05 a4 subx\.p gr0,gr36,gr0,icc1 + 46b8: R_FRV_FUNCDESC_VALUE UF7 + 46bc: 00 00 00 00 add\.p gr0,gr0,gr0 -000106c0 <_GLOBAL_OFFSET_TABLE_>: - 106c0: 00 00 00 00 add\.p gr0,gr0,gr0 - 106c4: 00 00 00 00 add\.p gr0,gr0,gr0 - 106c8: 00 00 00 00 add\.p gr0,gr0,gr0 - 106cc: 00 00 00 00 add\.p gr0,gr0,gr0 - 106cc: R_FRV_32 UF1 - 106d0: 00 00 00 00 add\.p gr0,gr0,gr0 - 106d0: R_FRV_FUNCDESC UF4 - 106d4: 00 00 00 00 add\.p gr0,gr0,gr0 - 106d4: R_FRV_32 UD1 - 106d8: 00 00 00 00 add\.p gr0,gr0,gr0 - 106d8: R_FRV_FUNCDESC UF6 - 106dc: 00 00 00 00 add\.p gr0,gr0,gr0 - 106dc: R_FRV_FUNCDESC UF5 - 106e0: 00 00 00 00 add\.p gr0,gr0,gr0 - 106e0: R_FRV_32 UF3 - 106e4: 00 00 00 00 add\.p gr0,gr0,gr0 - 106e4: R_FRV_32 UF2 +000046c0 <_GLOBAL_OFFSET_TABLE_>: + 46c0: 00 00 00 00 add\.p gr0,gr0,gr0 + 46c4: 00 00 00 00 add\.p gr0,gr0,gr0 + 46c8: 00 00 00 00 add\.p gr0,gr0,gr0 + 46cc: 00 00 00 00 add\.p gr0,gr0,gr0 + 46cc: R_FRV_32 UF1 + 46d0: 00 00 00 00 add\.p gr0,gr0,gr0 + 46d0: R_FRV_FUNCDESC UF4 + 46d4: 00 00 00 00 add\.p gr0,gr0,gr0 + 46d4: R_FRV_32 UD1 + 46d8: 00 00 00 00 add\.p gr0,gr0,gr0 + 46d8: R_FRV_FUNCDESC UF6 + 46dc: 00 00 00 00 add\.p gr0,gr0,gr0 + 46dc: R_FRV_FUNCDESC UF5 + 46e0: 00 00 00 00 add\.p gr0,gr0,gr0 + 46e0: R_FRV_32 UF3 + 46e4: 00 00 00 00 add\.p gr0,gr0,gr0 + 46e4: R_FRV_32 UF2 diff --git a/ld/testsuite/ld-frv/fdpic-shared-6.d b/ld/testsuite/ld-frv/fdpic-shared-6.d index 492fe1c..8b5168c 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-6.d +++ b/ld/testsuite/ld-frv/fdpic-shared-6.d @@ -1,6 +1,74 @@ -#name: FRV uClinux PIC relocs to undefined symbols, shared linking +#name: FRV uClinux PIC relocs to weak undefined symbols, shared linking #source: fdpic6.s #objdump: -DR -j .text -j .data -j .got -j .plt #as: -mfdpic -#ld: -shared -#error: different segments +#ld: -shared --defsym WD1=D6 --version-script fdpic6.ldv + +.*: file format elf.*frv.* + +Disassembly of section \.plt: + +0000041c <\.plt>: + 41c: 00 00 00 08 add\.p gr0,gr8,gr0 + 420: c0 1a 00 06 bra 438 <F6-0x10> + 424: 00 00 00 00 add\.p gr0,gr0,gr0 + 428: c0 1a 00 04 bra 438 <F6-0x10> + 42c: 00 00 00 10 add\.p gr0,gr16,gr0 + 430: c0 1a 00 02 bra 438 <F6-0x10> + 434: 00 00 00 18 add\.p gr0,gr24,gr0 + 438: 88 08 f1 40 ldd @\(gr15,gr0\),gr4 + 43c: 80 30 40 00 jmpl @\(gr4,gr0\) + 440: 9c cc ff f0 lddi @\(gr15,-16\),gr14 + 444: 80 30 e0 00 jmpl @\(gr14,gr0\) +Disassembly of section \.text: + +00000448 <F6>: + 448: fe 3f ff fe call 440 <F6-0x8> + 44c: 80 40 f0 0c addi gr15,12,gr0 + 450: 80 fc 00 24 setlos 0x24,gr0 + 454: 80 f4 00 20 setlo 0x20,gr0 + 458: 80 f8 00 00 sethi hi\(0x0\),gr0 + 45c: 80 40 f0 10 addi gr15,16,gr0 + 460: 80 fc 00 18 setlos 0x18,gr0 + 464: 80 f4 00 1c setlo 0x1c,gr0 + 468: 80 f8 00 00 sethi hi\(0x0\),gr0 + 46c: 80 40 ff f8 addi gr15,-8,gr0 + 470: 80 fc ff e8 setlos 0xffffffe8,gr0 + 474: 80 f4 ff e0 setlo 0xffe0,gr0 + 478: 80 f8 ff ff sethi 0xffff,gr0 + 47c: 80 f4 ff 40 setlo 0xff40,gr0 + 480: 80 f8 ff ff sethi 0xffff,gr0 + 484: 80 f4 00 14 setlo 0x14,gr0 + 488: 80 f8 00 00 sethi hi\(0x0\),gr0 +Disassembly of section \.data: + +00004490 <D6>: + \.\.\. + 4490: R_FRV_32 WD0 + 4494: R_FRV_FUNCDESC WFb + 4498: R_FRV_32 WFb +Disassembly of section \.got: + +00004530 <_GLOBAL_OFFSET_TABLE_-0x20>: + 4530: 00 00 04 38 \*unknown\* + 4530: R_FRV_FUNCDESC_VALUE WF9 + 4534: 00 00 00 00 add\.p gr0,gr0,gr0 + 4538: 00 00 04 30 \*unknown\* + 4538: R_FRV_FUNCDESC_VALUE WF8 + 453c: 00 00 00 00 add\.p gr0,gr0,gr0 + 4540: 00 00 04 28 \*unknown\* + 4540: R_FRV_FUNCDESC_VALUE WF0 + 4544: 00 00 00 00 add\.p gr0,gr0,gr0 + 4548: 00 00 04 20 \*unknown\* + 4548: R_FRV_FUNCDESC_VALUE WF7 + 454c: 00 00 00 00 add\.p gr0,gr0,gr0 + +00004550 <_GLOBAL_OFFSET_TABLE_>: + \.\.\. + 455c: R_FRV_32 WF1 + 4560: R_FRV_FUNCDESC WF4 + 4564: R_FRV_32 WD2 + 4568: R_FRV_FUNCDESC WF5 + 456c: R_FRV_FUNCDESC WF6 + 4570: R_FRV_32 WF3 + 4574: R_FRV_32 WF2 diff --git a/ld/testsuite/ld-frv/fdpic-shared-7.d b/ld/testsuite/ld-frv/fdpic-shared-7.d index 2b95623..80c26d3 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-7.d +++ b/ld/testsuite/ld-frv/fdpic-shared-7.d @@ -32,27 +32,27 @@ Disassembly of section \.text: 424: 80 f8 00 00 sethi hi\(0x0\),gr0 Disassembly of section \.data: -0001042c <D7>: - 1042c: 00 00 00 08 add\.p gr0,gr8,gr0 - 1042c: R_FRV_32 \.data - -00010430 <\.D0>: - 10430: 00 00 00 00 add\.p gr0,gr0,gr0 - 10430: R_FRV_32 \.got - 10434: 00 00 00 08 add\.p gr0,gr8,gr0 - 10434: R_FRV_32 \.text +0000442c <D7>: + 442c: 00 00 00 08 add\.p gr0,gr8,gr0 + 442c: R_FRV_32 \.data + +00004430 <\.D0>: + 4430: 00 00 00 00 add\.p gr0,gr0,gr0 + 4430: R_FRV_32 \.got + 4434: 00 00 00 08 add\.p gr0,gr8,gr0 + 4434: R_FRV_32 \.text Disassembly of section \.got: -000104b0 <_GLOBAL_OFFSET_TABLE_-0x8>: - 104b0: 00 00 00 08 add\.p gr0,gr8,gr0 - 104b0: R_FRV_FUNCDESC_VALUE \.text - 104b4: 00 00 00 00 add\.p gr0,gr0,gr0 +000044b0 <_GLOBAL_OFFSET_TABLE_-0x8>: + 44b0: 00 00 00 08 add\.p gr0,gr8,gr0 + 44b0: R_FRV_FUNCDESC_VALUE \.text + 44b4: 00 00 00 00 add\.p gr0,gr0,gr0 -000104b8 <_GLOBAL_OFFSET_TABLE_>: +000044b8 <_GLOBAL_OFFSET_TABLE_>: \.\.\. - 104c4: 00 00 00 08 add\.p gr0,gr8,gr0 - 104c4: R_FRV_32 \.text - 104c8: 00 00 00 00 add\.p gr0,gr0,gr0 - 104c8: R_FRV_32 \.got - 104cc: 00 00 00 08 add\.p gr0,gr8,gr0 - 104cc: R_FRV_32 \.data + 44c4: 00 00 00 08 add\.p gr0,gr8,gr0 + 44c4: R_FRV_32 \.text + 44c8: 00 00 00 00 add\.p gr0,gr0,gr0 + 44c8: R_FRV_32 \.got + 44cc: 00 00 00 08 add\.p gr0,gr8,gr0 + 44cc: R_FRV_32 \.data diff --git a/ld/testsuite/ld-frv/fdpic-shared-8.d b/ld/testsuite/ld-frv/fdpic-shared-8.d index fdeea73..26a5925 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-8.d +++ b/ld/testsuite/ld-frv/fdpic-shared-8.d @@ -32,53 +32,53 @@ Disassembly of section \.text: 51c: 80 f8 00 00 sethi hi\(0x0\),gr0 Disassembly of section \.data: -00010524 <D8>: - 10524: 00 00 00 04 add\.p gr0,gr4,gr0 - 10524: R_FRV_32 GD0 +00004524 <D8>: + 4524: 00 00 00 04 add\.p gr0,gr4,gr0 + 4524: R_FRV_32 GD0 -00010528 <GD0>: - 10528: 00 00 00 10 add\.p gr0,gr16,gr0 - 10528: R_FRV_32 \.got - 1052c: 00 00 00 08 add\.p gr0,gr8,gr0 - 1052c: R_FRV_32 \.text +00004528 <GD0>: + 4528: 00 00 00 10 add\.p gr0,gr16,gr0 + 4528: R_FRV_32 \.got + 452c: 00 00 00 08 add\.p gr0,gr8,gr0 + 452c: R_FRV_32 \.text Disassembly of section \.got: -000105a8 <_GLOBAL_OFFSET_TABLE_-0x38>: - 105a8: 00 00 00 08 add\.p gr0,gr8,gr0 - 105a8: R_FRV_FUNCDESC_VALUE \.text - 105ac: 00 00 00 00 add\.p gr0,gr0,gr0 - 105b0: 00 00 00 08 add\.p gr0,gr8,gr0 - 105b0: R_FRV_FUNCDESC_VALUE \.text - 105b4: 00 00 00 00 add\.p gr0,gr0,gr0 - 105b8: 00 00 00 08 add\.p gr0,gr8,gr0 - 105b8: R_FRV_FUNCDESC_VALUE \.text - 105bc: 00 00 00 00 add\.p gr0,gr0,gr0 - 105c0: 00 00 00 08 add\.p gr0,gr8,gr0 - 105c0: R_FRV_FUNCDESC_VALUE \.text - 105c4: 00 00 00 00 add\.p gr0,gr0,gr0 - 105c8: 00 00 00 08 add\.p gr0,gr8,gr0 - 105c8: R_FRV_FUNCDESC_VALUE \.text - 105cc: 00 00 00 00 add\.p gr0,gr0,gr0 - 105d0: 00 00 00 08 add\.p gr0,gr8,gr0 - 105d0: R_FRV_FUNCDESC_VALUE \.text - 105d4: 00 00 00 00 add\.p gr0,gr0,gr0 - 105d8: 00 00 00 08 add\.p gr0,gr8,gr0 - 105d8: R_FRV_FUNCDESC_VALUE \.text - 105dc: 00 00 00 00 add\.p gr0,gr0,gr0 +000045a8 <_GLOBAL_OFFSET_TABLE_-0x38>: + 45a8: 00 00 00 08 add\.p gr0,gr8,gr0 + 45a8: R_FRV_FUNCDESC_VALUE \.text + 45ac: 00 00 00 00 add\.p gr0,gr0,gr0 + 45b0: 00 00 00 08 add\.p gr0,gr8,gr0 + 45b0: R_FRV_FUNCDESC_VALUE \.text + 45b4: 00 00 00 00 add\.p gr0,gr0,gr0 + 45b8: 00 00 00 08 add\.p gr0,gr8,gr0 + 45b8: R_FRV_FUNCDESC_VALUE \.text + 45bc: 00 00 00 00 add\.p gr0,gr0,gr0 + 45c0: 00 00 00 08 add\.p gr0,gr8,gr0 + 45c0: R_FRV_FUNCDESC_VALUE \.text + 45c4: 00 00 00 00 add\.p gr0,gr0,gr0 + 45c8: 00 00 00 08 add\.p gr0,gr8,gr0 + 45c8: R_FRV_FUNCDESC_VALUE \.text + 45cc: 00 00 00 00 add\.p gr0,gr0,gr0 + 45d0: 00 00 00 08 add\.p gr0,gr8,gr0 + 45d0: R_FRV_FUNCDESC_VALUE \.text + 45d4: 00 00 00 00 add\.p gr0,gr0,gr0 + 45d8: 00 00 00 08 add\.p gr0,gr8,gr0 + 45d8: R_FRV_FUNCDESC_VALUE \.text + 45dc: 00 00 00 00 add\.p gr0,gr0,gr0 -000105e0 <_GLOBAL_OFFSET_TABLE_>: +000045e0 <_GLOBAL_OFFSET_TABLE_>: \.\.\. - 105ec: 00 00 00 08 add\.p gr0,gr8,gr0 - 105ec: R_FRV_32 \.got - 105f0: 00 00 00 04 add\.p gr0,gr4,gr0 - 105f0: R_FRV_32 GF1 - 105f4: 00 00 00 04 add\.p gr0,gr4,gr0 - 105f4: R_FRV_32 GF2 - 105f8: 00 00 00 20 add\.p gr0,gr32,gr0 - 105f8: R_FRV_32 \.got - 105fc: 00 00 00 18 add\.p gr0,gr24,gr0 - 105fc: R_FRV_32 \.got - 10600: 00 00 00 04 add\.p gr0,gr4,gr0 - 10600: R_FRV_32 GD4 - 10604: 00 00 00 04 add\.p gr0,gr4,gr0 - 10604: R_FRV_32 GF3 + 45ec: 00 00 00 08 add\.p gr0,gr8,gr0 + 45ec: R_FRV_32 \.got + 45f0: 00 00 00 04 add\.p gr0,gr4,gr0 + 45f0: R_FRV_32 GF1 + 45f4: 00 00 00 04 add\.p gr0,gr4,gr0 + 45f4: R_FRV_32 GF2 + 45f8: 00 00 00 20 add\.p gr0,gr32,gr0 + 45f8: R_FRV_32 \.got + 45fc: 00 00 00 18 add\.p gr0,gr24,gr0 + 45fc: R_FRV_32 \.got + 4600: 00 00 00 04 add\.p gr0,gr4,gr0 + 4600: R_FRV_32 GD4 + 4604: 00 00 00 04 add\.p gr0,gr4,gr0 + 4604: R_FRV_32 GF3 diff --git a/ld/testsuite/ld-frv/fdpic-shared-local-2.d b/ld/testsuite/ld-frv/fdpic-shared-local-2.d index 6f7b205..a857a2f 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-local-2.d +++ b/ld/testsuite/ld-frv/fdpic-shared-local-2.d @@ -32,53 +32,53 @@ Disassembly of section \.text: 348: 80 f8 00 00 sethi hi\(0x0\),gr0 Disassembly of section \.data: -00010350 <D2>: - 10350: 00 00 00 04 add\.p gr0,gr4,gr0 - 10350: R_FRV_32 \.data +00004350 <D2>: + 4350: 00 00 00 04 add\.p gr0,gr4,gr0 + 4350: R_FRV_32 \.data -00010354 <GD0>: - 10354: 00 00 00 18 add\.p gr0,gr24,gr0 - 10354: R_FRV_32 \.got - 10358: 00 00 00 04 add\.p gr0,gr4,gr0 - 10358: R_FRV_32 \.text +00004354 <GD0>: + 4354: 00 00 00 18 add\.p gr0,gr24,gr0 + 4354: R_FRV_32 \.got + 4358: 00 00 00 04 add\.p gr0,gr4,gr0 + 4358: R_FRV_32 \.text Disassembly of section \.got: -000103d8 <_GLOBAL_OFFSET_TABLE_-0x38>: - 103d8: 00 00 00 04 add\.p gr0,gr4,gr0 - 103d8: R_FRV_FUNCDESC_VALUE \.text - 103dc: 00 00 00 00 add\.p gr0,gr0,gr0 - 103e0: 00 00 00 04 add\.p gr0,gr4,gr0 - 103e0: R_FRV_FUNCDESC_VALUE \.text - 103e4: 00 00 00 00 add\.p gr0,gr0,gr0 - 103e8: 00 00 00 04 add\.p gr0,gr4,gr0 - 103e8: R_FRV_FUNCDESC_VALUE \.text - 103ec: 00 00 00 00 add\.p gr0,gr0,gr0 - 103f0: 00 00 00 04 add\.p gr0,gr4,gr0 - 103f0: R_FRV_FUNCDESC_VALUE \.text - 103f4: 00 00 00 00 add\.p gr0,gr0,gr0 - 103f8: 00 00 00 04 add\.p gr0,gr4,gr0 - 103f8: R_FRV_FUNCDESC_VALUE \.text - 103fc: 00 00 00 00 add\.p gr0,gr0,gr0 - 10400: 00 00 00 04 add\.p gr0,gr4,gr0 - 10400: R_FRV_FUNCDESC_VALUE \.text - 10404: 00 00 00 00 add\.p gr0,gr0,gr0 - 10408: 00 00 00 04 add\.p gr0,gr4,gr0 - 10408: R_FRV_FUNCDESC_VALUE \.text - 1040c: 00 00 00 00 add\.p gr0,gr0,gr0 +000043d8 <_GLOBAL_OFFSET_TABLE_-0x38>: + 43d8: 00 00 00 04 add\.p gr0,gr4,gr0 + 43d8: R_FRV_FUNCDESC_VALUE \.text + 43dc: 00 00 00 00 add\.p gr0,gr0,gr0 + 43e0: 00 00 00 04 add\.p gr0,gr4,gr0 + 43e0: R_FRV_FUNCDESC_VALUE \.text + 43e4: 00 00 00 00 add\.p gr0,gr0,gr0 + 43e8: 00 00 00 04 add\.p gr0,gr4,gr0 + 43e8: R_FRV_FUNCDESC_VALUE \.text + 43ec: 00 00 00 00 add\.p gr0,gr0,gr0 + 43f0: 00 00 00 04 add\.p gr0,gr4,gr0 + 43f0: R_FRV_FUNCDESC_VALUE \.text + 43f4: 00 00 00 00 add\.p gr0,gr0,gr0 + 43f8: 00 00 00 04 add\.p gr0,gr4,gr0 + 43f8: R_FRV_FUNCDESC_VALUE \.text + 43fc: 00 00 00 00 add\.p gr0,gr0,gr0 + 4400: 00 00 00 04 add\.p gr0,gr4,gr0 + 4400: R_FRV_FUNCDESC_VALUE \.text + 4404: 00 00 00 00 add\.p gr0,gr0,gr0 + 4408: 00 00 00 04 add\.p gr0,gr4,gr0 + 4408: R_FRV_FUNCDESC_VALUE \.text + 440c: 00 00 00 00 add\.p gr0,gr0,gr0 -00010410 <_GLOBAL_OFFSET_TABLE_>: +00004410 <_GLOBAL_OFFSET_TABLE_>: \.\.\. - 1041c: 00 00 00 10 add\.p gr0,gr16,gr0 - 1041c: R_FRV_32 \.got - 10420: 00 00 00 04 add\.p gr0,gr4,gr0 - 10420: R_FRV_32 \.text - 10424: 00 00 00 28 add\.p gr0,gr40,gr0 - 10424: R_FRV_32 \.got - 10428: 00 00 00 20 add\.p gr0,gr32,gr0 - 10428: R_FRV_32 \.got - 1042c: 00 00 00 04 add\.p gr0,gr4,gr0 - 1042c: R_FRV_32 \.data - 10430: 00 00 00 04 add\.p gr0,gr4,gr0 - 10430: R_FRV_32 \.text - 10434: 00 00 00 04 add\.p gr0,gr4,gr0 - 10434: R_FRV_32 \.text + 441c: 00 00 00 10 add\.p gr0,gr16,gr0 + 441c: R_FRV_32 \.got + 4420: 00 00 00 04 add\.p gr0,gr4,gr0 + 4420: R_FRV_32 \.text + 4424: 00 00 00 28 add\.p gr0,gr40,gr0 + 4424: R_FRV_32 \.got + 4428: 00 00 00 20 add\.p gr0,gr32,gr0 + 4428: R_FRV_32 \.got + 442c: 00 00 00 04 add\.p gr0,gr4,gr0 + 442c: R_FRV_32 \.data + 4430: 00 00 00 04 add\.p gr0,gr4,gr0 + 4430: R_FRV_32 \.text + 4434: 00 00 00 04 add\.p gr0,gr4,gr0 + 4434: R_FRV_32 \.text diff --git a/ld/testsuite/ld-frv/fdpic-shared-local-8.d b/ld/testsuite/ld-frv/fdpic-shared-local-8.d index 7b12051..8b179e3 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-local-8.d +++ b/ld/testsuite/ld-frv/fdpic-shared-local-8.d @@ -32,53 +32,53 @@ Disassembly of section \.text: 348: 80 f8 00 00 sethi hi\(0x0\),gr0 Disassembly of section \.data: -00010350 <D8>: - 10350: 00 00 00 08 add\.p gr0,gr8,gr0 - 10350: R_FRV_32 \.data +00004350 <D8>: + 4350: 00 00 00 08 add\.p gr0,gr8,gr0 + 4350: R_FRV_32 \.data -00010354 <GD0>: - 10354: 00 00 00 10 add\.p gr0,gr16,gr0 - 10354: R_FRV_32 \.got - 10358: 00 00 00 08 add\.p gr0,gr8,gr0 - 10358: R_FRV_32 \.text +00004354 <GD0>: + 4354: 00 00 00 10 add\.p gr0,gr16,gr0 + 4354: R_FRV_32 \.got + 4358: 00 00 00 08 add\.p gr0,gr8,gr0 + 4358: R_FRV_32 \.text Disassembly of section \.got: -000103d8 <_GLOBAL_OFFSET_TABLE_-0x38>: - 103d8: 00 00 00 08 add\.p gr0,gr8,gr0 - 103d8: R_FRV_FUNCDESC_VALUE \.text - 103dc: 00 00 00 00 add\.p gr0,gr0,gr0 - 103e0: 00 00 00 08 add\.p gr0,gr8,gr0 - 103e0: R_FRV_FUNCDESC_VALUE \.text - 103e4: 00 00 00 00 add\.p gr0,gr0,gr0 - 103e8: 00 00 00 08 add\.p gr0,gr8,gr0 - 103e8: R_FRV_FUNCDESC_VALUE \.text - 103ec: 00 00 00 00 add\.p gr0,gr0,gr0 - 103f0: 00 00 00 08 add\.p gr0,gr8,gr0 - 103f0: R_FRV_FUNCDESC_VALUE \.text - 103f4: 00 00 00 00 add\.p gr0,gr0,gr0 - 103f8: 00 00 00 08 add\.p gr0,gr8,gr0 - 103f8: R_FRV_FUNCDESC_VALUE \.text - 103fc: 00 00 00 00 add\.p gr0,gr0,gr0 - 10400: 00 00 00 08 add\.p gr0,gr8,gr0 - 10400: R_FRV_FUNCDESC_VALUE \.text - 10404: 00 00 00 00 add\.p gr0,gr0,gr0 - 10408: 00 00 00 08 add\.p gr0,gr8,gr0 - 10408: R_FRV_FUNCDESC_VALUE \.text - 1040c: 00 00 00 00 add\.p gr0,gr0,gr0 +000043d8 <_GLOBAL_OFFSET_TABLE_-0x38>: + 43d8: 00 00 00 08 add\.p gr0,gr8,gr0 + 43d8: R_FRV_FUNCDESC_VALUE \.text + 43dc: 00 00 00 00 add\.p gr0,gr0,gr0 + 43e0: 00 00 00 08 add\.p gr0,gr8,gr0 + 43e0: R_FRV_FUNCDESC_VALUE \.text + 43e4: 00 00 00 00 add\.p gr0,gr0,gr0 + 43e8: 00 00 00 08 add\.p gr0,gr8,gr0 + 43e8: R_FRV_FUNCDESC_VALUE \.text + 43ec: 00 00 00 00 add\.p gr0,gr0,gr0 + 43f0: 00 00 00 08 add\.p gr0,gr8,gr0 + 43f0: R_FRV_FUNCDESC_VALUE \.text + 43f4: 00 00 00 00 add\.p gr0,gr0,gr0 + 43f8: 00 00 00 08 add\.p gr0,gr8,gr0 + 43f8: R_FRV_FUNCDESC_VALUE \.text + 43fc: 00 00 00 00 add\.p gr0,gr0,gr0 + 4400: 00 00 00 08 add\.p gr0,gr8,gr0 + 4400: R_FRV_FUNCDESC_VALUE \.text + 4404: 00 00 00 00 add\.p gr0,gr0,gr0 + 4408: 00 00 00 08 add\.p gr0,gr8,gr0 + 4408: R_FRV_FUNCDESC_VALUE \.text + 440c: 00 00 00 00 add\.p gr0,gr0,gr0 -00010410 <_GLOBAL_OFFSET_TABLE_>: +00004410 <_GLOBAL_OFFSET_TABLE_>: \.\.\. - 1041c: 00 00 00 08 add\.p gr0,gr8,gr0 - 1041c: R_FRV_32 \.got - 10420: 00 00 00 08 add\.p gr0,gr8,gr0 - 10420: R_FRV_32 \.text - 10424: 00 00 00 08 add\.p gr0,gr8,gr0 - 10424: R_FRV_32 \.text - 10428: 00 00 00 20 add\.p gr0,gr32,gr0 - 10428: R_FRV_32 \.got - 1042c: 00 00 00 18 add\.p gr0,gr24,gr0 - 1042c: R_FRV_32 \.got - 10430: 00 00 00 08 add\.p gr0,gr8,gr0 - 10430: R_FRV_32 \.data - 10434: 00 00 00 08 add\.p gr0,gr8,gr0 - 10434: R_FRV_32 \.text + 441c: 00 00 00 08 add\.p gr0,gr8,gr0 + 441c: R_FRV_32 \.got + 4420: 00 00 00 08 add\.p gr0,gr8,gr0 + 4420: R_FRV_32 \.text + 4424: 00 00 00 08 add\.p gr0,gr8,gr0 + 4424: R_FRV_32 \.text + 4428: 00 00 00 20 add\.p gr0,gr32,gr0 + 4428: R_FRV_32 \.got + 442c: 00 00 00 18 add\.p gr0,gr24,gr0 + 442c: R_FRV_32 \.got + 4430: 00 00 00 08 add\.p gr0,gr8,gr0 + 4430: R_FRV_32 \.data + 4434: 00 00 00 08 add\.p gr0,gr8,gr0 + 4434: R_FRV_32 \.text diff --git a/ld/testsuite/ld-frv/fdpic-static-1.d b/ld/testsuite/ld-frv/fdpic-static-1.d index 246e24e..dd3a498 100644 --- a/ld/testsuite/ld-frv/fdpic-static-1.d +++ b/ld/testsuite/ld-frv/fdpic-static-1.d @@ -33,31 +33,31 @@ Disassembly of section \.text: Disassembly of section \.rofixup: 000100e0 <__ROFIXUP_LIST__>: - 100e0: 00 02 01 24 sub\.p gr32,gr36,gr0 - 100e4: 00 02 01 28 sub\.p gr32,gr40,gr0 - 100e8: 00 02 01 10 sub\.p gr32,gr16,gr0 - 100ec: 00 02 01 14 sub\.p gr32,gr20,gr0 - 100f0: 00 02 01 2c sub\.p gr32,gr44,gr0 - 100f4: 00 02 01 04 sub\.p gr32,gr4,gr0 - 100f8: 00 02 01 08 sub\.p gr32,gr8,gr0 - 100fc: 00 02 01 0c sub\.p gr32,gr12,gr0 - 10100: 00 02 01 18 sub\.p gr32,gr24,gr0 + 100e0: 00 01 41 24 sub\.p gr20,gr36,gr0 + 100e4: 00 01 41 28 sub\.p gr20,gr40,gr0 + 100e8: 00 01 41 10 sub\.p gr20,gr16,gr0 + 100ec: 00 01 41 14 sub\.p gr20,gr20,gr0 + 100f0: 00 01 41 2c sub\.p gr20,gr44,gr0 + 100f4: 00 01 41 04 sub\.p gr20,gr4,gr0 + 100f8: 00 01 41 08 sub\.p gr20,gr8,gr0 + 100fc: 00 01 41 0c sub\.p gr20,gr12,gr0 + 10100: 00 01 41 18 sub\.p gr20,gr24,gr0 Disassembly of section \.data: -00020104 <D1>: - 20104: 00 02 01 08 sub\.p gr32,gr8,gr0 +00014104 <D1>: + 14104: 00 01 41 08 sub\.p gr20,gr8,gr0 -00020108 <\.D0>: - 20108: 00 02 01 10 sub\.p gr32,gr16,gr0 - 2010c: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 +00014108 <\.D0>: + 14108: 00 01 41 10 sub\.p gr20,gr16,gr0 + 1410c: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 Disassembly of section \.got: -00020110 <_GLOBAL_OFFSET_TABLE_-0x8>: - 20110: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 - 20114: 00 02 01 18 sub\.p gr32,gr24,gr0 +00014110 <_GLOBAL_OFFSET_TABLE_-0x8>: + 14110: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 + 14114: 00 01 41 18 sub\.p gr20,gr24,gr0 -00020118 <_GLOBAL_OFFSET_TABLE_>: +00014118 <_GLOBAL_OFFSET_TABLE_>: \.\.\. - 20124: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 - 20128: 00 02 01 10 sub\.p gr32,gr16,gr0 - 2012c: 00 02 01 08 sub\.p gr32,gr8,gr0 + 14124: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 + 14128: 00 01 41 10 sub\.p gr20,gr16,gr0 + 1412c: 00 01 41 08 sub\.p gr20,gr8,gr0 diff --git a/ld/testsuite/ld-frv/fdpic-static-2.d b/ld/testsuite/ld-frv/fdpic-static-2.d index 1c6b371..26003b3 100644 --- a/ld/testsuite/ld-frv/fdpic-static-2.d +++ b/ld/testsuite/ld-frv/fdpic-static-2.d @@ -33,63 +33,63 @@ Disassembly of section \.text: Disassembly of section \.rofixup: 000100e0 <__ROFIXUP_LIST__>: - 100e0: 00 02 01 98 subx\.p gr32,gr24,gr0,icc0 - 100e4: 00 02 01 ac subx\.p gr32,gr44,gr0,icc0 - 100e8: 00 02 01 a8 subx\.p gr32,gr40,gr0,icc0 - 100ec: 00 02 01 94 subx\.p gr32,gr20,gr0,icc0 - 100f0: 00 02 01 60 subcc\.p gr32,gr32,gr0,icc0 - 100f4: 00 02 01 64 subcc\.p gr32,gr36,gr0,icc0 - 100f8: 00 02 01 a0 subx\.p gr32,gr32,gr0,icc0 - 100fc: 00 02 01 70 subcc\.p gr32,gr48,gr0,icc0 - 10100: 00 02 01 74 subcc\.p gr32,gr52,gr0,icc0 - 10104: 00 02 01 9c subx\.p gr32,gr28,gr0,icc0 - 10108: 00 02 01 78 subcc\.p gr32,gr56,gr0,icc0 - 1010c: 00 02 01 7c subcc\.p gr32,gr60,gr0,icc0 - 10110: 00 02 01 80 subx\.p gr32,gr0,gr0,icc0 - 10114: 00 02 01 84 subx\.p gr32,gr4,gr0,icc0 - 10118: 00 02 01 58 subcc\.p gr32,gr24,gr0,icc0 - 1011c: 00 02 01 5c subcc\.p gr32,gr28,gr0,icc0 - 10120: 00 02 01 50 subcc\.p gr32,gr16,gr0,icc0 - 10124: 00 02 01 54 subcc\.p gr32,gr20,gr0,icc0 - 10128: 00 02 01 a4 subx\.p gr32,gr36,gr0,icc0 - 1012c: 00 02 01 44 subcc\.p gr32,gr4,gr0,icc0 - 10130: 00 02 01 68 subcc\.p gr32,gr40,gr0,icc0 - 10134: 00 02 01 6c subcc\.p gr32,gr44,gr0,icc0 - 10138: 00 02 01 48 subcc\.p gr32,gr8,gr0,icc0 - 1013c: 00 02 01 4c subcc\.p gr32,gr12,gr0,icc0 - 10140: 00 02 01 88 subx\.p gr32,gr8,gr0,icc0 + 100e0: 00 01 41 98 subx\.p gr20,gr24,gr0,icc0 + 100e4: 00 01 41 ac subx\.p gr20,gr44,gr0,icc0 + 100e8: 00 01 41 a8 subx\.p gr20,gr40,gr0,icc0 + 100ec: 00 01 41 94 subx\.p gr20,gr20,gr0,icc0 + 100f0: 00 01 41 60 subcc\.p gr20,gr32,gr0,icc0 + 100f4: 00 01 41 64 subcc\.p gr20,gr36,gr0,icc0 + 100f8: 00 01 41 a0 subx\.p gr20,gr32,gr0,icc0 + 100fc: 00 01 41 70 subcc\.p gr20,gr48,gr0,icc0 + 10100: 00 01 41 74 subcc\.p gr20,gr52,gr0,icc0 + 10104: 00 01 41 9c subx\.p gr20,gr28,gr0,icc0 + 10108: 00 01 41 78 subcc\.p gr20,gr56,gr0,icc0 + 1010c: 00 01 41 7c subcc\.p gr20,gr60,gr0,icc0 + 10110: 00 01 41 80 subx\.p gr20,gr0,gr0,icc0 + 10114: 00 01 41 84 subx\.p gr20,gr4,gr0,icc0 + 10118: 00 01 41 58 subcc\.p gr20,gr24,gr0,icc0 + 1011c: 00 01 41 5c subcc\.p gr20,gr28,gr0,icc0 + 10120: 00 01 41 50 subcc\.p gr20,gr16,gr0,icc0 + 10124: 00 01 41 54 subcc\.p gr20,gr20,gr0,icc0 + 10128: 00 01 41 a4 subx\.p gr20,gr36,gr0,icc0 + 1012c: 00 01 41 44 subcc\.p gr20,gr4,gr0,icc0 + 10130: 00 01 41 68 subcc\.p gr20,gr40,gr0,icc0 + 10134: 00 01 41 6c subcc\.p gr20,gr44,gr0,icc0 + 10138: 00 01 41 48 subcc\.p gr20,gr8,gr0,icc0 + 1013c: 00 01 41 4c subcc\.p gr20,gr12,gr0,icc0 + 10140: 00 01 41 88 subx\.p gr20,gr8,gr0,icc0 Disassembly of section \.data: -00020144 <D2>: - 20144: 00 02 01 48 subcc\.p gr32,gr8,gr0,icc0 +00014144 <D2>: + 14144: 00 01 41 48 subcc\.p gr20,gr8,gr0,icc0 -00020148 <GD0>: - 20148: 00 02 01 68 subcc\.p gr32,gr40,gr0,icc0 - 2014c: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 +00014148 <GD0>: + 14148: 00 01 41 68 subcc\.p gr20,gr40,gr0,icc0 + 1414c: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 Disassembly of section \.got: -00020150 <_GLOBAL_OFFSET_TABLE_-0x38>: - 20150: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 - 20154: 00 02 01 88 subx\.p gr32,gr8,gr0,icc0 - 20158: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 - 2015c: 00 02 01 88 subx\.p gr32,gr8,gr0,icc0 - 20160: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 - 20164: 00 02 01 88 subx\.p gr32,gr8,gr0,icc0 - 20168: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 - 2016c: 00 02 01 88 subx\.p gr32,gr8,gr0,icc0 - 20170: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 - 20174: 00 02 01 88 subx\.p gr32,gr8,gr0,icc0 - 20178: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 - 2017c: 00 02 01 88 subx\.p gr32,gr8,gr0,icc0 - 20180: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 - 20184: 00 02 01 88 subx\.p gr32,gr8,gr0,icc0 +00014150 <_GLOBAL_OFFSET_TABLE_-0x38>: + 14150: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 + 14154: 00 01 41 88 subx\.p gr20,gr8,gr0,icc0 + 14158: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 + 1415c: 00 01 41 88 subx\.p gr20,gr8,gr0,icc0 + 14160: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 + 14164: 00 01 41 88 subx\.p gr20,gr8,gr0,icc0 + 14168: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 + 1416c: 00 01 41 88 subx\.p gr20,gr8,gr0,icc0 + 14170: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 + 14174: 00 01 41 88 subx\.p gr20,gr8,gr0,icc0 + 14178: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 + 1417c: 00 01 41 88 subx\.p gr20,gr8,gr0,icc0 + 14180: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 + 14184: 00 01 41 88 subx\.p gr20,gr8,gr0,icc0 -00020188 <_GLOBAL_OFFSET_TABLE_>: +00014188 <_GLOBAL_OFFSET_TABLE_>: \.\.\. - 20194: 00 02 01 60 subcc\.p gr32,gr32,gr0,icc0 - 20198: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 - 2019c: 00 02 01 78 subcc\.p gr32,gr56,gr0,icc0 - 201a0: 00 02 01 70 subcc\.p gr32,gr48,gr0,icc0 - 201a4: 00 02 01 48 subcc\.p gr32,gr8,gr0,icc0 - 201a8: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 - 201ac: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 + 14194: 00 01 41 60 subcc\.p gr20,gr32,gr0,icc0 + 14198: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 + 1419c: 00 01 41 78 subcc\.p gr20,gr56,gr0,icc0 + 141a0: 00 01 41 70 subcc\.p gr20,gr48,gr0,icc0 + 141a4: 00 01 41 48 subcc\.p gr20,gr8,gr0,icc0 + 141a8: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 + 141ac: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 diff --git a/ld/testsuite/ld-frv/fdpic-static-6.d b/ld/testsuite/ld-frv/fdpic-static-6.d index 5b59947..54a225b 100644 --- a/ld/testsuite/ld-frv/fdpic-static-6.d +++ b/ld/testsuite/ld-frv/fdpic-static-6.d @@ -1,4 +1,4 @@ -#name: FRV uClinux PIC relocs to undefined symbols, static linking +#name: FRV uClinux PIC relocs to weak undefined symbols, static linking #source: fdpic6.s #objdump: -D #as: -mfdpic diff --git a/ld/testsuite/ld-frv/fdpic-static-7.d b/ld/testsuite/ld-frv/fdpic-static-7.d index b8eba61..0363a67 100644 --- a/ld/testsuite/ld-frv/fdpic-static-7.d +++ b/ld/testsuite/ld-frv/fdpic-static-7.d @@ -33,31 +33,31 @@ Disassembly of section \.text: Disassembly of section \.rofixup: 000100e0 <__ROFIXUP_LIST__>: - 100e0: 00 02 01 24 sub\.p gr32,gr36,gr0 - 100e4: 00 02 01 28 sub\.p gr32,gr40,gr0 - 100e8: 00 02 01 10 sub\.p gr32,gr16,gr0 - 100ec: 00 02 01 14 sub\.p gr32,gr20,gr0 - 100f0: 00 02 01 2c sub\.p gr32,gr44,gr0 - 100f4: 00 02 01 04 sub\.p gr32,gr4,gr0 - 100f8: 00 02 01 08 sub\.p gr32,gr8,gr0 - 100fc: 00 02 01 0c sub\.p gr32,gr12,gr0 - 10100: 00 02 01 18 sub\.p gr32,gr24,gr0 + 100e0: 00 01 41 24 sub\.p gr20,gr36,gr0 + 100e4: 00 01 41 28 sub\.p gr20,gr40,gr0 + 100e8: 00 01 41 10 sub\.p gr20,gr16,gr0 + 100ec: 00 01 41 14 sub\.p gr20,gr20,gr0 + 100f0: 00 01 41 2c sub\.p gr20,gr44,gr0 + 100f4: 00 01 41 04 sub\.p gr20,gr4,gr0 + 100f8: 00 01 41 08 sub\.p gr20,gr8,gr0 + 100fc: 00 01 41 0c sub\.p gr20,gr12,gr0 + 10100: 00 01 41 18 sub\.p gr20,gr24,gr0 Disassembly of section \.data: -00020104 <D7>: - 20104: 00 02 01 0c sub\.p gr32,gr12,gr0 +00014104 <D7>: + 14104: 00 01 41 0c sub\.p gr20,gr12,gr0 -00020108 <\.D0>: - 20108: 00 02 01 10 sub\.p gr32,gr16,gr0 - 2010c: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 +00014108 <\.D0>: + 14108: 00 01 41 10 sub\.p gr20,gr16,gr0 + 1410c: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 Disassembly of section \.got: -00020110 <_GLOBAL_OFFSET_TABLE_-0x8>: - 20110: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 - 20114: 00 02 01 18 sub\.p gr32,gr24,gr0 +00014110 <_GLOBAL_OFFSET_TABLE_-0x8>: + 14110: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 + 14114: 00 01 41 18 sub\.p gr20,gr24,gr0 -00020118 <_GLOBAL_OFFSET_TABLE_>: +00014118 <_GLOBAL_OFFSET_TABLE_>: \.\.\. - 20124: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 - 20128: 00 02 01 10 sub\.p gr32,gr16,gr0 - 2012c: 00 02 01 0c sub\.p gr32,gr12,gr0 + 14124: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 + 14128: 00 01 41 10 sub\.p gr20,gr16,gr0 + 1412c: 00 01 41 0c sub\.p gr20,gr12,gr0 diff --git a/ld/testsuite/ld-frv/fdpic-static-8.d b/ld/testsuite/ld-frv/fdpic-static-8.d index cbebb17..804c56e 100644 --- a/ld/testsuite/ld-frv/fdpic-static-8.d +++ b/ld/testsuite/ld-frv/fdpic-static-8.d @@ -33,63 +33,63 @@ Disassembly of section \.text: Disassembly of section \.rofixup: 000100e0 <__ROFIXUP_LIST__>: - 100e0: 00 02 01 98 subx\.p gr32,gr24,gr0,icc0 - 100e4: 00 02 01 9c subx\.p gr32,gr28,gr0,icc0 - 100e8: 00 02 01 ac subx\.p gr32,gr44,gr0,icc0 - 100ec: 00 02 01 94 subx\.p gr32,gr20,gr0,icc0 - 100f0: 00 02 01 58 subcc\.p gr32,gr24,gr0,icc0 - 100f4: 00 02 01 5c subcc\.p gr32,gr28,gr0,icc0 - 100f8: 00 02 01 a4 subx\.p gr32,gr36,gr0,icc0 - 100fc: 00 02 01 68 subcc\.p gr32,gr40,gr0,icc0 - 10100: 00 02 01 6c subcc\.p gr32,gr44,gr0,icc0 - 10104: 00 02 01 a0 subx\.p gr32,gr32,gr0,icc0 - 10108: 00 02 01 70 subcc\.p gr32,gr48,gr0,icc0 - 1010c: 00 02 01 74 subcc\.p gr32,gr52,gr0,icc0 - 10110: 00 02 01 80 subx\.p gr32,gr0,gr0,icc0 - 10114: 00 02 01 84 subx\.p gr32,gr4,gr0,icc0 - 10118: 00 02 01 78 subcc\.p gr32,gr56,gr0,icc0 - 1011c: 00 02 01 7c subcc\.p gr32,gr60,gr0,icc0 - 10120: 00 02 01 50 subcc\.p gr32,gr16,gr0,icc0 - 10124: 00 02 01 54 subcc\.p gr32,gr20,gr0,icc0 - 10128: 00 02 01 a8 subx\.p gr32,gr40,gr0,icc0 - 1012c: 00 02 01 44 subcc\.p gr32,gr4,gr0,icc0 - 10130: 00 02 01 60 subcc\.p gr32,gr32,gr0,icc0 - 10134: 00 02 01 64 subcc\.p gr32,gr36,gr0,icc0 - 10138: 00 02 01 48 subcc\.p gr32,gr8,gr0,icc0 - 1013c: 00 02 01 4c subcc\.p gr32,gr12,gr0,icc0 - 10140: 00 02 01 88 subx\.p gr32,gr8,gr0,icc0 + 100e0: 00 01 41 98 subx\.p gr20,gr24,gr0,icc0 + 100e4: 00 01 41 9c subx\.p gr20,gr28,gr0,icc0 + 100e8: 00 01 41 ac subx\.p gr20,gr44,gr0,icc0 + 100ec: 00 01 41 94 subx\.p gr20,gr20,gr0,icc0 + 100f0: 00 01 41 58 subcc\.p gr20,gr24,gr0,icc0 + 100f4: 00 01 41 5c subcc\.p gr20,gr28,gr0,icc0 + 100f8: 00 01 41 a4 subx\.p gr20,gr36,gr0,icc0 + 100fc: 00 01 41 68 subcc\.p gr20,gr40,gr0,icc0 + 10100: 00 01 41 6c subcc\.p gr20,gr44,gr0,icc0 + 10104: 00 01 41 a0 subx\.p gr20,gr32,gr0,icc0 + 10108: 00 01 41 70 subcc\.p gr20,gr48,gr0,icc0 + 1010c: 00 01 41 74 subcc\.p gr20,gr52,gr0,icc0 + 10110: 00 01 41 80 subx\.p gr20,gr0,gr0,icc0 + 10114: 00 01 41 84 subx\.p gr20,gr4,gr0,icc0 + 10118: 00 01 41 78 subcc\.p gr20,gr56,gr0,icc0 + 1011c: 00 01 41 7c subcc\.p gr20,gr60,gr0,icc0 + 10120: 00 01 41 50 subcc\.p gr20,gr16,gr0,icc0 + 10124: 00 01 41 54 subcc\.p gr20,gr20,gr0,icc0 + 10128: 00 01 41 a8 subx\.p gr20,gr40,gr0,icc0 + 1012c: 00 01 41 44 subcc\.p gr20,gr4,gr0,icc0 + 10130: 00 01 41 60 subcc\.p gr20,gr32,gr0,icc0 + 10134: 00 01 41 64 subcc\.p gr20,gr36,gr0,icc0 + 10138: 00 01 41 48 subcc\.p gr20,gr8,gr0,icc0 + 1013c: 00 01 41 4c subcc\.p gr20,gr12,gr0,icc0 + 10140: 00 01 41 88 subx\.p gr20,gr8,gr0,icc0 Disassembly of section \.data: -00020144 <D8>: - 20144: 00 02 01 4c subcc\.p gr32,gr12,gr0,icc0 +00014144 <D8>: + 14144: 00 01 41 4c subcc\.p gr20,gr12,gr0,icc0 -00020148 <GD0>: - 20148: 00 02 01 60 subcc\.p gr32,gr32,gr0,icc0 - 2014c: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 +00014148 <GD0>: + 14148: 00 01 41 60 subcc\.p gr20,gr32,gr0,icc0 + 1414c: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 Disassembly of section \.got: -00020150 <_GLOBAL_OFFSET_TABLE_-0x38>: - 20150: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 - 20154: 00 02 01 88 subx\.p gr32,gr8,gr0,icc0 - 20158: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 - 2015c: 00 02 01 88 subx\.p gr32,gr8,gr0,icc0 - 20160: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 - 20164: 00 02 01 88 subx\.p gr32,gr8,gr0,icc0 - 20168: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 - 2016c: 00 02 01 88 subx\.p gr32,gr8,gr0,icc0 - 20170: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 - 20174: 00 02 01 88 subx\.p gr32,gr8,gr0,icc0 - 20178: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 - 2017c: 00 02 01 88 subx\.p gr32,gr8,gr0,icc0 - 20180: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 - 20184: 00 02 01 88 subx\.p gr32,gr8,gr0,icc0 +00014150 <_GLOBAL_OFFSET_TABLE_-0x38>: + 14150: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 + 14154: 00 01 41 88 subx\.p gr20,gr8,gr0,icc0 + 14158: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 + 1415c: 00 01 41 88 subx\.p gr20,gr8,gr0,icc0 + 14160: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 + 14164: 00 01 41 88 subx\.p gr20,gr8,gr0,icc0 + 14168: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 + 1416c: 00 01 41 88 subx\.p gr20,gr8,gr0,icc0 + 14170: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 + 14174: 00 01 41 88 subx\.p gr20,gr8,gr0,icc0 + 14178: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 + 1417c: 00 01 41 88 subx\.p gr20,gr8,gr0,icc0 + 14180: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 + 14184: 00 01 41 88 subx\.p gr20,gr8,gr0,icc0 -00020188 <_GLOBAL_OFFSET_TABLE_>: +00014188 <_GLOBAL_OFFSET_TABLE_>: \.\.\. - 20194: 00 02 01 58 subcc\.p gr32,gr24,gr0,icc0 - 20198: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 - 2019c: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 - 201a0: 00 02 01 70 subcc\.p gr32,gr48,gr0,icc0 - 201a4: 00 02 01 68 subcc\.p gr32,gr40,gr0,icc0 - 201a8: 00 02 01 4c subcc\.p gr32,gr12,gr0,icc0 - 201ac: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 + 14194: 00 01 41 58 subcc\.p gr20,gr24,gr0,icc0 + 14198: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 + 1419c: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 + 141a0: 00 01 41 70 subcc\.p gr20,gr48,gr0,icc0 + 141a4: 00 01 41 68 subcc\.p gr20,gr40,gr0,icc0 + 141a8: 00 01 41 4c subcc\.p gr20,gr12,gr0,icc0 + 141ac: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 diff --git a/ld/testsuite/ld-frv/fdpic.exp b/ld/testsuite/ld-frv/fdpic.exp index dc06d4e..1367cb0 100644 --- a/ld/testsuite/ld-frv/fdpic.exp +++ b/ld/testsuite/ld-frv/fdpic.exp @@ -42,7 +42,9 @@ run_dump_test "fdpic-pie-5" run_dump_test "fdpic-shared-5" run_dump_test "fdpic-static-6" +run_dump_test "fdpic-pie-6-fail" run_dump_test "fdpic-pie-6" +run_dump_test "fdpic-shared-6-fail" run_dump_test "fdpic-shared-6" run_dump_test "fdpic-static-7" @@ -50,7 +52,6 @@ run_dump_test "fdpic-pie-7" run_dump_test "fdpic-shared-7" run_dump_test "fdpic-static-8" -run_dump_test "fdpic-pie-8-fail" run_dump_test "fdpic-pie-8" run_dump_test "fdpic-shared-8-fail" run_dump_test "fdpic-shared-8" diff --git a/ld/testsuite/ld-frv/fr450-link.d b/ld/testsuite/ld-frv/fr450-link.d new file mode 100644 index 0000000..7aab6f0 --- /dev/null +++ b/ld/testsuite/ld-frv/fr450-link.d @@ -0,0 +1,11 @@ +#source: fr450-linka.s -mcpu=fr400 +#source: fr450-linkb.s -mcpu=fr405 +#source: fr450-linkc.s -mcpu=fr450 +#source: fr450-linkb.s -mcpu=fr405 +#source: fr450-linka.s -mcpu=fr400 +#ld: -r +#objdump: -p + +.*: file format elf32-frv +private flags = 0x8000000: -mcpu=fr450 + diff --git a/ld/testsuite/ld-frv/fr450-linka.s b/ld/testsuite/ld-frv/fr450-linka.s new file mode 100644 index 0000000..4e7fe2f --- /dev/null +++ b/ld/testsuite/ld-frv/fr450-linka.s @@ -0,0 +1 @@ + nop diff --git a/ld/testsuite/ld-frv/fr450-linkb.s b/ld/testsuite/ld-frv/fr450-linkb.s new file mode 100644 index 0000000..4e7fe2f --- /dev/null +++ b/ld/testsuite/ld-frv/fr450-linkb.s @@ -0,0 +1 @@ + nop diff --git a/ld/testsuite/ld-frv/fr450-linkc.s b/ld/testsuite/ld-frv/fr450-linkc.s new file mode 100644 index 0000000..4e7fe2f --- /dev/null +++ b/ld/testsuite/ld-frv/fr450-linkc.s @@ -0,0 +1 @@ + nop diff --git a/ld/testsuite/ld-frv/frv-elf.exp b/ld/testsuite/ld-frv/frv-elf.exp new file mode 100644 index 0000000..1d63e03 --- /dev/null +++ b/ld/testsuite/ld-frv/frv-elf.exp @@ -0,0 +1,3 @@ +if [istarget frv*-*-*] { + run_dump_test "fr450-link" +} diff --git a/ld/testsuite/ld-i386/tlspic.dd b/ld/testsuite/ld-i386/tlspic.dd index 60bcfaa..7f1690c 100644 --- a/ld/testsuite/ld-i386/tlspic.dd +++ b/ld/testsuite/ld-i386/tlspic.dd @@ -24,7 +24,7 @@ Disassembly of section .text: # GD [0-9a-f]+: 8d 04 1d 5c 00 00 00 lea 0x5c\(,%ebx,1\),%eax # ->R_386_TLS_DTPMOD32 sg1 - [0-9a-f]+: e8 cf ff ff ff[ ]+call [0-9a-f]+ <.*0x[0-9a-f]+> + [0-9a-f]+: e8 cf ff ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt> # ->R_386_JUMP_SLOT ___tls_get_addr [0-9a-f]+: 90[ ]+nop * [0-9a-f]+: 90[ ]+nop * @@ -57,7 +57,7 @@ Disassembly of section .text: # GD against local variable [0-9a-f]+: 8d 04 1d 10 00 00 00 lea 0x10\(,%ebx,1\),%eax # ->R_386_TLS_DTPMOD32 [0x00000000 0x20000000] - [0-9a-f]+: e8 8f ff ff ff[ ]+call [0-9a-f]+ <.*0x[0-9a-f]+> + [0-9a-f]+: e8 8f ff ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt> # ->R_386_JUMP_SLOT ___tls_get_addr [0-9a-f]+: 90[ ]+nop * [0-9a-f]+: 90[ ]+nop * @@ -90,7 +90,7 @@ Disassembly of section .text: # GD against hidden and local variable [0-9a-f]+: 8d 04 1d 7c 00 00 00 lea 0x7c\(,%ebx,1\),%eax # ->R_386_TLS_DTPMOD32 [0x00000000 0x40000000] - [0-9a-f]+: e8 4f ff ff ff[ ]+call [0-9a-f]+ <.*0x[0-9a-f]+> + [0-9a-f]+: e8 4f ff ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt> # ->R_386_JUMP_SLOT ___tls_get_addr [0-9a-f]+: 90[ ]+nop * [0-9a-f]+: 90[ ]+nop * @@ -123,7 +123,7 @@ Disassembly of section .text: # GD against hidden but not local variable [0-9a-f]+: 8d 04 1d 34 00 00 00 lea 0x34\(,%ebx,1\),%eax # ->R_386_TLS_DTPMOD32 [0x00000000 0x60000000] - [0-9a-f]+: e8 0f ff ff ff[ ]+call [0-9a-f]+ <.*0x[0-9a-f]+> + [0-9a-f]+: e8 0f ff ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt> # ->R_386_JUMP_SLOT ___tls_get_addr [0-9a-f]+: 90[ ]+nop * [0-9a-f]+: 90[ ]+nop * @@ -156,7 +156,7 @@ Disassembly of section .text: # LD [0-9a-f]+: 8d 83 2c 00 00 00[ ]+lea 0x2c\(%ebx\),%eax # ->R_386_TLS_DTPMOD32 [0x00000000 0x00000000] - [0-9a-f]+: e8 d0 fe ff ff[ ]+call [0-9a-f]+ <.*0x[0-9a-f]+> + [0-9a-f]+: e8 d0 fe ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt> # ->R_386_JUMP_SLOT ___tls_get_addr [0-9a-f]+: 90[ ]+nop * [0-9a-f]+: 90[ ]+nop * @@ -173,7 +173,7 @@ Disassembly of section .text: # LD against hidden and local variables [0-9a-f]+: 8d 83 2c 00 00 00[ ]+lea 0x2c\(%ebx\),%eax # ->R_386_TLS_DTPMOD32 [0x00000000 0x00000000] - [0-9a-f]+: e8 b1 fe ff ff[ ]+call [0-9a-f]+ <.*0x[0-9a-f]+> + [0-9a-f]+: e8 b1 fe ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt> # ->R_386_JUMP_SLOT ___tls_get_addr [0-9a-f]+: 90[ ]+nop * [0-9a-f]+: 90[ ]+nop * @@ -190,7 +190,7 @@ Disassembly of section .text: # LD against hidden but not local variables [0-9a-f]+: 8d 83 2c 00 00 00[ ]+lea 0x2c\(%ebx\),%eax # ->R_386_TLS_DTPMOD32 [0x00000000 0x00000000] - [0-9a-f]+: e8 92 fe ff ff[ ]+call [0-9a-f]+ <.*0x[0-9a-f]+> + [0-9a-f]+: e8 92 fe ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt> # ->R_386_JUMP_SLOT ___tls_get_addr [0-9a-f]+: 90[ ]+nop * [0-9a-f]+: 90[ ]+nop * diff --git a/ld/testsuite/ld-mips-elf/empic1-ln.d b/ld/testsuite/ld-mips-elf/empic1-ln.d deleted file mode 100644 index eb78478..0000000 --- a/ld/testsuite/ld-mips-elf/empic1-ln.d +++ /dev/null @@ -1,27 +0,0 @@ -#name: MIPS 32-bit ELF embedded-pic relocs #1-ln (large negative) -#as: -membedded-pic -mips3 -#source: empic1-tgt.s -#source: empic1-space.s -#source: empic1-space.s -#source: empic1-ref.s -#objdump: --prefix-addresses -tdr --show-raw-insn -mmips:4000 -#ld: -Ttext 0x400000 -e 0x400000 - -.*: file format elf.*mips.* - -SYMBOL TABLE: -#... -0+410020 g F .text [0-9a-f]+ foo -#... -0+400000 g F .text [0-9a-f]+ bar -#... - -Disassembly of section \.text: - ... - ... - ... -0+410020 <[^>]*> 00000000 nop -0+410024 <[^>]*> 3c02ffff lui v0,0xffff -0+410028 <[^>]*> 6442ffe0 daddiu v0,v0,-32 - ... -#pass diff --git a/ld/testsuite/ld-mips-elf/empic1-lp.d b/ld/testsuite/ld-mips-elf/empic1-lp.d deleted file mode 100644 index bd11e52..0000000 --- a/ld/testsuite/ld-mips-elf/empic1-lp.d +++ /dev/null @@ -1,26 +0,0 @@ -#name: MIPS 32-bit ELF embedded-pic relocs #1-lp (large positive) -#as: -membedded-pic -mips3 -#source: empic1-ref.s -#source: empic1-space.s -#source: empic1-space.s -#source: empic1-tgt.s -#objdump: --prefix-addresses -tdr --show-raw-insn -mmips:4000 -#ld: -Ttext 0x400000 -e 0x400000 - -.*: file format elf.*mips.* - -SYMBOL TABLE: -#... -0+400000 g F .text [0-9a-f]+ foo -#... -0+410020 g F .text [0-9a-f]+ bar -#... - -Disassembly of section \.text: -0+400000 <[^>]*> 00000000 nop -0+400004 <[^>]*> 3c020001 lui v0,0x1 -0+400008 <[^>]*> 64420020 daddiu v0,v0,32 - ... - ... - ... -#pass diff --git a/ld/testsuite/ld-mips-elf/empic1-mn.d b/ld/testsuite/ld-mips-elf/empic1-mn.d deleted file mode 100644 index fa43abf..0000000 --- a/ld/testsuite/ld-mips-elf/empic1-mn.d +++ /dev/null @@ -1,25 +0,0 @@ -#name: MIPS 32-bit ELF embedded-pic relocs #1-mn (medium negative) -#as: -membedded-pic -mips3 -#source: empic1-tgt.s -#source: empic1-space.s -#source: empic1-ref.s -#objdump: --prefix-addresses -tdr --show-raw-insn -mmips:4000 -#ld: -Ttext 0x400000 -e 0x400000 - -.*: file format elf.*mips.* - -SYMBOL TABLE: -#... -0+408020 g F .text [0-9a-f]+ foo -#... -0+400000 g F .text [0-9a-f]+ bar -#... - -Disassembly of section \.text: - ... - ... -0+408020 <[^>]*> 00000000 nop -0+408024 <[^>]*> 3c02ffff lui v0,0xffff -0+408028 <[^>]*> 64427fe0 daddiu v0,v0,32736 - ... -#pass diff --git a/ld/testsuite/ld-mips-elf/empic1-mp.d b/ld/testsuite/ld-mips-elf/empic1-mp.d deleted file mode 100644 index 27d1574..0000000 --- a/ld/testsuite/ld-mips-elf/empic1-mp.d +++ /dev/null @@ -1,25 +0,0 @@ -#name: MIPS 32-bit ELF embedded-pic relocs #1-mp (medium positive) -#as: -membedded-pic -mips3 -#source: empic1-ref.s -#source: empic1-space.s -#source: empic1-tgt.s -#objdump: --prefix-addresses -tdr --show-raw-insn -mmips:4000 -#ld: -Ttext 0x400000 -e 0x400000 - -.*: file format elf.*mips.* - -SYMBOL TABLE: -#... -0+400000 g F .text [0-9a-f]+ foo -#... -0+408020 g F .text [0-9a-f]+ bar -#... - -Disassembly of section \.text: -0+400000 <[^>]*> 00000000 nop -0+400004 <[^>]*> 3c020001 lui v0,0x1 -0+400008 <[^>]*> 64428020 daddiu v0,v0,-32736 - ... - ... - ... -#pass diff --git a/ld/testsuite/ld-mips-elf/empic1-ref.s b/ld/testsuite/ld-mips-elf/empic1-ref.s deleted file mode 100644 index dfa345e..0000000 --- a/ld/testsuite/ld-mips-elf/empic1-ref.s +++ /dev/null @@ -1,9 +0,0 @@ - - .globl foo - .ent foo -foo: - nop - la $2, bar - foo - .end foo - - .p2align 5 diff --git a/ld/testsuite/ld-mips-elf/empic1-sn.d b/ld/testsuite/ld-mips-elf/empic1-sn.d deleted file mode 100644 index 6d041ed..0000000 --- a/ld/testsuite/ld-mips-elf/empic1-sn.d +++ /dev/null @@ -1,23 +0,0 @@ -#name: MIPS 32-bit ELF embedded-pic relocs #1-sn (small negative) -#as: -membedded-pic -mips3 -#source: empic1-tgt.s -#source: empic1-ref.s -#objdump: --prefix-addresses -tdr --show-raw-insn -mmips:4000 -#ld: -Ttext 0x400000 -e 0x400000 - -.*: file format elf.*mips.* - -SYMBOL TABLE: -#... -0+400020 g F .text [0-9a-f]+ foo -#... -0+400000 g F .text [0-9a-f]+ bar -#... - -Disassembly of section \.text: - ... -0+400020 <[^>]*> 00000000 nop -0+400024 <[^>]*> 3c020000 lui v0,0x0 -0+400028 <[^>]*> 6442ffe0 daddiu v0,v0,-32 - ... -#pass diff --git a/ld/testsuite/ld-mips-elf/empic1-sp.d b/ld/testsuite/ld-mips-elf/empic1-sp.d deleted file mode 100644 index f91d625..0000000 --- a/ld/testsuite/ld-mips-elf/empic1-sp.d +++ /dev/null @@ -1,23 +0,0 @@ -#name: MIPS 32-bit ELF embedded-pic relocs #1-sp (small positive) -#as: -membedded-pic -mips3 -#source: empic1-ref.s -#source: empic1-tgt.s -#objdump: --prefix-addresses -tdr --show-raw-insn -mmips:4000 -#ld: -Ttext 0x400000 -e 0x400000 - -.*: file format elf.*mips.* - -SYMBOL TABLE: -#... -0+400000 g F .text [0-9a-f]+ foo -#... -0+400020 g F .text [0-9a-f]+ bar -#... - -Disassembly of section \.text: -0+400000 <[^>]*> 00000000 nop -0+400004 <[^>]*> 3c020000 lui v0,0x0 -0+400008 <[^>]*> 64420020 daddiu v0,v0,32 - ... - ... -#pass diff --git a/ld/testsuite/ld-mips-elf/empic1-space.s b/ld/testsuite/ld-mips-elf/empic1-space.s deleted file mode 100644 index 9c30cfb..0000000 --- a/ld/testsuite/ld-mips-elf/empic1-space.s +++ /dev/null @@ -1,5 +0,0 @@ - - .ent space -space: - .space (32 * 1024) - .end space diff --git a/ld/testsuite/ld-mips-elf/empic1-tgt.s b/ld/testsuite/ld-mips-elf/empic1-tgt.s deleted file mode 100644 index 909488c..0000000 --- a/ld/testsuite/ld-mips-elf/empic1-tgt.s +++ /dev/null @@ -1,8 +0,0 @@ - - .globl bar - .ent bar -bar: - nop - .end bar - - .p2align 5 diff --git a/ld/testsuite/ld-mips-elf/empic2-fwd-0.d b/ld/testsuite/ld-mips-elf/empic2-fwd-0.d deleted file mode 100644 index e53f1fa..0000000 --- a/ld/testsuite/ld-mips-elf/empic2-fwd-0.d +++ /dev/null @@ -1,20 +0,0 @@ -#name: MIPS 32-bit ELF embedded-pic relocs #2-fwd-0 (0x7ffc forward edge case) -#as: -membedded-pic -mips3 -#source: empic2-ref.s -#source: empic2-fwd-tgt.s -#objdump: --prefix-addresses -tdr --show-raw-insn -mmips:4000 -#ld: -Ttext 0x400000 -e 0x400000 - -.*: file format elf.*mips.* - -#... -0+400000 g F .text [0-9a-f]+ foo -#... -0+407ffc g F .text [0-9a-f]+ bar -#... - -Disassembly of section \.text: -0+400000 <[^>]*> 3c020000 lui v0,0x0 -0+400004 <[^>]*> 64427ffc daddiu v0,v0,32764 - ... -#pass diff --git a/ld/testsuite/ld-mips-elf/empic2-fwd-1.d b/ld/testsuite/ld-mips-elf/empic2-fwd-1.d deleted file mode 100644 index e720852..0000000 --- a/ld/testsuite/ld-mips-elf/empic2-fwd-1.d +++ /dev/null @@ -1,21 +0,0 @@ -#name: MIPS 32-bit ELF embedded-pic relocs #2-fwd-1 (0xfffc forward edge case) -#as: -membedded-pic -mips3 -#source: empic2-ref.s -#source: empic2-space.s -#source: empic2-fwd-tgt.s -#objdump: --prefix-addresses -tdr --show-raw-insn -mmips:4000 -#ld: -Ttext 0x400000 -e 0x400000 - -.*: file format elf.*mips.* - -#... -0+400000 g F .text [0-9a-f]+ foo -#... -0+40fffc g F .text [0-9a-f]+ bar -#... - -Disassembly of section \.text: -0+400000 <[^>]*> 3c020001 lui v0,0x1 -0+400004 <[^>]*> 6442fffc daddiu v0,v0,-4 - ... -#pass diff --git a/ld/testsuite/ld-mips-elf/empic2-fwd-tgt.s b/ld/testsuite/ld-mips-elf/empic2-fwd-tgt.s deleted file mode 100644 index 915cf45..0000000 --- a/ld/testsuite/ld-mips-elf/empic2-fwd-tgt.s +++ /dev/null @@ -1,7 +0,0 @@ - - .space (32768 - 16 - 4) # 16..32764 - - .globl bar - .ent bar -bar: - .end bar diff --git a/ld/testsuite/ld-mips-elf/empic2-ref.s b/ld/testsuite/ld-mips-elf/empic2-ref.s deleted file mode 100644 index 7048887..0000000 --- a/ld/testsuite/ld-mips-elf/empic2-ref.s +++ /dev/null @@ -1,7 +0,0 @@ - .globl foo - .ent foo -foo: - la $2,bar-foo - .end foo - - .p2align 4 diff --git a/ld/testsuite/ld-mips-elf/empic2-rev-0.d b/ld/testsuite/ld-mips-elf/empic2-rev-0.d deleted file mode 100644 index 9bd9acc..0000000 --- a/ld/testsuite/ld-mips-elf/empic2-rev-0.d +++ /dev/null @@ -1,22 +0,0 @@ -#name: MIPS 32-bit ELF embedded-pic relocs #2-rev-0 (0x0004 backward edge case) -#as: -membedded-pic -mips3 -#source: empic2-rev-tgt.s -#source: empic2-ref.s -#objdump: --prefix-addresses -tdr --show-raw-insn -mmips:4000 -#ld: -Ttext 0x400000 -e 0x400000 - -.*: file format elf.*mips.* - -#... -0+408000 g F .text [0-9a-f]+ foo -#... -0+407ffc g F .text [0-9a-f]+ bar -#... - -Disassembly of section \.text: - ... -0+407ffc <[^>]*> 00000000 nop -0+408000 <[^>]*> 3c020000 lui v0,0x0 -0+408004 <[^>]*> 6442fffc daddiu v0,v0,-4 - ... -#pass diff --git a/ld/testsuite/ld-mips-elf/empic2-rev-1.d b/ld/testsuite/ld-mips-elf/empic2-rev-1.d deleted file mode 100644 index 1a38ec2..0000000 --- a/ld/testsuite/ld-mips-elf/empic2-rev-1.d +++ /dev/null @@ -1,24 +0,0 @@ -#name: MIPS 32-bit ELF embedded-pic relocs #2-rev-1 (0x8004 backward edge case) -#as: -membedded-pic -mips3 -#source: empic2-rev-tgt.s -#source: empic2-space.s -#source: empic2-ref.s -#objdump: --prefix-addresses -tdr --show-raw-insn -mmips:4000 -#ld: -Ttext 0x400000 -e 0x400000 - -.*: file format elf.*mips.* - -#... -0+410000 g F .text [0-9a-f]+ foo -#... -0+407ffc g F .text [0-9a-f]+ bar -#... - -Disassembly of section \.text: - ... -0+407ffc <[^>]*> 00000000 nop - ... -0+410000 <[^>]*> 3c02ffff lui v0,0xffff -0+410004 <[^>]*> 64427ffc daddiu v0,v0,32764 - ... -#pass diff --git a/ld/testsuite/ld-mips-elf/empic2-rev-tgt.s b/ld/testsuite/ld-mips-elf/empic2-rev-tgt.s deleted file mode 100644 index 8124cfe..0000000 --- a/ld/testsuite/ld-mips-elf/empic2-rev-tgt.s +++ /dev/null @@ -1,8 +0,0 @@ - - .space (32768 - 4) - - .globl bar - .ent bar -bar: - .space 4 - .end bar diff --git a/ld/testsuite/ld-mips-elf/empic2-space.s b/ld/testsuite/ld-mips-elf/empic2-space.s deleted file mode 100644 index 9c30cfb..0000000 --- a/ld/testsuite/ld-mips-elf/empic2-space.s +++ /dev/null @@ -1,5 +0,0 @@ - - .ent space -space: - .space (32 * 1024) - .end space diff --git a/ld/testsuite/ld-mips-elf/emrelocs-eb.d b/ld/testsuite/ld-mips-elf/emrelocs-eb.d deleted file mode 100644 index dd79bdd..0000000 --- a/ld/testsuite/ld-mips-elf/emrelocs-eb.d +++ /dev/null @@ -1,25 +0,0 @@ -#name: MIPS 32-bit ELF embedded relocs (big endian) -#source: emrelocs1.s -EB -#source: emrelocs2.s -EB -#ld: -EB --embedded-relocs -T $srcdir/$subdir/emrelocs.ld -#objdump: -s - -.*: file format elf.*mips.* - -Contents of section \.text: - 100000 00000000 00000001 00000000 00000000 .* - 100010 00000000 00000000 00000003 00000000 .* -Contents of section \.data: - 200000 00000000 00000002 00000000 00000000 .* - 200010 00000000 00000000 00000004 00000000 .* - 200020 00100004 00200004 00100018 00200018 .* - 200030 00000000 00100004 00000000 00200004 .* - 200040 00000000 00100018 00000000 00200018 .* -Contents of section \.rel\.sdata: - 300000 00000020 2e746578 74000000 00000024 .* - 300010 2e646174 61000000 00000028 2e746578 .* - 300020 74000000 0000002c 2e646174 61000000 .* - 300030 00000031 2e746578 74000000 00000039 .* - 300040 2e646174 61000000 00000041 2e746578 .* - 300050 74000000 00000049 2e646174 61000000 .* -#pass diff --git a/ld/testsuite/ld-mips-elf/emrelocs-el.d b/ld/testsuite/ld-mips-elf/emrelocs-el.d deleted file mode 100644 index ad1e495..0000000 --- a/ld/testsuite/ld-mips-elf/emrelocs-el.d +++ /dev/null @@ -1,25 +0,0 @@ -#name: MIPS 32-bit ELF embedded relocs (little endian) -#source: emrelocs1.s -EL -#source: emrelocs2.s -EL -#ld: -EL --embedded-relocs -T $srcdir/$subdir/emrelocs.ld -#objdump: -s - -.*: file format elf.*mips.* - -Contents of section \.text: - 100000 00000000 01000000 00000000 00000000 .* - 100010 00000000 00000000 03000000 00000000 .* -Contents of section \.data: - 200000 00000000 02000000 00000000 00000000 .* - 200010 00000000 00000000 04000000 00000000 .* - 200020 04001000 04002000 18001000 18002000 .* - 200030 04001000 00000000 04002000 00000000 .* - 200040 18001000 00000000 18002000 00000000 .* -Contents of section \.rel\.sdata: - 300000 20000000 2e746578 74000000 24000000 .* - 300010 2e646174 61000000 28000000 2e746578 .* - 300020 74000000 2c000000 2e646174 61000000 .* - 300030 31000000 2e746578 74000000 39000000 .* - 300040 2e646174 61000000 41000000 2e746578 .* - 300050 74000000 49000000 2e646174 61000000 .* -#pass diff --git a/ld/testsuite/ld-mips-elf/emrelocs.ld b/ld/testsuite/ld-mips-elf/emrelocs.ld deleted file mode 100644 index 557f139..0000000 --- a/ld/testsuite/ld-mips-elf/emrelocs.ld +++ /dev/null @@ -1,16 +0,0 @@ -ENTRY(ext_fun) -SECTIONS -{ - .text 0x00100000: - { - *(.text) - } - .data 0x00200000: - { - *(.sdata) - } - .rel.sdata 0x00300000: - { - *(.rel.sdata) - } -} diff --git a/ld/testsuite/ld-mips-elf/emrelocs1.s b/ld/testsuite/ld-mips-elf/emrelocs1.s deleted file mode 100644 index 3e679ae..0000000 --- a/ld/testsuite/ld-mips-elf/emrelocs1.s +++ /dev/null @@ -1,23 +0,0 @@ -# emrelocs1.s: some external symbols to be used in relocations. - - .text - .p2align 4 - - # Pad things so addresses which are used for relocations - # are non-zero. Zero simply isn't as much fun. - .word 0 - - .globl ext_fun - .ent ext_fun -ext_fun: .word 1 - .end ext_fun - - - .sdata - .p2align 4 - - # Padding here, for same reason. - .word 0 - - .globl ext_var -ext_var: .word 2 diff --git a/ld/testsuite/ld-mips-elf/emrelocs2.s b/ld/testsuite/ld-mips-elf/emrelocs2.s deleted file mode 100644 index 77570f1..0000000 --- a/ld/testsuite/ld-mips-elf/emrelocs2.s +++ /dev/null @@ -1,30 +0,0 @@ -# emrelocs2.s: local symbols and data which causes relocations. - - .text - .p2align 4 - - .word 0, 0 - - .ent lcl_fun -lcl_fun: .word 3 - .end lcl_fun - - - .sdata - .p2align 4 - - .word 0, 0 - -lcl_var: .word 4 - - .p2align 4 - - .word ext_fun - .word ext_var - .word lcl_fun - .word lcl_var - - .dword ext_fun - .dword ext_var - .dword lcl_fun - .dword lcl_var diff --git a/ld/testsuite/ld-mips-elf/mips-elf.exp b/ld/testsuite/ld-mips-elf/mips-elf.exp index f2194a1..36fae9b 100644 --- a/ld/testsuite/ld-mips-elf/mips-elf.exp +++ b/ld/testsuite/ld-mips-elf/mips-elf.exp @@ -58,25 +58,6 @@ if { $linux_gnu } { } if { $embedded_elf } { - # Check basic Embedded-PIC PC-relative HI/LO relocs. - run_dump_test "empic1-ln" - run_dump_test "empic1-lp" - run_dump_test "empic1-mn" - run_dump_test "empic1-mp" - run_dump_test "empic1-sn" - run_dump_test "empic1-sp" - - # Embedded-PIC PC-relative HI/LO reloc edge-case regression tests. - # As of 2001-12-26, the linker botches the fwd-0 and rev-1 tests. - run_dump_test "empic2-fwd-0" - run_dump_test "empic2-fwd-1" - run_dump_test "empic2-rev-0" - run_dump_test "empic2-rev-1" - - # Check generation of embedded relocs section. - run_dump_test "emrelocs-eb" - run_dump_test "emrelocs-el" - run_dump_test "region1" } @@ -93,7 +74,3 @@ if $has_newabi { } } run_dump_test "reloc-2" -if $embedded_elf { - run_dump_test "reloc-3-r" - run_dump_test "reloc-3-srec" -} diff --git a/ld/testsuite/ld-mips-elf/reloc-3-r.d b/ld/testsuite/ld-mips-elf/reloc-3-r.d deleted file mode 100644 index 9624e6e..0000000 --- a/ld/testsuite/ld-mips-elf/reloc-3-r.d +++ /dev/null @@ -1,83 +0,0 @@ -#source: reloc-3a.s -mabi=32 -membedded-pic -#source: reloc-3b.s -mabi=32 -membedded-pic -#ld: -r -#objdump: -dr - -.*: file format .* - -Disassembly of section \.text: - -.* <.*>: -# -# Relocations against lda -# -.*: 3c04ffff lui a0,0xffff - .*: R_MIPS_GNU_REL_HI16 \.text2 -.*: 24847ffc addiu a0,a0,32764 - .*: R_MIPS_GNU_REL_LO16 \.text2 -.*: 3c040000 lui a0,0x0 - .*: R_MIPS_GNU_REL_HI16 \.text2 -.*: 24848014 addiu a0,a0,-32748 - .*: R_MIPS_GNU_REL_LO16 \.text2 -.*: 3c040000 lui a0,0x0 - .*: R_MIPS_GNU_REL_HI16 \.text2 -.*: 2484001c addiu a0,a0,28 - .*: R_MIPS_GNU_REL_LO16 \.text2 -.*: 3c040001 lui a0,0x1 - .*: R_MIPS_GNU_REL_HI16 \.text2 -.*: 24848014 addiu a0,a0,-32748 - .*: R_MIPS_GNU_REL_LO16 \.text2 -.*: 3c040001 lui a0,0x1 - .*: R_MIPS_GNU_REL_HI16 \.text2 -.*: 2484803c addiu a0,a0,-32708 - .*: R_MIPS_GNU_REL_LO16 \.text2 - \.\.\. - -.* <.*>: -# -# Relocations against gd -# -.*: 3c04ffff lui a0,0xffff - .*: R_MIPS_GNU_REL_HI16 gd -.*: 24847ff4 addiu a0,a0,32756 - .*: R_MIPS_GNU_REL_LO16 gd -.*: 3c040000 lui a0,0x0 - .*: R_MIPS_GNU_REL_HI16 gd -.*: 2484800c addiu a0,a0,-32756 - .*: R_MIPS_GNU_REL_LO16 gd -.*: 3c040000 lui a0,0x0 - .*: R_MIPS_GNU_REL_HI16 gd -.*: 24840014 addiu a0,a0,20 - .*: R_MIPS_GNU_REL_LO16 gd -.*: 3c040001 lui a0,0x1 - .*: R_MIPS_GNU_REL_HI16 gd -.*: 2484800c addiu a0,a0,-32756 - .*: R_MIPS_GNU_REL_LO16 gd -.*: 3c040001 lui a0,0x1 - .*: R_MIPS_GNU_REL_HI16 gd -.*: 24848034 addiu a0,a0,-32716 - .*: R_MIPS_GNU_REL_LO16 gd -# -# Relocations against ldb -# -.*: 3c040000 lui a0,0x0 - .*: R_MIPS_GNU_REL_HI16 \.text2 -.*: 2484802c addiu a0,a0,-32724 - .*: R_MIPS_GNU_REL_LO16 \.text2 -.*: 3c040000 lui a0,0x0 - .*: R_MIPS_GNU_REL_HI16 \.text2 -.*: 24848044 addiu a0,a0,-32700 - .*: R_MIPS_GNU_REL_LO16 \.text2 -.*: 3c040000 lui a0,0x0 - .*: R_MIPS_GNU_REL_HI16 \.text2 -.*: 2484004c addiu a0,a0,76 - .*: R_MIPS_GNU_REL_LO16 \.text2 -.*: 3c040001 lui a0,0x1 - .*: R_MIPS_GNU_REL_HI16 \.text2 -.*: 24848044 addiu a0,a0,-32700 - .*: R_MIPS_GNU_REL_LO16 \.text2 -.*: 3c040001 lui a0,0x1 - .*: R_MIPS_GNU_REL_HI16 \.text2 -.*: 2484806c addiu a0,a0,-32660 - .*: R_MIPS_GNU_REL_LO16 \.text2 - \.\.\. diff --git a/ld/testsuite/ld-mips-elf/reloc-3-srec.d b/ld/testsuite/ld-mips-elf/reloc-3-srec.d deleted file mode 100644 index a4a7d24..0000000 --- a/ld/testsuite/ld-mips-elf/reloc-3-srec.d +++ /dev/null @@ -1,54 +0,0 @@ -#source: reloc-3a.s -mabi=32 -membedded-pic -EB -#source: reloc-3b.s -mabi=32 -membedded-pic -EB -#ld: --oformat=srec -Treloc-3.ld -#objdump: -D -mmips:4000 --endian=big - -.*: file format .* - -Disassembly of section .*: - -.* <.*>: -# .text2 - tstarta = 0x108000 -# .text2 - tstartb = 0x098010 -# -# Relocations against lda -# -.*: 3c040010 lui a0,0x10 -.*: 2484fff8 addiu a0,a0,-8 -.*: 3c040010 lui a0,0x10 -.*: 24840008 addiu a0,a0,8 -.*: 3c040011 lui a0,0x11 -.*: 24848008 addiu a0,a0,-32760 -.*: 3c040011 lui a0,0x11 -.*: 2484fff8 addiu a0,a0,-8 -.*: 3c040011 lui a0,0x11 -.*: 24840018 addiu a0,a0,24 - \.\.\. -# -# Relocations against gd -# -.*: 3c04000f lui a0,0xf -.*: 24840004 addiu a0,a0,4 -.*: 3c04000f lui a0,0xf -.*: 24840014 addiu a0,a0,20 -.*: 3c040010 lui a0,0x10 -.*: 24848014 addiu a0,a0,-32748 -.*: 3c040010 lui a0,0x10 -.*: 24840004 addiu a0,a0,4 -.*: 3c040010 lui a0,0x10 -.*: 24840024 addiu a0,a0,36 -# -# Relocations against ldb -# -.*: 3c04000f lui a0,0xf -.*: 24840010 addiu a0,a0,16 -.*: 3c04000f lui a0,0xf -.*: 24840020 addiu a0,a0,32 -.*: 3c040010 lui a0,0x10 -.*: 24848020 addiu a0,a0,-32736 -.*: 3c040010 lui a0,0x10 -.*: 24840010 addiu a0,a0,16 -.*: 3c040010 lui a0,0x10 -.*: 24840030 addiu a0,a0,48 - \.\.\. -#pass diff --git a/ld/testsuite/ld-mips-elf/reloc-3.ld b/ld/testsuite/ld-mips-elf/reloc-3.ld deleted file mode 100644 index a918bf9..0000000 --- a/ld/testsuite/ld-mips-elf/reloc-3.ld +++ /dev/null @@ -1,8 +0,0 @@ -SECTIONS -{ - . = 0x208000; - .text : { *(.text) } - . = 0x310000; - .text2 : { *(.text2) } - /DISCARD/ : { *(*) } -} diff --git a/ld/testsuite/ld-mips-elf/reloc-3a.s b/ld/testsuite/ld-mips-elf/reloc-3a.s deleted file mode 100644 index f0cdabd..0000000 --- a/ld/testsuite/ld-mips-elf/reloc-3a.s +++ /dev/null @@ -1,38 +0,0 @@ - .globl _start - .globl gd - .ent tstarta -tstarta: -_start: - la $4,lda-tstarta-0x8010 - # (.text2+8-0x8010) - tstarta [+ (tstarta+0x4)] - # relocation: .text2 - 0x8004 - # final value: .text2 - tstarta - 0x8008 - - la $4,lda-tstarta-0x8000 - # (.text2+8-0x8000) - tstarta [+ (tstarta+0xc)] - # relocation: .text2 - 0x7fec - # final value: .text2 - tstarta - 0x7ff8 - - la $4,lda-tstarta - # (.text2+8) - tstarta [+ (tstarta+0x14)] - # relocation: .text2 + 0x1c - # final value: .text2 - tstarta + 0x8 - - la $4,lda-tstarta+0x7ff0 - # (.text2+8+0x7ff0) - tstarta [+ (tstarta+0x1c)] - # relocation: .text2 + 0x8014 - # final value: .text2 - tstarta + 0x7ff8 - - la $4,lda-tstarta+0x8010 # (.text2+8)-(tstarta+0x8010)+0x24 - # (.text2+8+0x8010) - tstarta [+ (tstarta+0x24)] - # relocation: .text2 + 0x803c - # final value: .text2 - tstarta + 0x8018 - - .end tstarta - - .org 0xfff0 - .section .text2 - .word 1 -gd: .word 2 -lda: .word 3 - .word 4 diff --git a/ld/testsuite/ld-mips-elf/reloc-3b.s b/ld/testsuite/ld-mips-elf/reloc-3b.s deleted file mode 100644 index 8d50334..0000000 --- a/ld/testsuite/ld-mips-elf/reloc-3b.s +++ /dev/null @@ -1,58 +0,0 @@ - .globl _start - .globl gd - .ent tstartb -tstartb: - la $4,gd-tstartb-0x8010 - # (gd-0x8010) - tstartb [+ (tstartb+0x4)] - # relocation: gd - 0x800c - # final value: gd - tstartb - 0x8010 - - la $4,gd-tstartb-0x8000 - # (gd-0x8000) - tstartb [+ (tstartb+0xc)] - # relocation: gd - 0x7ff4 - # final value: gd - tstartb - 0x8000 - - la $4,gd-tstartb - # (gd) - tstartb [+ (tstartb+0x14)] - # relocation: gd + 0x14 - # final value: gd - tstartb - - la $4,gd-tstartb+0x7ff0 - # (gd+0x7ff0) - tstartb [+ (tstartb+0x1c)] - # relocation: gd + 0x800c - # final value: gd - tstartb + 0x7ff0 - - la $4,gd-tstartb+0x8010 - # (gd+0x8010) - tstartb [+ (tstartb+0x24)] - # relocation: gd + 0x8034 - # final value: gd - tstartb + 0x8010 - - la $4,ldb-tstartb-0x8010 - # (.text2+0x10-0x8010) - tstartb [+ (tstartb+0x2c)] - # relocation: .text2 - 0x7fd4 - # final value: .text2 - tstartb - 0x8000 - - la $4,ldb-tstartb-0x8000 - # (.text2+0x10-0x8000) - tstartb [+ (tstartb+0x34)] - # relocation: .text2 - 0x7fbc - # final value: .text2 - tstartb - 0x7ff0 - - la $4,ldb-tstartb - # (.text2+0x10) - tstartb [+ (tstartb+0x3c)] - # relocation: .text2 + 0x4c - # final value: .text2 - tstartb + 0x10 - - la $4,ldb-tstartb+0x7ff0 - # (.text2+0x10+0x7ff0) - tstartb [+ (tstartb+0x44)] - # relocation: .text2 + 0x8044 - # final value: .text2 - tstartb + 0x8000 - - la $4,ldb-tstartb+0x8010 - # (.text2+0x10+0x8010) - tstartb [+ (tstartb+0x4c)] - # relocation: .text2 + 0x806c - # final value: .text2 - tstartb + 0x8020 - - .end tstartb - .space 16 - .section .text2 -ldb: .word 5 diff --git a/ld/testsuite/ld-powerpc/tlsexe.r b/ld/testsuite/ld-powerpc/tlsexe.r index 06ad8a3..e4a61d2 100644 --- a/ld/testsuite/ld-powerpc/tlsexe.r +++ b/ld/testsuite/ld-powerpc/tlsexe.r @@ -69,7 +69,7 @@ Symbol table '\.dynsym' contains 10 entries: +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND +1: 0+100104c0 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC +2: 0+ +0 TLS +GLOBAL DEFAULT +UND gd - +3: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr + +3: 0+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_addr +4: 0+ +0 FUNC +GLOBAL DEFAULT +UND \.__tls_get_addr +5: 0+ +0 TLS +GLOBAL DEFAULT +UND ld +6: 0+50 +0 TLS +GLOBAL DEFAULT +11 ld2 @@ -109,7 +109,7 @@ Symbol table '\.symtab' contains 43 entries: +27: 0+100104c0 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC +28: 0+ +0 TLS +GLOBAL DEFAULT +UND gd +29: 0+60 +0 TLS +GLOBAL DEFAULT +11 le0 - +30: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr + +30: 0+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_addr +31: 0+ +0 FUNC +GLOBAL DEFAULT +UND \.__tls_get_addr +32: 0+40 +0 TLS +GLOBAL DEFAULT +11 ld0 +33: 0+68 +0 TLS +GLOBAL DEFAULT +11 le1 diff --git a/ld/testsuite/ld-powerpc/tlsexe32.d b/ld/testsuite/ld-powerpc/tlsexe32.d index 4aea8f0..c2cf43f 100644 --- a/ld/testsuite/ld-powerpc/tlsexe32.d +++ b/ld/testsuite/ld-powerpc/tlsexe32.d @@ -43,7 +43,3 @@ Disassembly of section \.got: 18103b8: 4e 80 00 21 blrl 18103bc: 01 81 03 18 \.long 0x1810318 \.\.\. -Disassembly of section \.plt: - -018103d4 <\.plt>: - \.\.\. diff --git a/ld/testsuite/ld-powerpc/tlsexetoc.r b/ld/testsuite/ld-powerpc/tlsexetoc.r index e3c4e8e..4daae33 100644 --- a/ld/testsuite/ld-powerpc/tlsexetoc.r +++ b/ld/testsuite/ld-powerpc/tlsexetoc.r @@ -68,7 +68,7 @@ Symbol table '\.dynsym' contains 9 entries: +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND +1: 0+10010448 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC +2: 0+ +0 TLS +GLOBAL DEFAULT +UND gd - +3: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr + +3: 0+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_addr +4: 0+ +0 FUNC +GLOBAL DEFAULT +UND \.__tls_get_addr +5: 0+ +0 TLS +GLOBAL DEFAULT +UND ld +6: 0+100105f0 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start @@ -108,7 +108,7 @@ Symbol table '\.symtab' contains 44 entries: +28: 0+10010448 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC +29: 0+ +0 TLS +GLOBAL DEFAULT +UND gd +30: 0+60 +0 TLS +GLOBAL DEFAULT +11 le0 - +31: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr + +31: 0+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_addr +32: 0+ +0 FUNC +GLOBAL DEFAULT +UND \.__tls_get_addr +33: 0+40 +0 TLS +GLOBAL DEFAULT +11 ld0 +34: 0+68 +0 TLS +GLOBAL DEFAULT +11 le1 diff --git a/ld/testsuite/ld-powerpc/tlsso32.d b/ld/testsuite/ld-powerpc/tlsso32.d index 3cf6a76..5e321a4 100644 --- a/ld/testsuite/ld-powerpc/tlsso32.d +++ b/ld/testsuite/ld-powerpc/tlsso32.d @@ -43,7 +43,3 @@ Disassembly of section \.got: 10664: 4e 80 00 21 blrl 10668: 00 01 05 c4 \.long 0x105c4 \.\.\. -Disassembly of section \.plt: - -00010698 <\.plt>: - \.\.\. diff --git a/ld/testsuite/ld-scripts/align.exp b/ld/testsuite/ld-scripts/align.exp index 3959e6d..f7664ca 100644 --- a/ld/testsuite/ld-scripts/align.exp +++ b/ld/testsuite/ld-scripts/align.exp @@ -17,6 +17,11 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +if [istarget "rs6000-*-aix*"] { + # Target maps .text and .data to other sections. + return +} + set testname "ALIGN" if ![ld_assemble $as $srcdir/$subdir/align.s tmpdir/align.o] { diff --git a/ld/testsuite/ld-scripts/assert.s b/ld/testsuite/ld-scripts/assert.s index 0517ffe..8b13789 100644 --- a/ld/testsuite/ld-scripts/assert.s +++ b/ld/testsuite/ld-scripts/assert.s @@ -1 +1 @@ -#nothing here + diff --git a/ld/testsuite/ld-scripts/data.d b/ld/testsuite/ld-scripts/data.d index 6284686..10b3d08 100644 --- a/ld/testsuite/ld-scripts/data.d +++ b/ld/testsuite/ld-scripts/data.d @@ -5,5 +5,5 @@ .*: file format .* Contents of section .text: - 1000 (0410)?0000(1004)? (0810)?0000(1008)? +........ * + [0-9a-f]* (04)?000000(04)? (0020)?0000(2000)? .* #pass diff --git a/ld/testsuite/ld-scripts/data.s b/ld/testsuite/ld-scripts/data.s index 0517ffe..8b13789 100644 --- a/ld/testsuite/ld-scripts/data.s +++ b/ld/testsuite/ld-scripts/data.s @@ -1 +1 @@ -#nothing here + diff --git a/ld/testsuite/ld-scripts/data.t b/ld/testsuite/ld-scripts/data.t index 359a02f..f56d10f 100644 --- a/ld/testsuite/ld-scripts/data.t +++ b/ld/testsuite/ld-scripts/data.t @@ -1,10 +1,11 @@ SECTIONS { - .text 0x1000 : + . = 0x1000 + SIZEOF_HEADERS; + .text ALIGN (0x20) : { - LONG (label) + LONG (label - .) label = .; LONG (ADDR (.other)) } - .other : {} + .other 0x2000 : {} } diff --git a/ld/testsuite/ld-scripts/defined2.d b/ld/testsuite/ld-scripts/defined2.d index 6bb0682..6e6e068 100644 --- a/ld/testsuite/ld-scripts/defined2.d +++ b/ld/testsuite/ld-scripts/defined2.d @@ -10,8 +10,11 @@ #... 0+1 [AT] defined1 +#... 0+11 A defined2 +#... 0+100 A defined3 +#... 0+1ff A defined4 #... 0+3 T sym1 diff --git a/ld/testsuite/ld-scripts/defined3.d b/ld/testsuite/ld-scripts/defined3.d index 1a7946d..0b3831c 100644 --- a/ld/testsuite/ld-scripts/defined3.d +++ b/ld/testsuite/ld-scripts/defined3.d @@ -11,15 +11,24 @@ #... 0+1 [AT] defined +#... 0+200 A defined1 +#... 0+201 A defined2 +#... 0+100 A defined3 +#... 0+ [AT] defined4 +#... 0+2a A defined5 +#... 0+ [AT] defined6 +#... 0+1 [AT] defined7 +#... 0+1 [AT] defined8 #... 0+2a A sym1 +#... [0-9a-f]+ T sym2 #pass diff --git a/ld/testsuite/ld-scripts/provide-1.d b/ld/testsuite/ld-scripts/provide-1.d index bec3982..ac8719a 100644 --- a/ld/testsuite/ld-scripts/provide-1.d +++ b/ld/testsuite/ld-scripts/provide-1.d @@ -5,4 +5,5 @@ .*: file format .* Contents of section .data: - 0000 (08)?000000(08)? (0c)?000000(0c)? 00000000 ............ + [0-9a-f]* (1020)?0000(2010)? (2020)?0000(2020)? 00000000 .* +#pass diff --git a/ld/testsuite/ld-scripts/provide-1.s b/ld/testsuite/ld-scripts/provide-1.s index 6395f3a..1e33540 100644 --- a/ld/testsuite/ld-scripts/provide-1.s +++ b/ld/testsuite/ld-scripts/provide-1.s @@ -1,3 +1,4 @@ .data .globl foo foo: .long 0 + .p2align 4 diff --git a/ld/testsuite/ld-scripts/provide-1.t b/ld/testsuite/ld-scripts/provide-1.t index dd30956..6b96b33 100644 --- a/ld/testsuite/ld-scripts/provide-1.t +++ b/ld/testsuite/ld-scripts/provide-1.t @@ -1,9 +1,10 @@ SECTIONS { - .data : + .data 0x2000 : { LONG (foo) LONG (bar) + . = ALIGN (0x10); *(.data) } PROVIDE (foo = .); diff --git a/ld/testsuite/ld-scripts/provide-2.d b/ld/testsuite/ld-scripts/provide-2.d index 3b59e32..f8bd0cf 100644 --- a/ld/testsuite/ld-scripts/provide-2.d +++ b/ld/testsuite/ld-scripts/provide-2.d @@ -1,6 +1,7 @@ #source: provide-2.s #ld: -T provide-2.t #nm: -B +#... 0+3 A baz 0+0 D foo - +#pass diff --git a/ld/testsuite/ld-scripts/provide-2.s b/ld/testsuite/ld-scripts/provide-2.s index 6fa93e4..f9138db 100644 --- a/ld/testsuite/ld-scripts/provide-2.s +++ b/ld/testsuite/ld-scripts/provide-2.s @@ -4,3 +4,5 @@ foo: .long 0 .globl baz .long baz + + .p2align 4 diff --git a/ld/testsuite/ld-scripts/provide-3.d b/ld/testsuite/ld-scripts/provide-3.d index 1ee38e3..c8b12da 100644 --- a/ld/testsuite/ld-scripts/provide-3.d +++ b/ld/testsuite/ld-scripts/provide-3.d @@ -1,3 +1,3 @@ -#source: provide-2.s -#ld: -T provide-2.t +#source: provide-3.s +#ld: -T provide-3.t #error: symbol defined in linker script and object file diff --git a/ld/testsuite/ld-scripts/provide-3.s b/ld/testsuite/ld-scripts/provide-3.s index 6395f3a..1e33540 100644 --- a/ld/testsuite/ld-scripts/provide-3.s +++ b/ld/testsuite/ld-scripts/provide-3.s @@ -1,3 +1,4 @@ .data .globl foo foo: .long 0 + .p2align 4 diff --git a/ld/testsuite/ld-scripts/provide.exp b/ld/testsuite/ld-scripts/provide.exp index 0092674..4e34501 100644 --- a/ld/testsuite/ld-scripts/provide.exp +++ b/ld/testsuite/ld-scripts/provide.exp @@ -17,6 +17,11 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +if [istarget "rs6000-*-aix*"] { + # Target maps .text and .data to other sections. + return +} + set testname "provide" run_dump_test provide-1 diff --git a/ld/testsuite/ld-scripts/size-1.d b/ld/testsuite/ld-scripts/size-1.d index 667f531..641fbca 100644 --- a/ld/testsuite/ld-scripts/size-1.d +++ b/ld/testsuite/ld-scripts/size-1.d @@ -4,13 +4,11 @@ .*: file format .* +#... Contents of section \.text: - 0+00 (01)?000000(01)? (02)?000000(02)? ........ + [0-9a-f]* (01)?000000(01)? (02)?000000(02)? .* +#... Contents of section \.data: - 0+08 (03)?000000(03)? (04)?000000(04)? (05)?000000(05)? ............ -Contents of section \.tdata: - 0+24 (06)?000000 07000000 08000000 09000000 ................ - 0+34 (0a)?000000 .... -Contents of section \.map: - 0+38 (08)?000000(08)? (0c)?000000(0c)? (10)?000000(10)? (14)?000000(14)? ................ - 0+48 (18)?000000(18)? .... + [0-9a-f]* (03)?000000(03)? (04)?000000(04)? (05)?000000(05)? 00000000 .* + [0-9a-f]* (20)?000000(20)? (18)?000000(18)? .* +#pass diff --git a/ld/testsuite/ld-scripts/size-1.s b/ld/testsuite/ld-scripts/size-1.s index 53721fa..7f5a5fd 100644 --- a/ld/testsuite/ld-scripts/size-1.s +++ b/ld/testsuite/ld-scripts/size-1.s @@ -1,15 +1,7 @@ - .section .text,"ax",@progbits + .text .long 1,2 + .p2align 5 - .section .data,"aw",@progbits + .data .long 3,4,5 - - .section .bss,"aw",@nobits - .long 0,0,0,0 - - # thread local storage sections - .section .tdata,"awT",@progbits - .long 6,7,8,9,10 - - .section .tbss,"awT",@nobits - .long 0,0,0,0,0,0 + .p2align 4 diff --git a/ld/testsuite/ld-scripts/size-1.t b/ld/testsuite/ld-scripts/size-1.t index 8582840..bb48665 100644 --- a/ld/testsuite/ld-scripts/size-1.t +++ b/ld/testsuite/ld-scripts/size-1.t @@ -1,15 +1,10 @@ SECTIONS { - .text : { *(.text) } - .data : { *(.data) } - .bss : { *(.bss) } - .tdata : { *(.tdata) } - .tbss : { *(.tbss) } - .map : { + . = 0x1000 + SIZEOF_HEADERS; + .text ALIGN (0x20) : { *(.text) } + .data 0x2000 : { + *(.data) LONG (SIZEOF (.text)) LONG (SIZEOF (.data)) - LONG (SIZEOF (.bss)) - LONG (SIZEOF (.tdata)) - LONG (SIZEOF (.tbss)) } } diff --git a/ld/testsuite/ld-scripts/size-2.d b/ld/testsuite/ld-scripts/size-2.d index 3cbfb44..dfcc3e4 100644 --- a/ld/testsuite/ld-scripts/size-2.d +++ b/ld/testsuite/ld-scripts/size-2.d @@ -1,20 +1,17 @@ #source: size-2.s #ld: -T size-2.t -#readelf: -l +#readelf: -l --wide #... Program Headers: - Type Offset VirtAddr PhysAddr - FileSiz MemSiz Flags Align - PHDR 0x[0-9a-f]+ 0x0+0000 0x0+0000 - 0x[0-9a-f]+ 0x[0-9a-f]+ R . - LOAD 0x[0-9a-f]+ 0x0+0000 0x0+0000 - 0x0+0030 0x0+0030 R [0-9a-f]+ - TLS 0x[0-9a-f]+ 0x0+0008 0x0+0008 - 0x0+0014 0x0+002c R [0-9a-f]+ + +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg +Align + +PHDR +0x[0-9a-f]+ 0x0+0000 0x0+0000 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x[0-9a-f]+ +#... + +LOAD +0x[0-9a-f]+ 0x0+0100 0x0+0100 0x0+0030 0x0+0030 R E +0x[0-9a-f]+ + +TLS +0x[0-9a-f]+ 0x0+0108 0x0+0108 0x0+0014 0x0+002c R +0x[0-9a-f]+ Section to Segment mapping: - Segment Sections... - 00 \.text \.tdata \.tbss \.map - 01 \.text \.tdata \.map - 02 \.tdata \.tbss \.map + +Segment Sections\.\.\. + +00 .* + +01 +\.text \.tdata \.map + +02 +\.tdata \.tbss \.map diff --git a/ld/testsuite/ld-scripts/size-2.s b/ld/testsuite/ld-scripts/size-2.s index eba3224..6b10250 100644 --- a/ld/testsuite/ld-scripts/size-2.s +++ b/ld/testsuite/ld-scripts/size-2.s @@ -1,9 +1,8 @@ - .section .text,"ax",@progbits + .text .long 1,2 - # thread local storage sections - .section .tdata,"awT",@progbits + .section .tdata .long 6,7,8,9,10 - .section .tbss,"awT",@nobits + .section .tbss .long 0,0,0,0,0,0 diff --git a/ld/testsuite/ld-scripts/size-2.t b/ld/testsuite/ld-scripts/size-2.t index 3549321..e67b3fa 100644 --- a/ld/testsuite/ld-scripts/size-2.t +++ b/ld/testsuite/ld-scripts/size-2.t @@ -2,13 +2,13 @@ PHDRS { header PT_PHDR FILEHDR PHDRS ; - image PT_LOAD FLAGS (4); + image PT_LOAD FLAGS (5); tls PT_TLS FLAGS (4); } SECTIONS { - .text : { *(.text) } :image + .text 0x100 : { *(.text) } :image .tdata : { *(.tdata) } :image :tls .tbss : { *(.tbss) } :image : tls .map : { diff --git a/ld/testsuite/ld-scripts/size.exp b/ld/testsuite/ld-scripts/size.exp index 5fff2bd..42e4e47 100644 --- a/ld/testsuite/ld-scripts/size.exp +++ b/ld/testsuite/ld-scripts/size.exp @@ -16,8 +16,20 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # +if [istarget "rs6000-*-aix*"] { + # Target maps .text and .data to other sections. + return +} + run_dump_test size-1 -if { [istarget "*-*-elf*"] } { - run_dump_test size-2 +if ![is_elf_format] { + return } + +if [istarget "mips*-*-*"] { + # MIPS inserts a REGINFO PHDR + return +} + +run_dump_test size-2 diff --git a/ld/testsuite/ld-sh/tlsbin-1.d b/ld/testsuite/ld-sh/tlsbin-1.d index 9f6d84f..e3f4834 100644 --- a/ld/testsuite/ld-sh/tlsbin-1.d +++ b/ld/testsuite/ld-sh/tlsbin-1.d @@ -21,7 +21,7 @@ Disassembly of section \.text: 401010: 09 00 nop 401012: 09 00 nop 401014: 09 00 nop - 401016: 04 d0 mov\.l 401028 <fn2\+0x28>,r0 ! 0x1c + 401016: 04 d0 mov\.l 401028 <fn2\+0x28>,r0 ! 0x1c .* 401018: 12 04 stc gbr,r4 40101a: ce 00 mov\.l @\(r0,r12\),r0 40101c: 4c 30 add r4,r0 @@ -38,7 +38,7 @@ Disassembly of section \.text: 401032: 09 00 nop 401034: 09 00 nop 401036: 09 00 nop - 401038: 03 d0 mov\.l 401048 <fn2\+0x48>,r0 ! 0x14 + 401038: 03 d0 mov\.l 401048 <fn2\+0x48>,r0 ! 0x14 .* 40103a: 12 04 stc gbr,r4 40103c: ce 00 mov\.l @\(r0,r12\),r0 40103e: 4c 30 add r4,r0 @@ -54,7 +54,7 @@ Disassembly of section \.text: 401052: 09 00 nop 401054: 09 00 nop 401056: 09 00 nop - 401058: 03 d4 mov\.l 401068 <fn2\+0x68>,r4 ! 0x8 + 401058: 03 d4 mov\.l 401068 <fn2\+0x68>,r4 ! 0x8 .* 40105a: 12 00 stc gbr,r0 40105c: 4c 30 add r4,r0 40105e: 09 00 nop @@ -70,7 +70,7 @@ Disassembly of section \.text: 401072: 09 00 nop 401074: 09 00 nop 401076: 09 00 nop - 401078: 03 d4 mov\.l 401088 <fn2\+0x88>,r4 ! 0x10 + 401078: 03 d4 mov\.l 401088 <fn2\+0x88>,r4 ! 0x10 .* 40107a: 12 00 stc gbr,r0 40107c: 4c 30 add r4,r0 40107e: 09 00 nop @@ -86,7 +86,7 @@ Disassembly of section \.text: 401092: 09 00 nop 401094: 09 00 nop 401096: 09 00 nop - 401098: 03 d4 mov\.l 4010a8 <fn2\+0xa8>,r4 ! 0x18 + 401098: 03 d4 mov\.l 4010a8 <fn2\+0xa8>,r4 ! 0x18 .* 40109a: 12 00 stc gbr,r0 40109c: 4c 30 add r4,r0 40109e: 09 00 nop @@ -116,11 +116,11 @@ Disassembly of section \.text: 4010ce: [0-9a-f]+ [0-9a-f]+ .*[ ]*.* 4010d0: 09 00 nop 4010d2: 09 00 nop - 4010d4: 2c d1 mov\.l 401188 <fn2\+0x188>,r1 ! 0x10 + 4010d4: 2c d1 mov\.l 401188 <fn2\+0x188>,r1 ! 0x10 .* 4010d6: 0c 31 add r0,r1 4010d8: 09 00 nop 4010da: 09 00 nop - 4010dc: 2b d2 mov\.l 40118c <fn2\+0x18c>,r2 ! 0x14 + 4010dc: 2b d2 mov\.l 40118c <fn2\+0x18c>,r2 ! 0x14 .* 4010de: 0c 32 add r0,r2 4010e0: 09 00 nop 4010e2: 09 00 nop @@ -140,17 +140,17 @@ Disassembly of section \.text: 4010fe: [0-9a-f]+ [0-9a-f]+ .*[ ]*.* 401100: 09 00 nop 401102: 09 00 nop - 401104: 22 d1 mov\.l 401190 <fn2\+0x190>,r1 ! 0x18 + 401104: 22 d1 mov\.l 401190 <fn2\+0x190>,r1 ! 0x18 .* 401106: 0c 31 add r0,r1 401108: 09 00 nop 40110a: 09 00 nop - 40110c: 21 d2 mov\.l 401194 <fn2\+0x194>,r2 ! 0x1c + 40110c: 21 d2 mov\.l 401194 <fn2\+0x194>,r2 ! 0x1c .* 40110e: 0c 32 add r0,r2 401110: 09 00 nop 401112: 09 00 nop 401114: 09 00 nop 401116: 09 00 nop - 401118: 02 d0 mov\.l 401124 <fn2\+0x124>,r0 ! 0x14 + 401118: 02 d0 mov\.l 401124 <fn2\+0x124>,r0 ! 0x14 .* 40111a: 12 01 stc gbr,r1 40111c: ce 00 mov\.l @\(r0,r12\),r0 40111e: 03 a0 bra 401128 <fn2\+0x128> @@ -162,7 +162,7 @@ Disassembly of section \.text: 40112a: 09 00 nop 40112c: 09 00 nop 40112e: 09 00 nop - 401130: 02 d0 mov\.l 40113c <fn2\+0x13c>,r0 ! 0x18 + 401130: 02 d0 mov\.l 40113c <fn2\+0x13c>,r0 ! 0x18 .* 401132: 12 01 stc gbr,r1 401134: ce 00 mov\.l @\(r0,r12\),r0 401136: 03 a0 bra 401140 <fn2\+0x140> @@ -174,7 +174,7 @@ Disassembly of section \.text: 401142: 09 00 nop 401144: 09 00 nop 401146: 09 00 nop - 401148: 02 d0 mov\.l 401154 <fn2\+0x154>,r0 ! 0x8 + 401148: 02 d0 mov\.l 401154 <fn2\+0x154>,r0 ! 0x8 .* 40114a: 12 01 stc gbr,r1 40114c: 09 00 nop 40114e: 03 a0 bra 401158 <fn2\+0x158> @@ -186,7 +186,7 @@ Disassembly of section \.text: 40115a: 09 00 nop 40115c: 09 00 nop 40115e: 09 00 nop - 401160: 02 d0 mov\.l 40116c <fn2\+0x16c>,r0 ! 0x18 + 401160: 02 d0 mov\.l 40116c <fn2\+0x16c>,r0 ! 0x18 .* 401162: 12 01 stc gbr,r1 401164: 09 00 nop 401166: 03 a0 bra 401170 <fn2\+0x170> @@ -226,7 +226,7 @@ Disassembly of section \.text: 40200e: 09 00 nop 402010: 09 00 nop 402012: 09 00 nop - 402014: 02 d0 mov\.l 402020 <_start\+0x20>,r0 ! 0x10 + 402014: 02 d0 mov\.l 402020 <_start\+0x20>,r0 ! 0x10 .* 402016: 12 01 stc gbr,r1 402018: ce 00 mov\.l @\(r0,r12\),r0 40201a: 03 a0 bra 402024 <_start\+0x24> @@ -238,7 +238,7 @@ Disassembly of section \.text: 402026: 09 00 nop 402028: 09 00 nop 40202a: 09 00 nop - 40202c: 02 d0 mov\.l 402038 <_start\+0x38>,r0 ! 0x20 + 40202c: 02 d0 mov\.l 402038 <_start\+0x38>,r0 ! 0x20 .* 40202e: 12 01 stc gbr,r1 402030: 09 00 nop 402032: 03 a0 bra 40203c <_start\+0x3c> @@ -262,7 +262,7 @@ Disassembly of section \.text: 402056: 09 00 nop 402058: 09 00 nop 40205a: 09 00 nop - 40205c: 02 d0 mov\.l 402068 <_start\+0x68>,r0 ! 0x1c + 40205c: 02 d0 mov\.l 402068 <_start\+0x68>,r0 ! 0x1c .* 40205e: 12 01 stc gbr,r1 402060: 09 00 nop 402062: 03 a0 bra 40206c <_start\+0x6c> @@ -275,7 +275,7 @@ Disassembly of section \.text: 402070: 09 00 nop 402072: 09 00 nop 402074: 12 01 stc gbr,r1 - 402076: 0c d0 mov\.l 4020a8 <_start\+0xa8>,r0 ! 0x8 + 402076: 0c d0 mov\.l 4020a8 <_start\+0xa8>,r0 ! 0x8 .* 402078: 1c 30 add r1,r0 40207a: 09 00 nop 40207c: 09 00 nop @@ -289,7 +289,7 @@ Disassembly of section \.text: 40208c: 09 00 nop 40208e: 09 00 nop 402090: 12 01 stc gbr,r1 - 402092: 07 d0 mov\.l 4020b0 <_start\+0xb0>,r0 ! 0x18 + 402092: 07 d0 mov\.l 4020b0 <_start\+0xb0>,r0 ! 0x18 .* 402094: 1c 30 add r1,r0 402096: 09 00 nop 402098: 09 00 nop diff --git a/ld/testsuite/ld-sh/tlspic-1.d b/ld/testsuite/ld-sh/tlspic-1.d index bca0853..5310cd0 100644 --- a/ld/testsuite/ld-sh/tlspic-1.d +++ b/ld/testsuite/ld-sh/tlspic-1.d @@ -54,7 +54,7 @@ Disassembly of section \.text: [0-9a-f]+: 09 00 nop [0-9a-f]+: 09 00 nop [0-9a-f]+: 09 00 nop - [0-9a-f]+: 03 d4 mov\.l [0-9a-f]+ <fn1\+0x68>,r4 ! 0x10 + [0-9a-f]+: 03 d4 mov\.l [0-9a-f]+ <fn1\+0x68>,r4 ! 0x10 .* [0-9a-f]+: 04 c7 mova [0-9a-f]+ <fn1\+0x6c>,r0 [0-9a-f]+: 03 d1 mov\.l [0-9a-f]+ <fn1\+0x6c>,r1 ! 0x[0-9a-f]+ [0-9a-f]+: 0c 31 add r0,r1 @@ -70,7 +70,7 @@ Disassembly of section \.text: [0-9a-f]+: 09 00 nop [0-9a-f]+: 09 00 nop [0-9a-f]+: 09 00 nop - [0-9a-f]+: 03 d0 mov\.l [0-9a-f]+ <fn1\+0x88>,r0 ! 0x18 + [0-9a-f]+: 03 d0 mov\.l [0-9a-f]+ <fn1\+0x88>,r0 ! 0x18 .* [0-9a-f]+: 12 04 stc gbr,r4 [0-9a-f]+: ce 00 mov\.l @\(r0,r12\),r0 [0-9a-f]+: 4c 30 add r4,r0 @@ -150,7 +150,7 @@ Disassembly of section \.text: [0-9a-f]+: 09 00 nop [0-9a-f]+: 09 00 nop [0-9a-f]+: 09 00 nop - [0-9a-f]+: 03 d4 mov\.l [0-9a-f]+ <fn1\+0x128>,r4 ! 0x1c + [0-9a-f]+: 03 d4 mov\.l [0-9a-f]+ <fn1\+0x128>,r4 ! 0x1c .* [0-9a-f]+: 04 c7 mova [0-9a-f]+ <fn1\+0x12c>,r0 [0-9a-f]+: 03 d1 mov\.l [0-9a-f]+ <fn1\+0x12c>,r1 ! 0x[0-9a-f]+ [0-9a-f]+: 0c 31 add r0,r1 @@ -164,11 +164,11 @@ Disassembly of section \.text: [0-9a-f]+: [0-9a-f]+ [0-9a-f]+ .*[ ]*.* [0-9a-f]+: 09 00 nop [0-9a-f]+: 09 00 nop - [0-9a-f]+: 38 d1 mov\.l [0-9a-f]+ <fn1\+0x218>,r1 ! 0x8 + [0-9a-f]+: 38 d1 mov\.l [0-9a-f]+ <fn1\+0x218>,r1 ! 0x8 .* [0-9a-f]+: 0c 31 add r0,r1 [0-9a-f]+: 09 00 nop [0-9a-f]+: 09 00 nop - [0-9a-f]+: 37 d2 mov\.l [0-9a-f]+ <fn1\+0x21c>,r2 ! 0xc + [0-9a-f]+: 37 d2 mov\.l [0-9a-f]+ <fn1\+0x21c>,r2 ! 0xc .* [0-9a-f]+: 0c 32 add r0,r2 [0-9a-f]+: 09 00 nop [0-9a-f]+: 09 00 nop @@ -188,17 +188,17 @@ Disassembly of section \.text: [0-9a-f]+: [0-9a-f]+ [0-9a-f]+ .*[ ]*.* [0-9a-f]+: 09 00 nop [0-9a-f]+: 09 00 nop - [0-9a-f]+: 2e d1 mov\.l [0-9a-f]+ <fn1\+0x220>,r1 ! 0x10 + [0-9a-f]+: 2e d1 mov\.l [0-9a-f]+ <fn1\+0x220>,r1 ! 0x10 .* [0-9a-f]+: 0c 31 add r0,r1 [0-9a-f]+: 09 00 nop [0-9a-f]+: 09 00 nop - [0-9a-f]+: 2d d2 mov\.l [0-9a-f]+ <fn1\+0x224>,r2 ! 0x14 + [0-9a-f]+: 2d d2 mov\.l [0-9a-f]+ <fn1\+0x224>,r2 ! 0x14 .* [0-9a-f]+: 0c 32 add r0,r2 [0-9a-f]+: 09 00 nop [0-9a-f]+: 09 00 nop [0-9a-f]+: 09 00 nop [0-9a-f]+: 09 00 nop - [0-9a-f]+: 03 d4 mov\.l [0-9a-f]+ <fn1\+0x188>,r4 ! 0x1c + [0-9a-f]+: 03 d4 mov\.l [0-9a-f]+ <fn1\+0x188>,r4 ! 0x1c .* [0-9a-f]+: 04 c7 mova [0-9a-f]+ <fn1\+0x18c>,r0 [0-9a-f]+: 03 d1 mov\.l [0-9a-f]+ <fn1\+0x18c>,r1 ! 0x[0-9a-f]+ [0-9a-f]+: 0c 31 add r0,r1 @@ -212,11 +212,11 @@ Disassembly of section \.text: [0-9a-f]+: [0-9a-f]+ [0-9a-f]+ .*[ ]*.* [0-9a-f]+: 09 00 nop [0-9a-f]+: 09 00 nop - [0-9a-f]+: 24 d1 mov\.l [0-9a-f]+ <fn1\+0x228>,r1 ! 0x18 + [0-9a-f]+: 24 d1 mov\.l [0-9a-f]+ <fn1\+0x228>,r1 ! 0x18 .* [0-9a-f]+: 0c 31 add r0,r1 [0-9a-f]+: 09 00 nop [0-9a-f]+: 09 00 nop - [0-9a-f]+: 23 d2 mov\.l [0-9a-f]+ <fn1\+0x22c>,r2 ! 0x1c + [0-9a-f]+: 23 d2 mov\.l [0-9a-f]+ <fn1\+0x22c>,r2 ! 0x1c .* [0-9a-f]+: 0c 32 add r0,r2 [0-9a-f]+: 09 00 nop [0-9a-f]+: 09 00 nop @@ -234,7 +234,7 @@ Disassembly of section \.text: [0-9a-f]+: 09 00 nop [0-9a-f]+: 09 00 nop [0-9a-f]+: 09 00 nop - [0-9a-f]+: 02 d0 mov\.l [0-9a-f]+ <fn1\+0x1cc>,r0 ! 0x18 + [0-9a-f]+: 02 d0 mov\.l [0-9a-f]+ <fn1\+0x1cc>,r0 ! 0x18 .* [0-9a-f]+: 12 01 stc gbr,r1 [0-9a-f]+: ce 00 mov\.l @\(r0,r12\),r0 [0-9a-f]+: 03 a0 bra [0-9a-f]+ <fn1\+0x1d0> diff --git a/ld/testsuite/ld-shared/shared.exp b/ld/testsuite/ld-shared/shared.exp index 339d3a3..a88cd1c 100644 --- a/ld/testsuite/ld-shared/shared.exp +++ b/ld/testsuite/ld-shared/shared.exp @@ -203,6 +203,9 @@ if ![ld_compile "$CC $CFLAGS $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o] if { ![istarget hppa*64*-*-linux*] } { setup_xfail "hppa*-*-linux*" } + if { [istarget sparc*-*-linux*] && [is_elf64 $tmpdir/mainnp.o] } { + setup_xfail "sparc*-*-linux*" + } setup_xfail "x86_64-*-linux*" setup_xfail "s390x-*-linux*" shared_test shnp "shared (non PIC)" mainnp.o sh1np.o sh2np.o shared @@ -220,6 +223,9 @@ if ![ld_compile "$CC $CFLAGS $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o] if { ![istarget hppa*64*-*-linux*] } { setup_xfail "hppa*-*-linux*" } + if { [istarget sparc*-*-linux*] && [is_elf64 $tmpdir/mainnp.o] } { + setup_xfail "sparc*-*-linux*" + } setup_xfail "x86_64-*-linux*" shared_test shnp "shared (non PIC, load offset)" \ mainnp.o sh1np.o sh2np.o shared \ @@ -265,6 +271,9 @@ if ![ld_compile "$CC $CFLAGS $SHCFLAG $picflag" $srcdir/$subdir/main.c $tmpdir/m if { ![istarget hppa*64*-*-linux*] } { setup_xfail "hppa*-*-linux*" } + if { [istarget sparc*-*-linux*] && [is_elf64 $tmpdir/mainp.o] } { + setup_xfail "sparc*-*-linux*" + } setup_xfail "x86_64-*-linux*" setup_xfail "s390x-*-linux*" shared_test shmpnp "shared (PIC main, non PIC so)" mainp.o sh1np.o sh2np.o shared |