summaryrefslogtreecommitdiff
path: root/gnu/usr.bin/binutils/ld
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/usr.bin/binutils/ld')
-rw-r--r--gnu/usr.bin/binutils/ld/ChangeLog-00013376
-rw-r--r--gnu/usr.bin/binutils/ld/ChangeLog-02033580
-rw-r--r--gnu/usr.bin/binutils/ld/ChangeLog-91972
-rw-r--r--gnu/usr.bin/binutils/ld/deffile.h27
-rw-r--r--gnu/usr.bin/binutils/ld/deffilep.y245
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/armelf.sh5
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/armelf_linux.sh6
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/armelf_oabi.sh3
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/armelfb.sh2
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/armelfb_linux.sh2
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/armnto.sh3
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/coff_i860.sh5
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/elf32_i860.sh1
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/elf32am33lin.sh11
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/elf32bmipn32-defs.sh31
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/elf32bmipn32.sh3
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/elf32bsmip.sh1
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/elf32btsmipn32.sh3
-rwxr-xr-xgnu/usr.bin/binutils/ld/emulparams/elf32frv.sh1
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/elf32frvfd.sh15
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/elf32ip2k.sh1
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/elf32mcore.sh2
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/elf32mipswindiss.sh27
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/elf32xtensa.sh26
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/elf64_ia64.sh14
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/elf64_ia64_fbsd.sh2
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/elf64_s390.sh2
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/elf64bmip.sh9
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/elf64btsmip.sh3
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/elf64ppc.sh18
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/elf_s390.sh2
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/h8300sx.sh5
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/h8300sxelf.sh3
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/h8300sxn.sh5
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/h8300sxnelf.sh2
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/hppanbsd.sh1
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/m32relf_linux.sh13
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/m32rlelf.sh2
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/m32rlelf_linux.sh2
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/mn10300.sh2
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/msp430all.sh804
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/shelf.sh5
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/shelf32.sh23
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/shelf32_nbsd.sh4
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/shelf64.sh11
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/shlelf32_linux.sh1
-rw-r--r--gnu/usr.bin/binutils/ld/emulparams/shlelf_linux.sh2
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/alphaelf.em9
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/armcoff.em80
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/armelf.em35
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/armelf_oabi.em34
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/beos.em116
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/ia64elf.em62
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/irix.em41
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/m68hc1xelf.em90
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/m68kcoff.em46
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/m68kelf.em23
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/mipself.em26
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/mmix-elfnmmo.em19
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/mmixelf.em6
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/mmo.em31
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/needrelax.em8
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/netbsd.em6
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/ppc32elf.em4
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/ppc64elf.em177
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/sh64elf.em30
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/ticoff.em59
-rw-r--r--gnu/usr.bin/binutils/ld/emultempl/xtensaelf.em603
-rw-r--r--gnu/usr.bin/binutils/ld/ldver.texi2
-rw-r--r--gnu/usr.bin/binutils/ld/pe-dll.c529
-rw-r--r--gnu/usr.bin/binutils/ld/pe-dll.h27
-rw-r--r--gnu/usr.bin/binutils/ld/po/Make-in24
-rw-r--r--gnu/usr.bin/binutils/ld/po/POTFILES.in2
-rw-r--r--gnu/usr.bin/binutils/ld/po/da.gmobin0 -> 40607 bytes
-rw-r--r--gnu/usr.bin/binutils/ld/po/da.po1702
-rw-r--r--gnu/usr.bin/binutils/ld/po/es.gmobin0 -> 44776 bytes
-rw-r--r--gnu/usr.bin/binutils/ld/po/es.po1775
-rw-r--r--gnu/usr.bin/binutils/ld/po/fr.gmobin0 -> 43539 bytes
-rw-r--r--gnu/usr.bin/binutils/ld/po/fr.po1698
-rw-r--r--gnu/usr.bin/binutils/ld/po/ld.pot896
-rw-r--r--gnu/usr.bin/binutils/ld/po/sv.gmobin0 -> 43131 bytes
-rw-r--r--gnu/usr.bin/binutils/ld/po/sv.po1815
-rw-r--r--gnu/usr.bin/binutils/ld/po/tr.gmobin0 -> 44359 bytes
-rw-r--r--gnu/usr.bin/binutils/ld/po/tr.po1768
-rw-r--r--gnu/usr.bin/binutils/ld/scripttempl/elf32msp430.sc25
-rw-r--r--gnu/usr.bin/binutils/ld/scripttempl/elfm68hc11.sc24
-rw-r--r--gnu/usr.bin/binutils/ld/scripttempl/elfm68hc12.sc25
-rw-r--r--gnu/usr.bin/binutils/ld/scripttempl/h8300sx.sc97
-rw-r--r--gnu/usr.bin/binutils/ld/scripttempl/h8300sxn.sc87
-rw-r--r--gnu/usr.bin/binutils/ld/scripttempl/i860coff.sc42
-rw-r--r--gnu/usr.bin/binutils/ld/scripttempl/mmo.sc2
91 files changed, 18540 insertions, 1818 deletions
diff --git a/gnu/usr.bin/binutils/ld/ChangeLog-0001 b/gnu/usr.bin/binutils/ld/ChangeLog-0001
new file mode 100644
index 00000000000..9183afe56f1
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/ChangeLog-0001
@@ -0,0 +1,3376 @@
+2001-12-21 Tom Rix <trix@redhat.com>
+
+ (gld*_create_output_section_statements): New function.
+ For -binitfini support.
+ * emultempl/aix.em (gld*_before_parse): Fix comment.
+ * emultempl/aix.em (gld*_parse_args): Fix comment.
+
+2001-12-20 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * configure.tgt (mips*-dec-netbsd*): Delete alias for
+ mips*el-*-netbsd*.
+ (sparc64-*-netbsd*): Add elf32_sparc to targ_extra_emuls.
+
+ * configure.tgt (arm-*-netbsdelf*): Add target.
+ (arm-*-netbsd*): Add armelf and armelf_nbsd to targ_extra_emuls.
+ * emulparams/armelf_nbsd.sh: Added.
+ * Makefile.am: Add rules for earmelf_nbsd.
+ * Makefile.in: Regenerate.
+
+2001-12-19 Andreas Jaeger <aj@suse.de>,
+ Susanne Oberhauser <froh@suse.de>
+
+ * configure.host: Add rules for x86_64-*linux-gnu. Change
+ s390x-linux entry to use gcc to report configuration, replace gcc
+ with $CC in s390-linux
+
+2001-12-19 Andreas Jaeger <aj@suse.de>
+
+ * ld.texinfo (VERSION): Fix markup.
+
+2001-12-18 matthew green <mrg@eterna.com.au>
+
+ * Makefile.am (ALL_EMULATIONS): Add m68kelfnbsd.o.
+ (m68kelfnbsd.c): New rule.
+ * Makefile.in: Regenerate.
+ * configure.tgt (m68*-hp-netbsd*): Renamed to ..
+ (m68*-*-netbsd*4k*): .. this.
+ (m68*-*-netbsdelf*): New target.
+ (m68*-*-netbsd*): Also include ELF support.
+ (m68*-*-netbsdaout*): New alias for m68*-*-netbsd*.
+ * emulparams/m68kelfnbsd.sh: New emulation.
+
+2001-12-18 Jakub Jelinek <jakub@redhat.com>
+
+ * ldgram.y (vers_node): Support anonymous version tags.
+ * ldlang.c (lang_register_vers_node): Ensure anonymous version
+ tag is not defined together with non-anonymous versions.
+ * ld.texinfo: Document it.
+
+2001-12-18 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * po/tr.po: New file: Turkish translation.
+ * configure.in (ALL_LINGUAS): Add tr.
+ * configure: Regenerate.
+
+2001-12-17 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * Makefile.am: Add rules for eelf64alpha_nbsd.
+ * Makefile.in: Regenerate.
+ * configure.tgt (alpha*-*-netbsd*): Set
+ targ_emul to elf64alpha_nbsd.
+ * emulparams/elf64alpha_nbsd.sh: Added.
+
+2001-12-17 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Adjust
+ section_tail when fiddling with section list.
+ (gld${EMULATION_NAME}_list_options): Ensure sentences aren't
+ broken into separate strings to make translation easier.
+ * emultempl/mmo.em (mmo_place_orphan): Adjust section_tail when
+ fiddling with section list.
+ * emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
+
+2001-12-16 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * scripttempl/mmo.sc: Add .debug_ranges to listed sections.
+
+2001-12-15 Alan Modra <amodra@bigpond.net.au>
+
+ * ldmain.c (main): Initialise link_info.eh_frame_hdr.
+
+2001-12-13 Jakub Jelinek <jakub@redhat.com>
+
+ * emultempl/elf32.em (finish): Supply output_bfd
+ to bfd_elf*_discard_info.
+ (OPTION_EH_FRAME_HDR): Define.
+ (longopts): Add --eh-frame-hdr.
+ (parse_args): Handle it.
+ (list_options): Add --eh-frame-hdr to help.
+ * emultempl/hppaelf.em (finish): Supply output_bfd
+ to bfd_elf*_discard_info.
+ * scripttempl/elf.sc (.eh_frame_hdr): Add.
+
+2001-12-13 Alan Modra <amodra@bigpond.net.au>
+
+ * lexsup.c (parse_args): Don't pass shortopts to second call to
+ getopt functions. Restore optind rather than decrementing before
+ second call. Remove errind as it now duplicates last_optind.
+
+2001-12-11 Christopher Faylor <cgf@redhat.com>
+
+ * emultempl/pe.em (gld_${EMULATION_NAME}_list_options): Fix typo.
+
+2001-12-07 Geoffrey Keating <geoffk@redhat.com>
+ Richard Henderson <rth@redhat.com>
+
+ * Makefile.am: Add support for xstormy16.
+ * configure.tgt: Add support for xstormy16.
+ * Makefile.in: Regenerate.
+ * emulparams/elf32xstormy16.sh: New file.
+ * scripttempl/xstormy16.sc: New file.
+
+2001-10-01 Christopher Faylor <cgf@cygnus.com>
+
+ * Makefile.in (LIB_PATH): Make configurable.
+ (GENSCRIPTS): Set LIB_PATH in environment.
+ * configure.in: Substitute LIB_PATH.
+ * configure: Regenerate.
+ * configure.tgt (*cygwin): Set LIB_PATH for cross build.
+ * configure.host (*cygwin): Add /usr/lib/w32api to NATIVE_LIB_DIRS.
+
+2001-12-07 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * lexsup.c (ld_options): Insert 'PROGRAM' into the text string
+ describing the -N option so that it is easier to translate into
+ foreign languages.
+
+2001-12-05 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * emultempl/pe.em (..._list_options): Replace multiple fprintf
+ statements describing a single option with a single, newline
+ escaped fprintf. This allows better translation into other
+ languages.
+
+ * ldmain.c (add_archive_element): Combine multiple strings
+ into a single string to permit better translation into other
+ languages.
+
+2001-12-05 Tom Rix <trix@redhat.com>
+
+ * Makefile.am: Remove eaixppc64.
+ * Makefile.in: Regenerate.
+
+2001-12-04 Tom Rix <trix@redhat.com>
+
+ * emultempl/aix.em (choose_target): Change default target to
+ OUTPUT_FORMAT for ppcmacos. Add braces to remove compiler
+ warning.
+ (gld*_read_file): Fix typo.
+ (change_symbol_mode): Add prototype.
+ (is_syscall): Same.
+
+ * emulparams/aixppc.sh (SYSCALL_MASK, SYMBOL_MODE_MASK): Delete.
+ * emulparams/aixrs6.sh : Same.
+ * emulparams/ppcmacos.sh : Same.
+ * emulparams/aixppc64.sh : Delete file.
+ * emultempl/aix.em : Formatting changes.
+
+2001-12-04 Hans-Peter Nilsson <hp@axis.com>
+
+ * emulparams/criself.sh (NO_SMALL_DATA): Set, to yes.
+ (OTHER_BSS_END_SYMBOLS): Don't refer to .sbss when setting
+ __Sbss.
+ (OTHER_END_SYMBOLS): Fix formatting.
+ * emulparams/crislinux.sh (NO_SMALL_DATA): Set, to yes.
+ (OTHER_END_SYMBOLS): Fix formatting.
+
+2001-12-04 Alan Modra <amodra@bigpond.net.au>
+
+ * ldexp.c (exp_print_token): Correct "table" entry for RSHIFT.
+
+2001-12-02 Tom Rix <trix@redhat.com>
+
+ * configure.tgt : Remove eaixppc64 emulations.
+ * Makefile.in : Remove eaixppc64.c
+ * ldemul.c (ldemul_choose_target): New parameters argc, argv.
+ (ldemul_default_target): Same.
+ * emultempl/gld960.em (gld960_choose_target): Same.
+ * emultempl/gld960c.em (gld960_choose_target): Same.
+ * scripttempl/aix.sc: Remove OUTPUT_FORMAT.
+ * emultempl/aix.em (is_syscall): syscall_mask now a variable.
+ * emultempl/aix.em (gld*_read_file): symbol_mode_mask now a variable.
+ * emultempl/aix.em (gld*_parse_args): Handle -b32 -b64 emulation.
+ * emultempl/aix.em (choose_target): New function. Handle emulation of
+ -b32 and -b64.
+
+2001-11-27 H.J. Lu <hjl@gnu.org>
+
+ * emulparams/elf_i386.sh (NO_SMALL_DATA): Set to yes.
+ * emulparams/elf_i386_be.sh (NO_SMALL_DATA): Likewise.
+ * emulparams/elf_i386_chaos.sh (NO_SMALL_DATA): Likewise.
+ * emulparams/elf_i386_ldso.sh (NO_SMALL_DATA): Likewise.
+ * emulparams/elf_x86_64.sh (NO_SMALL_DATA): Likewise.
+ * emulparams/m68kelf.sh (NO_SMALL_DATA): Likewise.
+ * emulparams/elf32_sparc.sh (NO_SMALL_DATA): Likewise.
+ * emulparams/elf64_sparc.sh (NO_SMALL_DATA): Likewise.
+
+ * scripttempl/elf.sc (SBSS): New. Define if ${NO_SMALL_DATA}
+ is not empty.
+ (SDATA): Likewise.
+ (REL_SDATA): Likewise.
+ (REL_SBSS): Likewise.
+ (REL_SDATA2): Likewise.
+ (REL_SBSS2): Likewise.
+ (SBSS2): Define if ${NO_SMALL_DATA} is not empty.
+ (SDATA2): Likewise.
+
+2001-11-25 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * scripttempl/elfm68hc11.sc (CTOR, DTOR): Put constructor and
+ destructor in rom.
+ * scripttempl/elfm68hc12.sc (CTOR, DTOR): Likewise.
+
+2001-11-22 H.J. Lu <hjl@gnu.org>
+
+ * Makefile.in: Regenerated with automake based on automake
+ 1.4-8 in RedHat 7.1.
+
+2001-11-22 Alan Modra <amodra@bigpond.net.au>
+
+ * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Define.
+ (config.status): Delete rule.
+ Add extra dependencies to cover sourced emulparams files.
+ * Makefile.in: Regenerate.
+
+ * scripttempl/elf.sc: Order <section>, <section>.* and
+ corresponding linkonce sections as seen in input files.
+ Formatting fixes. Zero vma of all sections if not relocating.
+ (STACK): Define and insert if STACK_ADDR defined.
+ (OTHER_RELOCATING_SECTIONS): Delete.
+ (OTHER_END_SYMBOLS): Define.
+ (OTHER_READONLY_SECTIONS): Always insert, not just when relocating.
+ (OTHER_READWRITE_SECTIONS): Likewise.
+ (OTHER_GOT_SECTIONS): Likewise.
+ (OTHER_SDATA_SECTIONS): Likewise.
+ (OTHER_BSS_SECTIONS): Likewise.
+ * scripttempl/elfi370.sc (OTHER_READONLY_SECTIONS): Likewise.
+ (OTHER_READWRITE_SECTIONS): Likewise.
+ * scripttempl/nw.sc (OTHER_READONLY_SECTIONS): Likewise.
+ (OTHER_READWRITE_SECTIONS): Likewise.
+
+ * emulparams/armelf.sh (OTHER_RELOCATING_SECTIONS): Delete.
+ (STACK_ADDR): Define.
+ * emulparams/armelf_oabi.sh: As for armelf.sh.
+ * emulparams/elf32mcore.sh: As for armelf.sh.
+ * emulparams/h8300elf.sh: As for armelf.sh.
+ * emulparams/mn10200.sh: As for armelf.sh.
+ * emulparams/shelf.sh: As for armelf.sh.
+
+ * emulparams/elf32fr30.sh (OTHER_RELOCATING_SECTIONS): Delete.
+ (OTHER_END_SYMBOLS): Define.
+ * emulparams/m32relf.sh: As for elf32fr30.sh.
+ * emulparams/h8300helf.sh: As for elf32fr30.sh.
+ * emulparams/h8300self.sh: As for elf32fr30.sh.
+
+ * emulparams/criself.sh (OTHER_READONLY_SECTIONS): Protect symbol
+ defines with RELOCATING test.
+ (OTHER_SDATA_SECTIONS): Likewise.
+ (OTHER_RELOCATING_SECTIONS): Delete, replacing with..
+ (OTHER_END_SYMBOLS): ..this.
+ * emulparams/crislinux.sh: As for criself.sh.
+
+ * emulparams/elf32bmipn32.sh (OTHER_SDATA_SECTIONS): Zero vma
+ if not relocating.
+ (OTHER_RELOCATING_SECTIONS): Delete, replacing with..
+ (OTHER_SECTIONS): ..this. Zero vma if not relocating. Order
+ normal and linkonce sections as seen in input files.
+ * emulparams/elf32bmip.sh (DATA_ADDR): Don't define if EMBEDDED.
+ (TEXT_DYNAMIC): Likewise.
+ (INITIAL_READONLY_SECTIONS): Zero vma if not relocating.
+ (OTHER_SDATA_SECTIONS): Likewise.
+ * emulparams/elf32ppc.sh (OTHER_READWRITE_SECTIONS): Likewise.
+ * emulparams/shlelf_linux.sh (OTHER_READWRITE_SECTIONS): Likewise.
+ * emulparams/elf64alpha.sh (OTHER_READONLY_SECTIONS): Likewise.
+ * emulparams/hppalinux.sh (OTHER_READONLY_SECTIONS): Likewise.
+ * emulparams/elf64_aix.sh (OTHER_GOT_SECTIONS): Likewise.
+ (OTHER_PLT_RELOC_SECTIONS): Likewise.
+ (OTHER_READONLY_SECTIONS): Likewise. Order normal and linkonce
+ sections as seen in input files.
+ * emulparams/elf64_ia64.sh: As for emulparams/elf64_aix.sh.
+ * emulparams/hppa64linux.sh (OTHER_READONLY_SECTIONS): Zero vma
+ if not relocating.
+ (OTHER_READWRITE_SECTIONS, OTHER_BSS_SECTIONS): Likewise.
+ (OTHER_BSS_END_SYMBOLS): Merge from elf64hppa.sh.
+ * emulparams/elf64mmix.sh (OTHER_RELOCATING_SECTIONS): Delete.
+ (OTHER_SECTIONS): Instead, use this..
+ (OTHER_END_SYMBOLS): ..and this.
+
+ * emulparams/elf32b4300.sh: Source elf32bmip.sh, remove duplicates.
+ * emulparams/elf32bsmip.sh: Likewise.
+ * emulparams/elf32btsmip.sh: Likewise.
+ * emulparams/elf32ebmip.sh: Likewise.
+ * emulparams/elf32lmip.sh: Likewise.
+ * emulparams/elf32elmip.sh: Source elf32lmip.sh, remove duplicates.
+ * emulparams/elf32lsmip.sh: Likewise.
+ * emulparams/elf32ltsmip.sh: Source elf32btsmip.sh, remove duplicates.
+ * emulparams/elf32l4300.sh: Source elf32b4300.sh, remove duplicates.
+ * emulparams/elf64bmip.sh: Source elf32bmipn32.sh, remove duplicates.
+ * emulparams/elf64btsmip.sh: Likewise.
+ * emulparams/elf64ltsmip.sh: Source elf64btsmip.sh, remove duplicates.
+ * emulparams/elf32lppc.sh: Source elf32ppc.sh, remove duplicates.
+ * emulparams/elf32ppclinux.sh: Likewise.
+ * emulparams/elf32ppcsim.sh: Likewise.
+ * emulparams/elf32lppcsim.sh: Source elf32lppc.sh, remove duplicates.
+ * emulparams/elf64hppa.sh: Source hppa64linux.sh, remove duplicates.
+ * emulparams/h8300helf.sh: Source h8300elf.sh, remove duplicates.
+ * emulparams/h8300self.sh: Likewise.
+ * emulparams/mn10300.sh: Source mn10200.sh, remove duplicates.
+ * emulparams/sh.sh: Comment.
+ * emulparams/shl.sh: Source sh.sh, remove duplicates.
+ * emulparams/shlelf.sh: Source shelf.sh, remove duplicates.
+ * emulparams/shelf_linux.sh: Source shlelf_linux.sh, remove duplicates.
+
+2001-11-21 David Heine <dlheine@tensilica.com>
+ Alan Modra <amodra@bigpond.net.au>
+
+ * ldlang.c (map_input_to_output_sections): Replace "break"
+ accidentally removed with 2001-08-03 change.
+ (lang_gc_sections_1): Likewise.
+
+2001-11-21 Alan Modra <amodra@bigpond.net.au>
+
+ * ldlang.c (walk_wild_section): Move sec == NULL case out of loop.
+
+2001-11-20 Angela Marie Thomas <angela@redhat.com>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_finish): Use NULL instead
+ of false when calling lang_size_sections.
+ * emultempl/hppaelf.em (hppaelf_layout_sections_again): Likewise.
+
+2001-11-15 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_finish): Only emit this
+ function when LDEMUL_FINISH isn't set to the same name. Don't
+ call ${LDEMUL_FINISH}.
+ (ld_${EMULATION_NAME}_emulation): Call $LDEMUL_FINISH if defined.
+ * emultempl/armelf.em (arm_elf_finish): Call
+ gld${EMULATION_NAME}_finish.
+ * emultempl/hppaelf.em (hppaelf_finish): Rename to
+ gld${EMULATION_NAME}_finish. Call bfd_elf32_discard_info and
+ hppaelf_layout_sections_again if necessary.
+ (need_laying_out): New var.
+ (hppaelf_layaout_sections_again): Rename to
+ hppaelf_layout_sections_again. Clear need_laying_out.
+ (PARSE_AND_LIST_OPTIONS): Format text.
+
+2001-11-14 H.J. Lu <hjl@gnu.org>
+
+ * emultempl/armelf.em (arm_elf_finish): Renamed from
+ gld${EMULATION_NAME}_finish.
+ (LDEMUL_FINISH): Set to arm_elf_finish.
+
+2001-11-14 Daniel Jacobowitz <drow@mvista.com>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_finish): New.
+ (struct ld_emulation_xfer_struct): Use it.
+
+2001-11-13 Ross Alexander <ross.alexander@uk.neceur.com>
+
+ * emulparams/elf64hppa.sh (OTHER_BSS_END_SYMBOLS): Add
+ additional symbols referenced by newer crt0.o files from HP.
+
+2001-11-12 Anthony Green <green@redhat.com>
+
+ * emulparams/armelf.sh (DATA_START_SYMBOLS): New symbol.
+
+2001-11-12 Alfred M. Szmidt <ams@kemisten.nu>
+
+ * Makefile.am (GENSCRIPTS): Quote ${exec_prefix}.
+ * Makefile.in: Regenerate.
+
+2001-11-02 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * ld.texinfo: Use @command for commands, @option for options.
+ * Makefile.am (POD2MAN): Use 'GNU Development Tools' for
+ the page man title.
+ * Makefile.in: Rebuild.
+
+2001-11-04 Chris Demetriou <cgd@broadcom.com>
+
+ * configure.tgt (mips*el-*-netbsd*, mips*-*-netbsd*):
+ Add support for targets.
+
+2001-11-02 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * configure.in (ALL_LINGUAS): Add "fr" and "sv"
+ * configure: Regernate.
+ * po/fr.po: New file.
+ * po/sv.po: New file.
+
+2001-11-01 NIIBE Yutaka <gniibe@m17n.org>
+
+ * configure.tgt (sh-*-linux): Set targ_emul, targ_extra_emuls
+ as little endian default and to support big endian.
+
+2001-11-01 Chris Demetriou <cgd@broadcom.com>
+
+ * ld.texinfo (Options): Document new option, -nostdlib.
+ * lexsup.c (OPTION_NOSTDLIB): New definition.
+ (ld_options): Add entry for "nostdlib".
+ (parse_args): Handle OPTIONS_NOSTDLIB.
+ * ldfile.c (ldfile_add_library_path): Don't add directories
+ to the search path if they weren't specified on the command line
+ and -nostdlib was specified.
+ * ld.h (ld_config_type): New member only_cmd_line_lib_dirs.
+
+2001-10-31 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * lexsup.c (parse_args): Prevent infinite parsing loop when
+ "-rpath.a" is specified on the command line.
+ Replace calls to fprintf with calls to einfo.
+
+2001-10-31 John Marshall <jmarshall@acm.org>
+
+ * ld.texinfo: A historical requirement that MEMORY and SECTIONS
+ appear only once across all the linker scripts involved in a link
+ invocation no longer applies. Make the documentation reflect
+ that.
+
+2001-10-31 NIIBE Yutaka <gniibe@m17n.org>
+
+ * configure.tgt: Supports sh3/sh4/sh3eb/sh4eb-unknown-linux-gnu
+ targets.
+ (sh-*-linux*): Added targ_extra_libpath.
+
+2001-10-31 David Heine <dlheine@tensilica.com>
+
+ * ldlang.c (lang_size_sections): Keep a valid output_offset field
+ for padding statements.
+
+2001-10-30 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * configure.tgt (mmix-*-*): New target.
+ * Makefile.am (ALL_EMULATIONS): Add eelf64mmix.o and emmo.o.
+ Add dependencies to match.
+ * emulparams/mmo.sh, emulparams/elf64mmix.sh, emultempl/mmo.em,
+ emultempl/mmix-elfnmmo.em, emultempl/mmixelf.em,
+ scripttempl/mmo.sc: New files.
+ * gen-doc.texi: @set MMIX.
+ * ld.texinfo: Ditto.
+ [MMIX] Add MMIX node.
+ * Makefile.in: Regenerate.
+
+2001-10-29 Kazu Hirata <kazu@hxi.com>
+
+ * ldlang.c: Fix a comment typo.
+
+2001-10-23 Alan Modra <amodra@bigpond.net.au>
+
+ * configure.host: Move alpha*-*-linux-gnu* entry to generic
+ entries, and match *-*-linux*.
+
+2001-10-20 Alan Modra <amodra@bigpond.net.au>
+
+ * ldgram.y (mri_script_command): Surround processing of INCLUDE
+ with ldlex_script, ldlex_popstate.
+ (ifile_p1): Likewise.
+ * ldlex.l (EOF): Don't BEGIN(SCRIPT). Restore lineno from the
+ correct slot.
+ (lex_push_file): Save current lineno to lineno_stack. Set lineno
+ to 1. Don't BEGIN(SCRIPT).
+ (lex_redirect): Similarly.
+ * ldmain.c (main): Set yydebug non-zero if YYDEBUG.
+
+2001-10-20 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * scripttempl/armcoff.sc: Define __EH_FRAME_BEGIN__ and
+ __EH_FRAME_END__ and accept eh frames into data section.
+ Add ctor and dtor sections.
+
+2001-10-19 Danny Smith <danny_r_smith_2001@yahoo.co.nz>
+
+ * pe-dll.c (autofilter_objectlist): Add gcrt0.o.
+ (auto-export): Fix indentation.
+
+2001-10-18 Danny Smith <danny_r_smith_2001@yahoo.co.nz>
+
+ * pe-dll.c (autofilter_objectlist): Add startup objects
+ for profiling.
+ (auto-export): Constify char * p.
+ Extract file basename and use strcmp rather than ststr
+ for object lookup.
+
+2001-10-18 Chris Demetriou <cgd@broadcom.com>
+
+ * ldmain.c (get_emulation): Improve comment about the handling
+ of -mipsN options.
+
+2001-10-17 Alan Modra <amodra@bigpond.net.au>
+
+ * po/POTFILES.in: Regenerate.
+
+2001-10-16 Vassili Karpov <malc@pulsesoft.com>
+
+ * emultempl/elf32.em (gld*_list_options): Remove extra '\t' from
+ -z nocopyreloc and -z nocombreloc usage strings.
+
+2001-10-12 Vassili Karpov <malc@pulsesoft.com>
+
+ * emultempl/elf32.em (gld*_list_options): Include -z nocopyreloc
+ in usage.
+
+2001-10-11 Aleksey Romanov <aromanov@ennovatenetworks.com>
+
+ * scripttempl/armaout.sc: Place .bss section after end of aligned
+ data section to match behaviour of aout code in constructrion of
+ header.
+
+2001-10-11 Danny Smith <danny_r_smith_2001@yahoo.co.nz>
+
+ * pe-dll.c (autofilter_entry_type autofilter_liblist: Add
+ startup files for mingw32 dlls to list.
+
+2001-10-10 Chris Demetriou <cgd@broadcom.com>
+
+ * emultempl/elf32.em: Fix shell 'if' usage for portability.
+
+2001-10-08 Aldy Hernandez <aldyh@redhat.com>
+
+ * configure.tgt (targ): Add arm9e-*-elf.
+
+2001-10-05 H.J. Lu <hjl@gnu.org>
+
+ * genscripts.sh: Fix a typo in the last change.
+
+2001-10-05 Jakub Jelinek <jakub@redhat.com>
+
+ * emultempl/elf32.em (gld_*_list_options): Include -z combreloc and
+ -z nocombreloc in usage.
+
+2001-10-03 Jim Blandy <jimb@redhat.com>
+
+ * genscripts.sh: Include a comment at the top of each generated
+ script, explaining its purpose.
+
+2001-10-03 Vassili Karpov <malc@pulsesoft.com>
+
+ * emultempl/elf32.em (parse_args): Handle -z nocopyreloc.
+ * NEWS: Mention -z nocopyreloc.
+ * ld.texinfo (Options): Describe nocopyreloc.
+
+2001-10-03 Alan Modra <amodra@bigpond.net.au>
+
+ * configure: Regenerate.
+
+2001-10-02 Alan Modra <amodra@bigpond.net.au>
+
+ * ldver.h (ld_program_version): Remove declaration.
+ * lexsup.c (parse_args): Move printing of copyright message..
+ * ldver.c (ldversion): .. to here.
+ Use BFD_VERSION_STRING in place of BFD_VERSION.
+ (ld_program_version): Remove.
+ * Makefile.am (Makefile): Depend on bfd/configure.in.
+ Run "make dep-am".
+ * Makefile.in: Regenerate.
+
+2001-09-30 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * Makefile.am: Update dependencies with "make dep-am".
+ * Makefile.in: Regenerate.
+
+2001-09-29 John Reiser <jreiser@BitWagon.com>
+
+ * ldlang.c (lang_common): Conditionally inhibit Common allocation.
+ * lexsup.c: Add --no-define-common commandline option.
+ * ldgram.y: Add INHIBIT_COMMON_ALLOCATION script command.
+ * ldlex.l: Likewise.
+ * ld.h: Add command_line.inhibit_common_definition.
+ * ldmain.c (main): Initialize.
+ * ld.texinfo: Document.
+
+2001-09-29 Alan Modra <amodra@bigpond.net.au>
+
+ * ldlang.c (section_already_linked): Remove assignment to kept_section.
+
+2001-09-26 Alan Modra <amodra@bigpond.net.au>
+
+ * ldmisc.c (USE_STDARG): Remove.
+ (info_msg): Define using VPARAMS, VA_OPEN, VA_FIXEDARG, VA_CLOSE.
+ (einfo): Likewise.
+ (minfo): Likewise.
+ (lfinfo): Likewise.
+
+ * ldmisc.h: Remove #ifdef ANSI_PROTOTYPES and non-ansi
+ declarations. Update copyright.
+
+2001-09-24 Charles Wilson <cwilson@ece.gatech.edu>
+
+ * pe-dll.c: Remove obsoleted declaration of
+ pe_get_data_import_dll_name.
+ (pe_create_import_fixup): Fix thinko.
+
+ * ld.texinfo(enable-auto-import): Clarify the explanation.
+
+2001-09-24 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * pe-dll.c (pe_create_import_fixup): Revert previous patch.
+ * emultemp/pe.em (pe_data_import_dll): Move definition outside of
+ DLL_SUPPORT controlled code.
+
+2001-09-24 Charles Wilson <cwilson@ece.gatech.edu>
+
+ * emultempl/pe.em(pe_data_import_dll): Make static.
+ (pe_get_data_import_dll_name): New accessor function.
+ * pe-dll.c(pe_create_import_fixup): call
+ pe_get_data_import_dll_name() from pe.em, instead of
+ directly accessing pe_data_import_dll variable from pe.em.
+
+2001-09-18 Bruno Haible <haible@clisp.cons.org>
+
+ * deffilep.y: Include "safe-ctype.h" instead of <ctype.h>.
+ (def_file_add_directive): Use ISSPACE instead of isspace.
+ (def_lex): Use ISDIGIT/ISXDIGIT/ISALPHA/ISALNUM instead of
+ isdigit/isxdigit/isalpha/isalnum.
+ * emultempl/aix.em: Include "safe-ctype.h" instead of <ctype.h>.
+ (gld${EMULATION_NAME}_read_file): Use ISSPACE instead of isspace.
+ * emultempl/elf32.em: Include "safe-ctype.h" instead of <ctype.h>.
+ (gld${EMULATION_NAME}_place_orphan): Use ISALNUM instead of
+ isalnum.
+ * emultempl/gld960c.em: Include "safe-ctype.h" instead of <ctype.h>.
+ (gld960_set_output_arch): Use ISUPPER/TOLOWER instead of
+ isupper/tolower.
+ * emultempl/sunos.em: Include "safe-ctype.h" instead of <ctype.h>.
+ (gld${EMULATION_NAME}_search_dir): Use ISDIGIT instead of isdigit.
+ * ldctor.c: Include "safe-ctype.h" instead of <ctype.h>.
+ (ctor_prio): Use ISDIGIT instead of isdigit.
+ * ldfile.c: Include "safe-ctype.h" instead of <ctype.h>.
+ (ldfile_open_file_search): Use ISALPHA instead of isalpha.
+ (ldfile_add_arch): Use ISUPPER/TOLOWER instead of
+ isupper/tolower.
+ * ldlang.c: Include "safe-ctype.h" instead of <ctype.h>.
+ (stricpy): Use TOLOWER instead of isupper/tolower.
+ (lang_leave_overlay_section): Use ISALNUM instead of isalnum.
+ * ldlex.l: Include "safe-ctype.h" instead of <ctype.h>.
+ (lex_warn_invalid): Use ISPRINT instead of isprint.
+ * ldmain.c: Include "safe-ctype.h" instead of <ctype.h>.
+ (main): For gettext, also set the LC_CTYPE locate facet.
+ (add_keepsyms_file): Use ISSPACE instead of isspace.
+ * lexsup.c: Include "safe-ctype.h" instead of <ctype.h>.
+ (is_num, parse_args): Use ISDIGIT instead of isdigit.
+ * mpw-elfmips.c: Include "safe-ctype.h" instead of <ctype.h>.
+ (gldelf32ebmip_place_orphan): Use ISALNUM instead of isalnum.
+ * mpw-eppcmac.c: Include "safe-ctype.h" instead of <ctype.h>.
+ (gldppcmacos_read_file): Use ISSPACE instead of isspace.
+ * pe-dll.c: Include "safe-ctype.h" instead of <ctype.h>.
+ (quoteput): Use ISSPACE instead of isspace.
+ (pe_dll_generate_implib, pe_process_import_defs): Use ISALNUM
+ instead of isalnum.
+
+2001-09-18 Alan Modra <amodra@bigpond.net.au>
+
+ * deffilep.y (def_stash_module): Constify "name" param.
+
+ * pe-dll.c: Replace CONST with const throughout.
+ (quick_symbol): Constify "n1", "n2", "n3" params.
+ (make_singleton_name_thunk): Constify "import" param. Make
+ "buffer_len" a size_t.
+ (make_import_fixup_entry): Constify "name", "fixup_name",
+ "dll_symname" params.
+ (pe_get16): Cast args of bfd_seek. Replace bfd_read with bfd_bread.
+ (pe_get32): Likewise.
+ (pe_implied_import_dll): Likewise.
+
+ * emultempl/beos.em (sort_by_file_name): Constify "ra", "rb".
+ (sort_by_section_name): Likewise.
+
+ * emultempl/pe.em: Move defines for arm_epoc_pe before bfd.h included.
+ (make_import_fixup): Cast printf arg, rel->address to long rather
+ than int.
+ (gld_${EMULATION_NAME}_after_open): Don't compare NULL against int.
+
+2001-09-15 Alan Modra <amodra@bigpond.net.au>
+
+ * ldmain.c (main): Rename BufferSize to ld_bufsz because HPUX
+ defines BufferSize. Increase buffer size by one.
+
+2001-09-14 Ralf Habacker <Ralf.Habacker@freenet.de>
+
+ * pe-dll.c (pe_walk_relocs_of_symbol): Fix memory leak.
+
+2001-09-14 Kevin Lo <kevlo@openbsd.org>
+
+ * configure.tgt: Add arm-openbsd target.
+
+2001-09-12 H.J. Lu <hjl@gnu.org>
+
+ * Makefile.am (ALL_EMULATIONS): Move eelf64ppc.o and
+ eelf64lppc.o to ...
+ (ALL_64_EMULATIONS): Here.
+ * Makefile.in: Regenerated.
+
+2001-09-12 Paul Sokolovsky <Paul.Sokolovsky@technologist.com>
+
+ * emultempl/pe.em(make_import_fixup): change signature to
+ take asection as well as arelec; we need this for proper
+ error reporting. Only call pe_create_import_fixup() if
+ there is no attempt to add a constant addend to the reloc;
+ otherwise, report error condition.
+ * pe-dll.c(pe_walk_relocs_of_symbol): change signature,
+ since final argument is a pointer to make_import_fixup().
+ Change call to cb() to match make_import_fixup() signature.
+ (make_import_fixup_mark): make buffer_len unsigned.
+ * pe-dll.h: change signature of pe_walk_relocs_of_symbol.
+
+2001-09-12 Charles Wilson <cwilson@ece.gatech.edu>
+
+ * ld.texinfo: add verbose documentation for auto-import
+ direct-addressing workaround, to compliment the terse
+ error message.
+
+2001-09-12 Andrew MacLeod <amacleod@redhat.com>
+
+ * scripttempl/v850.sc: Add gcc_except_table sections.
+
+2001-09-11 Jeffrey A Law (law@cygnus.com)
+
+ * emulparams/h8300helf.sh: Move stack to a much higher memory address.
+ * emulparams/h8300self.sh: Similarly.
+
+2001-09-05 Danny Smith <dannysmith@users.souceforge.net>
+
+ * ld.texinfo (Options, --stack): Correct default value for stack
+ reserve.
+
+2001-09-05 Tom Rix <trix@redhat.com>
+
+ * emultempl/aix.em : Handle import file XMC_XO and syscall symbols.
+
+2001-09-03 Andreas Jaeger <aj@suse.de>
+
+ * emultempl/beos.em: Declare prototypes for comparions functions,
+ adjust definitions.
+
+2001-09-02 Andreas Jaeger <aj@suse.de>
+
+ * emultempl/aix.em: Add missing prototype.
+ * emultempl/lnk960.em: Likewise.
+ * emultempl/vanilla.em: Likewise.
+ * emultempl/armcoff.em: Likewise.
+ * emultempl/armelf_oabi.em: Likewise.
+ * emultempl/beos.em: Likewise.
+ * emultempl/gld960c.em: Likewise.
+ * emultempl/gld960.em: Likewise.
+
+ * emulparams/elf64alpha.sh (PARSE_AND_LIST_PROLOGUE): Add parameter
+ for prototype declaration.
+
+2001-08-31 Eric Christopher <echristo@redhat.com>
+ Jason Eckhardt <jle@redhat.com>
+
+ * ldmain.c (get_emulation): Add support for -mips32 and -mips64.
+
+2001-08-31 Andreas Jaeger <aj@suse.de>
+
+ * emultempl/pe.em: Add missing prototypes.
+ (gld_${EMULATION_NAME}_after_open): Remove extra args to
+ pe_find_data_imports.
+ (pr_sym): Add unused attribute.
+
+2001-08-29 Joel Sherrill <joel@OARcorp.com>
+
+ * configure.tgt (i[3456]86-*-rtems*, m68*-*-rtems*): Change
+ default from coff to elf.
+
+2001-08-29 Jeff Law <law@redhat.com>
+
+ * emulparams/h8300helf.sh: Resync with h8300elf.sh. Update
+ ARCH specification.
+ * emulparams/h8300self.sh: Similarly.
+
+2001-08-28 J"orn Rennecke <amylaar@redhat.com>
+
+ * Makefile.am (ALL_EMULATIONS): Add eh8300elf.o, eh8300elf.o and
+ eh8300self.o .
+ (eh8300elf.c, eh8300helf.c, eh8300self.c): New targets.
+ * configure.tgt (h8300-*-elf*): New case.
+ * emulparams/h8300elf.sh, emulparams/h8300helf.sh: New files.
+ * emulparams/h8300self.sh: New file.
+ * Makefile.in: Regenerated.
+
+2001-08-28 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * ldmain.c (main): Rename BSIZE to BufferSize to avoid collision
+ with macro name.
+
+2001-08-27 Linus Nordberg <linus@swox.com>
+ Alan Modra <amodra@bigpond.net.au>
+
+ * Makefile.am (ALL_EMULATIONS): Add eelf64ppc.o and eelf64lppc.o.
+ (eelf64ppc.c, eelf64lppc.c): Add make targets.
+ Run "make dep-am"
+ * Makefile.in: Regenerate.
+ * configure.tgt: Add powerpc64 support. Move pdp11, pjl, pj
+ entries to correct alphabetical position.
+ * emulparams/elf64ppc.sh: New.
+ * emulparams/elf64lppc.sh: New.
+
+2001-08-27 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * ldmain.c (main): Declare BSIZE as static.
+
+2001-08-23 Jakub Jelinek <jakub@redhat.com>
+
+ * emultempl/elf32.em (place_orphan): Place orphan .rel* sections
+ into .rel.dyn resp. .rela.dyn if combreloc.
+ (get_script): If .x linker script is equal to .xn, only put it
+ once into the binary.
+ Add .xc and .xsc scripts.
+ (parse_args): Handle -z combreloc and -z nocombreloc.
+ * scripttempl/elf.sc (.rela.sbss): Fix a typo.
+ For .xc and .xsc scripts put all .rel* or .rela* input sections
+ but .rel*.plt and PLT-like sections into .rel.dyn resp. .rela.dyn.
+ * genscripts.sh (GENERATE_COMBRELOC_SCRIPT): Set if SCRIPT_NAME
+ is elf.
+ Strip trailing whitespace from script.
+ Generate .xc and .xsc scripts if requested.
+ * ldmain.c (main): Initialize link_info.combreloc and
+ link_info.spare_dynamic_tags.
+ * lexsup.c (OPTION_SPARE_DYNAMIC_TAGS): Define.
+ (ld_options): Add --spare-dynamic-tags option.
+ (parse_args): Likewise.
+ * ld.texinfo: Document -z combreloc and -z nocombreloc.
+ * ldint.texinfo: Document .xc and .xsc linker scripts.
+ * NEWS: Add notes about -z combreloc and SHF_MERGE.
+
+2001-08-22 H.J. Lu <hjl@gnu.org>
+
+ * emulparams/elf32fr30.sh: Add a newline.
+
+2001-08-21 Andreas Jaeger <aj@suse.de>
+
+ * deffilep.y: Add missing prototypes.
+ * pe-dll.c: Likewise.
+
+2001-08-20 Alan Modra <amodra@bigpond.net.au>
+
+ * ldlang.c (insert_pad): Fix typos in last patch.
+
+ * ldlang.c: When traversing lang_statement_union_type lists,
+ consistently use "header.next" rather than "next".
+ * mpw-eppcmac.c: Likewise.
+ * emultempl/beos.em: Likewise.
+ * emultempl/hppaelf.em: Likewise.
+ * emultempl/pe.em: Likewise.
+ * ldlang.h (union lang_statement_union): Remove "next" field.
+
+ * ldlang.c (insert_pad): Use offsetof macro.
+ (lang_size_sections): Always neuter padding statements.
+ * emultempl/hppaelf.em (hppaelf_delete_padding_statements): Delete.
+
+ * pe-dll.c (pe_dll_fill_sections): Correct type of "relax" param
+ passed to lang_size_sections.
+ (pe_exe_fill_sections): Likewise.
+ * emultempl/pe.em (output_prev_sec_find): Copied from elf32.em.
+ (gld_${EMULATION_NAME}_place_orphan): Merge from elf32.em.
+
+2001-08-18 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/aix.em: Formatting fixes.
+
+2001-08-18 Alan Modra <amodra@bigpond.net.au>
+
+ * ldlang.c (insert_pad): Make use of an existing pad statement if
+ available. Move code calculating alignment, adjusting section
+ alignment power, and adjusting dot to ..
+ (size_input_section): .. here. Remove unused relax param.
+ (lang_size_sections): Change boolean `relax' param to boolean *.
+ Adjust call to size_input_section. Make use of insert_pad to
+ place pad after the assignment statement. If relaxing, zap
+ padding statements.
+ (reset_memory_regions): Reset output_bfd section sizes too.
+ (relax_again): Move to..
+ (lang_process): ..here. Adjust call to lang_size_sections, and
+ remove duplicated code.
+ * ldlang.h (lang_size_sections): Change `relax' param to boolean *.
+
+2001-08-17 Alan Modra <amodra@bigpond.net.au>
+
+ * ld.texinfo: Document that fill values now use the four least
+ significant bytes.
+ * emulparams/elf32fr30.sh (NOP): Update.
+ * emulparams/elf32mcore.sh: Likewise.
+ * emulparams/elf64_s390.sh: Likewise.
+ * emulparams/elf_i386.sh: Likewise.
+ * emulparams/elf_i386_be.sh: Likewise.
+ * emulparams/elf_i386_chaos.sh: Likewise.
+ * emulparams/elf_i386_ldso.sh: Likewise.
+ * emulparams/elf_s390.sh: Likewise.
+ * emulparams/elf_x86_64.sh: Likewise.
+ * emulparams/i386moss.sh: Likewise.
+ * emulparams/i386nw.sh: Likewise.
+ * emulparams/m68kelf.sh: Likewise.
+ * scripttempl/elf.sc: Update NOP comment.
+ * scripttempl/elfi370.sc: Likewise.
+ * scripttempl/elfm68hc11.sc: Likewise.
+ * scripttempl/elfm68hc12.sc: Likewise.
+ * scripttempl/nw.sc: Likewise.
+
+2001-08-15 Tom Rix <trix@redhat.com>
+
+ * ldgram.y (saved_script_handle): Initialize to NULL.
+ * ldmain.c (main): Change check on saved_script_handle.
+
+2001-08-14 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/elf32.em: Formatting fixes.
+ (output_prev_sec_find): Test for bfd_ind_section too; do so by
+ looking at sec->owner.
+ (output_rel_find): Move function inside LDEMUL_PLACE_ORPHAN test.
+ (gld${EMULATION_NAME}_place_orphan): Add a few comments. Remove
+ unused code, and reorganize orphan section placement code.
+
+ * ldlang.c (wild_doit): Rename to lang_add_section.
+ * ldlang.h: Here too.
+ * mpw-elfmips.c: And here.
+ * emultempl/beos.em: And here.
+ * emultempl/elf32.em: And here.
+ * emultempl/hppaelf.em: And here.
+ * emultempl/pe.em: And here.
+
+2001-08-13 Richard Henderson <rth@redhat.com>
+
+ * emultempl/needrelax.em: New file.
+ * emulparams/elf64_ia64.sh (EXTRA_EM_FILE): Reference it.
+ * Makefile.am (eelf64_ia64.c): Depend on it.
+ * Makefile.in: Rebuild.
+
+2001-08-13 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/elf32.em: For SEC_EXCLUDE sections, ensure that
+ output_section is set non-NULL.
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Return
+ `true' for SEC_EXCLUDE sections so that the generic code doesn't
+ needlessly create an output_section_statement. Treat a correctly
+ named output_section_statement with NULL bfd_section as compatible.
+
+2001-08-13 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * emultempl/generic.em: Support EXTRA_EM_FILE.
+ (ld_${EMULATION_NAME}_emulation): Support emulation parameters
+ LDEMUL_BEFORE_PARSE, LDEMUL_SYSLIB, LDEMUL_HLL,
+ LDEMUL_AFTER_PARSE, LDEMUL_AFTER_OPEN, LDEMUL_AFTER_ALLOCATION,
+ LDEMUL_SET_OUTPUT_ARCH, LDEMUL_CHOOSE_TARGET,
+ LDEMUL_BEFORE_ALLOCATION, LDEMUL_GET_SCRIPT, LDEMUL_FINISH,
+ LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS,
+ LDEMUL_OPEN_DYNAMIC_ARCHIVE, LDEMUL_PLACE_ORPHAN,
+ LDEMUL_SET_SYMBOLS, LDEMUL_PARSE_ARGS, LDEMUL_UNRECOGNIZED_FILE,
+ LDEMUL_LIST_OPTIONS, LDEMUL_RECOGNIZED_FILE,
+ LDEMUL_FIND_POTENTIAL_LIBRARIES.
+
+2001-08-12 Richard Henderson <rth@redhat.com>
+
+ * scripttempl/elf.sc, scripttempl/elfd30v.sc,
+ scripttempl/elfm68hc11.sc, scripttempl/elfm68hc12.sc,
+ scripttempl/v850.sc: Keep .jcr data.
+
+2001-08-12 H.J. Lu <hjl@gnu.org>
+ Andrew Haley <aph@cambridge.redhat.com>
+ Nick Clifton <nickc@redhat.com>
+
+ * ldgram.y (had_script): Change name to saved_script_handle.
+ Change type to file handle.
+ * ld.h (had_script): Rename and retype.
+ * ldfile.c (ldfile_open_command_file): Save the file handle
+ used in saved_script_handle.
+ * lexsup.c (parse_args): Do not allow -c option to alter
+ saved_script_handle.
+ * ldmain.c (main): Print out the linker script used if
+ --verbose is given. Check saved_script_handle to obtain the
+ external linker script used, or if NULL, dump the builtin
+ script.
+ * ld.texinfo: Document that --verbose now dumps the linker
+ script used, regardless of whether it was an internal or an
+ external script.
+
+2001-08-10 Andreas Jaeger <aj@suse.de>
+
+ * configure.in: Add -Wstrict-prototypes and -Wmissing-prototypes
+ to build warnings.
+ * configure: Regenerate.
+
+2001-08-09 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/elf32.em (output_prev_sec_find): Add missing prototype.
+
+ * scripttempl/elf.sc: Move non-text .dynamic section before
+ .plt/.got/.sdata* group.
+ (OTHER_GOT_SECTIONS): Move to immediately after .got.
+ (OTHER_SDATA_SECTIONS): Add.
+ * emulparams/criself.sh: Use OTHER_SDATA_SECTIONS rather than
+ OTHER_GOT_SECTIONS.
+ * emulparams/crislinux.sh: Likewise.
+ * emulparams/elf32b4300.sh: Likewise.
+ * emulparams/elf32bmip.sh: Likewise.
+ * emulparams/elf32bmipn32.sh: Likewise.
+ * emulparams/elf32bsmip.sh: Likewise.
+ * emulparams/elf32btsmip.sh: Likewise.
+ * emulparams/elf32ebmip.sh: Likewise.
+ * emulparams/elf32elmip.sh: Likewise.
+ * emulparams/elf32l4300.sh: Likewise.
+ * emulparams/elf32lmip.sh: Likewise.
+ * emulparams/elf32lsmip.sh: Likewise.
+ * emulparams/elf32ltsmip.sh: Likewise.
+ * emulparams/elf64bmip.sh: Likewise.
+ * emulparams/elf64btsmip.sh: Likewise.
+ * emulparams/elf64ltsmip.sh: Likewise.
+
+2001-08-08 Alan Modra <amodra@bigpond.net.au>
+
+ * genscripts.sh: Source the emulparams script before each output
+ script is generated so that variables like `RELOCATING' may affect
+ variables defined in the emulparams script.
+
+2001-08-04 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/aix.em: ldexp.h,ldlang.h,ldfile.h,ldemul.h go in this
+ order.
+
+ * emultempl/beos.em (sort_sections): Modify for 2001-08-03 change,
+ ie. iterate over wild_statement.section_list.
+ (gld${EMULATION_NAME}_place_orphan): Likewise.
+
+2001-08-03 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * scripttempl/elfm68hc12.sc (FINISH_CODE, FINISH_RELOC): New to handle
+ .fini[0-4] sections used by _exit
+ (CTOR, DTOR): Export ctor/dtor symbols; move them to ROM.
+ (*.text,*.data,*.bss): Take into account .text.*, .data.*, .bss.*.
+ * scripttempl/elfm68hc11.sc: Likewise.
+
+2001-08-03 H.J. Lu <hjl@gnu.org>
+
+ * emultempl/beos.em (init): Add the missing initialization.
+
+2001-08-03 Alan Modra <amodra@bigpond.net.au>
+
+ * ld.texinfo (Input Section Basics): Clarify ordering of output
+ sections.
+ * ldlang.c (callback_t): Add wildcard_list param.
+ (walk_wild_section): Remove "section" param. Rewrite for
+ lang_wild_statement_type change. Remove unique_section_p test.
+ (walk_wild_file): Remove "section" param.
+ (walk_wild): Remove "section" and "file" params.
+ (lang_gc_wild): Likewise.
+ (wild): Likewise. Modify for lang_wild_statement_type change.
+ (wild_sort): Likewise. Add "sec" param.
+ (gc_section_callback): Likewise.
+ (output_section_callback): Likewise. Do unique_section_p test.
+ (map_input_to_output_sections): Modify call to wild.
+ (lang_gc_sections_1): Likewise.
+ (print_wild_statement): Modify for lang_wild_statement_type
+ change.
+ (lang_add_wild): Replace filename, filenames_sorted param with
+ filespec. Replace section_name, sections_sorted,
+ exclude_filename_list with section_list.
+ * ldlang.h (lang_add_wild): Here too.
+ (lang_wild_statement_type): Replace section_name, sections_sorted,
+ and exclude_filename_list with section_list.
+ * ldgram.y (current_file): Delete.
+ (%union): Add wildcard_list.
+ (file_NAME_list): Set type to wildcard_list. Build a linked list
+ rather than calling lang_add_wild for each entry.
+ (input_section_spec_no_keep): Call lang_add_wild here instead.
+ * ld.h (struct wildcard_list): Declare.
+ * mri.c (mri_draw_tree): Modify to suit new lang_add_wild.
+
+2001-08-02 Charles Wilson <cwilson@ece.gatech.edu>
+
+ * ldmain.c (main): initialize link_info.pei386_auto_import
+ * pe-dll.c: new tables for auto-export filtering
+ (auto_export): change API, pass abfd for contextual filtering.
+ Loop thru tables of excluded symbols instead of comparing
+ "by hand".
+
+2001-08-02 Paul Sokolovsky <paul.sokolovsky@technologist.com>
+
+ * pe-dll.c: new variable pe_dll_enable_extra_debug. New
+ static variable current_sec (static struct sec *). Add
+ forward declaration for add_bfd_to_link.
+ (process_def_file): Don't export undefined symbols. Do not
+ export symbols starting with "_imp__". Call auto_export()
+ with new API.
+ (pe_walk_relocs_of_symbol): New function.
+ (generate_reloc): add optional extra debugging
+ (pe_dll_generate_def_file): eliminate extraneous initial blank
+ line in output
+ (make_one): enlarge symtab to make room for __nm__ symbols
+ (DATA auto-import support).
+ (make_singleton_name_thunk): New function.
+ (make_import_fixup_mark): New function.
+ (make_import_fixup_entry): New function.
+ (pe_create_import_fixup): New function.
+ (add_bfd_to_link): Specify that 'name' argument is a CONST
+ char *.
+ * pe-dll.h: declare new variable pe_dll_extra_pe_debug;
+ declare new functions pe_walk_relocs_of_symbol and
+ pe_create_import_fixup.
+ * emultempl/pe.em: add new options --enable-auto-import,
+ --disable-auto-import, and --enable-extra-pe-debug.
+ (make_import_fixup): New function.
+ (pe_find_data_imports): New function.
+ (pr_sym): New function.
+ (gld_${EMULATION_NAME}_after_open): Add optional extra pe
+ debugging. Call pe_find_data_imports. Mark .idata as DATA, not
+ CODE.
+
+2001-08-02 Charles Wilson <cwilson@ece.gatech.edu>
+
+ * ld.texinfo: add additional documentation for
+ --export-all-symbols. Document --out-implib,
+ --enable-auto-image-base, --disable-auto-image-base,
+ --dll-search-prefix, --enable-auto-import, and
+ --disable-auto-import.
+ * ldint.texinfo: Add detailed documentation on auto-import
+ implementation.
+
+2001-07-30 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * ld.texinfo (Simple Assignments): Fix computation in SECTIONS
+ example.
+
+2001-07-24 Alan Modra <amodra@bigpond.net.au>
+
+ * Makefile.am: Update dependencies with "make dep-am".
+ * Makefile.in: Regenerate
+
+2001-07-23 Alan Modra <amodra@bigpond.net.au>
+
+ * ldcref.c (check_section_sym_xref): New function.
+ (check_nocrossrefs): Call it.
+ (check_nocrossref): Interate over h->refs here instead of..
+ (check_refs): ..here. Pass in the symbol name, section, and bfd
+ rather than hash_entry pointers.
+ (struct check_refs_info): Keep symbol name rather than hash entry.
+ Remove "same".
+ (check_reloc_refs): Tweak for above changes in check_refs_info.
+ Only report references to section syms when symname is NULL to
+ prevent duplicate messages for the same reloc.
+
+2001-07-19 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * ldexp.c (exp_print_tree): Use stderr if config.map_file is not
+ available. Do not print NULL trees.
+ (exp_print_token): Print unknown tokens with values > 126 as
+ decimal values not ASCII characters.
+
+ * ldlang.c (lang_leave_overlay): If a region is specified assign
+ it to all sections inside the overlay unless they have been
+ assigned to the own, non-default, memory region.
+
+ * README: Add header for consistency with other README files.
+
+2001-07-14 H.J. Lu <hjl@gnu.org>
+
+ * emultempl/elf32.em (output_prev_sec_find): Never return
+ bfd_abs_section_ptr, bfd_com_section_ptr nor
+ bfd_und_section_ptr.
+
+2001-07-14 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * Makefile.am (em32relf.c): Change dependency from generic.em to
+ elf32.em.
+ * Makefile.in: Regenerate.
+
+2001-07-14 matthew green <mrg@eterna.com.au>
+
+ * configure.tgt (i386-*-netbsdelf*): New target.
+ (i386-*-netbsd*): Set targ_extra_emuls to `elf_i386'
+
+2001-07-13 Jakub Jelinek <jakub@redhat.com>
+
+ * emultempl/elf32.em (output_prev_sec_find): New.
+ (place_orphan): Use it.
+
+2001-07-11 H.J. Lu <hjl@gnu.org>
+
+ * ldmain.c (main): Fix typos in the last change.
+
+2001-07-11 Jakub Jelinek <jakub@redhat.com>
+
+ * ldmain.c (main): Disallow -F and -f without -shared.
+
+2001-07-11 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * emultempl/pe.em (after_open): Check for the output_bfd not
+ having any coff_data structure allocated to it.
+
+2001-07-09 David O'Brien <obrien@FreeBSD.org>
+
+ * emultempl/elf32.em: Do not assuming that contents of the buffer
+ returned from basename function will remain unchanged accross other
+ function calls.
+
+2001-07-03 H.J. Lu <hjl@gnu.org>
+
+ * scripttempl/elf.sc (DYNAMIC_PAD): Revert the change made on
+ 2001-07-03. It creates dynamic entries even for static binaries.
+
+2001-07-03 Jakub Jelinek <jakub@redhat.com>
+
+ * scripttempl/elf.sc (DYNAMIC_PAD): New variable.
+ (DYNAMIC): Use it to reserve few dynamic entries for
+ post-linking tools.
+
+2001-06-27 Alan Modra <amodra@bigpond.net.au>
+
+ * emulparams/hppa64linux.sh: New file.
+ * configure.tgt: hppa*64*-*-linux* uses hppa64linux.sh
+ * Makefile.am (ALL_64_EMULATIONS): Add ehppa64linux.o
+ (ehppa64linux.c): Add rule to make it.
+ Run "make dep-am".
+ * Makefile.in: Regenerate.
+
+2001-06-21 Hans-Peter Nilsson <hp@axis.com>
+
+ * ld.texinfo (Options, -r): Mention restrictions when using
+ different object formats.
+
+2001-06-19 Hans-Peter Nilsson <hp@axis.com>
+
+ * ldlang.c (lang_check): Emit fatal error if relocatable link
+ between different object flavours with relocations in input.
+
+2001-06-19 H.J. Lu <hjl@gnu.org>
+
+ * ld.texinfo (-E, --export-dynamic): Mention --version-script.
+ (--version-script): Mention the language support.
+
+2001-06-19 H.J. Lu <hjl@gnu.org>
+
+ * ldlang.c (lang_check): Revert the change mode on 2001-06-15.
+
+2001-06-18 H.J. Lu <hjl@gnu.org>
+
+ * Makefile.am (ld.1): Remove the prefix `$(srcdir)/'.
+ (diststuff): Add $(MANS).
+ * Makefile.in: Regenerated.
+
+ * ld.1: Removed.
+
+2001-06-18 Hans-Peter Nilsson <hp@axis.com>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation):
+ Update for API change in bfd_elf${ELFSIZE}_size_dynamic_sections.
+ * mpw-elfmips.c (gldelf32ebmip_before_allocation): Ditto.
+ * ld.h (args_type): Remove member export_dynamic. All users
+ changed to use struct bfd_link_info member.
+
+ * Makefile.am (ecriself.c, ed10velf.c, ei386moss.c): Depend on
+ $(srcdir)/emultempl/elf32.em, not $(srcdir)/emultempl/generic.em.
+ * Makefile.in: Regenerate.
+
+2001-06-18 H.J. Lu <hjl@gnu.org>
+
+ * ldlang.c (init_os): Add the newline to the einfo call.
+ (lang_check): Likewise.
+ (lang_do_version_exports_section): Likewise.
+
+2001-06-15 H.J. Lu <hjl@gnu.org>
+
+ * lexsup.c (parse_args); Save optind to report unrecognized
+ option.
+
+2001-06-15 Hans-Peter Nilsson <hp@axis.com>
+
+ * ldlang.c (lang_check): Emit fatal error if relocatable link
+ between different object flavours.
+
+ * lexsup.c (parse_args) <case OPTION_EXPORT_DYNAMIC, case 'E'>:
+ Set new link_info member export_dynamic.
+ * ldmain.c (main): Initialize new link_info member export_dynamic.
+
+2001-06-12 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * ldlang.c (walk_wild): Only call walk_wild_file if
+ lookup_name returns something.
+ (lookup_name): If load_symbols fails, return NULL.
+ (load_symbols): Change to a boolean function.
+ (open_input_bfds): If load_symbols fails then do not make the
+ executable.
+
+2001-06-08 Alan Modra <amodra@bigpond.net.au>
+
+ * ldlang.c (record_bfd_errors): Remove.
+
+ * emultempl/aix.em: Fix copyright dates.
+
+2001-06-07 Andreas Jaeger <aj@suse.de>
+
+ * elf_x86_64.sh (NONPAGED_TEXT_START_ADDR): Increase.
+ (TEXT_START_ADDR): Likewise.
+
+2001-06-06 Martin Schwidefsky <schwidefsky@de.ibm.com>
+
+ * configure.host: Set HOSTING_CRT0/HOSTING_LIBS correctly for s/390.
+
+2001-06-05 Danny Smith <danny_r_smith_2001@yahoo.co.nz>
+
+ * emultempl/pe.em (init): Reduce default stack reserve to 0x200000.
+
+2001-05-31 H.J. Lu <hjl@gnu.org>
+
+ * ldlang.c (open_input_bfds): Don't change the bfd error
+ handler whilst loading symbols.
+
+2001-05-28 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * configure.tgt: Remove i370-mvs architecture, it is not currently
+ supported.
+
+2001-05-25 H.J. Lu <hjl@gnu.org>
+
+ * emulparams/ppcmacos.sh: Add SYSCALL_MASK and SYMBOL_MODE_MASK
+ like emulparams/aixppc.sh.
+
+2001-05-25 H.J. Lu <hjl@gnu.org>
+
+ * emultempl/beos.em (gld${EMULATION_NAME}_before_parse): Move
+ setting of output_filename after bfd_scan_arch.
+ * emultempl/pe.em: Likewise.
+
+2001-05-25 H.J. Lu <hjl@gnu.org>
+
+ * emulparams/aixrs6.sh: Add SYSCALL_MASK and SYMBOL_MODE_MASK
+ like emulparams/aixppc.sh.
+
+ * emultempl/aix.em (sc): Use ${srcdir}/emultempl/ostring.sed
+ instead of ${srcdir}/emultempl/stringify.sed.
+
+2001-05-25 Timothy Wall <twall@oculustech.com>
+
+ * emulparams/elf64_aix.sh: Change settings to match IBM linker
+ output.
+
+2001-05-25 Alan Modra <amodra@one.net.au>
+
+ * configure.host: Replace linuxoldld with linux*oldld.
+ * configure.tgt: Likewise.
+
+2001-05-24 H.J. Lu <hjl@gnu.org>
+
+ * emultempl/stringify.sed: Removed again.
+
+2001-05-24 H.J. Lu <hjl@gnu.org>
+
+ * emultempl/aix.em (OUTPUT_ARCH): Defined.
+ (gld${EMULATION_NAME}_before_parse): Initialize
+ ldfile_output_architecture, ldfile_output_machine and
+ ldfile_output_machine_name from ${OUTPUT_ARCH} if possible.
+ * emultempl/beos.em: Likewise.
+ * emultempl/elf32.em: Likewise.
+ * emultempl/linux.em: Likewise.
+ * emultempl/mipsecoff.em: Likewise.
+ * emultempl/pe.em: Likewise.
+ * emultempl/sunos.em: Likewise.
+
+2001-05-24 Tom Rix <trix@redhat.com>
+
+ * emultempl/aix.em : (gld${EMULATION_NAME}_read_file)
+ udate import file format.
+ (change_symbol_mode) New, same
+ (is_syscall) New, same
+ * emulparams/aixppc.sh : add SYSCALL_MASK and SYMBOL_MODE_MASK
+ * emulparams/aixppc64.sh : same
+ * emulparams/aixrs6.sh : same
+ * emulparams/ppcmacos.sh : same
+ * emultempl/aix.em : use strtoull to parse options
+ * Makefile.am : add eaixppc64 emulation for xcoff64
+ * Makefile.in : same
+ * configure.tgt : same
+
+ * scripttempl/aix.sc : default text section offset to 0x10000000
+ default data section offset to 0x20000000
+ add .sv3264 and .sv64 pseudo sections
+ loader and debug sections use the currect section offset.
+
+ * emultempl/aix.em : Add xcoff64 support
+ Add -binitfini support
+ (gld${EMULATION_NAME}_before_parse) -binitfini
+ (gld${EMULATION_NAME}_parse_args) same
+ (gld${EMULATION_NAME}_before_allocation) format change for special
+ sections
+
+ * emulparams/aixppc64.sh : New file for xcoff64 support
+
+2001-05-23 Alexandre Oliva <aoliva@redhat.com>
+
+ * emultempl/elf32.em (ELF_INTERPRETER_SET_DEFAULT): Use this new
+ variable to avoid non-portable shell construct.
+
+2001-05-23 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+ * ldmain.c (get_emulation): Add -mips5 command line argument.
+
+2001-05-22 Alexandre Oliva <aoliva@redhat.com>
+
+ * emulparams/elf_i386_ldso.sh: New, copied from elf_i386.sh.
+ (ELF_INTERPRETER_NAME): Define it.
+ * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Use
+ it.
+ * configure.tgt (targ_emul, targ_extra_emuls)
+ [i[3456]86-*-solaris2*, i[3456]86-*-solaris*]: Use elf_i386_ldso
+ as primary, elf_i386 as extra.
+ * Makefile.am (ALL_EMULATIONS): Added eelf_i386_ldso.o.
+ (eelf_i386_ldso.c): New rule.
+ * Makefile.in: Rebuilt.
+
+2001-05-22 Nick Clifton <nickc@redhat.com>
+
+ * lexsup.c (ld_options): Allow -I to be an alias for
+ --dynamic-linker. This is for Solaris compatability.
+ * ld.texinfo: Document that -I can be used.
+ * ld.1: Regenerate.
+
+2001-05-16 Alan Modra <amodra@one.net.au>
+
+ * ldlang.c (wild_doit): Use linker_has_input to reliably determine
+ whether an input section is the first one assigned to an output
+ section.
+ Assorted formatting fixes.
+
+2001-05-14 DJ Delorie <dj@delorie.com>
+
+ * Makefile.am (ld.dvi): Search bfd/doc for texinfo files.
+ * Makefile.in: Ditto.
+
+2001-05-11 Jakub Jelinek <jakub@redhat.com>
+
+ * emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Put
+ .gnu.linkonce.ia64unw{,i} sections into corresponding .IA_64.unwind*
+ output sections.
+ * emulparams/elf64_aix.sh (OTHER_READONLY_SECTIONS): Likewise.
+
+2001-05-11 Jakub Jelinek <jakub@redhat.com>
+
+ * ldlang.c (lang_process): Call bfd_merge_sections.
+
+2001-05-07 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+ * ldgram.y: Fix typo.
+
+2001-05-03 H.J. Lu <hjl@gnu.org>
+
+ * emultempl/elf32.em: Include "libiberty.h".
+ (gld${EMULATION_NAME}_vercheck): Call basename () to get the
+ basename of the bfd filename.
+ (gld${EMULATION_NAME}_stat_needed): Likewise.
+ (gld${EMULATION_NAME}_try_needed): Likewise.
+ (gld${EMULATION_NAME}_open_dynamic_archive): Likewise.
+
+2001-05-02 H.J. Lu <hjl@gnu.org>
+
+ * emultempl/pe.em: Include <ctype.h>.
+
+2001-05-02 Johan Rydberg <jrydberg@opencores.org>
+
+ * emulparams/elf32openrisc.sh: New file.
+
+ * Makefile.am: Add OpenRISC target.
+ * Makefile.in: Regenerated.
+
+ * configure.tgt: Add openrisc-*-* mapping.
+
+2001-05-02 Nick Clifton <nickc@redhat.com>
+
+ * emultempl/aix.em: Replace buystring with xstrdup.
+ * emultempl/beos.em: Replace buystring with xstrdup.
+
+2001-05-02 H.J. Lu <hjl@gnu.org>
+
+ * ldfile.c: Include "libiberty.h".
+ * ldlex.l: Likewise.
+
+ * ldmisc.c (buystring): Removed.
+ * ldmisc.h: Likewise.
+
+ * ldfile.c: Replace buystring with xstrdup.
+ * ldlang.c: Likewise.
+ * ldlex.l: Likewise.
+ * ldmain.c: Likewise.
+ * ldmisc.c: Likewise.
+ * lexsup.c: Likewise.
+ * mpw-eppcmac.c: Likewise.
+
+2001-04-30 Andreas Jaeger <aj@suse.de>
+
+ * emulparms/elf_x86_64.sh (MAXPAGESIZE): Fix value.
+
+2001-04-28 Paul Sokolovsky <Paul.Sokolovsky@technologist.com>
+
+ * ldlang.c (load_symbols): Give emulation a chance
+ to process unrecognized file before fatal error is
+ reported, not after.
+
+2001-04-27 Sean McNeil <sean@mcneil.com>
+
+ * configure.tgt: Add arm-vxworks target.
+ * scripttempl/armcoff.sc: Support .text or .data as a section name
+ prefix.
+ Define _etext.
+
+2001-04-13 J.T. Conklin <jtc@redback.com>
+
+ * ld.texinfo: Document --fatal-warnings.
+ * ld.1: Regenerate.
+
+ * ldmisc.c (vfinfo): Set flag to inhibit making executable if
+ warnings have been turned into errors.
+ * lexsup.c (OPTION_WARN_FATAL): Define.
+ (ld_options): Entry for --fatal-warnings.
+ (parse_args): Handle OPTION_WARN_FATAL.
+ * ld.h (ld_config_type): Add fatal_warnings field.
+
+2001-04-13 Jakub Jelinek <jakub@redhat.com>
+
+ * ldmain.c (main): Default to discard_sec_merge.
+ * lexsup.c (OPTION_DISCARD_NONE): Define.
+ (ld_options): Add --discard-none.
+ (parse_args): Handle OPTION_DISCARD_NONE.
+ * ldlang.c (wild_doit): SEC_MERGE should be set in the output
+ section only if SEC_MERGE and SEC_STRINGS flags and entsize of
+ all its input sections match.
+
+2001-04-05 Steven J. Hill <sjhill@cotw.com>
+
+ * Makefile.am (ALL_EMULATIONS): Add eelf32ltsmip.o.
+ (ALL_64_EMULATIONS): Add eelf64btsmip.o and eelf64ltsmip.o.
+ (eelf32ltsmip.c): New target.
+ (eelf64btsmip.c): Likewise.
+ (eelf64ltsmip.c): Likewise.
+ * Makefile.in: Regenerated.
+
+ * configure.tgt (mips*el-*-linux-gnu): Uses traditional MIPS
+ target.
+ (mips*-*-linux-gnu*): Likewise.
+
+ * emulparams/elf32ltsmip.sh: New. Traditional little endian
+ MIPS taget.
+ * emulparams/elf64btsmip.sh: New. Traditional 64bit big endian
+ target.
+ * emulparams/elf64ltsmip.sh: New. Traditional 64bit little
+ endian target.
+
+2001-04-05 Hans-Peter Nilsson <hp@axis.com>
+
+ * emulparams/criself.sh (EXECUTABLE_SYMBOLS): Cannot provide
+ correct value of __Stext here.
+ (TEXT_START_SYMBOLS): Define; always define __Stext, to start of
+ .startup section.
+
+ * emulparams/crislinux.sh: Remove FIXME.
+
+2001-04-02 Alan Modra <alan@linuxcare.com.au>
+
+ * emulparams/hppalinux.sh (MAXPAGESIZE): Set to 64k.
+ (TEXT_START_ADDR, TARGET_PAGE_SIZE): Likewise.
+
+2001-03-27 Hans-Peter Nilsson <hp@axis.com>
+
+ * configure.tgt (cris-*-*): Change default emulation to criself.
+ (cris-*-*aout*): New rule.
+
+2001-03-27 Matthew Wilcox <willy@ldl.fc.hp.com>
+
+ * emulparams/hppalinux.sh (MAXPAGESIZE): Set to 0x4000.
+ (TEXT_START_ADDR, TARGET_PAGE_SIZE): Ditto.
+
+2001-03-26 Andreas Jaeger <aj@suse.de>
+
+ * ld.texinfo (Overview): Fix syntax in texi code.
+
+2001-03-25 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * ld.texinfo: Put @c man indications to generate the ld man page.
+ When generating man, define all the variables. Define SEEALSO
+ and SYNOPSIS. Re-organize some lines to avoid the cross references.
+ * Makefile.am (MANCONF, TEXI2POD, POD2MAN): New variables.
+ (ld.1): Generate from ld.texinfo.
+ * Makefile.in: Regenerate.
+
+2001-03-23 Mark Elbrecht <snowball3@bigfoot.com>
+
+ * scripttempl/i386go32.sc: Support the GCC flags '-ffunction-sections'
+ and '-fdata-sections'. Set the VMA of STABS sections to zero.
+
+2001-03-17 Ulrich Drepper <drepper@redhat.com>
+
+ * emultmpl/elf32.em (gld${EMULATION_NAME}_search_needed): If NAME
+ is an absolute path look only for this file and not along the path.
+
+2001-03-17 Ulrich Drepper <drepper@redhat.com>
+
+ * emultempl/elf32.em (OPTION_GROUP): New macro.
+ Add new option Bgroup to longopts.
+ (gld*_parse_args): Handle GROUP_OPTION and recognize -z defs.
+ (gld*_list_options): Add -Bgroup and -z defs.
+ * ld.1: Document -Bgroup and -z defs.
+ * ld.texinfo: Likewise.
+
+2001-03-07 Michael Meissner <meissner@redhat.com>
+
+ * scripttempl/elfd10v.sc (.rodata,.rodata1,.data1,.sdata): Deal
+ with sections created by -fdata-sections.
+ (.dynbss,.bss): Ditto.
+
+2001-03-05 Alan Modra <alan@linuxcare.com.au>
+
+ * emultempl/m68kelf.em (m68k_elf_after_allocation): Call
+ after_allocation_default, not gld..._before_allocation.
+
+2001-02-27 Alan Modra <alan@linuxcare.com.au>
+
+ * configure.in (BFD_VERSION): New.
+ (AM_INIT_AUTOMAKE): Use $BFD_VERSION.
+ * configure: Regenerate.
+ * Makefile.am: Run "make dep-am"
+ * Makefile.in: Regenerate.
+
+2001-02-26 Timothy Wall <twall@cygnus.com>
+
+ * emulparams/elf64_aix.sh: Add additional read-only sections;
+ uncomment lines which are now required.
+
+2001-02-26 H.J. Lu <hjl@gnu.org>
+
+ * ldlang.c (open_input_bfds): Set the bfd error handler so
+ that problems can be caught whilst loading symbols.
+ (record_bfd_errors): New function: Report BFD errors and mark
+ the executable output as being invalid.
+
+2001-02-22 Timothy Wall <twall@cygnus.com>
+
+ * configure.host: Add configuration for ia64-*-aix*.
+ * Makefile.am (ALL_64_EMULATIONS): Add emulation for ia64-*-aix*.
+ Add dependencies for eelf64_aix.c.
+ * Makefile.in: Regenerate.
+ * configure.tgt: Add ia64-*-aix* mapping.
+ * emulparams/elf64_aix.sh: Add settings for elf64 on aix5.
+
+2001-02-20 H.J. Lu <hjl@gnu.org>
+
+ * ldfile.c (ldfile_open_file): Set entry->search_dirs_flag to
+ false if we found the file.
+
+2001-02-18 David O'Brien <obrien@FreeBSD.org>
+
+ * configure.tgt: Add FreeBSD/Alpha, FreeBSD/x86-64, FreeBSD/ia64,
+ FreeBSD/PowerPC, FreeBSD/arm, and FreeBSD/sparc64 entries.
+
+2001-02-18 lars brinkhoff <lars@nocrew.org>
+
+ * Makefile.am: Add PDP-11 target.
+ * configure.tgt: Likewise.
+ * emulparams/pdp11.sh: New file.
+
+2001-02-17 David O'Brien <obrien@FreeBSD.org>
+
+ * configure.host: Add a generic FreeBSD configuration entry such that
+ all [modern] FreeBSD systems on all platforms will look the same.
+
+2001-02-14 H.J. Lu <hjl@gnu.org>
+
+ * configure.tgt: Remove mention of earmelf_linux26.
+
+2001-02-13 Richard Henderson <rth@redhat.com>
+
+ * emulparams/elf64_ia64.sh (OTHER_GOT_SYMBOLS): Remove.
+
+2001-02-13 H.J. Lu <hjl@gnu.org>
+
+ * ldexp.h (node_type): Add etree_provided.
+ * ldexp.c (exp_fold_tree): Handle etree_provided. Set the node
+ type to etree_provided if defined by PROVIDE. Allow updating
+ for etree_provided.
+ (exp_print_tree): Handle etree_provided.
+ * mpw-elfmips.c (gldelf32ebmip_find_exp_assignment): Handle
+ etree_provided.
+
+2001-02-09 David Mosberger <davidm@hpl.hp.com>
+
+ * emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Add
+ .IA_64.unwind.* pattern to unwind table section and
+ .IA_64.unwind_info* pattern to unwind info section.
+
+2001-02-09 Martin Schwidefsky <schwidefsky@de.ibm.com>
+
+ * Makefile.am: Add linux target for S/390.
+ * Makefile.in: Likewise.
+ * configure.host: Likewise.
+ * configure.tgt: Likewise.
+ * emulparams/elf64_s390.sh: New file.
+ * emulparams/elf_s390.sh: New file.
+
+2001-02-09 Jakub Jelinek <jakub@redhat.com>
+
+ * configure.tgt (sparc64-*-linux-gnu*): Add elf32_sparc into
+ targ_extra_libpath.
+ (sparc-*-linux-gnu*): Add elf64_sparc into targ_extra_libpath.
+
+2001-02-06 Philip Blundell <philb@gnu.org>
+
+ * Makefile.am: Remove mention of earmelf_linux26.
+ * Makefile.in: Regenerate.
+
+2001-02-04 Philip Blundell <philb@gnu.org>
+
+ * emulparams/armelf_linux.sh (TEXT_START_ADDR): Set to 0x8000.
+ * emulparams/armelf_linux26.sh: Delete.
+ * configure.tgt: Remove mention of armelf_linux26 emulation.
+
+2001-02-01 Nick Clifton <nickc@redhat.com>
+
+ * ld.1: Replace occurances of -oformat with --oformat.
+
+2001-01-25 Jim Driftmyer <jdrift@stny.rr.com>
+
+ * ldlang.c (lang_leave_overlay): Don't set lma_region when
+ load_base is specified.
+
+2001-01-24 Hans-Peter Nilsson <hp@axis.com>
+
+ * emultempl/elf32.em: Correct spelling in comments and listed
+ options.
+
+2001-01-23 Alan Modra <alan@linuxcare.com.au>
+
+ * ldlang.c (lang_leave_overlay): Only set lma_region from the
+ default for the first section of a group of overlay sections.
+
+2001-01-22 Alan Modra <alan@linuxcare.com.au>
+
+ * Makefile.am (GENSCRIPTS): Pass exec_prefix.
+ * Makefile.in: Regenerate.
+ * genscripts.sh: Use exec_prefix parameter to specify tool lib.
+ Check for null tool_dir.
+
+2001-01-16 Jim Wilson <wilson@redhat.com>
+
+ * emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Add IA_64.unwind
+ and IA_64.unwind.info.
+
+2001-01-16 H.J. Lu <hjl@gnu.org>
+
+ * ldlang.c (lang_check): Merge the private data only if the
+ input file has contents.
+
+2001-01-14 Alan Modra <alan@linuxcare.com.au>
+
+ * emulparams/hppalinux.sh (OUTPUT_FORMAT): Set to elf32-hppa-linux.
+
+ * emultempl/hppaelf.em (hppaelf_after_parse): New function,
+ enabling search for libmilli. On a relocatable link, make .text
+ sections unique.
+ (LDEMUL_AFTER_PARSE): Define.
+ (hppaelf_finish): Correct spelling of relocatable in comments.
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
+ rummage through the script for sections on the unique list.
+ Correct length of strncmp for ".note".
+ (gld${EMULATION_NAME}_check_needed): Rearrange function.
+
+ * ldlang.c (unique_section_list): New var.
+ (unique_section_p): New function.
+ (walk_wild_section): Don't match sections on unique_section_list.
+ (lang_add_unique): New function.
+ Correct spelling of relocatable in comments.
+
+ * ldlang.h (struct unique_sections): Declare.
+ (unique_section_list): Declare.
+ (unique_section_p): Declare.
+ (lang_add_unique): Declare.
+
+ * lexsup.c (ld_options): Allow --unique to take an optional arg.
+ (parse_args [OPTION_UNIQUE]): Call lang_add_unique.
+
+ * ld.texinfo (--unique): Update.
+
+2001-01-13 Nick Clifton <nickc@redhat.com>
+
+ * lexsup.c (parse_args): Remove spurious white space.
+
+2001-01-12 Nick Clifton <nickc@redhat.com>
+
+ * lexsup.c (parse_args): Update copyright date.
+
+2001-01-12 Philip Blundell <pb@futuretv.com>
+
+ * configure.host: Set HOSTING_LIBS appropriately for ix86-cygwin.
+
+2001-01-10 Kazu Hirata <kazu@hxi.com>
+
+ * scripttempl/h8300.sc: Fix formatting. Fix a comment typo.
+ * scripttempl/h8300h.sc: Fix formatting.
+ * scripttempl/h8300s.sc: Likewise.
+ * scripttempl/h8500.sc: Likewise.
+ * scripttempl/h8500b.sc: Likewise.
+ * scripttempl/h8500c.sc: Likewise.
+ * scripttempl/h8500m.sc: Likewise.
+ * scripttempl/h8500s.sc: Likewise.
+
+2000-01-07 David O'Brien <obrien@BSDi.com>
+
+ * emultempl/elf32.em: Only perform Linux ld hints processing when
+ targeting Linux.
+
+2001-01-07 Philip Blundell <philb@gnu.org>
+
+ * ld.texinfo (Bug Reporting): Update email address for reports.
+
+2000-12-31 Nick Clifton <nickc@redhat.com>
+
+ * lexsup.c (parse_args): Set opterr to 0 and detect unparsed long
+ options by checking for a return value of '?' not -1.
+
+2000-12-28 Nick Clifton <nickc@redhat.com>
+
+ * lexsup.c (struct ld_option): Add new enum value:
+ EXACTLY_TWO_DASHES.
+ (ld_options[]): Change -omagic, -output and -oformat options
+ to be EXACTLY_TWO_DASHES.
+ (OUTPUT_COUNT): Use ARRAY_SIZE.
+ (parse_args): Change parameter 'argc' to unsigned.
+ Place EXACTLY_TWO_DASHES options into new really_longopts
+ array.
+ If getopt_long_only fails, try calling getopt_long using the
+ really_longopts array.
+ (help): Print a double dash for both EXACTLY_TWO_DASHES and
+ TWO_DASHES options.
+
+ * ldlex.h: Fix prototype of parse_args.
+
+ * ld.texinfo: Document that long options starting with 'o'
+ must be preceeded by two dashes. Change example of a single
+ dashed long option from -oformat to -trace-symbol.
+
+2000-12-26 Danny Smith <danny_r_smith_2001@yahoo.co.nz>
+
+ * emultempl/pe.em (OPTION_NO_DEFAULT_EXCLUDES): Define.
+ (longopts[]): New --no-default-excludes option.
+ (gld_${EMULATION_NAME}_list_options): Document.
+ (gld_${EMULATION_NAME}_parse_args): Handle.
+
+2000-12-13 Michael Sokolov <msokolov@ivan.Harhan.ORG>
+
+ * ldlang.c (new_stat): Revert the last beautification with "innocent"
+ whitespace, it breaks the K&R C preprocessor.
+
+2000-12-11 DJ Delorie <dj@redhat.com>
+
+ * ld.texinfo: Add notes about --whole-archive and gcc.
+
+2000-11-18 Fred Fish <fnf@be.com>
+
+ * lexsup.c (OPTION_ALLOW_SHLIB_UNDEFINED): Define.
+ (ld_options): Entry for --allow-shlib-undefined.
+ (parse_args): Handle OPTION_ALLOW_SHLIB_UNDEFINED.
+ * ldmain.c (main): Initialize link_info.allow_shlib_undefined
+ to false.
+ * ld.texinfo: Document new command line switch.
+
+2000-12-12 Geoffrey Keating <geoffk@redhat.com>
+
+ * emulparams/elf32ppc.sh (OTHER_READWRITE_SECTIONS):
+ .fixup is actually read/write.
+ * emulparams/elf32lppc.sh (OTHER_READWRITE_SECTIONS): Likewise.
+ * emulparams/elf32ppcsim.sh (OTHER_READWRITE_SECTIONS): Likewise.
+ * emulparams/elf32lppcsim.sh (OTHER_READWRITE_SECTIONS): Likewise.
+
+2000-12-11 Jan Hubicka <jh@suse.cz>
+
+ * NEWS: Add note about x86_64 architecture.
+
+2000-12-06 Mark Elbrecht <snowball3@bigfoot.com>
+
+ * scripttempl/i386go32.sc: Use PROVIDE with _etext, _edata, _end.
+ Set DWARF2 sections to a VMA of zero.
+
+2000-12-01 Joel Sherrill <joel@OARcorp.com>
+
+ * configure.tgt (arm-*-rtems*, a29k-*rtems*, h8300-*-rtems*):
+ New targets.
+ (sparc*-*-rtemself*, sparc*-*-rtemsaout*): New targets.
+ (sparc*-*-rtems*): Switched from a.out to ELF.
+
+2000-11-30 Jan Hubicka <jh@suse.cz>
+
+ * Makefile.am (ALL_EMULATIONS): Add eelf_x86_64.o
+ (eelf_x86_64.c): New.
+ * Makefile.in: Regenerate.
+ * configure.tgt: Add support for x86_64-*-linux-gnu*.
+ * emulparams/elf_x86_64.sh: New.
+
+2000-11-30 Hans-Peter Nilsson <hp@axis.com>
+
+ * emulparams/crislinux.sh (ENTRY): Change back to _start.
+ (TEXT_START_SYMBOLS): Remove conditional setting of __start.
+
+ * scripttempl/crisaout.sc: Change all RELOCATING not related to
+ merging non-a.out sections into CONSTRUCTING.
+
+2000-11-28 Nick Clifton <nickc@redhat.com>
+
+ * ld.1 (COPYING): Mention that the GNU Free Documentation
+ License is present in the sources, but not the output, and
+ also available from the GNU website.
+ (GNU Free Documentation License): Comment out this section.
+
+2000-11-28 David O'Brien <obrien@dragon.nuxi.com>
+
+ * emulparams/elf64alpha.sh (ENTRY): Remove leading underscore as ELF
+ does not use them.
+
+2000-11-25 David O'Brien <obrien@FreeBSD.org>
+
+ * ld.1: Remove old date so it does not give the impression the manpage
+ is way out of date.
+
+2000-11-24 Nick Clifton <nickc@redhat.com>
+
+ * configure.tgt (xscale-coff): Add target.
+ (xscale-elf): Add target.
+
+2000-11-24 Fred Fish <fnf@be.com>
+
+ * ldmain.c (main): Remove redundant init of config.make_executable
+ to true.
+
+2000-11-15 Richard Henderson <rth@redhat.com>
+
+ * emulparams/elf64alpha.sh (MAXPAGESIZE): Typo -- 64k, not 1M.
+
+2000-11-14 Kazu Hirata <kazu@hxi.com>
+
+ * scripttempl/h8300.sc: Fix formatting.
+ * scripttempl/h8300h.sc: Likewise.
+ * scripttempl/h8300s.sc: Likewise.
+
+2000-11-14 Denis Chertykov <denisc@overta.ru>
+
+ * scripttempl/elf32avr.sc: Fix bug in .eeprom segment.
+
+2000-11-09 Philip Blundell <pb@futuretv.com>
+
+ * emultempl/pe.em: Define ___start_SECNAME and ___stop_SECNAME
+ around orphan sections whose names can be represented in C.
+
+2000-11-07 Jim Wilson <wilson@redhat.com>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): New local
+ hold_sdata. If SEC_SMALL_DATA set, set place to hold_sdata.
+
+2000-11-06 Nick Clifton <nickc@redhat.com>
+
+ * ld.texinfo: Add GNU Free Documentation License.
+ * ldint.texinfo: Add GNU Free Documentation License.
+ * ld.1: Add GNU Free Documentation License.
+
+2000-11-05 Alan Modra <alan@linuxcare.com.au>
+
+ * ldlex.l (yy_create_string_buffer): Init yy_is_our_buffer,
+ yy_is_interactive, yy_at_bol, and yy_fill_buffer.
+
+ * Makefile.am (DISTCLEANFILES): Add stringify.sed.
+ Move 2000-11-02 Makefile.in changes to this file.
+ * Makefile.in: Regenerate.
+
+2000-11-03 Nick Clifton <nickc@redhat.com>
+
+ * scripttempl/h8300.sc: Use ${CONSTRUCTING...} to enclose
+ constructors and destructors.
+ * scripttempl/h8300h.sc: Ditto.
+ * scripttempl/h8300s.sc: Ditto.
+ * scripttempl/h8500.sc: Ditto.
+ * scripttempl/h8500b.sc: Ditto.
+ * scripttempl/h8500c.sc: Ditto.
+ * scripttempl/h8500m.sc: Ditto.
+ * scripttempl/h8500s.sc: Ditto.
+ * scripttempl/v850.sc: Ditto.
+ * scripttempl/w65.sc: Ditto.
+ * scripttempl/z8000.sc: Ditto.
+
+2000-11-02 Per Lundberg <plundis@chaosdev.org>
+
+ * Makefile.in (e_i386_chaos.c): New rule.
+ (ALL_EMULATIONS): Added e_i386_chaos.o.
+ * emulparams/elf_i386_chaos.sh: New file.
+ * configure.tgt: Recognise i[3456]86-chaosdev-storm-chaos.
+
+2000-10-20 Jakub Jelinek <jakub@redhat.com>
+
+ * emulparams/elf64_sparc.sh (TEXT_START_ADDR,
+ NONPAGED_TEXT_START_ADDR): Set to 4GB for Solaris targets.
+ Fix sed invocation, so that it coped with '/' in Solaris 64bit
+ library path suffix.
+ Based on patch by Andrew Macleod <amacleod@cygnus.com>.
+
+2000-10-18 Hans-Peter Nilsson <hp@axis.com>
+
+ * scripttempl/crisaout.sc (.text, .data): Pad, with ALIGN (32),
+ for consecutive sections.
+
+2000-10-17 Chandrakala Chavva <cchavva@redhat.com>
+
+ * lexsup.c: New option OPTION_TARGET_HELP. Prints all target specific
+ options.
+ * ld.texinfo: Added notes about this new option.
+
+2000-10-16 Nick Clifton <nickc@redhat.com>
+
+ * emultempl/pe.em (_after_open): Add tests of return values from
+ bfd functions. Emit appropriate error messages if necessary.
+
+2000-10-13 Nick Clifton <nickc@redhat.com>
+
+ * emultempl/pe.em (_after_open): Delete 'is2' and 'nsyms'
+ local variables - they are not used, but leave in the call to
+ bfd_canonicalize_symtab.
+ (_open_dynamic_archive): Add #ifdef DLL_SUPPORT around use of
+ pe_dll_search_prefix.
+
+2000-10-12 Charles Wilson <cwilson@ece.gatech.edu>
+
+ * emultempl/pe.em (pe_dll_search_prefix): New variable,
+ (longopts): New --dll-search-prefix option.
+ (gld_${EMULATION_NAME}_list_options): Document.
+ (gld_${EMULATION_NAME}_parse_args): Handle.
+ (gld_${EMULATION_NAME}_open_dynamic_archive): When linking
+ dynamically, search for a dll named '<prefix><basename>.dll'
+ in preference to 'lib<basename>.dll' if --dll-search-prefix
+ is specified.
+
+2000-10-12 Alan Modra <alan@linuxcare.com.au>
+
+ * ldlang.c (section_already_linked): Set kept_section instead of
+ sec->comdat->sec.
+
+2000-10-10 Kazu Hirata <kazu@hxi.com>
+
+ * deffile.h: Fix formatting.
+ * lexsup.c: Likewise.
+ * mri.c: Likewise.
+
+2000-10-09 Paul Sokolovsky <Paul.Sokolovsky@technologist.com>
+
+ * pe-dll.c (make_one): Do not generate code thunk for DATA
+ exports.
+ (process_def_file): deduce DATA flag for auto-export sumbols.
+
+2000-10-09 Kazu Hirata <kazu@hxi.com>
+
+ * ld.h: Fix formatting.
+ * ldcref.c: Likewise.
+ * ldctor.h: Likewise.
+ * ldemul.c: Likewise.
+ * ldemul.h: Likewise.
+ * ldexp.c: Likewise.
+ * ldexp.h: Likewise.
+ * ldfile.c: Likewise.
+ * ldfile.h: Likewise.
+ * ldlang.c: Likewise.
+ * ldlang.h: Likewise.
+ * ldmain.c: Likewise.
+ * pe-dll.c: Likewise.
+
+ * pe-dll.c: Revert some formatting fixes.
+
+2000-10-08 Kazu Hirata <kazu@hxi.com>
+
+ * pe-dll.c: Fix formatting.
+
+2000-10-05 Kazu Hirata <kazu@hxi.com>
+
+ * ldlang.c: Fix formatting.
+
+2000-10-03 DJ Delorie <dj@redhat.com>
+
+ * pe-dll.c (fill_edata): initialize entire block
+ (make_one): fill in correct section.
+
+2000-10-03 Kazu Hirata <kazu@hxi.com>
+
+ * ldexp.c: Fix formatting.
+
+2000-10-02 DJ Delorie <dj@redhat.com>
+
+ * emultempl/pe.em (gld_*_after_open): detect case where there two
+ import libraries for same dll; rename one to ensure proper link
+ order.
+
+ * pe-dll.c (process_def_file): compare ordinals to -1, not 0; fix
+ typo
+ (generate_edata): fix typo
+
+2000-09-29 Hans-Peter Nilsson <hp@axis.com>
+
+ * scripttempl/crisaout.sc (ENTRY): Now __start.
+ (.text): Add default setting for __start.
+ Remove CONSTRUCTORS handling.
+ (/DISCARD/): Add .gnu.warning.*.
+ * emulparams/crislinux.sh (ENTRY): Now __start.
+ (TEXT_START_SYMBOLS): New; provide __Stext and __start default.
+ * emulparams/criself.sh (OUTPUT_FORMAT): Now elf32-us-cris.
+ (ENTRY): Now __start.
+ (INITIAL_READONLY_SECTIONS): Add KEEP for .startup.
+ (EXECUTABLE_SYMBOLS): Add default setting for __start.
+
+2000-09-29 Kazu Hirata <kazu@hxi.com>
+
+ * deffile.h: Fix formatting.
+ * ld.h: Likewise.
+ * ldcref.c: Likewise.
+ * ldctor.c: Likewise.
+ * ldctor.h: Likewise.
+ * ldemul.c: Likewise.
+ * ldemul.h: Likewise.
+ * ldexp.c: Likewise.
+ * ldexp.h: Likewise.
+ * ldfile.c: Likewise.
+ * ldfile.h: Likewise.
+ * ldlang.c: Likewise.
+ * ldlang.h: Likewise.
+ * lexsup.c: Likewise.
+ * mri.c: Likewise.
+ * pe-dll.c: Likewise.
+
+2000-09-28 Paul Sokolovsky <Paul.Sokolovsky@technologist.com>
+
+ * pe-dll.c (process_def_file): Uninitialized data wasn't
+ exported with --export-all-symbols switch.
+
+2000-09-28 DJ Delorie <dj@redhat.com>
+
+ * pe-dll.c (fill_edata): rearrange the data so that ordinals and
+ noname work properly.
+
+2000-09-28 Alan Modra <alan@linuxcare.com.au>
+
+ * ld.texinfo (HPPA ELF32): New section.
+
+ * emultempl/hppaelf.em (group_size): New.
+ (hppaelf_finish): Pass group_size to elf32_hppa_size_stubs.
+ (PARSE_AND_LIST_PROLOGUE): Add OPTION_STUBGROUP_SIZE.
+ (PARSE_AND_LIST_LONGOPTS): Add --stub-group-size. Duplicate
+ options to prevent abbreviations matching.
+ (PARSE_AND_LIST_OPTIONS): Describe the above. Reformat.
+ (PARSE_AND_LIST_ARGS_CASES): Handle it.
+
+2000-09-21 Michael Sokolov <msokolov@ivan.Harhan.ORG>
+
+ * emultempl/m68kelf.em: Conditionalise the embedded relocs feature
+ on the m68*-*-elf target. Make it support COFF input objects.
+
+2000-09-21 Kazu Hirata <kazu@hxi.com>
+
+ * ldmain.c: Fix formatting.
+ * ldmisc.c: Likewise.
+ * ldver.c: Likewise.
+ * ldwrite.c: Likewise.
+
+2000-09-21 Alan Modra <alan@linuxcare.com.au>
+
+ * ldwrite.c (clone_section): Silence gcc warnings.
+
+2000-09-20 Alan Modra <alan@linuxcare.com.au>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Handle
+ out of memory failure.
+
+ * ldwrite.c (ldwrite): Remove unnecessary einfo arg.
+ (clone_section): Handle out of memory failures. Rename var to
+ avoid c++ reserved word.
+
+2000-09-18 Alan Modra <alan@linuxcare.com.au>
+
+ * emultempl/hppaelf.em (hppaelf_add_stub_section): Rename
+ stub_name param to stub_sec_name.
+ (hppaelf_finish): Modify call to elf32_hppa_size_stubs.
+
+2000-09-10 Michael Sokolov <msokolov@ivan.Harhan.ORG>
+
+ * emultempl/m68kelf.em: New file.
+ * emulparams/m68kelf.sh (EXTRA_EM_FILE): Use it.
+ * Makefile.am (em68kelf.c): Add dependency on m68kelf.em.
+ * Makefile.in: Regenerate.
+
+2000-09-15 Alan Modra <alan@linuxcare.com.au>
+
+ * emulparams/hppalinux.sh (DATA_START_SYMBOLS): Provide $global$
+ only as needed.
+
+2000-09-13 Nick Clifton <nickc@redhat.com>
+
+ * ldmain.c (multiple_definition): Disable relaxation if
+ multiple symbol definitions are encountered - otherwise the
+ linker could abort with an assertion failure.
+
+2000-09-10 Nick Clifton <nickc@redhat.com>
+
+ * mri.c: Fix formatting.
+
+2000-09-07 H.J. Lu <hjl@gnu.org>
+
+ * configure.in (AC_ISC_POSIX): Put after AC_CANONICAL_SYSTEM.
+ * configure: Rebuild.
+
+2000-09-07 H.J. Lu <hjl@gnu.org>
+
+ * Makefile.am (lexsup.o): Also depend on $(INCDIR)/demangle.h.
+ * Makefile.in: Rebuild.
+
+2000-09-07 Alan Modra <alan@linuxcare.com.au>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Fix
+ broken list handling. Create __start_SECNAME and __stop_SECNAME
+ when no place-holder. Add some comments. Test both SEC_CODE and
+ SEC_READONLY for hold_text to prevent .rodata orphan poisoning.
+ Handle case where no output section statement created.
+
+2000-09-07 Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>, Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.tgt (sh-*-linux*): Added.
+ * Makefile.am: Added eshelf_linux and eshlelf_linux.
+ * Makefile.in: Rebuilt.
+ * emulparams/shelf_linux.sh: New file.
+ * emulparams/shlelf_linux.sh: New file.
+
+2000-09-06 Alan Modra <alan@linuxcare.com.au>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
+ try shuffling sections when the orphan happens to be the place
+ holder. Keep count of unique section names generated so we speed
+ the search for a new name.
+
+2000-09-06 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure: Rebuilt with new libtool.m4.
+
+2000-09-05 Nick Clifton <nickc@redhat.com>
+
+ * Makefile.in: Regenerate.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+ * po/ld.pot: Regenerate.
+
+ * ldint.texinfo: Remove CVS revision marker - it foils local
+ comparisons.
+
+ * emultempl/ticoff.em: Remove extraneous comma.
+
+2000-09-05 Alan Modra <alan@linuxcare.com.au>
+
+ * emultempl/hppaelf.em (hppaelf_add_stub_section): Add SEC_RELOC
+ to stub section flags.
+ (hppa_for_each_input_file_wrapper): New.
+ (hppa_lang_for_each_input_file): New.
+ (lang_for_each_input_file): Define to call above.
+ (multi_subspace): New.
+ (hppaelf_finish): Pass multi_subspace to elf32_hppa_size_stubs.
+ (PARSE_AND_LIST_PROLOGUE): Define.
+ (PARSE_AND_LIST_LONGOPTS): Define.
+ (PARSE_AND_LIST_OPTIONS): Define.
+ (PARSE_AND_LIST_ARGS_CASES): Define.
+ (hppaelf_finish): Call elf32_hppa_set_gp.
+ (hppaelf_set_output_arch): Remove.
+ (LDEMUL_SET_OUTPUT_ARCH): Remove.
+
+ * emulparams/hppalinux.sh (ELFSIZE): Define.
+ (MACHINE): Define.
+ (OTHER_READONLY_SECTIONS): Define.
+ (DATA_PLT): Define.
+ (GENERATE_SHLIB_SCRIPT): Define.
+
+ * ldlang.c: Add missing prototypes, and tidy others. Change CONST
+ to const throughout. Change `void *' to `PTR' throughout.
+ (lang_memory_default): Function is local to file, add `static'.
+
+ * Makefile.am (ehppaelf.c): Depend on emultempl/elf32.em.
+ (ehppalinux.c): Likewise.
+ (earmelf.c): Likewise.
+ (earmelf_linux.c): Likewise.
+ (earmelf_linux26.c): Likewise.
+ * Makefile.in: Regenerate.
+
+ * ld.h (ld_config_type): Add unique_orphan_sections.
+ * lexsup.c (OPTION_UNIQUE): Define.
+ (ld_options): Add "--unique".
+ (parse_args): Handle it.
+ * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
+ search for an existing output section if unique_orphan_sections is
+ set. Make use of bfd_get_unique_section_name rather than
+ duplicating code here.
+ * ld.texinfo: Describe --unique.
+
+ * lexsup.c (ld_options): Make split-by-reloc arg optional. Add
+ optional arg to split-by-file.
+ (parse_args): Handle them.
+ * ld.texinfo: Update description of these options.
+ * ldwrite.c (clone_section): Pass in the section name. Replace
+ local code with bfd_get_unique_section_name.
+ (split_sections): Tidy code and comments. Use a list traversal
+ more appropriate to the list construction. Handle cooked section
+ sizes. Split when split_by_reloc reached rather than exceeded.
+ Track section size and split when split_by_file reached. Fix
+ link_order_tail (even though it's not used).
+ (ldwrite): Modify condition for calling split_sections to suit
+ changed split_by_reloc and split_by_file.
+ * ldmain.c (main): Init config.split_by_reloc and
+ config.split_by_file to -1.
+ * ld.h (ld_config_type): Change split_by_reloc to unsigned.
+ Change split_by_file to bfd_size_type.
+
+2000-09-02 Nick Clifton <nickc@redhat.com>
+
+ * configure.in: Increase version number to 2.10.91.
+ * NEWS: Mention new ability to support removal of duplicate DWARF2
+ debug information.
+ * configure: Regenerate.
+ * aclocal.m4: Regenerate.
+ * config.in: Regenerate.
+
+2000-09-02 Daniel Berlin <dberlin@redhat.com>
+
+ * scripttempl/elf.sc: Add .gnu.linkonce.wi.* to .debug_info
+ sections.
+ * scripttempl/elf32avr.sc: Ditto.
+ * scripttempl/elfd10v.sc: Ditto.
+ * scripttempl/elfd30v.sc: Ditto.
+ * scripttempl/elfi370.sc: Ditto.
+ * scripttempl/elfm68hc11.sc: Ditto.
+ * scripttempl/elfm68hc12.sc: Ditto.
+ * scripttempl/elfi386beos.sc: Ditto.
+ * scripttempl/v850.sc: Ditto.
+
+2000-08-31 Alexandre Oliva <aoliva@redhat.com>
+
+ * acinclude.m4: Include libtool and gettext macros from the
+ top level.
+ * aclocal.m4, configure: Rebuilt.
+
+2000-08-25 Nick Clifton <nickc@redhat.com>
+
+ * ldlang.c (open_output): When choosing the target for a
+ particular endianness, do nothing if the target is not
+ supported.
+
+2000-08-25 H.J. Lu <hjl@gnu.org>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Don't
+ check -rpath nor LD_RUN_PATH for cross link.
+ * ld.texinfo: Document the change.
+
+2000-08-24 Hans-Peter Nilsson <hp@axis.com>
+
+ * NEWS: Mention support for CRIS.
+
+2000-08-23 H.J. Lu <hjl@gnu.org>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Get
+ the current runpath list from bfd_elf_get_runpath_list ()
+ before search.
+
+2000-08-22 H.J. Lu <hjl@gnu.org>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Search
+ the DT_RPATH/DT_RUNPATH entries for DT_NEEDED after
+ LD_LIBRARY_PATH for native linker. Display the needed DSO if
+ trace_file_tries is non-zero.
+ (gld${EMULATION_NAME}_try_needed): Report the needed DSO found
+ if trace_file_tries is non-zero.
+
+ * ld.texinfo: Document the usage of DT_RPATH/DT_RUNPATH.
+ * NEWS: Mention it.
+
+2000-08-14 Jason Eckhardt <jle@cygnus.com>
+
+ * NEWS: Mention i860 support.
+
+2000-08-14 Andreas Schwab <schwab@suse.de>
+
+ * scripttempl/elf.sc: Fix last change to use correct comment
+ syntax.
+
+2000-08-10 Geoff Keating <geoffk@cygnus.com>
+
+ * scripttempl/elf.sc: Add a comment giving the correspondence
+ between sections, per-datum sections, and linkonce sections. Make
+ the comment true even for .bss, .sdata, .sdata2, .sbss, and
+ .sbss2.
+
+2000-08-10 Jason Eckhardt <jle@cygnus.com>
+
+ * emulparams/elf32_i860.sh: New file.
+ * configure.tgt: Recognize new target i860-stardent-{sysv4*|elf*}.
+ * Makefile.am (ALL_EMULATIONS): Add eelf32_i860.o.
+ (eelf32_i860.c): New rule.
+ * Makefile.in: Regenerate.
+
+2000-08-10 Nick Clifton <nickc@cygnus.com>
+
+ * emulparams/mipspe.sh (ENTRY): Add definition.
+
+2000-08-08 Peter Jeremy <peter.jeremy@alcatel.com.au>
+
+ * emultempl/elf32.em (_after_close): Refer to -rpath not --rpath
+ in error message.
+
+2000-08-08 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * scripttempl/elfm68hc11.sc: Define __bss_size symbol to indicate
+ the final size of .bss section.
+ * scripttempl/elfm68hc12.sc: Likewise.
+
+2000-08-04 Alan Modra <alan@linuxcare.com.au>
+
+ * emultempl/elf32.em (gld_${EMULATION_NAME}_parse_args): Rename to
+ gld${EMULATION_NAME}_parse_args for consistency. Combine
+ lastoptind and prevoptind vars, and keep track of last optind.
+ (gld_${EMULATION_NAME}_list_options): Rename to
+ gld${EMULATION_NAME}_list_options.
+
+2000-08-03 Rodney Brown <RodneyBrown@pmsc.com>
+
+ * configure.tgt: Select targ_emul=elf_i386 for Unixware 7
+ (i586-sco-sysv5uw7.1.0).
+
+2000-07-27 H.J. Lu <hjl@gnu.org>
+
+ * emulparams/elf64alpha.sh (PARSE_AND_LIST_ARGS): Removed.
+ (PARSE_AND_LIST_PROLOGUE): New.
+ (PARSE_AND_LIST_LONGOPTS): Likewise.
+ (PARSE_AND_LIST_OPTIONS): Likewise.
+ (PARSE_AND_LIST_ARGS_CASES): Likewise.
+ (PARSE_AND_LIST_EPILOGUE): Likewise.
+
+2000-07-28 Alan Modra <alan@linuxcare.com.au>
+
+ * emultempl/armelf.em: Elide functions common to elf32.em,
+ ie. most of the file.
+ (arm_elf_after_open): New. Do arm specific things then call
+ gld${EMULATION_NAME}_after_open.
+ (arm_elf_before_allocation): New. Call
+ gld${EMULATION_NAME}_before_allocation then do arm specifics.
+ (PARSE_AND_LIST_PROLOGUE): Define.
+ (PARSE_AND_LIST_SHORTOPTS): Define.
+ (PARSE_AND_LIST_LONGOPTS): Define.
+ (PARSE_AND_LIST_OPTIONS): Define.
+ (PARSE_AND_LIST_ARGS_CASES): Define.
+ (LDEMUL_AFTER_OPEN): Define.
+ (LDEMUL_BEFORE_ALLOCATION): Define.
+ (LDEMUL_BEFORE_PARSE): Define.
+ (LDEMUL_FINISH): Define.
+
+ * emultempl/hppaelf.em: Similarly zap most of this file.
+ (hppaelf_add_stub_section): Prototype.
+ (hppaelf_layaout_sections_again): Prototype.
+ (hook_in_stub): Prototype.
+ (LDEMUL_SET_OUTPUT_ARCH): Define.
+ (LDEMUL_FINISH): Define.
+ (LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS): Define.
+
+ * emulparams/armelf.sh (TEMPLATE_NAME): Use elf32.
+ (EXTRA_EM_FILE): New.
+ * emulparams/armelf_linux.sh: Likewise.
+ * emulparams/armelf_linux26.sh: Likewise.
+ * emulparams/hppalinux.sh: Likewise.
+ * emulparams/hppaelf.sh: Likewise.
+ (NOP): Define.
+
+ * emultempl/elf32.em: Fix formatting.
+ (EXTRA_EM_FILE): Source it.
+ (LDEMUL_BEFORE_PARSE, LDEMUL_SYSLIB, LDEMUL_HLL,
+ LDEMUL_AFTER_PARSE, LDEMUL_AFTER_OPEN, LDEMUL_AFTER_ALLOCATION,
+ LDEMUL_SET_OUTPUT_ARCH, LDEMUL_CHOOSE_TARGET,
+ LDEMUL_BEFORE_ALLOCATION, LDEMUL_GET_SCRIPT, LDEMUL_FINISH,
+ LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS,
+ LDEMUL_OPEN_DYNAMIC_ARCHIVE, LDEMUL_PLACE_ORPHAN,
+ LDEMUL_SET_SYMBOLS, LDEMUL_PARSE_ARGS, LDEMUL_UNRECOGNIZED_FILE,
+ LDEMUL_LIST_OPTIONS, LDEMUL_RECOGNIZED_FILE,
+ LDEMUL_FIND_POTENTIAL_LIBRARIES): New shell vars. Add code to
+ allow functions in this file to be overridden.
+ (PARSE_AND_LIST_SHORTOPTS): Handle it.
+
+ * emultempl/m68kcoff.em: Include ldfile.h before ldemul.h.
+
+ * emultempl/elf32.em: Reorganize file.
+
+2000-07-27 Ivan Kokshaysky <ink@jurassic.park.msu.ru>
+
+ * emulparams/elf64alpha.sh: Implement "-taso" emulation
+ specific option to fit 64-bit executable in the lower
+ 31-bit address range. This is done by changing start
+ address of .interp (the very first section of executable)
+ and then setting EF_ALPHA_32BIT elf header flag.
+
+2000-07-21 Michael Sokolov <msokolov@ivan.Harhan.ORG>
+
+ * emultempl/m68kcoff.em: New file.
+ * emulparams/m68kcoff.sh (TEMPLATE_NAME): Use m68kcoff template.
+ * Makefile.am (em68kcoff.c): Depend on m68kcoff.em rather than
+ generic.em.
+ * Makefile.in: Regenerate.
+
+2000-07-20 H.J. Lu <hjl@gnu.org>
+
+ * emultempl/elf32.em (longopts): Duplicate "disable-new-dtags"
+ and "disable-new-dtags" to stop getopt from treating -d/-e as
+ abbreviations for these options.
+
+2000-07-20 H.J. Lu <hjl@gnu.org>
+
+ * ld.texinfo: Add documentation for --disable-new-dtags and
+ --enable-new-dtags.
+
+ * ldmain.c (main): Initialize link_info.new_dtags to false.
+
+ * emultempl/elf32.em (gld_${EMULATION_NAME}_parse_args): Add
+ --disable-new-dtags and --enable-new-dtags.
+ (gld_${EMULATION_NAME}_list_options): Likewise.
+
+2000-07-05 Kenneth Block <krblock@computer.org>
+
+ * lexsup.c: Add optional style to demangle switch
+ * ld.texinfo: Document optional style to demangle switch.
+
+2000-07-20 Hans-Peter Nilsson <hp@axis.com>
+
+ * Makefile.am (ALL_EMULATIONS): Add ecrisaout.o, ecriself.o,
+ ecrislinux.o.
+ (ecrisaout.c, ecriself.c, ecrislinux.c): New rules.
+ Regenerate dependencies.
+ * Makefile.in: Rebuild.
+ * configure.tgt (cris-*-*): New target.
+ * emulparams/crisaout.sh, emulparams/criself.sh,
+ emulparams/crislinux.sh, scripttempl/crisaout.sc: New files.
+ * po/POTFILES.in, po/ld.pot: Regenerate.
+
+2000-07-20 H.J. Lu <hjl@gnu.org>
+
+ * emultempl/elf32.em (gld_${EMULATION_NAME}_list_options):
+ Print out ignored -z options.
+
+2000-07-19 H.J. Lu <hjl@gnu.org>
+
+ * emulparams/elf32mcore.sh (PARSE_AND_LIST_ARGS): Removed.
+ (PARSE_AND_LIST_PROLOGUE): New.
+ (PARSE_AND_LIST_LONGOPTS): Likewise.
+ (PARSE_AND_LIST_OPTIONS): Likewise.
+ (PARSE_AND_LIST_ARGS_CASES): Likewise.
+
+ * ldmain.c (main): Clear link_info.flags and link_info.flags_1.
+
+ * lexsup.c (ld_options): Comment out 'z'.
+ (parse_args): Likewise.
+
+ * emultempl/elf32.em: Include "elf/common.h".
+ (gld_${EMULATION_NAME}_parse_args): Defined. Handle some -z
+ options.
+ (gld_${EMULATION_NAME}_list_options): Likewise.
+
+ * ld.texinfo: Add documentation for the recognized -z options.
+
+2000-07-19 H.J. Lu <hjl@gnu.org>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_try_needed): Call
+ bfd_elf_set_dt_needed_soname ().
+
+2000-07-18 DJ Delorie <dj@cygnus.com>
+
+ * pe-dll.c (pe_dll_id_target): check object target name also
+
+2000-07-18 Hans-Peter Nilsson <hp@axis.com>
+
+ * scripttempl/elf.sc (.init): Only do ${INIT_START} and
+ ${INIT_END} if relocating.
+ (.fini): Likewise ${FINI_START} and ${FINI_END}.
+
+2000-07-16 Charles Wilson <cwilson@ece.gatech.edu>
+
+ * emultempl/pe.em (gld_*_open_dynamic_archive): New search
+ order for dynamic library '-lfoo' on pei386: libfoo.dll.a,
+ foo.dll.a, libfoo.a, libfoo.dll, foo.dll. This fixes compatibility
+ errors introduced by the old dynamic lib search order.
+
+2000-07-17 DJ Delorie <dj@cygnus.com>
+
+ * pe-dll.c (process_def_file): auto-export data items also
+ (pe_process_import_defs): also see if _imp_ form needed
+
+2000-07-12 Charles Wilson <cwilson@ece.gatech.edu>
+
+ * pe-dll.c (make_one): fix a typo in the __imp_ name decoration
+ for dll import libraries
+
+2000-07-12 Mark Elbrecht <snowball3@bigfoot.com>
+
+ * scripttempl/i386go32.sc: Support the g++ attribute init_priority in
+ gcc 2.95.2 and later.
+
+2000-07-11 Kazu Hirata <kazu@hxi.com>
+
+ * ldfile.c (ldfile_try_open_bfd): Output '\n' after an error
+ message.
+
+2000-07-10 Alan Modra <alan@linuxcare.com.au>
+
+ * ldemul.h (struct lang_input_statement_struct): Remove forward
+ declaration.
+ (struct search_dirs): Likewise.
+ * ldfile.h (struct lang_input_statement_struct): Likewise.
+ Protect file from multiple inclusion.
+ * ldlang.h (LANG_FOR_EACH_INPUT_STATEMENT): Move file_chain
+ declaration from macro to file scope.
+
+ * ldemul.c: ldexp.h,ldlang.h,ldfile.h,ldemul.h go in this order.
+ * ldgram.y: Likewise here.
+ * ldlang.c: And here.
+ * ldmain.c: And here.
+ * mpw-elfmips.c: And here.
+ * mpw-eppcmac.c: And here.
+ * emultempl/aix.em: And here.
+ * emultempl/armcoff.em: And here.
+ * emultempl/armelf.em: And here.
+ * emultempl/armelf_oabi.em: And here.
+ * emultempl/beos.em: And here.
+ * emultempl/elf32.em: And here.
+ * emultempl/hppaelf.em: And here.
+ * emultempl/linux.em: And here.
+ * emultempl/lnk960.em: And here.
+ * emultempl/pe.em: And here.
+ * emultempl/sunos.em: And here.
+ * mpw-esh.c: And here. Include ldexp.h and ldlang.h too.
+ * mpw-idtmips.c: Ditto.
+ * emultempl/generic.em: Ditto.
+ * emultempl/gld960.em: Ditto.
+ * emultempl/gld960c.em: Ditto.
+ * emultempl/mipsecoff.em: Ditto.
+ * emultempl/ticoff.em: Ditto.
+ * emultempl/vanilla.em: Ditto.
+
+ * pe-dll.c: Include ldfile.h
+ * ldver.c: Include ldexp.h, ldlang.h, ldfile.h
+
+ * mpw-elfmips.c: (gldelf32ebmip_before_allocation): Add missing
+ arguments to bfd_elf32_size_dynamic_sections call.
+ (gldelf32ebmip_place_orphan): Add missing arguments to
+ lang_leave_output_section_statement call.
+
+2000-07-10 H.J. Lu <hjl@gnu.org>
+
+ * emultempl/pe.em (pe_enable_stdcall_fixup): Protect with
+ DLL_SUPPORT.
+ (strhash): Likewise.
+ (compute_dll_image_base): Likewise.
+ (pe_undef_found_sym): Likewise.
+ (pe_undef_cdecl_match): Likewise.
+ (gld_${EMULATION_NAME}_open_dynamic_archive): Mark the
+ argument "arch" with ATTRIBUTE_UNUSED.
+
+2000-07-10 Alan Modra <alan@linuxcare.com.au>
+
+ * configure.tgt: Remove extraneous hppa*-*-linux-gnu*.
+
+ From Ryan Bradetich <rbradetich@uswest.net>
+ * ldwrite.c (SSIZE): Remove to cure macro redefinition warning.
+
+2000-07-09 Alan Modra <alan@linuxcare.com.au>
+
+ Changes to create multiple linker stubs, positioned immediately
+ before the section where they are required.
+ * emultempl/hppaelf.em: Include elf32-hppa.h.
+ (stub_sec, file_chain): Delete.
+ (hppaelf_create_output_section_statements): Don't make a stub
+ section here.
+ (hook_stub_info): New struct.
+ (hook_in_stub): New function.
+ (hppaelf_add_stub_section): New function.
+ (hppaelf_finish): Do nothing for relocateable links. Modify the
+ call to elf32_hppa_size_stubs. Move code for updating section
+ layout from here...
+ (hppaelf_layaout_sections_again): ..to here, a new function.
+
+ * emultempl/hppaelf.em (hppaelf_delete_padding_statements): Fix
+ broken list handling. Pass in a pointer to the list.
+ (hppaelf_finish): Update call to hppaelf_delete_padding_statements
+ for above changes.
+ (hppaelf_before_parse): Prototype.
+ (hppaelf_set_output_arch): Prototype.
+ (hppaelf_create_output_section_statements): Prototype.
+ (hppaelf_delete_padding_statements): Prototype.
+ (hppaelf_finish): Prototype.
+
+ Merge from elf32.em
+ * emultempl/hppaelf.em: Include ctype.h.
+ (struct orphan_save): New.
+ (gld${EMULATION_NAME}_place_orphan): New.
+ (output_rel_find): New.
+ (hppaelf_get_script): Update from elf32.em.
+ (ld_hppaelf_emulation): Rename to ld_${EMULATION_NAME}_emulation.
+ Change emulation_name field to "${EMULATION_NAME}". Add
+ gld${EMULATION_NAME}_place_orphan.
+
+ * Makefile.am (ALL_EMULATIONS): Reinstate ehppaelf.o, add
+ ehppalinux.o, sort it. Regenerate dependencies.
+ (ehppalinux.c): Depend on hppaelf.em
+ * Makefile.in: Regenerate.
+
+ * configure.tgt: targ_emul=hppalinux for hppa*linux
+
+ * emulparams/hppalinux.sh: New.
+ * emulparams/hppaelf.sh (TARGET_PAGE_SIZE): Write in hex.
+
+2000-07-08 Alan Modra <alan@linuxcare.com.au>
+
+ * lexsup.c (parse_args): Copy section name.
+
+2000-07-07 Charles Wilson <cwilson@ece.gatech.edu>
+
+ * emultempl/pe.em: institute the following search order for
+ dynamic libraries on pei386: libfoo.dll.a, foo.dll.a (import
+ libs), libfoo.dll, foo.dll (link direct to dll). Fall back to
+ static lib (libfoo.a) if none of the above are found.
+
+2000-07-07 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * emultempl/pe.em (pe_enable_auto_image_base): New variable.
+ (longopts): New --{enable,disable}-auto-image-base options.
+ (gld_${EMULATION_NAME}_list_options): Document.
+ (gld_${EMULATION_NAME}_parse): Handle.
+ (strhash): New static function.
+ (compute_dll_image_base): New static function.
+ (gld_${EMULATION_NAME}_set_symbols): Use.
+
+2000-07-05 DJ Delorie <dj@redhat.com>
+
+ * MAINTAINERS: new
+
+2000-07-01 Koundinya K <kk@ddeorg.soft.net>
+
+ * configure.tgt: Add traditional mips (mips*-*-sysv4*) target.
+ * emulparams/elf32btsmip.sh: New file.
+ * Makefile.am: Add traditional mips target.
+ * Makefile.in: Rebuild.
+
+2000-07-01 H.J. Lu <hjl@gnu.org>
+
+ * Makefile.am (EXTRA_ld_new_SOURCES): Set to deffilep.y for
+ automake to use YLWRAP.
+ * Makefile.in: Rebuild.
+
+2000-07-01 Alan Modra <alan@linuxcare.com.au>
+
+ * Makefile.am (DEP): Fix 2000-06-22. grep after running dep.sed
+ (CLEANFILES): Add DEPA.
+ * Makefile.in: Regenerate.
+
+2000-06-30 Timothy Wall <twall@ppc>
+
+ * scripttempl/tic54xcoff.sc: PAGE N is not implemented, so encode
+ the page in the upper octet of the address.
+
+2000-06-26 Marek Michalkiewicz <marekm@linux.org.pl>
+
+ * emulparams/avrmega161.sh (ARCH): Change to avr:5.
+
+2000-06-24 Alan Modra <alan@linuxcare.com.au>
+
+ * NEWS: arm-elf does --gc-sections too.
+
+2000-06-22 Alan Modra <alan@linuxcare.com.au>
+
+ * Makefile.am (DEP): grep for leading `/' in DEP1, and fail if we
+ find one.
+ * Makefile.in: Regenerate.
+
+2000-06-21 H.J. Lu <hjl@gnu.org>
+
+ * Makefile.am: Rebuild dependency.
+ * Makefile.in: Rebuild.
+
+2000-06-20 H.J. Lu <hjl@gnu.org>
+
+ * Makefile.am: Rebuild dependency.
+ * Makefile.in: Rebuild.
+
+2000-06-20 Timothy Wall <twall@cygnus.com>
+
+ * scripttempl/tic54xcoff.sc: New.
+ * ldlang.c (wild_doit): Propagate SEC_BLOCK flag.
+ * gen-doc.texi: Add flag for TI COFF.
+ * ld.texinfo: Add documentation for TI COFF handling switches.
+ * emultempl/ticoff.em: New. TI COFF handling.
+ * configure.tgt: Add tic54x target.
+ * Makefile.am: Add tic54x target.
+ * Makefile.in: Ditto.
+
+2000-06-20 Alan Modra <alan@linuxcare.com.au>
+
+ * ldmain.c (set_scripts_dir): Correct pointer comparison when
+ checking for backslashes.
+
+2000-06-19 Alan Modra <alan@linuxcare.com.au>
+
+ * NEWS: Move entries not in 2.10 above "Changes in version 2.10".
+
+2000-06-18 Alan Modra <alan@linuxcare.com.au>
+
+ * NEWS: Update list of targets supporting --gc-sections.
+
+ * scripttempl/elf.sc: KEEP .eh_frame contents.
+ * scripttempl/elfd30v.sc: Same here.
+
+2000-06-18 Stephane Carrez <stcarrez@worldnet.fr>
+
+ * Makefile.am (ALL_EMULATIONS): Added new emulation for m68hc12
+ and m68hc11 (elf).
+ * Makefile.in: Rebuild.
+ * configure.tgt: Recognize m68hc12 and m68hc11.
+ * scripttempl/elfm68hc12.sc: New file.
+ * emulparams/m68hc12elfb: New emulation.
+ * emulparams/m68hc12elf: New emulation.
+ * emulparams/m68hc11elfb.sh: New file. User configurable emulation
+ (includes a memory.x script to define the ROM and RAM banks).
+ * scripttempl/elfm68hc11.sc, emulparams/m68hc11elf.sh:
+ New configuration files for support of Motorola 68hc11
+
+2000-06-15 Alan Modra <alan@linuxcare.com.au>
+
+ * ldmain.c (main): Only change SEC_READONLY for final link.
+
+2000-06-13 H.J. Lu <hjl@gnu.org>
+
+ * configure: Regenerate.
+
+2000-06-08 David O'Brien <obrien@FreeBSD.org>
+
+ * configure.in (VERSION): Update to show this is the CVS mainline.
+
+2000-06-07 Michael Sokolov <msokolov@ivan.Harhan.ORG>
+
+ * emultempl/mipsecoff.em (gld{EMULATION_NAME}_after_open): Require all
+ input objects to be ECOFF.
+ (check_sections): einfo takes %B, not %P, to print a BFD name.
+
+2000-06-05 Michael Matz <matz@ifh.de>
+
+ * ldgram.y (vers_defns): Handle 'extern "C++" { ... }' in
+ version scripts.
+
+ * ldlex.l (V_IDENTIFIER): Accept `::' in symbols.
+
+2000-05-23 Marek Michalkiewicz <marekm@linux.org.pl>
+
+ * emulparams/avr1200.sh (STACK): Define as 0.
+ * emulparams/avr23xx.sh (STACK): Define as last internal SRAM address.
+ * emulparams/avr4433.sh (STACK): Likewise.
+ * emulparams/avr44x4.sh (STACK): Likewise.
+ * emulparams/avr85xx.sh (STACK): Likewise.
+ * emulparams/avrmega103.sh (STACK): Likewise.
+ * emulparams/avrmega161.sh (STACK): Likewise.
+ * emulparams/avrmega603.sh (STACK): Likewise.
+ * scripttempl/elf32avr.sc (__data_start): Define for gcrt1.
+ (__stack): Define from ${STACK} for main().
+
+2000-05-26 Alan Modra <alan@linuxcare.com.au>
+
+ * Makefile.am: Update dependencies with "make dep-am"
+ * Makefile.in: Regenerate.
+
+2000-05-26 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * ldmain.c: Include filenames.h.
+ (set_scripts_dir): Support backslashes in program name.
+
+2000-05-22 Igor Shevlyakov <igor@windriver.com>
+
+ * ldmain.c (main): When deciding if ".text" section should be
+ read-only, don't forget to reset SEC_READONLY because it
+ could be already set.
+
+2000-05-22 Thomas de Lellis <tdel@windriver.com>
+
+ * ld.1: Add documentation for new command line option:
+ --section-start <sectionname>=<sectionorg>
+ This is a generic version of -Ttext etc. which accepts
+ any section name as a parameter instead of just text/data/
+ bss.
+ * ld.texinfo: More docs.
+ * NEWS: More docs.
+ * lexsup.c: (parse_args): Recognize new command line option.
+ (ld_options): Add new option.
+
+2000-05-18 H.J. Lu <hjl@gnu.org>
+
+ * lexsup.c (parse_args): `i' == `r', not `q'.
+
+2000-05-18 Jeffrey A Law (law@cygnus.com)
+
+ * configure.tgt (hppa*64*-*-*): Enable PA64 target.
+
+2000-05-17 S. Bharadwaj Yadavalli <sby@scrugs.lkg.dec.com>
+ Rick Gorton <gorton@scrugs.lkg.dec.com>
+
+ Add support for '-q' == '--emit-relocs' switch.
+ * ldmain.c (main): Default to false.
+ * lexsup.c (parse_args): Turn on emitrelocations flag if set.
+ * NEWS: Describe the emitrelocations switch.
+ * ld.texinfo: Describe the emitrelocations switch.
+
+2000-05-16 Charles Wilson <cwilson@ece.gatech.edu>
+
+ * emultempl/pe.em (_open_dynamic_archive): New function: Search
+ the library path for "foo.dll" and "libfoo.dll" dynamic libraries
+ before searching for 'libfoo.a' in response to a '-Bdynamic -lfoo'
+ link options.
+
+2000-05-15 David O'Brien <obrien@FreeBSD.org>
+
+ * lexsup.c (parse_args): Update the year in the copyright notice.
+
+2000-05-13 Alan Modra <alan@linuxcare.com.au>
+
+ * ld.h (gettext, dgettext, dcgettext, textdomain, bindtextdomain):
+ Replace defines with those from intl/libgettext.h to quieten gcc
+ warnings.
+
+2000-05-10 H.J. Lu <hjl@gnu.org>
+
+ * ldlang.c (open_input_bfds): Don't load the same file within
+ a group again if the whole archive has been loaded already.
+
+2000-05-03 Alan Modra <alan@linuxcare.com.au>
+
+ From Ulf Carlsson <ulfc@engr.sgi.com> and Andreas Jaeger <aj@suse.de>
+ * lexsup.c (set_section_start): Use bfd_scan_vma rather than
+ strtoul.
+
+2000-05-01 Jim Wilson <wilson@cygnus.com>
+
+ * configure.host (ia64-*-linux-gnu*): Change gcc to ${CC}.
+
+ * configure.host: Added HOSTING_CRT0, HOSTING_LIBS for
+ host "ia64-*-linux-gnu*".
+
+2000-04-29 Andreas Jaeger <aj@suse.de>
+
+ * ld.h: Correctly check GCC version.
+
+2000-04-25 Jeffrey A Law (law@cygnus.com)
+
+ * Makefile.am: Add PA64 support. Add missing dependencies for
+ PA32 elf support.
+ * Makefile.in: Rebuilt.
+ * configure.tgt: Add PA64 support (currently disabled).
+
+2000-04-25 Alan Modra <alan@linuxcare.com.au>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_place_section): Delete.
+ (output_rel_find): New function.
+ (hold_section, hold_use): Delete.
+ (hold_text, hold_rodata, hold_data, hold_bss, hold_rel,
+ hold_interp): Make local to place_orphan.
+ (gld${EMULATION_NAME}_place_orphan): Use lang_output_section_find
+ rather than place_section to find possible previous use of orphan.
+ Similarly find the place-holder output sections. Use returned
+ value from lang_enter_output_section_statement rather than calling
+ lang_output_section_statement_lookup.
+ * emultempl/armelf.em: Same here.
+ * emultempl/pe.em: Similar to above, but no need for output_rel_find.
+
+ * ldlang.c (lang_enter_output_section_statement): Return output
+ section statement.
+ * ldlang.h (lang_enter_output_section_statement): Change
+ declaration too.
+
+ * ldlang.h (lang_output_section_statement): Export it.
+ * ldlang.c (lang_output_section_statement): Ditto.
+
+2000-04-24 Nick Clifton <nickc@cygnus.com>
+
+ * ld.texinfo (Output Section Data): Add note that section data
+ commands cannot appear outside of section directives.
+
+2000-04-2 Matthew Green <mrg@cygnus.com>
+
+ * configure.tgt: Add NetBSD/sparc ELF, and NetBSD/sparc64 support.
+
+2000-04-21 Richard Henderson <rth@cygnus.com>
+ David Mosberger <davidm@hpl.hp.com>
+
+ * Makefile.am (ALL_64_EMULATIONS): Add eelf64_ia64.o.
+ (eelf64_ia64.c): New rule.
+ * Makefile.in: Rebuild.
+ * configure.tgt (ia64-*-elf*, ia64-*-linux*): New targets.
+ * emulparams/elf64_ia64.sh: New file.
+
+2000-04-21 Richard Henderson <rth@cygnus.com>
+
+ * scripttempl/elfd30v.sc: Place .gcc_except_table.
+
+2000-04-19 Alan Modra <alan@linuxcare.com.au>
+
+ * dep-in.sed: Match space at start of file name, not at end.
+
+2000-04-18 H.J. Lu <hjl@gnu.org>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Call
+ lang_leave_output_section_statement () after calling
+ lang_enter_output_section_statement ().
+ * emultempl/armelf.em: Likewise.
+
+2000-04-18 Alan Modra <alan@linuxcare.com.au>
+
+ * emultempl/elf32.em (struct orphan_save): Add section field.
+ (gld${EMULATION_NAME}_place_orphan): Use above to keep sections in
+ better order, and place first orphan section as we did before the
+ 2000-04-12 patch. Ignore ~SEC_ALLOC sections when choosing place.
+ Don't call make_bfd_section here, let wild_doit do the job for us.
+ Don't build a statement list when we'll only throw it away.
+ * emultempl/armelf.em: Ditto.
+ * emultempl/pe.em: Similarly.
+
+2000-04-14 Geoff Keating <geoffk@cygnus.com>
+
+ * scripttempl/elfppc.sc: Remove.
+ * emulparams/elf32ppc.sh: Use elf.sc.
+ * emulparams/elf32lppc.sh: Use elf.sc.
+ * emulparams/elf32ppclinux.sh: Use elf.sc.
+ * emulparams/elf32ppcsim.sh: New file.
+ * emulparams/elf32lppcsim.sh: New file.
+ * Makefile.am: Update dependencies. Add elf32ppcsim ad elf32lppcsim.
+ (ALL_EMULATIONS): Add elf32ppcsim ad elf32lppcsim.
+ * Makefile.in: Regenerate.
+ * configure.tgt (powerpc-*): Add elf32ppcsim and elf32lppcsim.
+
+2000-04-14 Alan Modra <alan@linuxcare.com.au>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Process
+ ~SEC_ALLOC sections too. Init start address of debug sections.
+ * emultempl/armelf.em (gld${EMULATION_NAME}_place_orphan): Ditto.
+ * emultempl/pe.em (gld${EMULATION_NAME}_place_orphan): Ditto.
+ Also set all relocateable section start addresses.
+
+2000-04-13 Geoff Keating <geoffk@cygnus.com>
+
+ * scripttempl/elf.sc: Add support for .sbss2 and .sdata2 sections.
+ Add new BSS_PLT variable for when .plt need not be contained in
+ the file. Move _etext so that it is also after .fini, and provide
+ both etext and _etext with a leading underscore. Mark the start
+ and end of .sbss.
+
+2000-04-12 Alan Modra <alan@linuxcare.com.au>
+
+ * emultempl/elf32.em (struct orphan_save): New.
+ (hold_text, hold_rodata, hold_data, hold_bss, hold_rel,
+ hold_interp): Make them struct orphan_save.
+ (gld${EMULATION_NAME}_place_section): Modify for new hold_*.
+ (gld${EMULATION_NAME}_place_orphan): Add new orphan sections to
+ the end of the relevant section list. Also add associated section
+ statements to the end of any previous orphan statements.
+ * emultempl/armelf.em: Similarly.
+ * emultempl/pe.em: Similarly.
+
+2000-04-11 Alan Modra <alan@linuxcare.com.au>
+
+ * ld.texinfo (Simple Example): Remove extraneous paragraph.
+
+2000-04-07 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * configure.in (WARN_CFLAGS): Set to -W -Wall by default. Add
+ --enable-build-warnings option.
+ * Makefile.am (AM_CFLAGS, WARN_CFLAGS): Add definitions.
+ * Makefile.in, configure: Re-generate.
+
+2000-04-04 Alan Modra <alan@linuxcare.com.au>
+
+ * po/ld.pot: Regenerate.
+
+ * lexsup.c (help): Restore translated part of bug string.
+
+ * Makefile.am (MKDEP): Use gcc -MM rather than mkdep.
+ (DEP): Quote when passing vars to sub-make. Add warning message
+ to end.
+ (DEP1): Rewrite for "gcc -MM".
+ (CLEANFILES): Add DEP2.
+ Update dependencies.
+ * Makefile.in: Regenerate.
+
+2000-04-03 Alan Modra <alan@linuxcare.com.au>
+
+ * ld.h: #include "bin-bugs.h"
+ * lexsup.c (help): Use REPORT_BUGS_TO.
+
+2000-03-27 Denis Chertykov <denisc@overta.ru>
+
+ * configure.tgt (avr-*-*): New target support.
+ * Makefile.am: Likewise.
+ * scripttempl/elf32avr.sc: New script file.
+ * emulparams/avr1200.sh: New file.
+ * emulparams/avr23xx.sh: New file.
+ * emulparams/avr4433.sh New file.
+ * emulparams/avr44x4.sh New file.
+ * emulparams/avr85xx.sh New file.
+ * emulparams/avrmega103.sh New file.
+ * emulparams/avrmega161.sh New file.
+ * emulparams/avrmega603.sh New file.
+ * Makefile.in: Regenerate.
+
+2000-03-09 Andreas Jaeger <aj@suse.de>
+
+ * Makefile.am (check-DEJAGNU): Also unset LANG.
+ * Makefile.in: Rebuild.
+
+2000-03-06 Ian Lance Taylor <ian@zembu.com>
+
+ * ldfile.c (ldfile_try_open_bfd): Don't crash if we see an empty
+ archive.
+
+2000-03-02 H.J. Lu <hjl@gnu.org>
+
+ * emulparams/elf32mcore.sh: Include "getopt.h".
+
+2000-03-01 Ian Lance Taylor <ian@zembu.com>
+
+ * configure.tgt: Remove *-*-aout, *-*-coff, and *-*-netware.
+
+2000-03-01 H.J. Lu <hjl@gnu.org>
+
+ * emulparams/mipspe.sh: Add SUBSYSTEM and INITIAL_SYMBOL_CHAR.
+ * emulparams/shpe.sh: Likewise.
+
+2000-03-01 Nick Clifton <nickc@cygnus.com>
+
+ * pe-dll.c: Remove unused variables and add ATTRIBUTE_UNUSED
+ to unused parameters.
+
+ * emultempl/pe.em: Add "#ifdef DLL_SUPPORT" around static
+ functions only used by DLL code.
+ (_place_orphan): Initialise 'dollar'.
+
+2000-03-01 H.J. Lu <hjl@gnu.org>
+
+ * ldmain.c (undefined_symbol): Take one more arg, fatal, to
+ indicate if the undefined symbol is a fatal error or not.
+ Don't delete the output file if "fatal" is false.
+
+2000-02-29 H.J. Lu <hjl@gnu.org>
+
+ * Makefile.am (check-DEJAGNU): Also pass LIBS="$(LIBS)".
+ Set LC_COLLATE and LC_ALL to null and export them. It is for
+ sort which expects the C locale.
+ Add $(LIBS) to all $(HOSTING_LIBS).
+ * Makefile.in: Rebuild.
+
+2000-02-29 Alan Modra <alan@spri.levels.unisa.edu.au>
+
+ * emultempl/{aix.em, armcoff.em, armelf.em, armelf_oabi.em,
+ beos.em, elf32.em, generic.em, gld960.em, gld960c.em, hppaelf.em,
+ linux.em, lnk960.em, mipsecoff.em, sunos.em, vanilla.em}
+ (ld_emulation_xfer_struct): Add missing NULL initialiser for
+ find_potential_libraries.
+
+2000-02-28 Jim Blandy <jimb@redhat.com>
+
+ * ldgram.y (exclude_name_list): Don't require a comma to separate
+ list entries; the lexer considers commas to be valid part of a
+ filename, so in something like `foo, bar' the comma is considered
+ part of the first filename, `foo,'.
+ * ld.texinfo: Update section on EXCLUDE_FILE lists.
+
+2000-02-27 Loren J. Rittle <ljrittle@acm.org>
+
+ * configure.host: Added HOSTING_CRT0, HOSTING_LIBS for
+ host "i[3456]86-*-freebsdelf*".
+
+2000-02-27 Mark Elbrecht <snowball3@bigfoot.com>
+
+ * scripttempl/i386go32.sc: Move misplaced semicolons.
+
+2000-02-25 Ian Lance Taylor <ian@zembu.com>
+
+ * Makefile.am (ALL_EMULATIONS): Remove ehppaelf.o.
+ (ALL_64_EMULATIONS): Remove eelf64hppa.o.
+ (eelf64hppa.c, ehppaelf.c): Remove targets.
+ * Makefile.in: Rebuild.
+
+2000-02-25 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
+
+ * configure.tgt (targ_extra_ofiles): Enable elf64_sparc on
+ GNU/Linux/sparc, but keep the default as 32.
+
+ * configure.tgt: Enable elf64_sparc on Solaris7+/sparc. And make
+ it default if sparcv9 or sparc64.
+
+2000-02-24 Nick Clifton <nickc@cygnus.com>
+
+ * Makefile.am: Add rules to build emipspe.o and earmpe.o.
+ * Makefile.in: Regenerate.
+ * configure.tgt: Add targets for arm-wince, sh-pe and mips-pe.
+
+ * ldemul.h (ld_emulation_xfer_struct): Add new field:
+ find_potential_libraries.
+ * ldemul.c (ldemul_find_potential_libraries): New function.
+
+ * ldfile.c (ldfile_open_file_search): Allow function to be
+ exported.
+ (ldfile_open_file): Call ldemul_find_potential_libraries.
+ * ldfile.h: Add prototype for ldfile_open_file_search.
+
+ * pe-dll.c: Add support for ARM, MIPS and SH targets.
+
+ * emulparams/mipspe.sh: New file. Parameters for mips-pe target.
+ * emulparams/shpe.sh: New file. Parameters for sh-pe target.
+
+ * emultempl/pe.em: Add support for ARM, MIPS and SH DLLs.
+ (gld_X_find_potential_libraries): New function. Search for
+ libraries called "*.lib".
+
+ * scripttempl/pe.sc: Add .pdata section.
+
+2000-02-23 Richard Henderson <rth@cygnus.com>
+
+ * scripttempl/elfd10v.sc: Remove dynamic linking hooks.
+ Add and use memory regions.
+
+2000-02-23 Linas Vepstas (linas@linas.org)
+
+ * emulparams/elf32i370.sh, scripttempl/elfi370.sc: New.
+
+ * Makefile.am: Add support for Linux/IBM 370.
+ * configure.tgt: Likewise.
+
+ * Makefile.in: Regenerate.
+
+2000-02-21 Alan Modra <alan@spri.levels.unisa.edu.au>
+
+ * ldlang.c (print_input_section, print_data_statement,
+ print_reloc_statement, print_padding_statement, insert_pad,
+ size_input_section, lang_check_section_addresses,
+ lang_size_sections, lang_do_assignments, lang_set_startof,
+ lang_one_common): Change `opb' to unsigned.
+ (lang_do_assignments): Also change `size' to unsigned.
+
+2000-02-16 Richard Henderson <rth@cygnus.com>
+
+ * scripttempl/elf.sc: Place OTHER_PLT_RELOC_SECTION.
+
+2000-02-16 Timothy Wall <twall@cygnus.com>
+
+ * mri.c (mri_draw_tree): Add default LMA region argument to call
+ to lang_leave_output_section_statement.
+ * ldlang.h: Update prototypes with LMA region arguments.
+ * ldlang.c (lang_size_sections): Encapsulate region bounds
+ checking in os_check_region call.
+ (os_check_region): New function.
+ (lang_output_section_statement_lookup): Initialize lma_region.
+ (lang_leave_output_section_statement): Add LMA region argument.
+ (lang_leave_overlay): Ditto.
+ * ldgram.y: Handle LMA region syntax.
+ * ld.texinfo (Output Section Description): Describe LMA region usage.
+ * emultempl/armelf.em (gld$place_orphan): Add default value for
+ lma region in call to lang_leave_output_section_statement.
+ * emultempl/elf32.em (gld$place_orphan): Add default value for
+ lma region in call to lang_leave_output_section_statement.
+ * emultempl/pe.em (gld$place_orphan): Add default value for
+ lma region in call to lang_leave_output_section_statement.
+
+
+2000-02-04 Timothy Wall <twall@redhat.com>
+
+ * ldlang.c (lang_check_section_addresses): Use bytes instead of
+ octets when calculating section end addresses.
+
+2000-02-04 Timothy Wall <twall@redhat.com>
+
+ * ldlang.c (lang_size_sections): Fix typo in ALIGN_N invocation.
+
+2000-02-03 Timothy Wall <twall@redhat.com>
+
+ * ldexp.c (fold_name): Make SIZEOF operator return byte count, not
+ octet count.
+ * ldlang.c (print_input_section, print_data_statement,
+ print_reloc_statement, print_padding_statement): Print target
+ address values and section sizes as bytes, not octets.
+ (insert_pad) Calculate padding size in octets, and adjust "dot"
+ by bytes.
+ (size_input_section) Always adjust "dot" by bytes, not octets.
+ (lang_check_section_addresses, lang_do_assignments) Adjust
+ "dot" by bytes, not octets. Use the larger of the directive size
+ or octets_per_byte for the number of octets actually allocated in
+ the output section.
+ (lang_set_startof) Make sure STARTOF returns a target address.
+ (lang_one_common) Record size changes in octets.
+ (lang_abs_symbol_at_end_of) Section end symbol's value is
+ recorded in target bytes.
+ * ld.texinfo: Updated description of BYTE, SHORT, LONG, etc.
+ to be clear about behavior when an octet is smaller than one byte.
+
+2000-01-27 Alan Modra <alan@spri.levels.unisa.edu.au>
+
+ * ldcref.c (output_cref): Don't pass message strings to printf
+ as format arg.
+ Update copyright.
+
+ * ldmisc.c (vfinfo): Same here.
+ Update copyright.
+
+2000-01-23 Alan Modra <alan@spri.levels.unisa.edu.au>
+
+ * emultempl/{armcoff.em,armelf.em,armelf_oabi.em,beos.em,
+ generic.em,gld960.em,gld960c.em,hppaelf.em,linux.em,lnk960.em,
+ mipsecoff.em,sunos.em,vanilla.em} (ld_emulation_xfer_struct):
+ Add missing NULL initialisers, and comments.
+
+2000-01-21 Nick Clifton <nickc@cygnus.com>
+
+ * ldlang.c (lang_size_sections): Fix typo in comment.
+
+2000-01-18 H.J. Lu <hjl@gnu.org>
+
+ * ldlang.c (lang_size_sections): Also update the current
+ address of a region if the SEC_NEVER_LOAD bit is not set.
+
+2000-01-10 Philip Blundell <pb@futuretv.com>
+
+ * configure.tgt (arm*-*-conix*): New target.
+
+2000-01-07 Nick Clifton <nickc@cygnus.com>
+
+ * ld.texinfo (Options): Remind users to preceed linker command
+ line switches with -Wl, (or whatever is appropriate) if it is
+ being invoked by a comnpiler driver program.
+ Fix description of the behaviour of the -n command line switch.
+
+2000-01-05 Catherine Moore <clm@cygnus.com>
+
+ * ld.h (wildcard_spec): Change exclude_name to exclude_name_list.
+ (name_list): New.
+ * ld.texinfo (EXCLUDE_FILE): Update documentation.
+ * ldgram.y (wildcard_spec): Support a list of excluded_files.
+ (exclude_name_list): New.
+ ldlang.c (walk_wild_section): Support list of excluded files.
+ (print_wild_statement): Likewise.
+ (lang_add_wild): Likewise.
+ * ldlang.h (lang_wild_statement_type): Likewise.
+ * scripttempl/elf.sc (OTHER_EXCLUDE_FILES): Support.
+
+2000-01-04 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * pe-dll.c (pe_dll_warn_dup_exports): New variable.
+ (process_def_file): Use.
+ (pe_dll_compat_implib): New variable.
+ (make_one): Use.
+
+ * pe-dll.h: Add exports of pe_dll_warn_dup_exports and
+ pe_dll_compat_implib.
+
+ * emultempl/pe.em (longopts): Add warn-duplicate-exports and
+ compat-implib options.
+ (gld_${EMULATION_NAME}_list_options): List new options.
+ (gld_${EMULATION_NAME}_parse_args): Handle.
+
+ * pe-dll.c (pe_dll_generate_implib): Use the correct name for output
+ dll.
+
+ * deffilep.y (opt_name): Allow "." in name.
+
+For older changes see ChangeLog-9899
+
+Local Variables:
+mode: change-log
+left-margin: 8
+fill-column: 74
+version-control: never
+End:
diff --git a/gnu/usr.bin/binutils/ld/ChangeLog-0203 b/gnu/usr.bin/binutils/ld/ChangeLog-0203
new file mode 100644
index 00000000000..ee5354dedf0
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/ChangeLog-0203
@@ -0,0 +1,3580 @@
+2003-12-19 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
+
+ Add m32r-linux and PIC support. Add new ABI that uses RELA.
+ * Makefile.am: Added em32rlelf.c, em32relf_linux.c,
+ em32rlelf_linux.c.
+ * Makefile.in: Regenerate.
+ * configure.tgt (m32r*-*-linux*, m32r*le-*-linux*, m32r*le-*-*):Added.
+ * emulparams/m32relf_linux.sh: Added.
+ * emulparams/m32rlelf.sh: Ditto.
+ * emulparams/m32rlelf_linux.sh: Ditto.
+ * NEWS: Mention support m32r Linux.
+
+2003-12-18 Eric Youngdale <eric@mkssoftware.com>
+ Nick Clifton <nickc@redhat.com>
+
+ * emultempl/pe.em (_after_open): When scanning MS import
+ libraries allow for the possible presence of static objects.
+
+2003-12-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ * ldlang.c (lang_vers_match): Pass "DMGL_PARAMS | DMGL_ANSI" to
+ cplus_demangle.
+
+2003-12-07 Kazu Hirata <kazu@cs.umass.edu>
+
+ * ldemul.c: Convert to ISO-C.
+ * ldver.c: Likewise.
+
+2003-12-06 Kazu Hirata <kazu@cs.umass.edu>
+
+ * lexsup.c (is_num): Remove.
+
+2003-12-05 Dmitry Semyonov <Dmitry.Semyonov@oktet.ru>
+
+ * pe-dll.c (generate_reloc): Remap ARM_26D relocation from 5 to
+ 0. This fixes "bad fixup" error generated by MS linker.
+
+2003-12-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * emultempl/ia64elf.em (gld${EMULATION_NAME}_after_parse): Set
+ link_info.need_relax_finalize to TRUE.
+
+ * ldlang.c (lang_process): Use link_info.need_relax_finalize
+ instead of link_info.relax_finalizing.
+ * ldmain.c (main): Likewise.
+
+2003-12-04 Dmitry Semyonov <Dmitry.Semyonov@oktet.ru>
+
+ * armpe.sh (RELOCATEABLE_OUTPUT_FORMAT): Define.
+
+2003-12-04 Alan Modra <amodra@bigpond.net.au>
+
+ * ldlang.c (lang_do_assignments): Function return is void.
+ * ldlang.h (lang_do_assignments): Ditto.
+ * emultempl/netbsd.em (gld${EMULATION_NAME}_before_parse): Declare.
+ * Makefile.am (ens32knbsd.c): Depend on netbsd.em.
+ * Makefile.in: Regenerate.
+
+2003-12-03 Dave Airlie <airlied@linux.ie>
+
+ * configure.tgt: Add vax-linux-gnu target.
+
+2003-12-03 Dmitry Diky <diwil@mail.ru>
+
+ * scripttempl/elf32msp430.sc (HEAP_SECTION_MSP430): New section for
+ forthcoming devices.
+ (_etext): provide this defenition for all scripts.
+
+2003-12-02 Kazu Hirata <kazu@cs.umass.edu>
+
+ * emultempl/beos.em: Remove ARGSUSED.
+
+2003-12-03 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/pe.em (pe_fixup_stdcalls): Update for renamed
+ bfd_link_hash_entry field "next" -> "und_next".
+ (pe_find_data_imports): Likewise.
+ (gld_${EMULATION_NAME}_after_open): Likewise.
+ * emultempl/sunos.em (before_allocation): Likewise.
+
+2003-12-02 Nick Clifton <nickc@redhat.com>
+
+ * ld.texinfo (Options): --ignore-all is no longer the default
+ behaviour for shared libraries and dynamic executables.
+
+2003-12-02 Alan Modra <amodra@bigpond.net.au>
+
+ * Makefile.am: Run "make dep-am".
+ * Makefile.in: Regenerate.
+
+2003-12-02 Alan Modra <amodra@bigpond.net.au>
+
+ * ldmain.c (main): Remove mpc860c0 code.
+ * lexsup.c (enum option_values): Delete OPTION_MPC860C0.
+ (ld_options): Delete mpc860c0 entry.
+ (parse_args): Likewise.
+
+2003-12-01 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Test
+ hash table type rather than testing creator flavour.
+ * emultempl/hppaelf.em (hppaelf_create_output_section_statements):
+ Only create stub_file bfd if hash table creator is as expected.
+ (gld${EMULATION_NAME}_finish): Test stub_file.
+
+2003-11-28 Marcel Moolenaar <marcel@xcllnt.net>
+
+ * emulparams/elf64_ia64_fbsd.sh (TEXT_START_ADDR): Define.
+ (DATA_ADDR): Unset.
+
+2003-11-18 James E Wilson <wilson@specifixinc.com>
+
+ * ldlang.c (lang_process): Move lang_reset_memory_regions call after
+ lang_do_assignments call.
+
+ * emulparams/elf64_ia64.sh (OTHER_PLT_RELOC_SECTIONS): Include
+ .rela.opd if -pie.
+
+2003-11-10 Jonathan Wilson <jonwil@tpgi.com.au>
+
+ * scripttempl/pe.sc: Add support for TLS sections.
+
+2003-11-09 Alan Modra <amodra@bigpond.net.au>
+
+ * configure.host (HOSTING_LIBS): Group libgcc and libc with
+ --start-group, --end-group pair.
+ (*-*-netbsd*, am33_2.0-*-linux*): Use the default HOSTING_LIBS.
+ (am33_2.0-*-linux*): Edit default HOSTING_CRT0.
+ (arm*-*-linux-gnu*): Remove extraneous '*' in sed expression.
+ (hppa*64*-*-linux*, hppa*-*-linux*): Remove target specific case.
+
+2003-11-07 Jonathan R. Grant <jg-binutils@jguk.org>
+
+ * ldfile.c (ldfile_open_file): Use "No such file" error message.
+
+2003-11-06 Bruno Rohee <bruno@rohee.com>
+
+ * ls.texinfo: Fix "the the" typo.
+
+2003-11-05 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/pe.em (gld_${EMULATION_NAME}_after_open): Only do
+ pe_dll_extra_pe_debug stuff when DLL_SUPPORT defined.
+ (pr_sym): Move inside #ifdef DLL_SUPPORT.
+
+ * emultempl/ppc64elf.em (gld${EMULATION_NAME}_new_vers_pattern): Zap
+ unused variable.
+
+ * emulparams/elf32_i860.sh (TEXT_START_ADDR): Define.
+
+2003-11-04 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Call
+ _bfd_elf_tls_setup.
+
+2003-10-31 Nick Clifton <nickc@redhat.com>
+
+ * ldlang.c (lookup_name): When looking for a previously loaded
+ file compare the local_sym_name not the filename, as the
+ filename might have been transformed via the search directory
+ path lookup.
+ If the sought-for file has not been found in the input file
+ chain then create a new node with the search_dirs_flag set so
+ that the entire set of directory paths will be scanned for it.
+
+2003-10-30 Andrew Cagney <cagney@redhat.com>
+
+ * emultempl/pe.em, pe-dll.c: Replace "struct symbol_cache_entry"
+ with "struct bfd_symbol".
+
+2003-10-30 Phil Edwards <phil@codesourcery.com>
+
+ * Makefile.am (ALL_EMULATIONS): Add elf32mipswindiss.o.
+ (eelf32mipswindiss.c): New target.
+ * Makefile.in: Regenerated.
+ * emulparams/elf32mipswindiss.sh: New file.
+ * configure.tgt (i[3-7]86-*-vxworks*, arm-*-vxworks, sh-*-vxworks,
+ mips*-*-vxworks*): Use ELF now.
+ (mips*-*-windiss): New stanza, use elf32mipswindiss.
+
+2003-10-27 Stephane Carrez <stcarrez@nerim.fr>
+
+ * scripttempl/elfm68hc12.sc: Define eeprom memory region.
+
+2003-10-25 Kazu Hirata <kazu@cs.umass.edu>
+
+ * ChangeLog-9197: Fix typos.
+ * NEWS: Likewise.
+ * ld.texinfo: Likewise.
+ * ldlang.c: Fix comment typos.
+
+2003-10-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ * ldlang.c (lang_vers_match): Fix a typo.
+
+2003-10-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ * ldlang.c (lang_vers_match): Check demangled symbols.
+
+2003-10-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ * ldlang.c (lang_vers_match): Check "symbol" instead of
+ "wildcard" and "pattern". Fix a typo.
+ (lang_finalize_version_expr_head): Likewise.
+ (lang_register_vers_node): Likewise.
+ (realsymbol): New function.
+ (lang_new_vers_pattern): Set "symbol" and remove "wildcard".
+
+ * ldlex.l (V_IDENTIFIER): Allow '\\'.
+
+2003-10-24 Nick Clifton <nickc@redhat.com>
+
+ * emultempl/m68hc1xelf.em (before_allocation): Add missing second
+ parameter to lang_memory_region_lookup.
+
+2003-10-22 Jakub Jelinek <jakub@redhat.com>
+
+ * ldlang.c: Include hashtab.h.
+ (lang_vers_match_lang_c, lang_vers_match_lang_cplusplus,
+ lang_vers_match_lang_java): Remove.
+ (lang_vers_match): New function.
+ (lang_new_vers_pattern): Initialize wildcard and mask
+ fields, don't initialize match.
+ (lang_new_vers_node): Use xcalloc. Adjust for globals and
+ locals field type changes. Set match field.
+ (version_expr_head_hash, version_expr_head_eq): New functions.
+ (lang_finalize_version_expr_head): New function.
+ (lang_register_vers_node): Call lang_finalize_version_expr_head.
+ Search in hash table if not wildcard when looking for duplicates.
+ * emultempl/ppc64elf.em (new_vers_pattern): Don't bother with
+ duplicate checking. Initialize all fields of dot_entry from entry
+ with the exception of pattern and next.
+
+2003-10-21 Nick Clifton <nickc@redhat.com>
+
+ * ldlang.c (lang_memory_region_lookup): Add second parameter -
+ create - which is true if the region is being created. Issue
+ appropriate warning messages for finding and not finding
+ already created regions.
+ (lang_memory_default): Use DEFAULT_MEMORY_REGION.
+ (lang_leave_overlay_section): Likewise.
+ (lang_size_sections_1): Likewise.
+ Pass second parameter to lang_memory_region_lookup.
+ (lang_get_regions): Likewise.
+ * ldlang.h (DEFAULT_MEMORY_REGION): Define.
+ Update prototype for lang_memory_region_lookup.
+ * ldgram.y: Pass second parameter to lang_memory_region_lookup.
+ Use DEFAULT_MEMORY_REGION instead of "*default".
+
+2003-10-20 Andrew Cagney <cagney@redhat.com>
+
+ * pe-dll.c: Replace "struct sec" with "struct bfd_section".
+
+2003-10-19 Marek Michalkiewicz <marekm@amelek.gda.pl>
+
+ * Makefile.am: Remove old (before GCC 3.3) emulations for AVR
+ target: avr1200, avr23xx, avr4433, avr44x4, avr85xx, avrmega103,
+ avrmega161, avrmega603. Default to avr2.
+ * Makefile.in: Regenerate.
+ * configure.tgt: Likewise.
+ * emulparams/avr1200.sh: Remove.
+ * emulparams/avr23xx.sh: Remove.
+ * emulparams/avr4433.sh: Remove.
+ * emulparams/avr44x4.sh: Remove.
+ * emulparams/avr85xx.sh: Remove.
+ * emulparams/avrmega103.sh: Remove.
+ * emulparams/avrmega161.sh: Remove.
+ * emulparams/avrmega603.sh: Remove.
+ * scripttempl/elf32avr.sc: Remove.
+
+2003-10-19 Andreas Schwab <schwab@suse.de>
+
+ * emultempl/ticoff.em (gld_${EMULATION_NAME}_list_options): Add
+ newline to message.
+
+ * deffilep.y: Remove commas from %token lines.
+
+2003-10-18 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * emultempl/mmix-elfnmmo.em (mmix_before_allocation): Force linker
+ relaxation always; don't exclude relocatable linking. Adjust for
+ _bfd_mmix_prepare_linker_allocated_gregs renamed to
+ _bfd_mmix_before_linker_allocation.
+ (mmix_after_allocation): Adjust for
+ _bfd_mmix_finalize_linker_allocated_gregs renamed to
+ _bfd_mmix_after_linker_allocation.
+ * scripttempl/mmo.sc: Use ADDR (.text), not . - SIZEOF (.text).
+
+ * ldlang.c (lang_size_sections): Last, set _cooked_size for output
+ sections.
+
+2003-10-16 Alan Modra <amodra@bigpond.net.au>
+
+ * Makefile.am (GENSCRIPTS_EXTRA, GEN_EXTRA_DEPENDS): Remove. Use
+ GENSCRIPTS and GEN_DEPENDS in place of these.
+ * Makefile.in: Regenerate.
+ * genscripts_extra.sh: Delete. Merge extra functionality to..
+ * genscripts.sh: ..here.
+
+ * emulparams/gld960.sh (TEXT_START_ADDR, TARGET_PAGE_SIZE): Define.
+ * emulparams/gld960coff.sh (TEXT_START_ADDR, TARGET_PAGE_SIZE): Ditto.
+ * emulparams/lnk960.sh (TEXT_START_ADDR, TARGET_PAGE_SIZE): Ditto.
+ * emulparams/m88kbcs.sh (TEXT_START_ADDR, TARGET_PAGE_SIZE): Ditto.
+ * emulparams/vanilla.sh (TEXT_START_ADDR, TARGET_PAGE_SIZE): Ditto.
+
+2003-10-16 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/ia64elf.em (gld${EMULATION_NAME}_after_parse): Don't
+ use $EMULATION_NAME to call bfd function.
+
+2003-10-14 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * pe-dll.c (pe_implied_import_dll): Also scan .rdata sections
+ to identify data symbols.
+
+2003-10-13 Richard Sandiford <rsandifo@redhat.com>
+
+ * emulparams/elf32bmipn32-defs.sh (INITIAL_READONLY_SECTIONS): Move
+ definition from elf64btsmip.sh.
+ (TEXT_DYNAMIC): Likewise elf32btsmipn32.sh.
+ * emulparams/elf32btsmipn32.sh (TEXT_DYNAMIC): Remove.
+ * emulparams/elf64btsmip.sh (INITIAL_READONLY_SECTIONS): Remove.
+ * emulparams/elf64bmip.sh (SHLIB_TEXT_START_ADDR): Define.
+ (EXECUTABLE_SYMBOLS): Set __elf_header correctly for shared objects.
+ Define __program_header_table in terms of __elf_header.
+
+2003-10-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.am (eelf64_ia64.c): Also depend on
+ $(srcdir)/emultempl/ia64elf.em.
+ * Makefile.in: Regenerated.
+
+ * emulparams/elf64_ia64.sh (EXTRA_EM_FILE): Set to ia64elf.
+
+ * emultempl/ia64elf.em: New.
+
+2003-10-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
+
+ * emulparams/shelf32_nbsd.sh (OTHER_SECTIONS): Redefine.
+
+2003-10-11 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * ld.texinfo (Builtin Functions) <DEFINED>: Say that only symbols
+ defined before the statement using DEFINED yield 1.
+ * ldexp.c (fold_name) <case DEFINED>: In lang_first_phase_enum,
+ call lang_track_definedness on symbol. In subsequent phases, use
+ lang_symbol_definition_iteration and lang_statement_iteration to
+ check whether the symbol was defined before the current statement.
+ (exp_fold_tree) <case etree_assign et al>: Call
+ lang_update_definedness before updating symbol type when setting
+ symbol.
+ * ldlang.c (lang_definedness_table): New variable.
+ (lang_definedness_newfunc, lang_track_definedness)
+ (lang_symbol_definition_iteration, lang_update_definedness): New
+ functions.
+ (lang_init): Initialize lang_definedness_table and
+ lang_statement_iteration.
+ (lang_finish): Destroy bfd_hash_table_free.
+ (lang_size_sections): Increment lang_statement_iteration.
+ (lang_do_assignments_1): New function with former
+ lang_do_assignments contents. Change recursive calls to call this
+ function.
+ (lang_do_assignments): Evacuate contents. Increment
+ lang_statement_iteration, then just call lang_do_assignments_1.
+ * ldlang.h (struct lang_definedness_hash_entry)
+ (lang_statement_iteration, lang_track_definedness)
+ (lang_symbol_definition_iteration, lang_update_definedness):
+ Declare.
+
+2003-10-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ * scripttempl/elf.sc (__executable_start): Provide.
+
+2003-10-09 Daniel Jacobowitz <drow@mvista.com>
+
+ * emulparams/armelf.sh: Define NO_SMALL_DATA.
+ * emulparams/armelf_linux.sh, emulparams/armelf_oabi.sh,
+ emulparams/armnto.sh: Likewise.
+
+2003-10-08 Alexandre Oliva <aoliva@redhat.com>
+
+ * ldlang.c (lang_size_sections_1): Use IGNORE_SECTION to tell
+ whether to skip test for no memory region.
+
+2003-10-08 Nick Clifton <nickc@redhat.com>
+
+ * lexsup.c (parse_args: OPTION_CALL_SHARED): Revise comment
+ describing defaults. Change default to report unresolved symbols
+ in object files as well.
+
+2003-10-08 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * ldexp.c (fold_name) <case DEFINED>: Set section of result to
+ abs_output_section.
+
+2003-10-07 Bob Wilson <bob.wilson@acm.org>
+
+ * emulparams/elf32xtensa.sh (OTHER_READONLY_SECTIONS,
+ OTHER_READWRITE_SECTIONS, OTHER_SECTIONS): Set section addresses to
+ zero for relocatable links.
+
+2003-10-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * configure.host (HOSTING_LIBS): Define for hppa*-*-linux*.
+
+2003-10-07 Nathan Sidwell <nathan@codesourcery.com>
+
+ * ldwrite.c (unsplittable_name): New.
+ (clone_section): Strip existing numeric suffix. Only truncate names
+ for coff targets.
+ (split_sections): Use unsplittable_name.
+
+2003-10-06 Nick Clifton <nickc@redhat.com>
+
+ * lexsup.c (parse_args): Report unresolved symbols in shared
+ libraries when creating a dynamic executable. This is a
+ restoration of the default behaviour for previous versions of
+ the linker.
+
+2003-10-06 Matt Thomas <matt@3am-software.com>
+
+ * emulparams/hppanbsd.sh: Remove OUTPUT_FORMAT.
+ * emulparams/hppaobsd.sh: Add OUTPUT_FORMAT="elf32-hppa".
+
+2003-10-06 Robert Millan <robertmh@gnu.org>
+
+ * configure.tgt: Match GNU/KNetBSD with new knetbsd*-gnu triplet.
+
+2003-10-02 Ivan Warren <ivan@vmfacility.fr>
+
+ * pe-dll.c (make_one): Correct sym def order & pick right sym for
+ .idata$7 reloc.
+
+2003-09-30 Chris Demetriou <cgd@broadcom.com>
+
+ * NEWS: Add an indication of the cutoff for 2.14.
+
+2003-09-30 Chris Demetriou <cgd@broadcom.com>
+
+ * ldmain.c (get_emulation): Ignore "-mips64r2".
+
+2003-09-03 Robert Millan <robertmh@gnu.org>
+
+ * configure.host: Match GNU/KFreeBSD with new kfreebsd*-gnu
+ triplet.
+ * configure.tgt: Likewise.
+
+2003-08-29 Jafa <jafa@silicondust.com>
+
+ * emulparams/elf32ip2k.sh (TEMPLATE_NAME): Define.
+
+2003-08-21 Nick Clifton <nickc@redhat.com>
+
+ * po/tr.po: Updated Turkish translation.
+
+2003-08-20 Nick Clifton <nickc@redhat.com>
+
+ * ldmain.c: Initialise the new fields in bfd_link_info to
+ NOT_YET_SET.
+ * lexsup.c (enum option_values): New enum. Use this to
+ replace the hand coded values for the long switch options.
+ (ld_options): Add 'unresolved-symbols',
+ 'warn-unresolved-symbols' and 'error-unresolved-symbols'.
+ (parse_args): Handle the new switches. Set the values of
+ unresolved_symbols_in_objects and
+ unresolved_symbols_in_shared_libs appropriately. If they were
+ not initialised by the command line, install default values.
+ * emultempl/elf32.em (handle_option): Update OPTION_GROUP and
+ -z defs to use the new fields in bfd_link_info.
+ * ld.texinfo: Document the new switches.
+ * NEWS: Mention this feature.
+
+2003-08-15 Dmitry Diky <diwil@mail.ru>
+
+ * Makefile.am (GENSCRIPTS_EXTRA): New script definition which
+ calls genscripts_extra.sh.
+ Rearrange all msp430 depends using this script.
+ * Makefile.in: Regenerate.
+ * genscripts_extra.sh: New file: Similar to genscripts.sh, except
+ that the script to be run to generate the emulations can be passed
+ as an optional parameter instead of being computed from the
+ emulation name.
+ * emulparams/msp430all.sh: New file: Combine all msp430 subdevice
+ definitions into one file.
+ * emulparams/msp430x*.sh: Removed.
+
+2003-08-15 Nick Clifton <nickc@redhat.com>
+
+ * ld.texinfo (Options): Put keywords for the -z option into a
+ table. Add more text describing what the -z now option does.
+
+2003-08-14 Alan Modra <amodra@bigpond.net.au>
+
+ * dep-in.sed: Remove libintl.h.
+ * Makefile.am (POTFILES.in): Unset LC_COLLATE.
+ * Makefile.in: Regenerate.
+
+2003-08-13 Alan Modra <amodra@bigpond.net.au>
+
+ * genscripts.sh (libpath.exp): Only generate for first emulation.
+ (LIB_PATH): Correct order of paths. Don't add $tool_lib when
+ already present or when LIB_PATH is set to ":".
+
+2003-08-12 Ian Lance Taylor <ian@airs.com>
+
+ * ldmain.c (undefined_symbol): Change parameter name from `fatal'
+ to `error'. If only a warning, put warning in the reported
+ string. Consistently set failure flag when not a warning.
+
+2003-08-08 Dmitry Diky <diwil@mail.ru>
+
+ * Makefile.am: Add xW42 and xE42 parts. Sort MPU list according to
+ gcc order.
+ * Makefile.in: Regenerate.
+ * configure.tgt: Add extra emulations.
+ * emulparams/msp430xE423.sh: New file.
+ * emulparams/msp430xE427.sh: New file.
+ * emulparams/msp430xW425.sh: New file.
+ * emulparams/msp430xE425.sh: New file.
+ * emulparams/msp430xW423.sh: New file.
+ * emulparams/msp430xW427.sh: New file.
+
+2003-08-07 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * emultempl/pe.em (gld_${EMULATION_NAME}_before_parse):
+ Change second (cmdline) arg to lang_add_entry to FALSE.
+ (set_pe_subsystem): Change second arg to lang_add_entry to TRUE.
+
+2003-08-05 Christian Groessler <chris@groessler.org>
+ Jason Eckhardt <jle@rice.edu>
+
+ * configure.tgt: Recognize new target i860-*-coff.
+ * Makefile.am (ALL_EMULATIONS): Add ecoff_i860.o.
+ (ecoff_i860.c): New rule.
+ * emulparams/coff_i860.sh: New file.
+ * scripttempl/i860coff.sc: New file.
+ * Makefile.in: Regenerate.
+
+2003-08-04 Nick Clifton <nickc@redhat.com>
+
+ * emultempl/elf32.em (before_allocation): Prepend "warning: "
+ to messages produced for .gnu.warning.SYMBOL sections.
+
+2003-08-04 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/elf32.em (output_rel_find): Add "isdyn" param. Put
+ .rel.dyn before other reloc sections. Don't stop looking for reloc
+ sections on finding one that isn't allocated. Match .rel even when
+ placing .rela and vice versa, when setting last_rel and
+ last_rel_alloc for the first time. If no reloc sections in script,
+ prefer allocated section over non-alloc.
+ (gld${EMULATION_NAME}_place_orphan): Handle orphan .rel.dyn.
+
+2003-07-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
+
+ * emulparams/shelf.sh (OTHER_SECTIONS): Don't include .stack
+ section for shared library.
+ * emulparams/shelf32.sh (OTHER_SECTIONS): Likewise.
+ * emulparams/shelf64.sh (OTHER_SECTIONS): Likewise.
+
+2003-07-29 Stephane Carrez <stcarrez@nerim.fr>
+
+ * scripttempl/elfm68hc12.sc: Add gcc_except_table.
+ * scripttempl/elfm68hc11.sc: Likewise.
+
+2003-07-28 Alan Modra <amodra@bigpond.net.au>
+
+ * emulparams/elf64ppc.sh (GOT): Fix for shell brace matching.
+
+ * emulparams/elf64ppc.sh (GOT): Don't merge .toc into .got for ld -r.
+
+2003-07-27 Alan Modra <amodra@bigpond.net.au>
+
+ * ld.texinfo: Typo fixes. Document SUBALIGN.
+ * ldgram.y (opt_subalign): Add.
+ * ldlex.l (SUBALIGN): Recognize.
+ * ldlang.c (overlay_subalign): New var.
+ (lang_enter_overlay): Add subalign param.
+ (lang_enter_overlay_section): Pass overlay_subalign to
+ lang_enter_output_section_statement.
+ * ldlang.h (lang_enter_overlay): Update.
+
+2003-07-24 Nick Clifton <nickc@redhat.com>
+
+ * po/fr.po: Updated French translation.
+
+2003-07-23 Stephane Carrez <stcarrez@nerim.fr>
+
+ * scripttempl/elfm68hc11.sc: Keep ctor/dtor sections; Take into
+ account .tramp sections;
+ * scripttempl/elfm68hc12.sc: Likewise.
+
+2003-07-17 Charles Wilson <cwilson@ece.gatech.edu>
+
+ * ld/pe-dll.c: Add libcygwin to autofilter_liblist[]
+
+2003-07-17 Nick Clifton <nickc@redhat.com>
+
+ * po/es.po: New Spanish translation.
+
+2003-07-11 Alan Modra <amodra@bigpond.net.au>
+
+ * po/ld.pot: Regenerate.
+
+2003-07-10 Bob Wilson <bob.wilson@acm.org>
+
+ * emulparams/elf32xtensa.sh (OTHER_READONLY_SECTIONS): Replace .xt.lit
+ with new .got.loc section.
+ (OTHER_READWRITE_SECTIONS): Do not combine linkonce sections for
+ non-relocating links.
+ (OTHER_SECTIONS): Add .xt.lit here. Change it to keep linkonce
+ sections separate for non-relocating links; likewise for .xt.insn.
+
+2003-07-10 Alexandre Oliva <aoliva@redhat.com>
+
+ 2001-08-22 Alexandre Oliva <aoliva@redhat.com>
+ * emulparams/elf32am33lin.sh: Adjust to match kernel parameters.
+ 2001-05-09 Alexandre Oliva <aoliva@redhat.com>
+ * configure.host (am33_2.0-*-linux*): Added.
+ * configure.tgt (am33_2.0-*-linux*): Likewise.
+ * emulparams/elf32am33lin.sh: New.
+ * Makefile.am (eelf32am33lin.c): New rule.
+ * Makefile.in: Rebuilt.
+
+2003-07-09 Alexandre Oliva <aoliva@redhat.com>
+
+ 2001-04-17 Alexandre Oliva <aoliva@redhat.com>
+ * emulparams/mn10300.sh (TEMPLATE_NAME): Define.
+ (GENERATE_SHLIB_SCRIPT): Likewise.
+
+2003-07-10 Alan Modra <amodra@bigpond.net.au>
+
+ * emulparams/elf64ppc.sh (OTHER_GOT_SECTIONS): Don't define.
+ (GOT): Define.
+ * emultempl/ppc64elf.em (stub_added): New static var.
+ (ppc_create_output_section_statements): Call ppc64_elf_init_stub_bfd.
+ (ppc_add_stub_section): Set stub_added.
+ (gld${EMULATION_NAME}_finish): Look for .got rather than .toc. Adjust
+ ppc64_elf_size_stubs call and test for stubs.
+ * scripttempl/elf.sc (GOT): Define and use.
+
+2003-07-08 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * emultempl/sh64elf.em (sh64_elf_${EMULATION_NAME}_after_allocation):
+ Allow second call from ldemul_finish.
+
+2003-07-04 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * emulparams/shelf32.sh (STACK_ADDR): Don't define.
+ (OTHER_SECTIONS): Include .stack.
+ * emulparams/shelf64.sh (OTHER_SECTIONS): Likewise.
+
+2003-07-02 Jakub Jelinek <jakub@redhat.com>
+
+ * emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Don't include
+ .opd if -pie.
+ (OTHER_READWRITE_SECTIONS): Include .opd if -pie.
+ * scripttempl/elf.sc: Use SHLIB_DATA_ADDR instead of DATA_ADDR
+ if -pie.
+
+2003-06-28 Alan Modra <amodra@bigpond.net.au>
+
+ * ld.h: Convert to C90, remove unnecessary prototypes and casts.
+ Replace PTR with void *. Formatting.
+ * ldcref.c: Likewise.
+ * ldctor.c: Likewise.
+ * ldctor.h: Likewise.
+ * ldemul.h: Likewise.
+ * ldexp.c: Likewise.
+ * ldexp.h: Likewise.
+ * ldfile.c: Likewise.
+ * ldfile.h: Likewise.
+ * ldlang.c: Likewise.
+ * ldlang.h: Likewise.
+ * ldlex.h: Likewise.
+ * ldlex.l: Likewise.
+ * ldmain.c: Likewise.
+ * ldmain.h: Likewise.
+ * ldmisc.c: Likewise.
+ * ldmisc.h: Likewise.
+ * ldver.h: Likewise.
+ * ldwrite.c: Likewise.
+ * ldwrite.h: Likewise.
+ * lexsup.c: Likewise.
+ * mri.c: Likewise.
+ * mri.h: Likewise.
+ * pe-dll.c: Likewise.
+ * pe-dll.h: Likewise.
+ * deffilep.y: Likewise.
+ * deffile.h: Likewise. Don't include ansidecl.h.
+ * emulparams/elf32mcore.sh: Remove unnecessary cast.
+ * emultempl/m68kcoff.em: Likewise.
+ * emultempl/m68kelf.em: Likewise.
+ * emultempl/ticoff.em: Remove lang_add_output_format declaration.
+ * sysdep.h: Don't include ansidecl.h.
+ * Makefile.am: Run "make dep-am".
+ * Makefile.in: Regenerate.
+
+2003-06-27 Nick Clifton <nickc@redhat.com>
+
+ * deffilep.y (def_file_add_directive): Cope with NUL seperated
+ directives. Fix reporting of unparseable directives.
+ (def_error): Check for a NULL def_filename.
+
+2003-06-27 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/aix.em: Convert to C90, remove unnecessary prototypes
+ and casts. Replace PTR with void *. Formatting.
+ * emultempl/alphaelf.em: Likewise.
+ * emultempl/armcoff.em: Likewise.
+ * emultempl/armelf.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/hppaelf.em: Likewise.
+ * emultempl/linux.em: Likewise.
+ * emultempl/lnk960.em: Likewise.
+ * emultempl/m68hc1xelf.em: Likewise.
+ * emultempl/m68kcoff.em: Likewise.
+ * emultempl/m68kelf.em: Likewise.
+ * emultempl/mipsecoff.em: Likewise.
+ * emultempl/mipself.em: Likewise.
+ * emultempl/mmix-elfnmmo.em: Likewise.
+ * emultempl/mmixelf.em: Likewise.
+ * emultempl/mmo.em: Likewise.
+ * emultempl/needrelax.em: Likewise.
+ * emultempl/netbsd.em: Likewise.
+ * emultempl/pe.em: Likewise.
+ * emultempl/sh64elf.em: Likewise.
+ * emultempl/sunos.em: Likewise.
+ * emultempl/ticoff.em: Likewise.
+ * emultempl/vanilla.em: Likewise.
+ * emultempl/xtensaelf.em: Likewise.
+ * Makefile.am: Correct dependencies.
+ * Makefile.in: Regenerate.
+
+2003-06-25 Alan Modra <amodra@bigpond.net.au>
+
+ * ld.texinfo: Correct spelling of "relocatable".
+ * ldctor.c: Likewise.
+ * ldexp.c: Likewise.
+ * ldfile.c: Likewise.
+ * ldint.texinfo: Likewise.
+ * ldlang.c: Likewise.
+ * ldmain.c: Likewise.
+ * ldwrite.c: Likewise.
+ * lexsup.c: Likewise.
+ * emultempl/aix.em: Likewise.
+ * emultempl/alphaelf.em: Likewise.
+ * 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/hppaelf.em: Likewise.
+ * emultempl/linux.em: Likewise.
+ * emultempl/lnk960.em: Likewise.
+ * emultempl/m68hc1xelf.em: Likewise.
+ * emultempl/m68kcoff.em: Likewise.
+ * emultempl/m68kelf.em: Likewise.
+ * emultempl/mipsecoff.em: Likewise.
+ * emultempl/mipself.em: Likewise.
+ * emultempl/mmix-elfnmmo.em: Likewise.
+ * emultempl/mmo.em: Likewise.
+ * emultempl/needrelax.em: Likewise.
+ * emultempl/pe.em: Likewise.
+ * emultempl/ppc64elf.em: Likewise.
+ * emultempl/sh64elf.em: Likewise.
+ * emultempl/sunos.em: Likewise.
+ * emultempl/ticoff.em: Likewise.
+ * emultempl/xtensaelf.em: Likewise.
+
+2003-06-24 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/ppc32elf.em: Convert to C90.
+
+2003-06-20 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/ppc64elf.em: Convert to C90 function definitions, remove
+ unnecessary prototypes and casts.
+
+2003-06-19 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/ppc64elf.em (gld${EMULATION_NAME}_finish): Dump out
+ statistics from ppc64_elf_build_stubs.
+
+2003-06-19 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/ppc64elf.em (build_section_lists): Check return status
+ from ppc64_elf_next_input_section.
+
+2003-06-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ * ldlang.c (section_already_linked): Put back assignment of
+ kept_section.
+
+2003-06-17 Rainer Keuchel <rkeuchel@allgeier.com>
+
+ * pe-dll.c (generate_reloc): Catch and ignore an ARM_26D
+ reloc.
+
+2003-06-17 Loren James Rittle <rittle@latour.rsch.comm.mot.com>
+
+ * configure.host (*-*-freebsd*): Add known path for ld-elf.so.1
+ if not produced by gcc.
+
+2003-06-16 Hans-Peter Nilsson <hp@axis.com>
+
+ * configure.tgt: Add specific case for cris-*-linux-gnu*
+ with crislinux emulation only.
+
+2003-06-13 Robert Millan <zeratul2@wanadoo.es>
+
+ * configure.tgt: Add i386-netbsd-gnu target.
+
+2003-06-12 Richard Sandiford <rsandifo@redhat.com>
+
+ * configure.tgt (mips*-sgi-irix6*): Add the o32 and n64 emulations
+ to $targ_extra_libpath.
+
+2003-06-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ * po/Make-in (DESTDIR): New.
+ (install-data-yes): Support $(DESTDIR).
+ (uninstall): Likewise.
+
+2003-06-10 Doug Evans <dje@sebabeach.org>
+
+ * Makefile.am (ALL_EMULATIONS): Add em32relf.o.
+ * Makefile.in: Regenerate.
+
+2003-06-10 Richard Sandiford <rsandifo@redhat.com>
+
+ * configure.tgt (h8300*): Add h8300sxn emulations.
+ * Makefile.am (ALL_EMULATIONS): Add eh8300sxn.o and eh8300sxnelf.o.
+ (eh8300sxn.c, eh8300sxnelf.c): New rules.
+ * Makefile.in: Regenerate.
+ * emulparams/h8300sxnelf.sh, emulparams/h8300sxn.sh: New files.
+ * scripttempl/h8300sxn.sc: New file.
+
+2003-06-10 Alan Modra <amodra@bigpond.net.au>
+
+ * emulparams/elf64ppc.sh (EXECUTABLE_SYMBOLS, OTHER_BSS_END_SYMBOLS,
+ CTOR_START, CTOR_END, DTOR_START, DTOR_END): Don't define.
+
+2003-06-08 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/ppc64elf.em (emit_stub_syms, toc_section): New vars.
+ (build_toc_list): New function.
+ (gld${EMULATION_NAME}_finish): Call build_toc_list and
+ ppc64_elf_reinit_toc. Adjust ppc64_elf_build_stubs call.
+ (OPTION_STUBSYMS): Define.
+ (PARSE_AND_LIST_LONGOPTS): Add emit-stub-syms.
+ (PARSE_AND_LIST_OPTIONS): Document.
+ (PARSE_AND_LIST_ARGS_CASES): Handle.
+
+2003-06-05 Roland McGrath <roland@redhat.com>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_list_options): Remove
+ extra \t in -z noexecstack line.
+
+2003-05-23 Jakub Jelinek <jakub@redhat.com>
+
+ * ldgram.y (phdr_type): Grok PT_GNU_STACK.
+ * emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Add
+ -z execstack and -z noexecstack.
+ (gld${EMULATION_NAME}_list_options): Likewise.
+ * scripttempl/elf.sc: If not -r, discard .note.GNU-stack section.
+
+2003-06-03 Michael Snyder <msnyder@redhat.com>
+ and Bernd Schmidt <bernds@redhat.com>
+ and Alexandre Oliva <aoliva@redhat.com>
+
+ * Makefile.am: Add new emulations for h8300sx.
+ * Makefile.in: Regenerate.
+ * configure.tgt: Add new emulations.
+ * emulparams/h8300sx.sh: New emulation.
+ * emulparams/h8300sxelf.sh: Ditto.
+ * scripttempl/h8300sx.sc: Ditto.
+
+2003-06-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * ldmisc.c: Include "bfdlink.h".
+ (error_handler): Handle LD_DEFINITION_IN_DISCARDED_SECTION
+ and -LD_DEFINITION_IN_DISCARDED_SECTION.
+
+ * Makefile.am: Rebuild dependency.
+ * Makefile.in: Regenerated.
+
+2003-06-03 Kaz Kojima <kkojima@rr.iij4u.or.jp>
+
+ * emulparams/shlelf_linux.sh (GENERATE_PIE_SCRIPT): Set to yes.
+ * emulparams/shlelf32_linux.sh (GENERATE_PIE_SCRIPT): Likewize.
+
+2003-06-02 Fabrizio Gennari <fabrizio.ge@tiscalinet.it>
+
+ * pe-dll.c (fill_edata): Scan table pe_dll->exports, which is
+ sorted alphabetically, instead of exported_symbols, which is
+ sorted by ordinal.
+
+2003-05-30 Ulrich Drepper <drepper@redhat.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ * lexsup.c (OPTION_PIE): Define.
+ (ld_options): Add -pie and --pic-executable options.
+ (parse_args): Handle OPTION_PIE.
+ * ldmain.c (main): Initialize link_info.pie and
+ link_info.executable.
+ * genscripts.sh: Generate PIE scripts.
+ * ld.texinfo: Document -pie and --pic-executable options.
+ * emultempl/elf32.em (gld${EMULATION_NAME}_after_open):
+ (gld${EMULATION_NAME}_place_orphan): Likewise.
+ (gld${EMULATION_NAME}_get_script): Include PIE scripts.
+ * scripttempl/elf.sc: In PIE scripts set . the same way as in
+ shared scripts.
+ * emulparams/elf_i386.sh (GENERATE_PIE_SCRIPT): Set to yes.
+ * emulparams/elf64_ia64.sh (GENERATE_PIE_SCRIPT): Likewise.
+ * emulparams/elf32ppc.sh (GENERATE_PIE_SCRIPT): Likewise.
+ * emulparams/elf64ppc.sh (GENERATE_PIE_SCRIPT): Likewise.
+ * emulparams/elf_x86_64.sh (GENERATE_PIE_SCRIPT): Likewise.
+ * emulparams/elf_s390.sh (GENERATE_PIE_SCRIPT): Likewise.
+ * emulparams/elf32_sparc.sh (GENERATE_PIE_SCRIPT): Likewise.
+ * emulparams/elf64_sparc.sh (GENERATE_PIE_SCRIPT): Likewise.
+ * emulparams/elf64alpha.sh (GENERATE_PIE_SCRIPT): Likewise.
+ * emulparams/elf64_s390.sh (GENERATE_PIE_SCRIPT): Likewise.
+ * emulparams/elf_i386.sh (GENERATE_PIE_SCRIPT): Likewise.
+
+2003-05-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ * genscripts.sh: Create tmpdir/libpath.exp.
+
+2003-05-30 Nick Clifton <nickc@redhat.com>
+
+ * emultempl/armelf.em (arm_elf_before_allocation): Replace ASSERT
+ with a test for a NULL bfd_for_interworking.
+
+2003-05-29 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * configure.host (*-*-netbsd*): Set HOSTING_CRT0 and HOSTING_LIBS
+ correctly for more recent versions of NetBSD.
+ (alpha*-*-netbsd*): Remove.
+ (i[3-7]86-*-netbsd*): Remove.
+
+2003-05-29 Nick Clifton <nickc@redhat.com>
+
+ * emultempl/pe.em: Include "safe-ctype.h" instead of <ctype.h>.
+
+2003-05-26 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
+
+ * emulparams/elf64btsmip.sh: Set TEXT_START_ADDR to 0x120000000 to
+ trap on pointer crops.
+
+2003-05-21 Marcus Comstedt <marcus@mc.pp.se>
+
+ * configure.tgt: Check for a target triplet of shl-...-netbsdelf
+ as well as shle-...-netbsdelf.
+
+2003-05-16 Kelley Cook <kelleycook@wideopenwest.com>
+
+ * configure.host: Accept i[3-7]86 variants.
+ * configure.tgt: Likewise.
+
+2003-05-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ * emulparams/elf64_ia64.sh: Don't set COMMONPAGESIZE for now.
+
+2003-05-09 Daniel Jacobowitz <drow@mvista.com>
+
+ * Makefile.am (ALL_EMULATIONS): Add earmelfb.o and earmelfb_linux.o.
+ (earmelfb.c, earmelfb_linux.c): New rules.
+ * Makefile.in: Regenerated.
+ * emulparams/armelfb.sh, emulparams/armelfb_linux.sh: New files.
+ * configure.tgt: Add armeb-elf and arm*b-*-linux-gnu.
+
+2003-05-09 Nick Clifton <nickc@redhat.com>
+
+ * ldlang.c (lang_size_sections_1): Default to generating a
+ fatal error message if a loadable section is not allocated
+ to a memory region when regions are defined.
+
+2003-05-09 Alan Modra <amodra@bigpond.net.au>
+
+ * Makefile.am (em68hc11elf.c): Correct dependencies.
+ (em68hc11elfb.c, em68hc12elf.c, em68hc12elfb.c): Likewise.
+ * Makefile.in: Regenerate.
+ * emultempl/elf32.em (find_exp_assignment): Adjust for changed
+ bfd_elf_record_link_assignment name.
+
+2003-05-07 Alexandre Oliva <aoliva@redhat.com>
+
+ * ldmain.h (overflow_cutoff_limit): Declare.
+ * ldmain.c (overflow_cutoff_limit): Define, initialized to 10.
+ (reloc_overflow): Limit error messages based on it.
+ * lexsup.c (parse_args) <OPTION_VERBOSE>: Set cutoff to
+ unlimited.
+
+2003-05-05 Alan Modra <amodra@bigpond.net.au>
+
+ * ldlex.l: Accept C style comments in version scripts.
+
+2003-04-28 H.J. Lu <hjl@gnu.org>
+
+ * ldlang.c (lang_process): Add the relax finalize pass.
+
+ * ldmain.c (main): Initialize link_info.relax_finalizing to
+ FALSE.
+
+2003-04-24 Roland McGrath <roland@redhat.com>
+
+ * ldgram.y (phdr_type): Grok PT_TLS and PT_GNU_EH_FRAME names.
+ If a name string is unknown, give an error rather than crashing later.
+
+2003-04-23 Dhananjay Deshpande <dhananjayd@kpitcummins.com>
+
+ * Makefile.am (ALL_EMULATIONS): Add eh8300hn.o, eh8300sn.o,
+ eh8300hnelf.o, eh8300snelf.o and respective rules.
+ * Makefile.in: Regenerate.
+ * configure.tgt: Add h8300hn, h8300sn, h8300hnelf, h8300snelf
+ * emulparams/h8300hn.sh: New
+ * emulparams/h8300sn.sh: New
+ * emulparams/h8300hnelf.sh: New
+ * emulparams/h8300snelf.sh: New
+ * scripttempl/h8300hn.sc: new
+ * scripttempl/h8300sn.sc: new
+
+2003-04-23 H.J. Lu <hjl@gnu.org>
+
+ * ldmain.c (link_callbacks): Initialize error_handler.
+
+ * ldmisc.c (error_handler): New function.
+
+ * ldmisc.h (error_handler): New prototype.
+
+2003-04-21 Stephane Carrez <stcarrez@nerim.fr>
+
+ * emulparams/m68hc11elf.sh: Use m68hc1xelf.em extra.
+ * emulparams/m68hc11elfb.sh: Likewise.
+ * emulparams/m68hc12elf.sh: Likewise.
+ * emulparams/m68hc12elfb.sh: Likewise.
+
+2003-04-19 Stephane Carrez <stcarrez@nerim.fr>
+
+ * emultempl/m68hc1xelf.em: New file to generate far trampolines on
+ 68HC11 and 68HC12.
+ (LDEMUL_BEFORE_ALLOCATION): Override to gather the trampolines to
+ generate.
+ (LDEMUL_FINISH): Override to generate the trampolines after gc and
+ linker relaxation.
+ (LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS): Override to create the
+ stub file for trampolines.
+ (PARSE_AND_LIST_OPTIONS, PARSE_AND_LIST_LONGOPTS): New options
+ --no-trampoline and --bank-window to control the memory bank window.
+
+2003-04-18 H.J. Lu <hjl@gnu.org>
+
+ * ldfile.c (ldfile_add_library_path): Remove the unused
+ variable.
+
+2003-04-18 Andrew Haley <aph@cambridge.redhat.com>
+
+ * scripttempl/xstormy16.sc (__data, __rdata): New.
+
+2003-04-16 Nick Clifton <nickc@redhat.com>
+
+ * scripttempl/xstormy16.sc: Add .jcr section mapping.
+
+2003-04-15 H.J. Lu <hjl@gnu.org>
+
+ From Debian by Jack Howarth <howarth@nitro.med.uc.edu>:
+
+ * ldlex.l: Use YY_CURRENT_BUFFER instead of yy_current_buffer.
+
+2003-04-15 Rohit Kumar Srivastava <rohits@kpitcummins.com>
+
+ * h8-doc.texi: Replace occurrances of 'Hitachi' with 'Renesas'.
+ * ld.texinfo: Likewise.
+
+2003-04-14 Alan Modra <amodra@bigpond.net.au>
+
+ From Prashanth Tamraparni <prashanth_t@in.ibm.com>
+ * scripttempl/elf.sc (CTOR): Handle crtbeginS.o, crtendS.o and
+ other variants of crtbegin.o, crtend.o.
+ (DTOR): Likewise.
+ * scripttempl/crisaout.sc (ctors, dtors): Likewise.
+ * scripttempl/elf_chaos.sc (CTOR, DTOR): Likewise.
+ * scripttempl/elfd10v.sc (CTOR, DTOR): Likewise.
+ * scripttempl/elfd30v.sc (CTOR, DTOR): Likewise.
+ * scripttempl/elfxtensa.sc (CTOR, DTOR): Likewise.
+ * scripttempl/iq2000.sc (CTOR, DTOR): Likewise.
+ * scripttempl/mmo.sc (ctors, dtors): Likewise.
+ * scripttempl/xstormy16.sc (CTOR, DTOR): Likewise.
+
+2003-04-09 Dmitry Diky <diwil@mail.ru>
+
+ * scripttempl/elf32msp430.sc: Add initX, finiX, ctors, dtors
+ sections to respect C++ constructor/destructor. Add ctors/dtors
+ start/stop definitions.
+ * scripttempl/elf32msp430_3.sc: Likewise.
+
+2003-04-06 Nick Clifton <nickc@redhat.com>
+
+ * ld.texinfo (Options): Add a reminder of the target specific
+ nature to the description of the i386 PE specific options, for
+ readers who have not read all the way through the manual.
+
+2003-04-04 Svein E. Seldal <Svein.Seldal@solidas.com>
+
+ * configure.tgt: Fixed bug in list of targ_extra_emuls.
+ * emulparams/tic3xcoff.sh (SCRIPT_NAME): Namespace
+ cleanup. Replace s/c4x/tic4x and s/c3x/tic3x/
+ * emulparams/tic3xcoff_onchip.sh: Ditto
+ * emulparams/tic4xcoff.sh: Ditto
+ * scripttempl/tic4xcoff.sc: Ditto
+
+2003-04-03 Nick Clifton <nickc@redhat.com>
+
+ * NEWS: Mention support for Xtensa architecture.
+
+2003-04-02 Nick Clifton <nickc@redhat.com>
+
+ * pe-dll.c (pe_detail_list): arm-pe targets use underscores.
+
+2003-04-01 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * emultempl/pe.em (gld_${EMULATION_NAME}_after_open):
+ Don't call pe_dll_build_section() if link_info.relocateable.
+ (gld_${EMULATION_NAME}_finish): Don't call pe_dll_fill_sections()
+ if link_info.relocateable.
+
+2003-04-01 Fabrizio Gennari <fabrizio.ge@tiscalinet.it>
+
+ * pe-dll.c (process_def_file): Don't create an export
+ section if there are no exports and we're building an exe
+ (pe_dll_build_sections): Ditto
+ (pe_dll_fill_sections): Conditionalize setting
+ abfd->dll true on info->shared
+ * emultempl/pe.em (gld_${EMULATION_NAME}_after_open):
+ If i386pe or armpe, call pe_dll_build_section()
+ for both exe's and dll's, not just dll's.
+ (gld_${EMULATION_NAME}_finish): For all targets except
+ shpe and mipspe, call pe_dll_fill_sections() for both
+ exe's and dll's, not just dll's.
+
+2003-04-02 Bob Wilson <bob.wilson@acm.org>
+
+ * emulparams/xtensa-config.sh: Remove comment indicating that this is
+ a generated file.
+
+2003-04-01 Bob Wilson <bob.wilson@acm.org>
+
+ * Makefile.am (ALL_EMULATIONS): Add eelf32xtensa.o.
+ (eelf32xtensa.c): New target.
+ * Makefile.in: Regenerate.
+ * configure.tgt: Handle xtensa-*-*.
+ * gen-doc.texi: Set XTENSA variable.
+ * ld.texinfo: Set XTENSA variable. Add new Xtensa node.
+ * emulparams/elf32xtensa.sh: New file.
+ * emulparams/xtensa-config.sh: Likewise.
+ * emultempl/xtensaelf.em: Likewise.
+ * scripttempl/elfxtensa.sc: Likewise.
+
+2003-04-01 Jakub Jelinek <jakub@redhat.com>
+
+ * configure.tgt (powerpc*-*-linux*): Add elf32ppc to ppc64
+ targ_extra_libpath. Add elf64ppc to ppc targ_extra_libpath
+ if --enable-64-bit-bfd.
+
+2003-04-01 Nick Clifton <nickc@redhat.com>
+
+ * emulparams/armelf.sh (OTHER_READONLY_SECTIONS): Change name of
+ note section.
+ * emulparams/armelf_linux.sh (OTHER_READONLY_SECTIONS): Change
+ name of note section.
+
+2003-03-31 Alexandre Oliva <aoliva@redhat.com>
+
+ * ld.texinfo (-Tbss, -Tdata, -Ttext): Document in terms of
+ --section-start.
+
+2003-03-31 David Heine <dlheine@suif.stanford.edu>
+
+ * ldfile.c (ldfile_add_library_path): Always allocate space for
+ the filename.
+ * ldlang.c (lang_register_vers_node): Free the node if it cannot
+ be used.
+ * ldmain.c (set_scripts_dir): Always free the constructed
+ directory name.
+ (add_keepsyms_file): Fix memory leak.
+ * ldmisc.c (vfinfo): Likewise.
+ * lexsup.c (parse_args): Likewise.
+
+2003-03-25 Stan Cox <scox@redhat.com>
+ Nick Clifton <nickc@redhat.com>
+
+ Contribute support for Intel's iWMMXt chip - an ARM variant:
+
+ * emulparams/armelf.sh (OTHER_READONLY_SECTIONS): Define.
+ * emulparams/armelf_linux.sh (OTHER_READONLY_SECTIONS): Define.
+ * scripttempl/armcoff.sc (.data): Ensure 8 byte alignment.
+ (.bss): Likewise.
+
+2003-03-25 Alexandre Oliva <aoliva@redhat.com>
+
+ * ldmain.h (ld_canon_sysroot, ld_canon_sysroot_len): Declare.
+ * ldmain.c (ld_canon_sysroot, ld_canon_sysroot_len): Define.
+ (main): Initialize them.
+ * ldfile.c: Include pathnames.h.
+ (is_sysrooted_pathname): New.
+ (ldfile_add_library_path): Use it.
+ (ldfile_open_file_search): Likewise. Use IS_ABSOLUTE_PATH. Don't
+ search_dirs if given an absolute pathname.
+ (ldfile_open_file): Issue error message for sysrooted
+ absolute pathnames.
+ * Makefile.am: Updated dependencies.
+ * Makefile.in: Rebuild.
+
+2003-03-24 Daniel Néri <dne@mayonnaise.net>
+
+ * ld.texinfo: Rename all occurances of C54X to TIC54X.
+
+2003-03-19 Andreas Schwab <schwab@suse.de>
+
+ * ldfile.c (ldfile_try_open_bfd): Pop lexer start condition after
+ eof.
+
+2003-03-18 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * deffilep.y (opt_base): If no number given, set to default
+ (-1), not 0.
+
+2003-03-13 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * deffilep.y (def_import): Use default extension of "dll"
+ if no extension provided in parsed IMPORT definition.
+
+ * deffilep.y (def_lex): Revert 2003-03-12 change.
+ (dot_name): New id type and rule.
+ (expline): Use instead of ID.
+ (opt_equal_name): Likewise.
+
+2003-03-12 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * deffilep.y (def_lex): Accept '.' as valid non-lead char.
+
+2003-03-07 Christopher Faylor <cgf@redhat.com>
+
+ * configure.tgt: Add NATIVE_LIB_DIRS for cygwin target back after
+ apparent accidental removal on 2003-01-06.
+
+2003-03-04 Dmitry Diky <diwil@mail.ru>
+
+ * Makefile.am: Add new devices x1122 x1132 emulation
+ * configure.tgt: Likewise.
+ * Makefile.in: Regenerate.
+ * emulparams/msp430x1122.sh: New file.
+ * emulparams/msp430x1132.sh: New file.
+
+2003-03-03 Alexandre Oliva <aoliva@redhat.com>
+
+ * ldmain.c (set_scripts_dir): Look for relative to TOOLBINDIR as
+ well.
+
+ * ldfile.h (struct search_dirs): Added sysrooted field.
+ * ldlang.h (struct lang_input_statement_struct): Likewise.
+ * ldfile.c (ldfile_add_library_path): Mark sysrooted paths.
+ (ldfile_open_file_search): Look for sysrooted filename starting
+ with / in ld_sysroot instead of in the current directory. Clear
+ sysrooted flag if it's found in the current directory. Set it
+ from the search directory's sysrooted flag where it is found
+ otherwise.
+ * ldlang.c (ldlang_sysrooted_script): New static variable.
+ (new_afile): Mark search_file_enums as sysrooted if
+ ldlang_sysrooted_script.
+ (load_symbols): Set ldlang_sysrooted_script according to the
+ script's sysrooted field while processing it.
+ * ld.texinfo: Document INPUT behavior in sysroot.
+
+2003-03-02 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * scripttempl/pe.sc: Use PROVIDE with etext, end, _end,
+
+2003-03-03 Alan Modra <amodra@bigpond.net.au>
+
+ * emulparams/elf64alpha.sh (EXTRA_EM_FILE): Define.
+ (PARSE_AND_LIST_PROLOGUE, PARSE_AND_LIST_LONGOPTS,
+ PARSE_AND_LIST_OPTIONS, PARSE_AND_LIST_ARGS_CASES,
+ PARSE_AND_LIST_EPILOGUE): Don't define.
+ * emultempl/alphaelf.em: New file.
+
+2003-03-01 Alan Modra <amodra@bigpond.net.au>
+
+ * ldemul.c: Include getopt.h.
+ * emultempl/elf32.em: Include getopt.h earlier.
+ * emultempl/ticoff.em: Likewise.
+
+2003-02-28 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_get_script): Add combreloc
+ support when scripts read from files.
+
+2003-02-28 Alan Modra <amodra@bigpond.net.au>
+
+ * ldemul.c (ldemul_parse_args): Return FALSE by default.
+ * ldemul.h (struct ld_emulation_xfer_struct): Update parse_args
+ comment.
+
+ * ldemul.c (ldemul_add_options, ldemul_handle_option): New functions.
+ (ldemul_parse_args): Return bfd_boolean. Formatting.
+ * ldemul.h (ldemul_add_options, ldemul_handle_option): Declare.
+ (ldemul_parse_args): Adjust.
+ (struct ld_emulation_xfer_struct): Add add_options and handle_option.
+ Return bfd_boolean from parse_args.
+ * lexsup.c (parse_args): Malloc shortopts, longopts and
+ really_longopts. Call ldemul_add_options and ldemul_handle_option.
+ * emultempl/aix.em (gld${EMULATION_NAME}_add_options): Split out from
+ gld${EMULATION_NAME}_parse_args.
+ (gld${EMULATION_NAME}_handle_option): Likewise.
+ (ld_${EMULATION_NAME}_emulation): Adjust initializer.
+ * emultempl/armcoff.em: As for aix.em, but remove parse_args.
+ * emultempl/beos.em: Likewise.
+ * emultempl/pe.em: Likewise.
+ * emultempl/ticoff.em: Likewise.
+ * emultempl/elf32.em: Likewise. Don't duplicate long options either.
+ (gld${EMULATION_NAME}_add_sysroot): Prototype.
+ * emultempl/armelf.em (PARSE_AND_LIST_LONGOPTS): Don't duplicate
+ options.
+ * emultempl/hppaelf.em (PARSE_AND_LIST_LONGOPTS): Likewise.
+ * emultempl/ppc32elf.em (PARSE_AND_LIST_LONGOPTS): Likewise.
+ * emultempl/ppc64elf.em (PARSE_AND_LIST_LONGOPTS): Likewise.
+ * emultempl/armelf_oabi.em (ld_${EMULATION_NAME}_emulation): Adjust
+ initializer.
+ * 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/sunos.em: Likewise.
+ * emultempl/vanilla.em: Likewise.
+ * emultempl/netbsd.em (gldnetbsd_before_parse): Prototype.
+
+2003-02-25 Alexandre Oliva <aoliva@redhat.com>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_add_sysroot): Fix
+ memory allocation error.
+
+ * Makefile.am (ldmain.o): Define TOOLBINDIR.
+ * Makefile.in: Rebuilt.
+ * ldmain.c (ld_sysroot): Try to set from TOOLBINDIR too.
+
+2003-02-21 Bob Wilson <bob.wilson@acm.org>
+
+ * ldlang.c (lang_size_sections_1): Add CHECK_REGIONS argument and only
+ call os_region_check when it is set.
+ (lang_size_sections): Add CHECK_REGIONS argument and pass it through to
+ lang_size_sections_1.
+ (lang_process): Change lang_size_sections calls to set CHECK_REGIONS
+ only for the last call, not on every relaxation iteration.
+ * ldlang.h (lang_size_sections): Update prototype.
+ * pe-dll.c (pe_dll_fill_sections): Set CHECK_REGIONS argument in calls
+ to lang_size_sections.
+ (pe_exe_fill_sections): Likewise.
+ * emultempl/elf32.em (gld${EMULATION_NAME}_finish): Likewise.
+ * emultempl/hppaelf.em (hppaelf_layout_sections_again): Likewise.
+ * emultempl/ppc64elf.em (ppc_before_allocation): Likewise.
+ (ppc_layout_sections_again): Likewise.
+
+2003-02-21 Bob Wilson <bob.wilson@acm.org>
+
+ * gen-doc.texi: Set ARM and HPPA variables.
+ * ld.texinfo: Fix typos and obvious texinfo mistakes. Make section
+ title capitalization more consistent. Add missing menu entries for
+ machine-specific sections and conditionalize them consistently.
+ Conditionalize text that is irrelevant when SingleFormat is set.
+ Add @group divisions to improve page breaks in long examples.
+ Use @iftex/@ifnottex instead of @iftex/@ifinfo so that HTML output
+ is correct. Remove "FIXME" comment about not using
+ @raisesections/@lowersections. Use @raisesections/@lowersections
+ consistently for machine-specific sections. Change to be more polite
+ about poor bug reports. Replace FDL appendix with include of fdl.texi.
+ Move WIN32 node to match its order in the menus.
+ * fdl.texi: New file.
+
+2003-02-20 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.in (TARGET_SYSTEM_ROOT): Set default to
+ ${exec_prefix}/${target_alias}/sys-root. Match explicit
+ '${exec_prefix}' (in addition to the expansion thereof) as
+ relocatable.
+ * configure: Rebuilt.
+
+2003-02-20 Phil Edwards <pme@gcc.gnu.org>
+
+ * ldgram.y (vers_defns): Also recurse with 'EXTERN NAME' patterns.
+
+2003-02-20 Harri Porten <porten@kde.org>
+
+ * ldgram.y (vers_defns): Allow optional trailing semicolon in
+ EXTERN NAME block;
+
+2003-02-18 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/ppc32elf.em: New file.
+ * emulparams/elf32ppc.sh (EXTRA_EM_FILE): Define.
+ * Makefile.am (eelf32lppc.c): Depend on emultempl/ppc32elf.em.
+ (eelf32lppcnto.c): Likewise.
+ (eelf32lppcsim.c): Likewise.
+ (eelf32ppcnto.c): Likewise.
+ (eelf32ppc.c): Likewise.
+ (eelf32ppc_fbsd.c): Likewise.
+ (eelf32ppcsim.c): Likewise.
+ (eelf32ppclinux.c): Likewise.
+ * Makefile.in: Regenerate.
+
+2003-02-18 Alan Modra <amodra@bigpond.net.au>
+
+ * ld.texinfo: Remove spaces between @samp and opening brace.
+
+2003-02-18 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/ppc64elf.em (ppc_create_output_section_statements): Check
+ hash creator.
+ (ppc_before_allocation): Don't do optimizations if wrong hash table.
+ (gld${EMULATION_NAME}_finish): Ditto.
+
+2003-02-17 Nick Clifton <nickc@redhat.com>
+
+ * ldmain.c (main) Default allow_shlib_undefined to true.
+ * lexsup.c (ld_options): Add --no-allow-shlib-undefined.
+ (parse_args): Parse the new switch.
+ * ld.texinfo: Document new switch and default behaviour of
+ allowing undefined symbols in shared libraries.
+
+2003-02-11 Dmitry Diky <diwil@mail.ru>
+
+ * scripttempl/elf32msp430.sc: Add new data anchors definitions.
+ * scripttempl/elf32msp430_3.sc: Likewise.
+
+2003-02-11 Uwe Stieber <uwe@wwws.de>
+
+ * configure.tgt: Add support for kaOS as cross build target
+ system.
+
+2003-02-10 John Daivid Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * hppaelf.em (group_size): Change default back to 1.
+
+2003-02-09 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/ppc64elf.em: Add "no-tls-optimize" option and support code.
+
+2003-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * hppaelf.em (group_size): Change default to -1.
+
+2003-02-07 Nick Clifton <nickc@redhat.com>
+
+ * emultempl/armelf.em (PARSE_AND_LIST_SHORTOPTS): Remove 'n' short
+ opt.
+ (PARSE_AND_LIST_LONGOPTS): Add duplicate entry for
+ no-pipeline-knowledge. This will prevent the getopt package from
+ thinking that there are any shorter abbreviations for
+ --no-pipeline-knowledge.
+
+2003-02-07 Jakub Jelinek <jakub@redhat.com>
+
+ * genscripts.sh (LIB_PATH): Don't append LIBPATH_SUFFIX to paths
+ which already have it. Avoid duplicates.
+
+2003-02-06 Jakub Jelinek <jakub@redhat.com>
+
+ * emulparams/elf64_s390.sh (LIBPATH_SUFFIX): Set to 64.
+ * emulparams/elf_x86_64.sh (LIBPATH_SUFFIX): Likewise.
+ * emulparams/elf64_sparc.sh (LIBPATH_SUFFIX): Set instead of suffix.
+
+2003-02-05 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/ppc64elf.em (ppc_before_allocation): Size sections then
+ call ppc64_elf_tls_optimize.
+
+2003-02-03 Daniel Jacobowitz <drow@mvista.com>
+
+ * emultempl/elf32.em: Move gld${EMULATION_NAME}_add_sysroot
+ outside of GNU/Linux conditional.
+
+2003-01-28 Ralf Habacker <ralf.habacker@freenet.de>
+
+ * deffilep.y (def_get_module): New function: locate an already
+ added module.
+ * deffile.h (def_get_module): New prototype.
+ * pe-dll.c (pe_implied_import_dll): Add code to prevent importing
+ a dll multiple times.
+
+2003-01-23 Alan Modra <amodra@bigpond.net.au>
+
+ * emultempl/sh64elf.em: Include elf32-sh64.h.
+ (sh64_elf_${EMULATION_NAME}_before_allocation): Adjust for changed
+ sh64_elf_section_data.
+ (sh64_elf_${EMULATION_NAME}_after_allocation): Likewise.
+
+2003-01-23 Wu Yongwei <adah@netstd.com>
+
+ * ld.texinfo: Remove an extra "i" in --dll-search-prefix.
+ * emultempl/pe.em (gld_${EMULATION_NAME}_list_options): Move a
+ cross-80th-column-margin "an" to the next line.
+
+2003-01-21 Nick Clifton <nickc@redhat.com>
+
+ * emulparams/tic3xcoff-onchip.sh: Rename to ...z
+ * emulparams/tic3xcoff_onchip.sh: ...this.
+ * Makefile.am (etic3xcoff_onchip.c): Fix name of generated C file.
+ * Makefile.in: Regenerate.
+
+2003-01-21 Fabio Alemagna <falemagn@aros.org>
+
+ * configure.tgt: Handle i[3456]86-*-aros*
+
+2003-01-19 Svein E. Seldal <Svein.Seldal@solidas.com>
+
+ * Makefile.am: Added etic3xcoff.o and etic4xcoff_onchip.o
+ * Makefile.in: Regenerate
+ * configure.tgt: Added extra target emulations
+ * emulparams/tic3xcoff.sh: Remove old settings
+ * emulparams/tic4xcoff.sh: Ditto
+ * emulparams/tic3xcoff-onchip.sh: Added new
+ * scripttempl/tic4xcoff.sc: Revise and combine both c3x and c4x
+ * scripttempl/tic3xcoff.sc: Remove
+
+2003-01-17 Andreas Jaeger <aj@suse.de>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_add_sysroot): Do not
+ skip ':'.
+
+2003-01-16 Alan Modra <amodra@bigpond.net.au>
+
+ * Makefile.in: Regenerate.
+
+2003-01-14 Charles Wilson <cwilson@ece.gatech.edu>
+
+ * ld.texinfo (node WIN32): Some clarifications
+ and formatting fixups.
+
+2003-01-09 Chris Demetriou <cgd@broadcom.com>
+
+ * ldmain.c (get_emulation): Sort -mipsNN checks in the usual
+ order, and handle (ignore) -mips32r2.
+
+2003-01-09 Daniel Jacobowitz <drow@mvista.com>
+
+ * ldmain.c (main): Make sure ld_sysroot is initialized.
+
+2003-01-06 Daniel Jacobowitz <drow@mvista.com>
+
+ * Makefile.am (eelf32iq10.c): Fix tab/whitespace mixup.
+
+ * Makefile.am (ldmain.o): Add @TARGET_SYSTEM_ROOT_DEFINE@.
+ (GENSCRIPTS): Add @use_sysroot@.
+ * Makefile.in: Regenerated.
+ * configure.host: Move setting of NATIVE_LIB_DIRS to...
+ * configure.tgt: ... here. Use ${target} instead of ${host}
+ for NATIVE_LIB_DIRS.
+ * configure.in: Add --with-sysroot.
+ * configure: Regenerated.
+ * genscripts.sh: Accept use_sysroot option. Set new variables
+ NATIVE and USE_LIBPATH. Prepend "=" to directory names if
+ $use_sysroot. Don't search $tool_lib if $use_sysroot.
+ * ldfile.c (ldfile_add_library_path): Handle leading '='.
+ * ldmain.c (TARGET_SYSTEM_ROOT): Define if not defined.
+ (ld_sysroot): New variable.
+ (main): Initialize ld_sysroot.
+ * ldmain.h (ld_sysroot): New extern.
+ * emultempl/elf32.em: Use NATIVE and USE_LIBPATH instead of
+ searching $EMULATION_LIBPATH.
+ (gld${EMULATION_NAME}_add_sysroot): New function.
+ (gld${EMULATION_NAME}_check_ld_so_conf): Use it. Honor ld_sysroot.
+ (gld${EMULATION_NAME}_after_open): Likewise. Only search
+ environment variables if $NATIVE.
+ * ld.texinfo (Options): Mention "=" prefix in the description of -L.
+ * NEWS: Mention --with-sysroot.
+
+ * emulparams/elf32bmipn32-defs.sh: Set NATIVE and LIBPATH_SUFFIX
+ instead of setting LIB_PATH.
+ * emulparams/elf32ppc.sh: Likewise.
+ * emulparams/elf64_s390.sh: Likewise.
+ * emulparams/elf64_sparc.sh: Likewise.
+ * emulparams/elf64ppc.sh: Likewise.
+ * emulparams/elf_x86_64.sh: Likewise.
+
+ * emulparams/elf64_aix.sh: Add "=" prefixes to LIB_PATH.
+ * emulparams/elf64hppa.sh: Add "=" prefixes to LIB_PATH.
+
+2003-01-03 Charles Wilson <cwilson@ece.gatech.edu>
+
+ * pe-dll.c (autofilter_symbollist): Add cygwin_crt0.
+
+2003-01-04 Daniel Jacobowitz <drow@mvista.com>
+
+ * Makefile.am (ldmain.o): Pass BINDIR.
+ * Makefile.in: Regenerated.
+ * ldmain.c (set_scripts_dir): Use make_relative_prefix for the first
+ search path.
+
+2003-01-02 Ben Elliston <bje@redhat.com>
+
+ * Makefile.am (ALL_EMULATIONS): Add eelf32iq2000.o.
+ (eelf32iq2000.c): New target.
+ * Makefile.in: Regenerate.
+ * configure.tgt: Handle iq2000-*-elf.
+ * emulparams/elf32iq10.sh: New file.
+ * emulparams/elf32iq2000.sh: New file.
+ * scripttempl/iq2000.sc: New file.
+
+2003-01-02 Charles Wilson <cwilson@ece.gatech.edu>
+
+ * pe-dll.c (autofilter_symbollist): Add do_pseudo_reloc
+ and _pei386_runtime_relocator to the exclude list.
+
+2003-01-01 Kazu Hirata <kazu@cs.umass.edu>
+
+ * ldfile.c: Fix comment typos.
+ * ldlang.c: Likewise.
+ * mri.c: Likewise.
+ * pe-dll.c: Likewise.
+
+2003-01-01 Daniel Jacobowitz <drow@mvista.com>
+
+ Suggested by Manfred Hollstein <manfred.h@gmx.net>:
+ * Makefile.am (ld.1): Depend on configdoc.texi
+ 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:
+mode: change-log
+left-margin: 8
+fill-column: 74
+version-control: never
+End:
diff --git a/gnu/usr.bin/binutils/ld/ChangeLog-9197 b/gnu/usr.bin/binutils/ld/ChangeLog-9197
index 291326d90a8..9307f333e3b 100644
--- a/gnu/usr.bin/binutils/ld/ChangeLog-9197
+++ b/gnu/usr.bin/binutils/ld/ChangeLog-9197
@@ -7574,7 +7574,7 @@ Tue Oct 8 16:00:57 1991 Per Bothner (bothner at cygnus.com)
* Makefile.in: Add LIB_PATH macro, which if set is used to replace
the SEARCH_DIR commands in the scripts (using ugly sed magic).
This is primarily intended for cross-linking, where you would
- place libaries in a different place than native libraries.
+ place libraries in a different place than native libraries.
Also, emulations made from ldtemplate now use $(srcdir).
* scripttempl/ldglda29k.sc: Change SEARCH_DIR commands to a
conventional form; people can use the Makefile's LIB_PATH to
diff --git a/gnu/usr.bin/binutils/ld/deffile.h b/gnu/usr.bin/binutils/ld/deffile.h
index 99681887d55..f1e33016915 100644
--- a/gnu/usr.bin/binutils/ld/deffile.h
+++ b/gnu/usr.bin/binutils/ld/deffile.h
@@ -22,8 +22,6 @@
#ifndef DEFFILE_H
#define DEFFILE_H
-#include "ansidecl.h"
-
/* DEF storage definitions. Note that any ordinal may be zero, and
any pointer may be NULL, if not defined by the DEF file. */
@@ -87,24 +85,19 @@ typedef struct def_file {
int version_major, version_minor;
} def_file;
-extern def_file *def_file_empty PARAMS ((void));
+extern def_file *def_file_empty (void);
/* The second arg may be NULL. If not, this .def is appended to it. */
-extern def_file * def_file_parse
- PARAMS ((const char *, def_file *));
-extern void def_file_free
- PARAMS ((def_file *));
-extern def_file_export * def_file_add_export
- PARAMS ((def_file *, const char *, const char *, int));
-extern def_file_import * def_file_add_import
- PARAMS ((def_file *, const char *, const char *, int, const char *));
-extern void def_file_add_directive
- PARAMS ((def_file *, const char *, int));
-extern def_file_module *def_get_module
- PARAMS ((def_file *, const char *));
+extern def_file *def_file_parse (const char *, def_file *);
+extern void def_file_free (def_file *);
+extern def_file_export *def_file_add_export (def_file *, const char *,
+ const char *, int);
+extern def_file_import *def_file_add_import (def_file *, const char *,
+ const char *, int, const char *);
+extern void def_file_add_directive (def_file *, const char *, int);
+extern def_file_module *def_get_module (def_file *, const char *);
#ifdef DEF_FILE_PRINT
-extern void def_file_print
- PARAMS ((FILE *, def_file *));
+extern void def_file_print (FILE *, def_file *);
#endif
#endif /* DEFFILE_H */
diff --git a/gnu/usr.bin/binutils/ld/deffilep.y b/gnu/usr.bin/binutils/ld/deffilep.y
index 45b1bda6f43..80cf5487f57 100644
--- a/gnu/usr.bin/binutils/ld/deffilep.y
+++ b/gnu/usr.bin/binutils/ld/deffilep.y
@@ -78,24 +78,21 @@
#define yytable def_yytable
#define yycheck def_yycheck
-static void def_description PARAMS ((const char *));
-static void def_exports PARAMS ((const char *, const char *, int, int));
-static void def_heapsize PARAMS ((int, int));
-static void def_import PARAMS ((const char *, const char *, const char *, const char *, int));
-static void def_library PARAMS ((const char *, int));
-static def_file_module *def_stash_module PARAMS ((def_file *, const char *));
-static void def_name PARAMS ((const char *, int));
-static void def_section PARAMS ((const char *, int));
-static void def_section_alt PARAMS ((const char *, const char *));
-static void def_stacksize PARAMS ((int, int));
-static void def_version PARAMS ((int, int));
-static void def_directive PARAMS ((char *));
-static int def_parse PARAMS ((void));
-static int def_error PARAMS ((const char *));
-static void put_buf PARAMS ((char));
-static int def_getc PARAMS ((void));
-static int def_ungetc PARAMS ((int));
-static int def_lex PARAMS ((void));
+static void def_description (const char *);
+static void def_exports (const char *, const char *, int, int);
+static void def_heapsize (int, int);
+static void def_import (const char *, const char *, const char *, const char *,
+ int);
+static void def_library (const char *, int);
+static void def_name (const char *, int);
+static void def_section (const char *, int);
+static void def_section_alt (const char *, const char *);
+static void def_stacksize (int, int);
+static void def_version (int, int);
+static void def_directive (char *);
+static int def_parse (void);
+static int def_error (const char *);
+static int def_lex (void);
static int lex_forced_token = 0;
static const char *lex_parse_string = 0;
@@ -108,9 +105,9 @@ static const char *lex_parse_string_end = 0;
int number;
};
-%token NAME, LIBRARY, DESCRIPTION, STACKSIZE, HEAPSIZE, CODE, DATAU, DATAL
-%token SECTIONS, EXPORTS, IMPORTS, VERSIONK, BASE, CONSTANTU, CONSTANTL
-%token PRIVATEU, PRIVATEL
+%token NAME LIBRARY DESCRIPTION STACKSIZE HEAPSIZE CODE DATAU DATAL
+%token SECTIONS EXPORTS IMPORTS VERSIONK BASE CONSTANTU CONSTANTL
+%token PRIVATEU PRIVATEL
%token READ WRITE EXECUTE SHARED NONAMEU NONAMEL DIRECTIVE
%token <id> ID
%token <number> NUMBER
@@ -218,7 +215,7 @@ attr:
opt_name: ID { $$ = $1; }
| ID '.' ID
{
- char * name = xmalloc (strlen ($1) + 1 + strlen ($3) + 1);
+ char *name = xmalloc (strlen ($1) + 1 + strlen ($3) + 1);
sprintf (name, "%s.%s", $1, $3);
$$ = name;
}
@@ -242,7 +239,7 @@ opt_base: BASE '=' NUMBER { $$ = $3;}
dot_name: ID { $$ = $1; }
| dot_name '.' ID
{
- char * name = xmalloc (strlen ($1) + 1 + strlen ($3) + 1);
+ char *name = xmalloc (strlen ($1) + 1 + strlen ($3) + 1);
sprintf (name, "%s.%s", $1, $3);
$$ = name;
}
@@ -271,12 +268,12 @@ struct directive
static struct directive *directives = 0;
def_file *
-def_file_empty ()
+def_file_empty (void)
{
- def_file *rv = (def_file *) xmalloc (sizeof (def_file));
+ def_file *rv = xmalloc (sizeof (def_file));
memset (rv, 0, sizeof (def_file));
rv->is_dll = -1;
- rv->base_address = (bfd_vma) (-1);
+ rv->base_address = (bfd_vma) -1;
rv->stack_reserve = rv->stack_commit = -1;
rv->heap_reserve = rv->heap_commit = -1;
rv->version_major = rv->version_minor = -1;
@@ -284,9 +281,7 @@ def_file_empty ()
}
def_file *
-def_file_parse (filename, add_to)
- const char *filename;
- def_file *add_to;
+def_file_parse (const char *filename, def_file *add_to)
{
struct directive *d;
@@ -329,8 +324,7 @@ def_file_parse (filename, add_to)
}
void
-def_file_free (def)
- def_file *def;
+def_file_free (def_file *def)
{
int i;
@@ -391,9 +385,7 @@ def_file_free (def)
#ifdef DEF_FILE_PRINT
void
-def_file_print (file, def)
- FILE *file;
- def_file *def;
+def_file_print (FILE *file, def_file *def)
{
int i;
@@ -402,7 +394,7 @@ def_file_print (file, def)
fprintf (file, " name: %s\n", def->name ? def->name : "(unspecified)");
if (def->is_dll != -1)
fprintf (file, " is dll: %s\n", def->is_dll ? "yes" : "no");
- if (def->base_address != (bfd_vma) (-1))
+ if (def->base_address != (bfd_vma) -1)
fprintf (file, " base address: 0x%08x\n", def->base_address);
if (def->description)
fprintf (file, " description: `%s'\n", def->description);
@@ -478,11 +470,10 @@ def_file_print (file, def)
#endif
def_file_export *
-def_file_add_export (def, external_name, internal_name, ordinal)
- def_file *def;
- const char *external_name;
- const char *internal_name;
- int ordinal;
+def_file_add_export (def_file *def,
+ const char *external_name,
+ const char *internal_name,
+ int ordinal)
{
def_file_export *e;
int max_exports = ROUND_UP(def->num_exports, 32);
@@ -491,11 +482,10 @@ def_file_add_export (def, external_name, internal_name, ordinal)
{
max_exports = ROUND_UP(def->num_exports + 1, 32);
if (def->exports)
- def->exports = (def_file_export *)
- xrealloc (def->exports, max_exports * sizeof (def_file_export));
+ def->exports = xrealloc (def->exports,
+ max_exports * sizeof (def_file_export));
else
- def->exports = (def_file_export *)
- xmalloc (max_exports * sizeof (def_file_export));
+ def->exports = xmalloc (max_exports * sizeof (def_file_export));
}
e = def->exports + def->num_exports;
memset (e, 0, sizeof (def_file_export));
@@ -511,9 +501,7 @@ def_file_add_export (def, external_name, internal_name, ordinal)
}
def_file_module *
-def_get_module (def, name)
- def_file *def;
- const char *name;
+def_get_module (def_file *def, const char *name)
{
def_file_module *s;
@@ -521,19 +509,17 @@ def_get_module (def, name)
if (strcmp (s->name, name) == 0)
return s;
- return (def_file_module *) 0;
+ return NULL;
}
static def_file_module *
-def_stash_module (def, name)
- def_file *def;
- const char *name;
+def_stash_module (def_file *def, const char *name)
{
def_file_module *s;
- if ((s = def_get_module (def, name)) != (def_file_module *) 0)
+ if ((s = def_get_module (def, name)) != NULL)
return s;
- s = (def_file_module *) xmalloc (sizeof (def_file_module) + strlen (name));
+ s = xmalloc (sizeof (def_file_module) + strlen (name));
s->next = def->modules;
def->modules = s;
s->user_data = 0;
@@ -542,26 +528,24 @@ def_stash_module (def, name)
}
def_file_import *
-def_file_add_import (def, name, module, ordinal, internal_name)
- def_file *def;
- const char *name;
- const char *module;
- int ordinal;
- const char *internal_name;
+def_file_add_import (def_file *def,
+ const char *name,
+ const char *module,
+ int ordinal,
+ const char *internal_name)
{
def_file_import *i;
- int max_imports = ROUND_UP(def->num_imports, 16);
+ int max_imports = ROUND_UP (def->num_imports, 16);
if (def->num_imports >= max_imports)
{
- max_imports = ROUND_UP(def->num_imports+1, 16);
+ max_imports = ROUND_UP (def->num_imports+1, 16);
if (def->imports)
- def->imports = (def_file_import *)
- xrealloc (def->imports, max_imports * sizeof (def_file_import));
+ def->imports = xrealloc (def->imports,
+ max_imports * sizeof (def_file_import));
else
- def->imports = (def_file_import *)
- xmalloc (max_imports * sizeof (def_file_import));
+ def->imports = xmalloc (max_imports * sizeof (def_file_import));
}
i = def->imports + def->num_imports;
memset (i, 0, sizeof (def_file_import));
@@ -594,25 +578,33 @@ diropts[] =
};
void
-def_file_add_directive (my_def, param, len)
- def_file *my_def;
- const char *param;
- int len;
+def_file_add_directive (def_file *my_def, const char *param, int len)
{
def_file *save_def = def;
const char *pend = param + len;
- const char *tend = param;
+ char * tend = (char *) param;
int i;
def = my_def;
while (param < pend)
{
- while (param < pend && ISSPACE (*param))
+ while (param < pend
+ && (ISSPACE (*param) || *param == '\n' || *param == 0))
param++;
- for (tend = param + 1;
- tend < pend && !(ISSPACE (tend[-1]) && *tend == '-');
+ if (param == pend)
+ break;
+
+ /* Scan forward until we encounter any of:
+ - the end of the buffer
+ - the start of a new option
+ - a newline seperating options
+ - a NUL seperating options. */
+ for (tend = (char *) (param + 1);
+ (tend < pend
+ && !(ISSPACE (tend[-1]) && *tend == '-')
+ && *tend != '\n' && *tend != 0);
tend++)
;
@@ -628,15 +620,22 @@ def_file_add_directive (my_def, param, len)
lex_parse_string = param + len + 1;
lex_forced_token = diropts[i].token;
saw_newline = 0;
- def_parse ();
+ if (def_parse ())
+ continue;
break;
}
}
if (!diropts[i].param)
- /* xgettext:c-format */
- einfo (_("Warning: .drectve `%.*s' unrecognized\n"),
- tend - param, param);
+ {
+ char saved;
+
+ saved = * tend;
+ * tend = 0;
+ /* xgettext:c-format */
+ einfo (_("Warning: .drectve `%s' unrecognized\n"), param);
+ * tend = saved;
+ }
lex_parse_string = 0;
param = tend;
@@ -648,9 +647,7 @@ def_file_add_directive (my_def, param, len)
/* Parser Callbacks. */
static void
-def_name (name, base)
- const char *name;
- int base;
+def_name (const char *name, int base)
{
if (def->name)
free (def->name);
@@ -660,9 +657,7 @@ def_name (name, base)
}
static void
-def_library (name, base)
- const char *name;
- int base;
+def_library (const char *name, int base)
{
if (def->name)
free (def->name);
@@ -672,58 +667,52 @@ def_library (name, base)
}
static void
-def_description (text)
- const char *text;
+def_description (const char *text)
{
int len = def->description ? strlen (def->description) : 0;
len += strlen (text) + 1;
if (def->description)
{
- def->description = (char *) xrealloc (def->description, len);
+ def->description = xrealloc (def->description, len);
strcat (def->description, text);
}
else
{
- def->description = (char *) xmalloc (len);
+ def->description = xmalloc (len);
strcpy (def->description, text);
}
}
static void
-def_stacksize (reserve, commit)
- int reserve;
- int commit;
+def_stacksize (int reserve, int commit)
{
def->stack_reserve = reserve;
def->stack_commit = commit;
}
static void
-def_heapsize (reserve, commit)
- int reserve;
- int commit;
+def_heapsize (int reserve, int commit)
{
def->heap_reserve = reserve;
def->heap_commit = commit;
}
static void
-def_section (name, attr)
- const char *name;
- int attr;
+def_section (const char *name, int attr)
{
def_file_section *s;
- int max_sections = ROUND_UP(def->num_section_defs, 4);
+ int max_sections = ROUND_UP (def->num_section_defs, 4);
if (def->num_section_defs >= max_sections)
{
- max_sections = ROUND_UP(def->num_section_defs+1, 4);
+ max_sections = ROUND_UP (def->num_section_defs+1, 4);
if (def->section_defs)
- def->section_defs = (def_file_section *) xrealloc (def->section_defs, max_sections * sizeof (def_file_import));
+ def->section_defs = xrealloc (def->section_defs,
+ max_sections * sizeof (def_file_import));
else
- def->section_defs = (def_file_section *) xmalloc (max_sections * sizeof (def_file_import));
+ def->section_defs = xmalloc (max_sections * sizeof (def_file_import));
}
s = def->section_defs + def->num_section_defs;
memset (s, 0, sizeof (def_file_section));
@@ -741,9 +730,7 @@ def_section (name, attr)
}
static void
-def_section_alt (name, attr)
- const char *name;
- const char *attr;
+def_section_alt (const char *name, const char *attr)
{
int aval = 0;
@@ -773,11 +760,10 @@ def_section_alt (name, attr)
}
static void
-def_exports (external_name, internal_name, ordinal, flags)
- const char *external_name;
- const char *internal_name;
- int ordinal;
- int flags;
+def_exports (const char *external_name,
+ const char *internal_name,
+ int ordinal,
+ int flags)
{
def_file_export *dfe;
@@ -799,17 +785,16 @@ def_exports (external_name, internal_name, ordinal, flags)
}
static void
-def_import (internal_name, module, dllext, name, ordinal)
- const char *internal_name;
- const char *module;
- const char *dllext;
- const char *name;
- int ordinal;
+def_import (const char *internal_name,
+ const char *module,
+ const char *dllext,
+ const char *name,
+ int ordinal)
{
char *buf = 0;
const char *ext = dllext ? dllext : "dll";
- buf = (char *) xmalloc (strlen (module) + strlen (ext) + 2);
+ buf = xmalloc (strlen (module) + strlen (ext) + 2);
sprintf (buf, "%s.%s", module, ext);
module = buf;
@@ -819,19 +804,16 @@ def_import (internal_name, module, dllext, name, ordinal)
}
static void
-def_version (major, minor)
- int major;
- int minor;
+def_version (int major, int minor)
{
def->version_major = major;
def->version_minor = minor;
}
static void
-def_directive (str)
- char *str;
+def_directive (char *str)
{
- struct directive *d = (struct directive *) xmalloc (sizeof (struct directive));
+ struct directive *d = xmalloc (sizeof (struct directive));
d->next = directives;
directives = d;
@@ -840,11 +822,10 @@ def_directive (str)
}
static int
-def_error (err)
- const char *err;
+def_error (const char *err)
{
- einfo ("%P: %s:%d: %s\n", def_filename, linenumber, err);
-
+ einfo ("%P: %s:%d: %s\n",
+ def_filename ? def_filename : "<unknown-file>", linenumber, err);
return 0;
}
@@ -860,16 +841,15 @@ static int buflen = 0;
static int bufptr = 0;
static void
-put_buf (c)
- char c;
+put_buf (char c)
{
if (bufptr == buflen)
{
buflen += 50; /* overly reasonable, eh? */
if (buffer)
- buffer = (char *) xrealloc (buffer, buflen + 1);
+ buffer = xrealloc (buffer, buflen + 1);
else
- buffer = (char *) xmalloc (buflen + 1);
+ buffer = xmalloc (buflen + 1);
}
buffer[bufptr++] = c;
buffer[bufptr] = 0; /* not optimal, but very convenient. */
@@ -911,7 +891,7 @@ tokens[] =
};
static int
-def_getc ()
+def_getc (void)
{
int rv;
@@ -932,8 +912,7 @@ def_getc ()
}
static int
-def_ungetc (c)
- int c;
+def_ungetc (int c)
{
if (lex_parse_string)
{
@@ -945,7 +924,7 @@ def_ungetc (c)
}
static int
-def_lex ()
+def_lex (void)
{
int c, i, q;
diff --git a/gnu/usr.bin/binutils/ld/emulparams/armelf.sh b/gnu/usr.bin/binutils/ld/emulparams/armelf.sh
index 9e2ada7b1ea..35a6d232573 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/armelf.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/armelf.sh
@@ -7,9 +7,9 @@ TEXT_START_ADDR=0x8000
TEMPLATE_NAME=elf32
EXTRA_EM_FILE=armelf
OTHER_TEXT_SECTIONS='*(.glue_7t) *(.glue_7)'
-OTHER_READONLY_SECTIONS='.note.gnu.arm.ident : { KEEP (*(.note.gnu.arm.ident)) }'
OTHER_BSS_SYMBOLS='__bss_start__ = .;'
OTHER_BSS_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;'
+OTHER_SECTIONS='.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }'
DATA_START_SYMBOLS='__data_start = . ;';
@@ -23,3 +23,6 @@ EMBEDDED=yes
# This sets the stack to the top of the simulator memory (2^19 bytes).
STACK_ADDR=0x80000
+
+# ARM does not support .s* sections.
+NO_SMALL_DATA=yes
diff --git a/gnu/usr.bin/binutils/ld/emulparams/armelf_linux.sh b/gnu/usr.bin/binutils/ld/emulparams/armelf_linux.sh
index f03fb760372..88a2d19151d 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/armelf_linux.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/armelf_linux.sh
@@ -4,14 +4,18 @@ OUTPUT_FORMAT="elf32-littlearm"
BIG_OUTPUT_FORMAT="elf32-bigarm"
LITTLE_OUTPUT_FORMAT="elf32-littlearm"
MAXPAGESIZE=0x8000
+COMMONPAGESIZE=0x1000
TEMPLATE_NAME=elf32
EXTRA_EM_FILE=armelf
GENERATE_SHLIB_SCRIPT=yes
DATA_START_SYMBOLS='__data_start = . ;';
OTHER_TEXT_SECTIONS='*(.glue_7t) *(.glue_7)'
-OTHER_READONLY_SECTIONS='.note.gnu.arm.ident : { KEEP (*(.note.gnu.arm.ident)) }'
OTHER_BSS_SYMBOLS='__bss_start__ = .;'
OTHER_BSS_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;'
+OTHER_SECTIONS='.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }'
TEXT_START_ADDR=0x00008000
+
+# ARM does not support .s* sections.
+NO_SMALL_DATA=yes
diff --git a/gnu/usr.bin/binutils/ld/emulparams/armelf_oabi.sh b/gnu/usr.bin/binutils/ld/emulparams/armelf_oabi.sh
index f1c967dcb66..0c2c1d313c1 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/armelf_oabi.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/armelf_oabi.sh
@@ -18,3 +18,6 @@ EMBEDDED=yes
# This sets the stack to the top of the simulator memory (2^19 bytes).
STACK_ADDR=0x80000
+
+# ARM does not support .s* sections.
+NO_SMALL_DATA=yes
diff --git a/gnu/usr.bin/binutils/ld/emulparams/armelfb.sh b/gnu/usr.bin/binutils/ld/emulparams/armelfb.sh
new file mode 100644
index 00000000000..2d8f38217ac
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/emulparams/armelfb.sh
@@ -0,0 +1,2 @@
+. ${srcdir}/emulparams/armelf.sh
+OUTPUT_FORMAT="elf32-bigarm"
diff --git a/gnu/usr.bin/binutils/ld/emulparams/armelfb_linux.sh b/gnu/usr.bin/binutils/ld/emulparams/armelfb_linux.sh
new file mode 100644
index 00000000000..9ce9e9abf39
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/emulparams/armelfb_linux.sh
@@ -0,0 +1,2 @@
+. ${srcdir}/emulparams/armelf_linux.sh
+OUTPUT_FORMAT="elf32-bigarm"
diff --git a/gnu/usr.bin/binutils/ld/emulparams/armnto.sh b/gnu/usr.bin/binutils/ld/emulparams/armnto.sh
index d000de3bb49..7e4644bc80c 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/armnto.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/armnto.sh
@@ -22,3 +22,6 @@ ENTRY=_start
# This sets the stack to the top of the simulator memory (2^19 bytes).
STACK_ADDR=0x80000
+
+# ARM does not support .s* sections.
+NO_SMALL_DATA=yes
diff --git a/gnu/usr.bin/binutils/ld/emulparams/coff_i860.sh b/gnu/usr.bin/binutils/ld/emulparams/coff_i860.sh
new file mode 100644
index 00000000000..03b649313c0
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/emulparams/coff_i860.sh
@@ -0,0 +1,5 @@
+SCRIPT_NAME=i860coff
+OUTPUT_FORMAT="coff-i860"
+PAGE_SIZE=0x1000
+MAXPAGESIZE=0x1000
+ARCH=i860
diff --git a/gnu/usr.bin/binutils/ld/emulparams/elf32_i860.sh b/gnu/usr.bin/binutils/ld/emulparams/elf32_i860.sh
index 531c493f5c5..6769fa54d26 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/elf32_i860.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/elf32_i860.sh
@@ -3,6 +3,7 @@ SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-i860-little"
BIG_OUTPUT_FORMAT="elf32-i860"
LITTLE_OUTPUT_FORMAT="elf32-i860-little"
+TEXT_START_ADDR=0
PAGE_SIZE=0x1000
MAXPAGESIZE=0x1000
ARCH=i860
diff --git a/gnu/usr.bin/binutils/ld/emulparams/elf32am33lin.sh b/gnu/usr.bin/binutils/ld/emulparams/elf32am33lin.sh
new file mode 100644
index 00000000000..f8b3a890621
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/emulparams/elf32am33lin.sh
@@ -0,0 +1,11 @@
+SCRIPT_NAME=elf
+OUTPUT_FORMAT="elf32-am33lin"
+TEXT_START_ADDR=0x8000000
+MAXPAGESIZE=0x1000
+NONPAGED_TEXT_START_ADDR=0x8000000
+ARCH=mn10300
+MACHINE=
+NOP=0xcbcb
+TEMPLATE_NAME=elf32
+GENERATE_SHLIB_SCRIPT=yes
+
diff --git a/gnu/usr.bin/binutils/ld/emulparams/elf32bmipn32-defs.sh b/gnu/usr.bin/binutils/ld/emulparams/elf32bmipn32-defs.sh
index 790eecf6f8d..f7b0d08f858 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/elf32bmipn32-defs.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/elf32bmipn32-defs.sh
@@ -50,28 +50,9 @@ TEXT_START_SYMBOLS='_ftext = . ;'
DATA_START_SYMBOLS='_fdata = . ;'
OTHER_BSS_SYMBOLS='_fbss = .;'
-OTHER_SECTIONS="
- .MIPS.events.text ${RELOCATING-0} :
- {
- *(.MIPS.events.text${RELOCATING+ .MIPS.events.gnu.linkonce.t*})
- }
- .MIPS.content.text ${RELOCATING-0} :
- {
- *(.MIPS.content.text${RELOCATING+ .MIPS.content.gnu.linkonce.t*})
- }
- .MIPS.events.data ${RELOCATING-0} :
- {
- *(.MIPS.events.data${RELOCATING+ .MIPS.events.gnu.linkonce.d*})
- }
- .MIPS.content.data ${RELOCATING-0} :
- {
- *(.MIPS.content.data${RELOCATING+ .MIPS.content.gnu.linkonce.d*})
- }
- .MIPS.events.rodata ${RELOCATING-0} :
- {
- *(.MIPS.events.rodata${RELOCATING+ .MIPS.events.gnu.linkonce.r*})
- }
- .MIPS.content.rodata ${RELOCATING-0} :
- {
- *(.MIPS.content.rodata${RELOCATING+ .MIPS.content.gnu.linkonce.r*})
- }"
+INITIAL_READONLY_SECTIONS=".MIPS.options : { *(.MIPS.options) }"
+# Discard any .MIPS.content* or .MIPS.events* sections. The linker
+# doesn't know how to adjust them.
+OTHER_SECTIONS="/DISCARD/ : { *(.MIPS.content*) *(.MIPS.events*) }"
+
+TEXT_DYNAMIC=
diff --git a/gnu/usr.bin/binutils/ld/emulparams/elf32bmipn32.sh b/gnu/usr.bin/binutils/ld/emulparams/elf32bmipn32.sh
index 75338379ee1..a320eb23ed0 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/elf32bmipn32.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/elf32bmipn32.sh
@@ -3,6 +3,7 @@ OUTPUT_FORMAT="elf32-nbigmips"
BIG_OUTPUT_FORMAT="elf32-nbigmips"
LITTLE_OUTPUT_FORMAT="elf32-nlittlemips"
SHLIB_TEXT_START_ADDR=0x5ffe0000
+COMMONPAGESIZE=0x1000
# IRIX6 defines these symbols. 0x34 is the size of the ELF header.
EXECUTABLE_SYMBOLS="
@@ -17,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/gnu/usr.bin/binutils/ld/emulparams/elf32bsmip.sh b/gnu/usr.bin/binutils/ld/emulparams/elf32bsmip.sh
index 5b2939a94f4..dfe0fe06af1 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/elf32bsmip.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/elf32bsmip.sh
@@ -1,2 +1,3 @@
. ${srcdir}/emulparams/elf32bmip.sh
ENTRY=__start
+EXTRA_EM_FILE=irix
diff --git a/gnu/usr.bin/binutils/ld/emulparams/elf32btsmipn32.sh b/gnu/usr.bin/binutils/ld/emulparams/elf32btsmipn32.sh
index d287417e286..5ca6797e52a 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/elf32btsmipn32.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/elf32btsmipn32.sh
@@ -5,6 +5,7 @@
OUTPUT_FORMAT="elf32-ntradbigmips"
BIG_OUTPUT_FORMAT="elf32-ntradbigmips"
LITTLE_OUTPUT_FORMAT="elf32-ntradlittlemips"
+COMMONPAGESIZE=0x1000
# Magic sections.
OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)'
@@ -12,5 +13,3 @@ OTHER_SECTIONS='
.gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
.gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
'
-
-TEXT_DYNAMIC=
diff --git a/gnu/usr.bin/binutils/ld/emulparams/elf32frv.sh b/gnu/usr.bin/binutils/ld/emulparams/elf32frv.sh
index fd4be3e1847..042ed8c21f8 100755
--- a/gnu/usr.bin/binutils/ld/emulparams/elf32frv.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/elf32frv.sh
@@ -10,6 +10,7 @@ OTHER_EXCLUDE_FILES='*frvend.o'
OTHER_BSS_END_SYMBOLS='__end = .;'
DATA_START_SYMBOLS='__data_start = . ;'
STACK_ADDR=0x200000
+NOP=0x80000000
OTHER_GOT_SYMBOLS='
. = ALIGN(8); _gp = . + 2048;
PROVIDE (gp = _gp);'
diff --git a/gnu/usr.bin/binutils/ld/emulparams/elf32frvfd.sh b/gnu/usr.bin/binutils/ld/emulparams/elf32frvfd.sh
new file mode 100644
index 00000000000..c49687807df
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/emulparams/elf32frvfd.sh
@@ -0,0 +1,15 @@
+. ${srcdir}/emulparams/elf32frv.sh
+unset STACK_ADDR
+OUTPUT_FORMAT="elf32-frvfdpic"
+MAXPAGESIZE=0x4000
+TEMPLATE_NAME=elf32
+GENERATE_SHLIB_SCRIPT=yes
+EMBEDDED= # This gets us program headers mapped as part of the text segment.
+OTHER_GOT_SYMBOLS=
+OTHER_READONLY_SECTIONS="
+ .rofixup : {
+ ${RELOCATING+__ROFIXUP_LIST__ = .;}
+ *(.rofixup)
+ ${RELOCATING+__ROFIXUP_END__ = .;}
+ }
+"
diff --git a/gnu/usr.bin/binutils/ld/emulparams/elf32ip2k.sh b/gnu/usr.bin/binutils/ld/emulparams/elf32ip2k.sh
index be2ce337c64..17fb7aba9c7 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/elf32ip2k.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/elf32ip2k.sh
@@ -1,3 +1,4 @@
+TEMPLATE_NAME=elf32
MACHINE=
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-ip2k"
diff --git a/gnu/usr.bin/binutils/ld/emulparams/elf32mcore.sh b/gnu/usr.bin/binutils/ld/emulparams/elf32mcore.sh
index 36befc8cb33..930a9c3c8bc 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/elf32mcore.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/elf32mcore.sh
@@ -47,7 +47,7 @@ PARSE_AND_LIST_OPTIONS='
PARSE_AND_LIST_ARGS_CASES='
case OPTION_BASE_FILE:
- link_info.base_file = (PTR) fopen (optarg, FOPEN_WB);
+ link_info.base_file = fopen (optarg, FOPEN_WB);
if (link_info.base_file == NULL)
{
/* xgettext:c-format */
diff --git a/gnu/usr.bin/binutils/ld/emulparams/elf32mipswindiss.sh b/gnu/usr.bin/binutils/ld/emulparams/elf32mipswindiss.sh
new file mode 100644
index 00000000000..4f1148b9518
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/emulparams/elf32mipswindiss.sh
@@ -0,0 +1,27 @@
+TEMPLATE_NAME=elf32
+SCRIPT_NAME=elf
+OUTPUT_FORMAT="elf32-bigmips"
+BIG_OUTPUT_FORMAT="elf32-bigmips"
+LITTLE_OUTPUT_FORMAT="elf32-littlemips"
+ARCH=mips
+MACHINE=
+EMBEDDED=yes
+MAXPAGESIZE=0x40000
+
+# The data below is taken from the windiss.dld linker script that comes with
+# the Diab linker.
+TEXT_START_ADDR=0x100000
+DATA_START_SYMBOLS='__DATA_ROM = .; __DATA_RAM = .;'
+SDATA_START_SYMBOLS='_SDA_BASE_ = .; _gp = . + 0x7ff0;'
+SDATA2_START_SYMBOLS='_SDA2_BASE_ = .;'
+EXECUTABLE_SYMBOLS='__HEAP_START = .; __SP_INIT = 0x800000; __SP_END = __SP_INIT - 0x20000; __HEAP_END = __SP_END; __DATA_END = _edata; __BSS_START = __bss_start; __BSS_END = _end; __HEAP_START = _end;'
+
+# The Diab tools use a different init/fini convention. Initialization code
+# is place in sections named ".init$NN". These sections are then concatenated
+# into the .init section. It is important that .init$00 be first and .init$99
+# be last. The other sections should be sorted, but the current linker script
+# parse does not seem to allow that with the SORT keyword in this context.
+INIT_START='*(.init$00); *(.init$0[1-9]); *(.init$[1-8][0-9]); *(.init$9[0-8])'
+INIT_END='*(.init$99)'
+FINI_START='*(.fini$00); *(.fini$0[1-9]); *(.fini$[1-8][0-9]); *(.fini$9[0-8])'
+FINI_END='*(.fini$99)'
diff --git a/gnu/usr.bin/binutils/ld/emulparams/elf32xtensa.sh b/gnu/usr.bin/binutils/ld/emulparams/elf32xtensa.sh
index 12e28820b3f..76f9da85d5a 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/elf32xtensa.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/elf32xtensa.sh
@@ -15,18 +15,18 @@ MACHINE=
GENERATE_SHLIB_SCRIPT=yes
GENERATE_COMBRELOC_SCRIPT=yes
NO_SMALL_DATA=yes
-OTHER_READONLY_SECTIONS='
- .xt_except_table : { KEEP (*(.xt_except_table)) }
- .xt.lit : { *(.xt.lit*) *(.gnu.linkonce.p*) }
-'
-OTHER_READWRITE_SECTIONS='
- .xt_except_desc :
+OTHER_READONLY_SECTIONS="
+ .got.loc ${RELOCATING-0} : { *(.got.loc) }
+ .xt_except_table ${RELOCATING-0} : { KEEP (*(.xt_except_table)) }
+"
+OTHER_READWRITE_SECTIONS="
+ .xt_except_desc ${RELOCATING-0} :
{
- *(.xt_except_desc)
- *(.gnu.linkonce.h.*)
- *(.xt_except_desc_end)
+ *(.xt_except_desc${RELOCATING+ .gnu.linkonce.h.*})
+ ${RELOCATING+*(.xt_except_desc_end)}
}
-'
-OTHER_SECTIONS='
- .xt.insn : { *(.xt.insn) *(.gnu.linkonce.x*) }
-'
+"
+OTHER_SECTIONS="
+ .xt.lit 0 : { *(.xt.lit${RELOCATING+ .xt.lit.* .gnu.linkonce.p.*}) }
+ .xt.insn 0 : { *(.xt.insn${RELOCATING+ .gnu.linkonce.x.*}) }
+"
diff --git a/gnu/usr.bin/binutils/ld/emulparams/elf64_ia64.sh b/gnu/usr.bin/binutils/ld/emulparams/elf64_ia64.sh
index 817c50adad5..60c8c4c9ebf 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/elf64_ia64.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/elf64_ia64.sh
@@ -2,7 +2,7 @@
SCRIPT_NAME=elf
ELFSIZE=64
TEMPLATE_NAME=elf32
-EXTRA_EM_FILE=needrelax
+EXTRA_EM_FILE=ia64elf
OUTPUT_FORMAT="elf64-ia64-little"
ARCH=ia64
MACHINE=
@@ -16,12 +16,20 @@ fi
TEXT_START_ADDR="0x4000000000000000"
DATA_ADDR="0x6000000000000000 + (. & (${MAXPAGESIZE} - 1))"
GENERATE_SHLIB_SCRIPT=yes
+GENERATE_PIE_SCRIPT=yes
NOP=0x00300000010070000002000001000400 # a bundle full of nops
OTHER_GOT_SECTIONS="
.IA_64.pltoff ${RELOCATING-0} : { *(.IA_64.pltoff) }"
OTHER_PLT_RELOC_SECTIONS="
.rela.IA_64.pltoff ${RELOCATING-0} : { *(.rela.IA_64.pltoff) }"
-OTHER_READONLY_SECTIONS="
- .opd ${RELOCATING-0} : { *(.opd) }
+OTHER_READONLY_SECTIONS=
+OTHER_READWRITE_SECTIONS=
+test -z "$CREATE_PIE" && OTHER_READONLY_SECTIONS="
+ .opd ${RELOCATING-0} : { *(.opd) }"
+test -n "$CREATE_PIE" && OTHER_READWRITE_SECTIONS="
+ .opd ${RELOCATING-0} : { *(.opd) }"
+test -n "$CREATE_PIE" && OTHER_GOT_RELOC_SECTIONS="
+ .rela.opd ${RELOCATING-0} : { *(.rela.opd) }"
+OTHER_READONLY_SECTIONS="${OTHER_READONLY_SECTIONS}
.IA_64.unwind_info ${RELOCATING-0} : { *(.IA_64.unwind_info${RELOCATING+* .gnu.linkonce.ia64unwi.*}) }
.IA_64.unwind ${RELOCATING-0} : { *(.IA_64.unwind${RELOCATING+* .gnu.linkonce.ia64unw.*}) }"
diff --git a/gnu/usr.bin/binutils/ld/emulparams/elf64_ia64_fbsd.sh b/gnu/usr.bin/binutils/ld/emulparams/elf64_ia64_fbsd.sh
index d9c9600482b..47cde5c5db0 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/elf64_ia64_fbsd.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/elf64_ia64_fbsd.sh
@@ -1,2 +1,4 @@
. ${srcdir}/emulparams/elf64_ia64.sh
+TEXT_START_ADDR="0x2000000000000000"
+unset DATA_ADDR
. ${srcdir}/emulparams/elf_fbsd.sh
diff --git a/gnu/usr.bin/binutils/ld/emulparams/elf64_s390.sh b/gnu/usr.bin/binutils/ld/emulparams/elf64_s390.sh
index e441b8ac4db..0c689a912f9 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/elf64_s390.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/elf64_s390.sh
@@ -9,6 +9,8 @@ MACHINE=
NOP=0x07070707
TEMPLATE_NAME=elf32
GENERATE_SHLIB_SCRIPT=yes
+GENERATE_PIE_SCRIPT=yes
+NO_SMALL_DATA=yes
# Treat a host that matches the target with the possible exception of "x"
# in the name as if it were native.
diff --git a/gnu/usr.bin/binutils/ld/emulparams/elf64bmip.sh b/gnu/usr.bin/binutils/ld/emulparams/elf64bmip.sh
index 7078a788af9..a4ce6d49519 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/elf64bmip.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/elf64bmip.sh
@@ -2,12 +2,15 @@
OUTPUT_FORMAT="elf64-bigmips"
BIG_OUTPUT_FORMAT="elf64-bigmips"
LITTLE_OUTPUT_FORMAT="elf64-littlemips"
+SHLIB_TEXT_START_ADDR=0x3ffffe0000
# IRIX6 defines these symbols. 0x40 is the size of the ELF header.
EXECUTABLE_SYMBOLS="
__dso_displacement = 0;
- __elf_header = ${TEXT_START_ADDR};
- __program_header_table = ${TEXT_START_ADDR} + 0x40;
+ ${CREATE_SHLIB-${CREATE_PIE-__elf_header = ${TEXT_START_ADDR};}}
+ ${CREATE_SHLIB+__elf_header = ${SHLIB_TEXT_START_ADDR};}
+ ${CREATE_PIE+__elf_header = ${SHLIB_TEXT_START_ADDR};}
+ __program_header_table = __elf_header + 0x40;
"
# There are often dynamic relocations against the .rodata section.
@@ -16,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/gnu/usr.bin/binutils/ld/emulparams/elf64btsmip.sh b/gnu/usr.bin/binutils/ld/emulparams/elf64btsmip.sh
index c4595ced90a..23a20c7b8b0 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/elf64btsmip.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/elf64btsmip.sh
@@ -7,11 +7,10 @@ BIG_OUTPUT_FORMAT="elf64-tradbigmips"
LITTLE_OUTPUT_FORMAT="elf64-tradlittlemips"
# Magic sections.
-INITIAL_READONLY_SECTIONS='.MIPS.options : { *(.MIPS.options) }'
OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)'
OTHER_SECTIONS='
.gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
.gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
'
-TEXT_DYNAMIC=
+TEXT_START_ADDR="0x120000000"
diff --git a/gnu/usr.bin/binutils/ld/emulparams/elf64ppc.sh b/gnu/usr.bin/binutils/ld/emulparams/elf64ppc.sh
index 300b8d4b543..c190b189f69 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/elf64ppc.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/elf64ppc.sh
@@ -2,6 +2,7 @@ TEMPLATE_NAME=elf32
EXTRA_EM_FILE=ppc64elf
ELFSIZE=64
GENERATE_SHLIB_SCRIPT=yes
+GENERATE_PIE_SCRIPT=yes
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf64-powerpc"
TEXT_START_ADDR=0x10000000
@@ -11,20 +12,21 @@ COMMONPAGESIZE=0x1000
ARCH=powerpc:common64
MACHINE=
NOP=0x60000000
-EXECUTABLE_SYMBOLS='PROVIDE (__stack = 0); PROVIDE (___stack = 0);'
-OTHER_BSS_END_SYMBOLS='__end = .;'
-CTOR_START='PROVIDE (__CTOR_LIST__ = .); PROVIDE (___CTOR_LIST__ = .);'
-CTOR_END='PROVIDE (__CTOR_END__ = .); PROVIDE (___CTOR_END__ = .);'
-DTOR_START='PROVIDE (__DTOR_LIST__ = .); PROVIDE (___DTOR_LIST__ = .);'
-DTOR_END='PROVIDE (__DTOR_END__ = .); PROVIDE (___DTOR_END__ = .);'
OTHER_TEXT_SECTIONS="*(.sfpr .glink)"
BSS_PLT=
OTHER_BSS_SYMBOLS="
.tocbss ${RELOCATING-0}${RELOCATING+ALIGN(8)} : { *(.tocbss)}"
OTHER_PLT_RELOC_SECTIONS="
.rela.tocbss ${RELOCATING-0} : { *(.rela.tocbss) }"
-OTHER_GOT_SECTIONS="
- .toc ${RELOCATING-0}${RELOCATING+ALIGN(8)} : { *(.toc) }"
+
+if test x${RELOCATING+set} = xset; then
+ GOT="
+ .got ALIGN(8) : { *(.got .toc) }"
+else
+ GOT="
+ .got 0 : { *(.got) }
+ .toc 0 : { *(.toc) }"
+fi
OTHER_GOT_RELOC_SECTIONS="
.rela.toc ${RELOCATING-0} : { *(.rela.toc) }"
OTHER_READWRITE_SECTIONS="
diff --git a/gnu/usr.bin/binutils/ld/emulparams/elf_s390.sh b/gnu/usr.bin/binutils/ld/emulparams/elf_s390.sh
index 2804aceeb9b..e7106731114 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/elf_s390.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/elf_s390.sh
@@ -8,3 +8,5 @@ MACHINE=
NOP=0x07070707
TEMPLATE_NAME=elf32
GENERATE_SHLIB_SCRIPT=yes
+GENERATE_PIE_SCRIPT=yes
+NO_SMALL_DATA=yes
diff --git a/gnu/usr.bin/binutils/ld/emulparams/h8300sx.sh b/gnu/usr.bin/binutils/ld/emulparams/h8300sx.sh
new file mode 100644
index 00000000000..b46b6f97bc4
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/emulparams/h8300sx.sh
@@ -0,0 +1,5 @@
+SCRIPT_NAME=h8300sx
+OUTPUT_FORMAT="coff-h8300"
+TEXT_START_ADDR=0x8000
+TARGET_PAGE_SIZE=128
+ARCH=h8300
diff --git a/gnu/usr.bin/binutils/ld/emulparams/h8300sxelf.sh b/gnu/usr.bin/binutils/ld/emulparams/h8300sxelf.sh
new file mode 100644
index 00000000000..18f82f64f43
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/emulparams/h8300sxelf.sh
@@ -0,0 +1,3 @@
+. ${srcdir}/emulparams/h8300elf.sh
+ARCH="h8300:h8300sx"
+STACK_ADDR=0x2fefc
diff --git a/gnu/usr.bin/binutils/ld/emulparams/h8300sxn.sh b/gnu/usr.bin/binutils/ld/emulparams/h8300sxn.sh
new file mode 100644
index 00000000000..7cad9746a44
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/emulparams/h8300sxn.sh
@@ -0,0 +1,5 @@
+SCRIPT_NAME=h8300sxn
+OUTPUT_FORMAT="coff-h8300"
+TEXT_START_ADDR=0x8000
+TARGET_PAGE_SIZE=128
+ARCH=h8300
diff --git a/gnu/usr.bin/binutils/ld/emulparams/h8300sxnelf.sh b/gnu/usr.bin/binutils/ld/emulparams/h8300sxnelf.sh
new file mode 100644
index 00000000000..98e9d497261
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/emulparams/h8300sxnelf.sh
@@ -0,0 +1,2 @@
+. ${srcdir}/emulparams/h8300elf.sh
+ARCH="h8300:h8300sxn"
diff --git a/gnu/usr.bin/binutils/ld/emulparams/hppanbsd.sh b/gnu/usr.bin/binutils/ld/emulparams/hppanbsd.sh
index c782c6d4fb5..3f376b47608 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/hppanbsd.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/hppanbsd.sh
@@ -3,4 +3,3 @@
. ${srcdir}/emulparams/hppalinux.sh
-OUTPUT_FORMAT="elf32-hppa"
diff --git a/gnu/usr.bin/binutils/ld/emulparams/m32relf_linux.sh b/gnu/usr.bin/binutils/ld/emulparams/m32relf_linux.sh
new file mode 100644
index 00000000000..814c91a792e
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/emulparams/m32relf_linux.sh
@@ -0,0 +1,13 @@
+MACHINE=
+SCRIPT_NAME=elf
+TEMPLATE_NAME=elf32
+OUTPUT_FORMAT="elf32-m32r-linux"
+TEXT_START_ADDR=0x1000
+ARCH=m32r
+MACHINE=
+MAXPAGESIZE=0x1000
+
+# Hmmm, there's got to be a better way. This sets the stack to the
+# top of simulator memory (32MB).
+OTHER_RELOCATING_SECTIONS='PROVIDE (_stack = 0x2000000);'
+GENERATE_SHLIB_SCRIPT=yes
diff --git a/gnu/usr.bin/binutils/ld/emulparams/m32rlelf.sh b/gnu/usr.bin/binutils/ld/emulparams/m32rlelf.sh
new file mode 100644
index 00000000000..2d4488b57fb
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/emulparams/m32rlelf.sh
@@ -0,0 +1,2 @@
+. ${srcdir}/emulparams/m32relf.sh
+OUTPUT_FORMAT="elf32-m32rle"
diff --git a/gnu/usr.bin/binutils/ld/emulparams/m32rlelf_linux.sh b/gnu/usr.bin/binutils/ld/emulparams/m32rlelf_linux.sh
new file mode 100644
index 00000000000..6d16a1ccd33
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/emulparams/m32rlelf_linux.sh
@@ -0,0 +1,2 @@
+. ${srcdir}/emulparams/m32relf_linux.sh
+OUTPUT_FORMAT="elf32-m32rle-linux"
diff --git a/gnu/usr.bin/binutils/ld/emulparams/mn10300.sh b/gnu/usr.bin/binutils/ld/emulparams/mn10300.sh
index eec2f84ca82..23bbda440d9 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/mn10300.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/mn10300.sh
@@ -1,3 +1,5 @@
. ${srcdir}/emulparams/mn10200.sh
OUTPUT_FORMAT="elf32-mn10300"
ARCH=mn10300
+TEMPLATE_NAME=elf32
+GENERATE_SHLIB_SCRIPT=yes
diff --git a/gnu/usr.bin/binutils/ld/emulparams/msp430all.sh b/gnu/usr.bin/binutils/ld/emulparams/msp430all.sh
new file mode 100644
index 00000000000..3aa3289ee0d
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/emulparams/msp430all.sh
@@ -0,0 +1,804 @@
+#!/bin/sh
+
+# This called by genscripts_extra.sh
+
+MSP430_NAME=${EMULATION_NAME}
+
+if [ "${MSP430_NAME}" = "msp430x110" ] ; then
+ARCH=msp:11
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xfc00
+ROM_SIZE=0x3e0
+RAM_START=0x0200
+RAM_SIZE=128
+
+STACK=0x280
+fi
+
+if [ "${MSP430_NAME}" = "msp430x1101" ] ; then
+ARCH=msp:110
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xfc00
+ROM_SIZE=0x3e0
+RAM_START=0x0200
+RAM_SIZE=128
+
+STACK=0x280
+fi
+
+if [ "${MSP430_NAME}" = "msp430x1111" ] ; then
+ARCH=msp:110
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xf800
+ROM_SIZE=0x07e0
+RAM_START=0x0200
+RAM_SIZE=128
+
+STACK=0x280
+fi
+
+if [ "${MSP430_NAME}" = "msp430x112" ] ; then
+ARCH=msp:11
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xf000
+ROM_SIZE=0xfe0
+RAM_START=0x0200
+RAM_SIZE=256
+
+STACK=0x300
+fi
+
+if [ "${MSP430_NAME}" = "msp430x1121" ] ; then
+ARCH=msp:110
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xf000
+ROM_SIZE=0x0fe0
+RAM_START=0x0200
+RAM_SIZE=256
+
+STACK=0x300
+fi
+
+if [ "${MSP430_NAME}" = "msp430x1122" ] ; then
+ARCH=msp:110
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xf000
+ROM_SIZE=0x0fe0
+RAM_START=0x0200
+RAM_SIZE=256
+
+STACK=0x300
+fi
+
+if [ "${MSP430_NAME}" = "msp430x1132" ] ; then
+ARCH=msp:110
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xe000
+ROM_SIZE=0x1fe0
+RAM_START=0x0200
+RAM_SIZE=256
+
+STACK=0x300
+fi
+
+if [ "${MSP430_NAME}" = "msp430x122" ] ; then
+ARCH=msp:12
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xf000
+ROM_SIZE=0xfe0
+RAM_START=0x0200
+RAM_SIZE=256
+
+STACK=0x300
+fi
+
+if [ "${MSP430_NAME}" = "msp430x1222" ] ; then
+ARCH=msp:12
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xf000
+ROM_SIZE=0xfe0
+RAM_START=0x0200
+RAM_SIZE=256
+
+STACK=0x300
+fi
+
+if [ "${MSP430_NAME}" = "msp430x123" ] ; then
+ARCH=msp:12
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xe000
+ROM_SIZE=0x1fe0
+RAM_START=0x0200
+RAM_SIZE=256
+
+STACK=0x300
+fi
+
+if [ "${MSP430_NAME}" = "msp430x1232" ] ; then
+ARCH=msp:12
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xe000
+ROM_SIZE=0x1fe0
+RAM_START=0x0200
+RAM_SIZE=256
+
+STACK=0x300
+fi
+
+if [ "${MSP430_NAME}" = "msp430x133" ] ; then
+ARCH=msp:13
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xe000
+ROM_SIZE=0x1fe0
+RAM_START=0x0200
+RAM_SIZE=256
+
+STACK=0x300
+fi
+
+if [ "${MSP430_NAME}" = "msp430x1331" ] ; then
+ARCH=msp:13
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xe000
+ROM_SIZE=0x1fe0
+RAM_START=0x0200
+RAM_SIZE=256
+
+STACK=0x300
+fi
+
+if [ "${MSP430_NAME}" = "msp430x135" ] ; then
+ARCH=msp:13
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xc000
+ROM_SIZE=0x3fe0
+RAM_START=0x0200
+RAM_SIZE=512
+
+STACK=0x400
+fi
+
+if [ "${MSP430_NAME}" = "msp430x1351" ] ; then
+ARCH=msp:13
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xc000
+ROM_SIZE=0x3fe0
+RAM_START=0x0200
+RAM_SIZE=512
+
+STACK=0x400
+fi
+
+if [ "${MSP430_NAME}" = "msp430x147" ] ; then
+ARCH=msp:14
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0x8000
+ROM_SIZE=0x7fe0
+RAM_START=0x0200
+RAM_SIZE=1K
+
+STACK=0x600
+fi
+
+if [ "${MSP430_NAME}" = "msp430x148" ] ; then
+ARCH=msp:14
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0x4000
+ROM_SIZE=0xbef0
+RAM_START=0x0200
+RAM_SIZE=0x07ff
+
+STACK=0xa00
+fi
+
+if [ "${MSP430_NAME}" = "msp430x149" ] ; then
+ARCH=msp:14
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0x1100
+ROM_SIZE=0xeee0
+RAM_START=0x0200
+RAM_SIZE=0x07ff
+
+STACK=0xa00
+fi
+
+if [ "${MSP430_NAME}" = "msp430x155" ] ; then
+ARCH=msp:15
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xc000
+ROM_SIZE=0x3fe0
+RAM_START=0x0200
+RAM_SIZE=512
+
+STACK=0x400
+fi
+
+if [ "${MSP430_NAME}" = "msp430x156" ] ; then
+ARCH=msp:15
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xa000
+ROM_SIZE=0x5fe0
+RAM_START=0x0200
+RAM_SIZE=512
+
+STACK=0x400
+fi
+
+if [ "${MSP430_NAME}" = "msp430x157" ] ; then
+ARCH=msp:15
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0x8000
+ROM_SIZE=0x7fe0
+RAM_START=0x0200
+RAM_SIZE=1K
+
+STACK=0x600
+fi
+
+if [ "${MSP430_NAME}" = "msp430x167" ] ; then
+ARCH=msp:16
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0x8000
+ROM_SIZE=0x7fe0
+RAM_START=0x0200
+RAM_SIZE=1K
+
+STACK=0x600
+fi
+
+if [ "${MSP430_NAME}" = "msp430x168" ] ; then
+ARCH=msp:16
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0x4000
+ROM_SIZE=0xbef0
+RAM_START=0x0200
+RAM_SIZE=0x07ff
+
+STACK=0xa00
+fi
+
+if [ "${MSP430_NAME}" = "msp430x169" ] ; then
+ARCH=msp:16
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0x1100
+ROM_SIZE=0xeee0
+RAM_START=0x0200
+RAM_SIZE=0x07ff
+
+STACK=0xa00
+fi
+
+if [ "${MSP430_NAME}" = "msp430x311" ] ; then
+ARCH=msp:31
+MACHINE=
+SCRIPT_NAME=elf32msp430_3
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xf800
+ROM_SIZE=0x07e0
+RAM_START=0x0200
+RAM_SIZE=128
+
+STACK=0x280
+fi
+
+if [ "${MSP430_NAME}" = "msp430x312" ] ; then
+ARCH=msp:31
+MACHINE=
+SCRIPT_NAME=elf32msp430_3
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xf000
+ROM_SIZE=0x0fe0
+RAM_START=0x0200
+RAM_SIZE=256
+
+STACK=0x300
+fi
+
+if [ "${MSP430_NAME}" = "msp430x313" ] ; then
+ARCH=msp:31
+MACHINE=
+SCRIPT_NAME=elf32msp430_3
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xe000
+ROM_SIZE=0x1fe0
+RAM_START=0x0200
+RAM_SIZE=256
+
+STACK=0x300
+fi
+
+if [ "${MSP430_NAME}" = "msp430x314" ] ; then
+ARCH=msp:31
+MACHINE=
+SCRIPT_NAME=elf32msp430_3
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xd000
+ROM_SIZE=0x2fe0
+RAM_START=0x0200
+RAM_SIZE=512
+
+STACK=0x400
+fi
+
+if [ "${MSP430_NAME}" = "msp430x315" ] ; then
+ARCH=msp:31
+MACHINE=
+SCRIPT_NAME=elf32msp430_3
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xc000
+ROM_SIZE=0x3fe0
+RAM_START=0x0200
+RAM_SIZE=512
+
+STACK=0x400
+fi
+
+if [ "${MSP430_NAME}" = "msp430x323" ] ; then
+ARCH=msp:32
+MACHINE=
+SCRIPT_NAME=elf32msp430_3
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xe000
+ROM_SIZE=0x1fe0
+RAM_START=0x0200
+RAM_SIZE=256
+
+STACK=0x300
+fi
+
+if [ "${MSP430_NAME}" = "msp430x325" ] ; then
+ARCH=msp:32
+MACHINE=
+SCRIPT_NAME=elf32msp430_3
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xc000
+ROM_SIZE=0x3fe0
+RAM_START=0x0200
+RAM_SIZE=512
+
+STACK=0x400
+fi
+
+if [ "${MSP430_NAME}" = "msp430x336" ] ; then
+ARCH=msp:33
+MACHINE=
+SCRIPT_NAME=elf32msp430_3
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xa000
+ROM_SIZE=0x5fe0
+RAM_START=0x0200
+RAM_SIZE=1024
+
+STACK=0x600
+fi
+
+if [ "${MSP430_NAME}" = "msp430x337" ] ; then
+ARCH=msp:33
+MACHINE=
+SCRIPT_NAME=elf32msp430_3
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0x8000
+ROM_SIZE=0x7fe0
+RAM_START=0x0200
+RAM_SIZE=1024
+
+STACK=0x600
+fi
+
+if [ "${MSP430_NAME}" = "msp430x412" ] ; then
+ARCH=msp:41
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xf000
+ROM_SIZE=0x0fe0
+RAM_START=0x0200
+RAM_SIZE=256
+
+STACK=0x300
+fi
+
+if [ "${MSP430_NAME}" = "msp430x413" ] ; then
+ARCH=msp:41
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xe000
+ROM_SIZE=0x1fe0
+RAM_START=0x0200
+RAM_SIZE=256
+
+STACK=0x300
+fi
+
+if [ "${MSP430_NAME}" = "msp430x435" ] ; then
+ARCH=msp:43
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xc000
+ROM_SIZE=0x3fe0
+RAM_START=0x0200
+RAM_SIZE=512
+
+STACK=0x400
+fi
+
+if [ "${MSP430_NAME}" = "msp430x436" ] ; then
+ARCH=msp:43
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xa000
+ROM_SIZE=0x5fe0
+RAM_START=0x0200
+RAM_SIZE=1024
+
+STACK=0x600
+fi
+
+if [ "${MSP430_NAME}" = "msp430x437" ] ; then
+ARCH=msp:43
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0x8000
+ROM_SIZE=0x7fe0
+RAM_START=0x0200
+RAM_SIZE=1024
+
+STACK=0x600
+fi
+
+if [ "${MSP430_NAME}" = "msp430x447" ] ; then
+ARCH=msp:44
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0x8000
+ROM_SIZE=0x7fe0
+RAM_START=0x0200
+RAM_SIZE=1K
+
+STACK=0x600
+fi
+
+if [ "${MSP430_NAME}" = "msp430x448" ] ; then
+ARCH=msp:44
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0x4000
+ROM_SIZE=0xbef0
+RAM_START=0x0200
+RAM_SIZE=0x07ff
+
+STACK=0xa00
+fi
+
+if [ "${MSP430_NAME}" = "msp430x449" ] ; then
+ARCH=msp:44
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0x1100
+ROM_SIZE=0xeee0
+RAM_START=0x0200
+RAM_SIZE=0x07ff
+
+STACK=0xa00
+fi
+
+if [ "${MSP430_NAME}" = "msp430xE423" ] ; then
+ARCH=msp:42
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xe000
+ROM_SIZE=0x1fe0
+RAM_START=0x0200
+RAM_SIZE=256
+
+STACK=0x300
+fi
+
+if [ "${MSP430_NAME}" = "msp430xE425" ] ; then
+ARCH=msp:42
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xc000
+ROM_SIZE=0x3fe0
+RAM_START=0x0200
+RAM_SIZE=512
+
+STACK=0x400
+fi
+
+if [ "${MSP430_NAME}" = "msp430xE427" ] ; then
+ARCH=msp:42
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0x8000
+ROM_SIZE=0x7fe0
+RAM_START=0x0200
+RAM_SIZE=1K
+
+STACK=0x600
+fi
+
+if [ "${MSP430_NAME}" = "msp430xW423" ] ; then
+ARCH=msp:42
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xe000
+ROM_SIZE=0x1fe0
+RAM_START=0x0200
+RAM_SIZE=256
+
+STACK=0x300
+fi
+
+if [ "${MSP430_NAME}" = "msp430xW425" ] ; then
+ARCH=msp:42
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0xc000
+ROM_SIZE=0x3fe0
+RAM_START=0x0200
+RAM_SIZE=512
+
+STACK=0x400
+fi
+
+if [ "${MSP430_NAME}" = "msp430xW427" ] ; then
+ARCH=msp:42
+MACHINE=
+SCRIPT_NAME=elf32msp430
+OUTPUT_FORMAT="elf32-msp430"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=generic
+
+ROM_START=0x8000
+ROM_SIZE=0x7fe0
+RAM_START=0x0200
+RAM_SIZE=1K
+
+STACK=0x600
+fi
diff --git a/gnu/usr.bin/binutils/ld/emulparams/shelf.sh b/gnu/usr.bin/binutils/ld/emulparams/shelf.sh
index 5c0c9d640e8..ef0de461915 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/shelf.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/shelf.sh
@@ -23,10 +23,11 @@ DTOR_END='___dtors_end = .;'
# N.B. We can't use PROVIDE to set the default value in a symbol because
# the address is needed to place the .stack section, which in turn is needed
# to hold the sentinel value(s).
-OTHER_SECTIONS=" .stack ${RELOCATING-0}${RELOCATING+(DEFINED(_stack) ? _stack : 0x30000)} :
+test -z "$CREATE_SHLIB" && OTHER_SECTIONS=" .stack ${RELOCATING-0}${RELOCATING+(DEFINED(_stack) ? _stack : 0x30000)} :
{
${RELOCATING+_stack = .;}
*(.stack)
LONG(0xdeaddead)
}"
-
+# We do not need .stack for shared library.
+test -n "$CREATE_SHLIB" && OTHER_SECTIONS=""
diff --git a/gnu/usr.bin/binutils/ld/emulparams/shelf32.sh b/gnu/usr.bin/binutils/ld/emulparams/shelf32.sh
index c05da3f90bf..6582b02839a 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/shelf32.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/shelf32.sh
@@ -3,7 +3,6 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT=${OUTPUT_FORMAT-"elf32-sh64"}
TEXT_START_ADDR=0x1000
-STACK_ADDR='ALIGN (0x40000) + 0x40000'
MAXPAGESIZE=128
ARCH=sh
MACHINE=sh5
@@ -34,9 +33,25 @@ DTOR_END='___dtors_end = .;'
# Do not use the varname=${varname-'string'} construct here; there are
# problems with that on some shells (e.g. on Solaris) where there is a bug
# that trigs when $varname contains a "}".
-OTHER_SECTIONS='
- .cranges 0 : { *(.cranges) }
-'
+# The effect of the .stack definition is like setting STACK_ADDR to 0x80000,
+# except that the setting can be overridden, e.g. --defsym _stack=0xff000,
+# and that we put an extra sentinal value at the bottom.
+# N.B. We can't use PROVIDE to set the default value in a symbol because
+# the address is needed to place the .stack section, which in turn is needed
+# to hold the sentinel value(s).
+test -z "$CREATE_SHLIB" && OTHER_SECTIONS="
+ .stack ${RELOCATING-0}${RELOCATING+(DEFINED(_stack) ? _stack : ALIGN (0x40000) + 0x40000)} :
+ {
+ ${RELOCATING+_stack = .;}
+ *(.stack)
+ LONG(0xdeaddead)
+ }
+ .cranges 0 : { *(.cranges) }
+"
+# We do not need .stack for shared library.
+test -n "$CREATE_SHLIB" && OTHER_SECTIONS="
+ .cranges 0 : { *(.cranges) }
+"
# We need to adjust sizes in the .cranges section after relaxation, so
# we need an after_allocation function, and it goes in this file.
diff --git a/gnu/usr.bin/binutils/ld/emulparams/shelf32_nbsd.sh b/gnu/usr.bin/binutils/ld/emulparams/shelf32_nbsd.sh
index edd6216860f..14965ef95b5 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/shelf32_nbsd.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/shelf32_nbsd.sh
@@ -11,3 +11,7 @@ ENTRY=__start
unset EMBEDDED
unset STACK_ADDR
+unset OTHER_SECTIONS
+OTHER_SECTIONS="
+ .cranges 0 : { *(.cranges) }
+"
diff --git a/gnu/usr.bin/binutils/ld/emulparams/shelf64.sh b/gnu/usr.bin/binutils/ld/emulparams/shelf64.sh
index 2c9a9c513bd..eb1f6c76ecd 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/shelf64.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/shelf64.sh
@@ -6,4 +6,13 @@ EXTRA_EM_FILE=
. ${srcdir}/emulparams/shelf32.sh
# We do not need .cranges
-OTHER_SECTIONS=''
+test -z "$CREATE_SHLIB" && OTHER_SECTIONS="
+ .stack ${RELOCATING-0}${RELOCATING+(DEFINED(_stack) ? _stack : ALIGN (0x40000) + 0x40000)} :
+ {
+ ${RELOCATING+_stack = .;}
+ *(.stack)
+ LONG(0xdeaddead)
+ }
+"
+# We do not need .stack for shared library.
+test -n "$CREATE_SHLIB" && OTHER_SECTIONS=""
diff --git a/gnu/usr.bin/binutils/ld/emulparams/shlelf32_linux.sh b/gnu/usr.bin/binutils/ld/emulparams/shlelf32_linux.sh
index 01b9ce36c98..63a8356c535 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/shlelf32_linux.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/shlelf32_linux.sh
@@ -10,6 +10,7 @@ MACHINE=sh5
ALIGNMENT=8
TEMPLATE_NAME=elf32
GENERATE_SHLIB_SCRIPT=yes
+GENERATE_PIE_SCRIPT=yes
DATA_START_SYMBOLS='PROVIDE (___data = .);'
diff --git a/gnu/usr.bin/binutils/ld/emulparams/shlelf_linux.sh b/gnu/usr.bin/binutils/ld/emulparams/shlelf_linux.sh
index 875b2f3750b..528b7257f3b 100644
--- a/gnu/usr.bin/binutils/ld/emulparams/shlelf_linux.sh
+++ b/gnu/usr.bin/binutils/ld/emulparams/shlelf_linux.sh
@@ -5,10 +5,12 @@ SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-sh-linux"
TEXT_START_ADDR=0x400000
MAXPAGESIZE=0x10000
+COMMONPAGESIZE=0x1000
ARCH=sh
MACHINE=
TEMPLATE_NAME=elf32
GENERATE_SHLIB_SCRIPT=yes
+GENERATE_PIE_SCRIPT=yes
DATA_START_SYMBOLS='__data_start = . ;';
diff --git a/gnu/usr.bin/binutils/ld/emultempl/alphaelf.em b/gnu/usr.bin/binutils/ld/emultempl/alphaelf.em
index 4ff83cb76f2..7e643231f41 100644
--- a/gnu/usr.bin/binutils/ld/emultempl/alphaelf.em
+++ b/gnu/usr.bin/binutils/ld/emultempl/alphaelf.em
@@ -27,18 +27,15 @@ cat >>e${EMULATION_NAME}.c <<EOF
#include "elf/alpha.h"
#include "elf-bfd.h"
-static void alpha_after_parse PARAMS ((void));
-static void alpha_finish PARAMS ((void));
-
static int elf64alpha_32bit = 0;
/* Set the start address as in the Tru64 ld. */
#define ALPHA_TEXT_START_32BIT 0x12000000
static void
-alpha_after_parse ()
+alpha_after_parse (void)
{
- if (elf64alpha_32bit && !link_info.shared && !link_info.relocateable)
+ if (elf64alpha_32bit && !link_info.shared && !link_info.relocatable)
lang_section_start (".interp",
exp_binop ('+',
exp_intop (ALPHA_TEXT_START_32BIT),
@@ -46,7 +43,7 @@ alpha_after_parse ()
}
static void
-alpha_finish ()
+alpha_finish (void)
{
if (elf64alpha_32bit)
elf_elfheader (output_bfd)->e_flags |= EF_ALPHA_32BIT;
diff --git a/gnu/usr.bin/binutils/ld/emultempl/armcoff.em b/gnu/usr.bin/binutils/ld/emultempl/armcoff.em
index 11566581e03..468c3b08beb 100644
--- a/gnu/usr.bin/binutils/ld/emultempl/armcoff.em
+++ b/gnu/usr.bin/binutils/ld/emultempl/armcoff.em
@@ -4,8 +4,8 @@ cat >e${EMULATION_NAME}.c <<EOF
/* This file is is generated by a shell script. DO NOT EDIT! */
/* emulate the original gld for the given ${EMULATION_NAME}
- Copyright 1991, 1993, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
- Free Software Foundation, Inc.
+ Copyright 1991, 1993, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+ 2004 Free Software Foundation, Inc.
Written by Steve Chamberlain steve@cygnus.com
This file is part of GLD, the Gnu Linker.
@@ -40,18 +40,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "ldfile.h"
#include "ldemul.h"
-static void gld${EMULATION_NAME}_before_parse PARAMS ((void));
-static void gld${EMULATION_NAME}_before_allocation PARAMS ((void));
-static char *gld${EMULATION_NAME}_get_script PARAMS ((int *isfile));
-static void gld${EMULATION_NAME}_add_options
- PARAMS ((int, char **, int, struct option **, int, struct option **));
-static void gld${EMULATION_NAME}_list_options PARAMS ((FILE *));
-static bfd_boolean gld${EMULATION_NAME}_handle_option PARAMS ((int));
-static void gld${EMULATION_NAME}_finish PARAMS ((void));
-static void gld${EMULATION_NAME}_after_open PARAMS ((void));
-
-/* If TRUE, then interworking stubs which support calls to old, non-interworking
- aware ARM code should be generated. */
+/* If TRUE, then interworking stubs which support calls to old,
+ non-interworking aware ARM code should be generated. */
static int support_old_code = 0;
static char * thumb_entry_symbol = NULL;
@@ -60,13 +50,10 @@ static char * thumb_entry_symbol = NULL;
#define OPTION_THUMB_ENTRY 301
static void
-gld${EMULATION_NAME}_add_options (ns, shortopts, nl, longopts, nrl, really_longopts)
- int ns ATTRIBUTE_UNUSED;
- char **shortopts ATTRIBUTE_UNUSED;
- int nl;
- struct option **longopts;
- int nrl ATTRIBUTE_UNUSED;
- struct option **really_longopts ATTRIBUTE_UNUSED;
+gld${EMULATION_NAME}_add_options
+ (int ns ATTRIBUTE_UNUSED, char **shortopts ATTRIBUTE_UNUSED, int nl,
+ struct option **longopts, int nrl ATTRIBUTE_UNUSED,
+ struct option **really_longopts ATTRIBUTE_UNUSED)
{
static const struct option xtra_long[] = {
{"support-old-code", no_argument, NULL, OPTION_SUPPORT_OLD_CODE},
@@ -74,22 +61,20 @@ gld${EMULATION_NAME}_add_options (ns, shortopts, nl, longopts, nrl, really_longo
{NULL, no_argument, NULL, 0}
};
- *longopts = (struct option *)
- xrealloc (*longopts, nl * sizeof (struct option) + sizeof (xtra_long));
+ *longopts = xrealloc (*longopts,
+ nl * sizeof (struct option) + sizeof (xtra_long));
memcpy (*longopts + nl, &xtra_long, sizeof (xtra_long));
}
static void
-gld${EMULATION_NAME}_list_options (file)
- FILE * file;
+gld${EMULATION_NAME}_list_options (FILE *file)
{
fprintf (file, _(" --support-old-code Support interworking with old code\n"));
fprintf (file, _(" --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n"));
}
static bfd_boolean
-gld${EMULATION_NAME}_handle_option (optc)
- int optc;
+gld${EMULATION_NAME}_handle_option (int optc)
{
switch (optc)
{
@@ -104,15 +89,15 @@ gld${EMULATION_NAME}_handle_option (optc)
thumb_entry_symbol = optarg;
break;
}
-
+
return TRUE;
}
static void
-gld${EMULATION_NAME}_before_parse ()
+gld${EMULATION_NAME}_before_parse (void)
{
#ifndef TARGET_ /* I.e., if not generic. */
- ldfile_set_output_arch ("`echo ${ARCH}`");
+ ldfile_set_output_arch ("`echo ${ARCH}`", bfd_arch_unknown);
#endif /* not TARGET_ */
}
@@ -120,7 +105,7 @@ gld${EMULATION_NAME}_before_parse ()
sections, but before any sizes or addresses have been set. */
static void
-gld${EMULATION_NAME}_before_allocation ()
+gld${EMULATION_NAME}_before_allocation (void)
{
/* we should be able to set the size of the interworking stub section */
@@ -143,7 +128,7 @@ gld${EMULATION_NAME}_before_allocation ()
}
static void
-gld${EMULATION_NAME}_after_open ()
+gld${EMULATION_NAME}_after_open (void)
{
if (strstr (bfd_get_target (output_bfd), "arm") == NULL)
{
@@ -154,7 +139,7 @@ gld${EMULATION_NAME}_after_open ()
einfo ("%F%X%P: error: cannot change output format whilst linking ARM binaries\n");
return;
}
-
+
{
LANG_FOR_EACH_INPUT_STATEMENT (is)
{
@@ -165,13 +150,13 @@ gld${EMULATION_NAME}_after_open ()
}
static void
-gld${EMULATION_NAME}_finish PARAMS((void))
+gld${EMULATION_NAME}_finish (void)
{
struct bfd_link_hash_entry * h;
if (thumb_entry_symbol == NULL)
return;
-
+
h = bfd_link_hash_lookup (link_info.hash, thumb_entry_symbol,
FALSE, FALSE, TRUE);
@@ -182,21 +167,21 @@ gld${EMULATION_NAME}_finish PARAMS((void))
{
static char buffer[32];
bfd_vma val;
-
+
/* Special procesing is required for a Thumb entry symbol. The
bottom bit of its address must be set. */
val = (h->u.def.value
+ bfd_get_section_vma (output_bfd,
h->u.def.section->output_section)
+ h->u.def.section->output_offset);
-
+
val |= 1;
/* Now convert this value into a string and store it in entry_symbol
- where the lang_finish() function will pick it up. */
+ where the lang_finish() function will pick it up. */
buffer[0] = '0';
buffer[1] = 'x';
-
+
sprintf_vma (buffer + 2, val);
if (entry_symbol.name != NULL && entry_from_cmdline)
@@ -209,8 +194,7 @@ gld${EMULATION_NAME}_finish PARAMS((void))
}
static char *
-gld${EMULATION_NAME}_get_script (isfile)
- int *isfile;
+gld${EMULATION_NAME}_get_script (int *isfile)
EOF
if test -n "$COMPILE_IN"
@@ -221,14 +205,14 @@ then
sc="-f stringify.sed"
cat >>e${EMULATION_NAME}.c <<EOF
-{
+{
*isfile = 0;
- if (link_info.relocateable && config.build_constructors)
+ if (link_info.relocatable && config.build_constructors)
return
EOF
sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c
-echo ' ; else if (link_info.relocateable) return' >> 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
@@ -242,12 +226,12 @@ else
# Scripts read from the filesystem.
cat >>e${EMULATION_NAME}.c <<EOF
-{
+{
*isfile = 1;
- if (link_info.relocateable && config.build_constructors)
+ if (link_info.relocatable && config.build_constructors)
return "ldscripts/${EMULATION_NAME}.xu";
- else if (link_info.relocateable)
+ else if (link_info.relocatable)
return "ldscripts/${EMULATION_NAME}.xr";
else if (!config.text_read_only)
return "ldscripts/${EMULATION_NAME}.xbn";
@@ -262,7 +246,7 @@ fi
cat >>e${EMULATION_NAME}.c <<EOF
-struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
+struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
{
gld${EMULATION_NAME}_before_parse,
syslib_default,
diff --git a/gnu/usr.bin/binutils/ld/emultempl/armelf.em b/gnu/usr.bin/binutils/ld/emultempl/armelf.em
index b125c579eff..0c051ad62b8 100644
--- a/gnu/usr.bin/binutils/ld/emultempl/armelf.em
+++ b/gnu/usr.bin/binutils/ld/emultempl/armelf.em
@@ -1,5 +1,5 @@
# This shell script emits a C file. -*- C -*-
-# Copyright 1991, 1993, 1996, 1997, 1998, 1999, 2000, 2002, 2003
+# Copyright 1991, 1993, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004
# Free Software Foundation, Inc.
#
# This file is part of GLD, the Gnu Linker.
@@ -28,21 +28,18 @@ static int no_pipeline_knowledge = 0;
static char *thumb_entry_symbol = NULL;
static bfd *bfd_for_interwork;
-
static void
-gld${EMULATION_NAME}_before_parse ()
+gld${EMULATION_NAME}_before_parse (void)
{
#ifndef TARGET_ /* I.e., if not generic. */
- ldfile_set_output_arch ("`echo ${ARCH}`");
+ ldfile_set_output_arch ("`echo ${ARCH}`", bfd_arch_unknown);
#endif /* not TARGET_ */
config.dynamic_link = ${DYNAMIC_LINK-TRUE};
config.has_shared = `if test -n "$GENERATE_SHLIB_SCRIPT" ; then echo TRUE ; else echo FALSE ; fi`;
}
-static void arm_elf_after_open PARAMS ((void));
-
static void
-arm_elf_after_open ()
+arm_elf_after_open (void)
{
if (strstr (bfd_get_target (output_bfd), "arm") == NULL)
{
@@ -65,12 +62,8 @@ arm_elf_after_open ()
gld${EMULATION_NAME}_after_open ();
}
-static void arm_elf_set_bfd_for_interworking
- PARAMS ((lang_statement_union_type *));
-
static void
-arm_elf_set_bfd_for_interworking (statement)
- lang_statement_union_type *statement;
+arm_elf_set_bfd_for_interworking (lang_statement_union_type *statement)
{
if (statement->header.type == lang_input_section_enum
&& !statement->input_section.ifile->just_syms_flag)
@@ -90,10 +83,8 @@ arm_elf_set_bfd_for_interworking (statement)
}
}
-static void arm_elf_before_allocation PARAMS ((void));
-
static void
-arm_elf_before_allocation ()
+arm_elf_before_allocation (void)
{
bfd *tem;
@@ -138,10 +129,8 @@ arm_elf_before_allocation ()
bfd_elf32_arm_allocate_interworking_sections (& link_info);
}
-static void arm_elf_finish PARAMS ((void));
-
static void
-arm_elf_finish ()
+arm_elf_finish (void)
{
struct bfd_link_hash_entry * h;
@@ -150,7 +139,7 @@ arm_elf_finish ()
if (thumb_entry_symbol == NULL)
return;
-
+
h = bfd_link_hash_lookup (link_info.hash, thumb_entry_symbol,
FALSE, FALSE, TRUE);
@@ -161,21 +150,21 @@ arm_elf_finish ()
{
static char buffer[32];
bfd_vma val;
-
+
/* Special procesing is required for a Thumb entry symbol. The
bottom bit of its address must be set. */
val = (h->u.def.value
+ bfd_get_section_vma (output_bfd,
h->u.def.section->output_section)
+ h->u.def.section->output_offset);
-
+
val |= 1;
/* Now convert this value into a string and store it in entry_symbol
- where the lang_finish() function will pick it up. */
+ where the lang_finish() function will pick it up. */
buffer[0] = '0';
buffer[1] = 'x';
-
+
sprintf_vma (buffer + 2, val);
if (entry_symbol.name != NULL && entry_from_cmdline)
diff --git a/gnu/usr.bin/binutils/ld/emultempl/armelf_oabi.em b/gnu/usr.bin/binutils/ld/emultempl/armelf_oabi.em
index 555b947e383..d75c6586330 100644
--- a/gnu/usr.bin/binutils/ld/emultempl/armelf_oabi.em
+++ b/gnu/usr.bin/binutils/ld/emultempl/armelf_oabi.em
@@ -4,8 +4,8 @@ cat >e${EMULATION_NAME}.c <<EOF
/* This file is is generated by a shell script. DO NOT EDIT! */
/* emulate the original gld for the given ${EMULATION_NAME}
- Copyright 1991, 1993, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
- Free Software Foundation, Inc.
+ Copyright 1991, 1993, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+ 2004 Free Software Foundation, Inc.
Written by Steve Chamberlain steve@cygnus.com
This file is part of GLD, the Gnu Linker.
@@ -47,16 +47,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "ldfile.h"
#include "ldemul.h"
-static void gld${EMULATION_NAME}_before_parse PARAMS ((void));
-static void gld${EMULATION_NAME}_before_allocation PARAMS ((void));
-static char *gld${EMULATION_NAME}_get_script PARAMS ((int *isfile));
-static void gld${EMULATION_NAME}_after_open PARAMS ((void));
-
static void
-gld${EMULATION_NAME}_before_parse ()
+gld${EMULATION_NAME}_before_parse (void)
{
#ifndef TARGET_ /* I.e., if not generic. */
- ldfile_set_output_arch ("`echo ${ARCH}`");
+ ldfile_set_output_arch ("`echo ${ARCH}`", bfd_arch_unknown);
#endif /* not TARGET_ */
}
@@ -64,7 +59,7 @@ gld${EMULATION_NAME}_before_parse ()
sections, but before any sizes or addresses have been set. */
static void
-gld${EMULATION_NAME}_before_allocation ()
+gld${EMULATION_NAME}_before_allocation (void)
{
/* we should be able to set the size of the interworking stub section */
@@ -86,7 +81,7 @@ gld${EMULATION_NAME}_before_allocation ()
}
static void
-gld${EMULATION_NAME}_after_open ()
+gld${EMULATION_NAME}_after_open (void)
{
LANG_FOR_EACH_INPUT_STATEMENT (is)
@@ -98,8 +93,7 @@ gld${EMULATION_NAME}_after_open ()
}
static char *
-gld${EMULATION_NAME}_get_script (isfile)
- int *isfile;
+gld${EMULATION_NAME}_get_script (int *isfile)
EOF
if test -n "$COMPILE_IN"
@@ -110,14 +104,14 @@ then
sc="-f stringify.sed"
cat >>e${EMULATION_NAME}.c <<EOF
-{
+{
*isfile = 0;
- if (link_info.relocateable && config.build_constructors)
+ if (link_info.relocatable && config.build_constructors)
return
EOF
sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c
-echo ' ; else if (link_info.relocateable) return' >> 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
@@ -131,12 +125,12 @@ else
# Scripts read from the filesystem.
cat >>e${EMULATION_NAME}.c <<EOF
-{
+{
*isfile = 1;
- if (link_info.relocateable && config.build_constructors)
+ if (link_info.relocatable && config.build_constructors)
return "ldscripts/${EMULATION_NAME}.xu";
- else if (link_info.relocateable)
+ else if (link_info.relocatable)
return "ldscripts/${EMULATION_NAME}.xr";
else if (!config.text_read_only)
return "ldscripts/${EMULATION_NAME}.xbn";
@@ -151,7 +145,7 @@ fi
cat >>e${EMULATION_NAME}.c <<EOF
-struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
+struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
{
gld${EMULATION_NAME}_before_parse,
syslib_default,
diff --git a/gnu/usr.bin/binutils/ld/emultempl/beos.em b/gnu/usr.bin/binutils/ld/emultempl/beos.em
index 3b84280f971..0431baf7cca 100644
--- a/gnu/usr.bin/binutils/ld/emultempl/beos.em
+++ b/gnu/usr.bin/binutils/ld/emultempl/beos.em
@@ -7,7 +7,7 @@ else
fi
cat >e${EMULATION_NAME}.c <<EOF
/* This file is part of GLD, the Gnu Linker.
- Copyright 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003
+ Copyright 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
@@ -51,43 +51,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define TARGET_IS_${EMULATION_NAME}
-static void gld_${EMULATION_NAME}_set_symbols PARAMS ((void));
-static void gld_${EMULATION_NAME}_after_open PARAMS ((void));
-static void gld_${EMULATION_NAME}_before_parse PARAMS ((void));
-static void gld_${EMULATION_NAME}_before_allocation PARAMS ((void));
-static bfd_boolean gld${EMULATION_NAME}_place_orphan
- PARAMS ((lang_input_statement_type *, asection *));
-static char *gld_${EMULATION_NAME}_get_script PARAMS ((int *));
-
-static int sort_by_file_name PARAMS ((const PTR, const PTR));
-static int sort_by_section_name PARAMS ((const PTR, const PTR));
-static lang_statement_union_type **sort_sections_1
- PARAMS ((lang_statement_union_type **, lang_statement_union_type *, int,
- int (*) PARAMS((const PTR, const PTR))));
-static void sort_sections PARAMS ((lang_statement_union_type *));
-
-static void set_pe_name PARAMS ((char *, long int));
-static void set_pe_subsystem PARAMS ((void));
-static void set_pe_value PARAMS ((char *));
-static void set_pe_stack_heap PARAMS ((char *, char *));
-
static struct internal_extra_pe_aouthdr pe;
static int dll;
extern const char *output_filename;
static void
-gld_${EMULATION_NAME}_before_parse()
+gld_${EMULATION_NAME}_before_parse (void)
{
- const bfd_arch_info_type *arch = bfd_scan_arch ("${OUTPUT_ARCH}");
- if (arch)
- {
- ldfile_output_architecture = arch->arch;
- ldfile_output_machine = arch->mach;
- ldfile_output_machine_name = arch->printable_name;
- }
- else
- ldfile_output_architecture = bfd_arch_${ARCH};
+ ldfile_set_output_arch ("${OUTPUT_ARCH}", bfd_arch_`echo ${ARCH} | sed -e 's/:.*//'`);
output_filename = "a.exe";
}
@@ -109,17 +81,11 @@ gld_${EMULATION_NAME}_before_parse()
#define OPTION_SUBSYSTEM (OPTION_STACK + 1)
#define OPTION_HEAP (OPTION_SUBSYSTEM + 1)
-static void gld${EMULATION_NAME}_add_options
- PARAMS ((int, char **, int, struct option **, int, struct option **));
-
static void
-gld${EMULATION_NAME}_add_options (ns, shortopts, nl, longopts, nrl, really_longopts)
- int ns ATTRIBUTE_UNUSED;
- char **shortopts ATTRIBUTE_UNUSED;
- int nl;
- struct option **longopts;
- int nrl ATTRIBUTE_UNUSED;
- struct option **really_longopts ATTRIBUTE_UNUSED;
+gld${EMULATION_NAME}_add_options
+ (int ns ATTRIBUTE_UNUSED, char **shortopts ATTRIBUTE_UNUSED, int nl,
+ struct option **longopts, int nrl ATTRIBUTE_UNUSED,
+ struct option **really_longopts ATTRIBUTE_UNUSED)
{
static const struct option xtra_long[] = {
/* PE options */
@@ -185,9 +151,7 @@ static definfo init[] =
static void
-set_pe_name (name, val)
- char *name;
- long val;
+set_pe_name (char *name, long val)
{
int i;
/* Find the name and set it. */
@@ -205,7 +169,7 @@ set_pe_name (name, val)
static void
-set_pe_subsystem ()
+set_pe_subsystem (void)
{
const char *sver;
int len;
@@ -281,11 +245,8 @@ set_pe_subsystem ()
}
-
static void
-set_pe_value (name)
- char *name;
-
+set_pe_value (char *name)
{
char *end;
set_pe_name (name, strtoul (optarg, &end, 0));
@@ -298,9 +259,7 @@ set_pe_value (name)
}
static void
-set_pe_stack_heap (resname, comname)
- char *resname;
- char *comname;
+set_pe_stack_heap (char *resname, char *comname)
{
set_pe_value (resname);
if (*optarg == ',')
@@ -315,12 +274,8 @@ set_pe_stack_heap (resname, comname)
}
-static bfd_boolean gld${EMULATION_NAME}_handle_option
- PARAMS ((int));
-
static bfd_boolean
-gld${EMULATION_NAME}_handle_option (optc)
- int optc;
+gld${EMULATION_NAME}_handle_option (int optc)
{
switch (optc)
{
@@ -328,7 +283,7 @@ gld${EMULATION_NAME}_handle_option (optc)
return FALSE;
case OPTION_BASE_FILE:
- link_info.base_file = (PTR) fopen (optarg, FOPEN_WB);
+ link_info.base_file = fopen (optarg, FOPEN_WB);
if (link_info.base_file == NULL)
{
fprintf (stderr, "%s: Can't open base file %s\n",
@@ -385,7 +340,7 @@ gld${EMULATION_NAME}_handle_option (optc)
read. */
static void
-gld_${EMULATION_NAME}_set_symbols()
+gld_${EMULATION_NAME}_set_symbols (void)
{
/* Run through and invent symbols for all the
names and insert the defaults. */
@@ -394,7 +349,7 @@ gld_${EMULATION_NAME}_set_symbols()
if (!init[IMAGEBASEOFF].inited)
{
- if (link_info.relocateable)
+ if (link_info.relocatable)
init[IMAGEBASEOFF].value = 0;
else if (init[DLLOFF].value)
init[IMAGEBASEOFF].value = BEOS_DLL_IMAGE_BASE;
@@ -402,8 +357,8 @@ gld_${EMULATION_NAME}_set_symbols()
init[IMAGEBASEOFF].value = BEOS_EXE_IMAGE_BASE;
}
- /* Don't do any symbol assignments if this is a relocateable link. */
- if (link_info.relocateable)
+ /* Don't do any symbol assignments if this is a relocatable link. */
+ if (link_info.relocatable)
return;
/* Glue the assignments into the abs section */
@@ -437,7 +392,7 @@ gld_${EMULATION_NAME}_set_symbols()
}
static void
-gld_${EMULATION_NAME}_after_open()
+gld_${EMULATION_NAME}_after_open (void)
{
/* Pass the wacky PE command line options into the output bfd.
FIXME: This should be done via a function, rather than by
@@ -455,9 +410,7 @@ gld_${EMULATION_NAME}_after_open()
/* Callback functions for qsort in sort_sections. */
static int
-sort_by_file_name (a, b)
- const PTR a;
- const PTR b;
+sort_by_file_name (const void *a, const void *b)
{
const lang_statement_union_type *const *ra = a;
const lang_statement_union_type *const *rb = b;
@@ -512,9 +465,7 @@ return 0;
}
static int
-sort_by_section_name (a, b)
- const PTR a;
- const PTR b;
+sort_by_section_name (const void *a, const void *b)
{
const lang_statement_union_type *const *ra = a;
const lang_statement_union_type *const *rb = b;
@@ -539,10 +490,10 @@ sort_by_section_name (a, b)
The result is a pointer to the last element's "next" pointer. */
static lang_statement_union_type **
-sort_sections_1 (startptr, next_after, count, sort_func)
- lang_statement_union_type **startptr,*next_after;
- int count;
- int (*sort_func) PARAMS ((const PTR, const PTR));
+sort_sections_1 (lang_statement_union_type **startptr,
+ lang_statement_union_type *next_after,
+ int count,
+ int (*sort_func) (const void *, const void *))
{
lang_statement_union_type **vec;
lang_statement_union_type *p;
@@ -585,8 +536,7 @@ sort_sections_1 (startptr, next_after, count, sort_func)
place_orphans routine to implement grouped sections. */
static void
-sort_sections (s)
- lang_statement_union_type *s;
+sort_sections (lang_statement_union_type *s)
{
for (; s ; s = s->header.next)
switch (s->header.type)
@@ -673,7 +623,7 @@ sort_sections (s)
}
static void
-gld_${EMULATION_NAME}_before_allocation()
+gld_${EMULATION_NAME}_before_allocation (void)
{
extern lang_statement_list_type *stat_ptr;
@@ -728,11 +678,8 @@ gld_${EMULATION_NAME}_before_allocation()
but I'm leaving this here in case we want to enable it for sections
which are not mentioned in the linker script. */
-/*ARGSUSED*/
static bfd_boolean
-gld${EMULATION_NAME}_place_orphan (file, s)
- lang_input_statement_type *file;
- asection *s;
+gld${EMULATION_NAME}_place_orphan (lang_input_statement_type *file, asection *s)
{
const char *secname;
char *output_secname, *ps;
@@ -746,7 +693,7 @@ gld${EMULATION_NAME}_place_orphan (file, s)
If they're marked as COMDAT sections, we don't want .text\$foo to
end up in .text and then have .text disappear because it's marked
link-once-discard. */
- if (link_info.relocateable)
+ if (link_info.relocatable)
return FALSE;
secname = bfd_get_section_name (s->owner, s);
@@ -821,8 +768,7 @@ gld${EMULATION_NAME}_place_orphan (file, s)
}
static char *
-gld_${EMULATION_NAME}_get_script(isfile)
- int *isfile;
+gld_${EMULATION_NAME}_get_script (int *isfile)
EOF
# Scripts compiled in.
# sed commands to quote an ld script as a C string.
@@ -832,11 +778,11 @@ cat >>e${EMULATION_NAME}.c <<EOF
{
*isfile = 0;
- if (link_info.relocateable && config.build_constructors)
+ if (link_info.relocatable && config.build_constructors)
return
EOF
sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c
-echo ' ; else if (link_info.relocateable) return' >> 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
diff --git a/gnu/usr.bin/binutils/ld/emultempl/ia64elf.em b/gnu/usr.bin/binutils/ld/emultempl/ia64elf.em
new file mode 100644
index 00000000000..eee467b0809
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/emultempl/ia64elf.em
@@ -0,0 +1,62 @@
+# This shell script emits a C file. -*- C -*-
+# Copyright 2003 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.
+#
+
+# This file is sourced from elf32.em, and defines extra ia64-elf
+# specific routines.
+#
+# Define some shell vars to insert bits of code into the standard elf
+# parse_args and list_options functions.
+#
+cat >>e${EMULATION_NAME}.c <<EOF
+
+/* None zero if generating binary for Intel Itanium processor. */
+static int itanium = 0;
+
+static void
+gld${EMULATION_NAME}_after_parse (void)
+{
+ link_info.need_relax_finalize = TRUE;
+ bfd_elf${ELFSIZE}_ia64_after_parse (itanium);
+}
+
+EOF
+
+PARSE_AND_LIST_PROLOGUE='
+#define OPTION_ITANIUM 300
+'
+
+PARSE_AND_LIST_LONGOPTS='
+ { "itanium", no_argument, NULL, OPTION_ITANIUM},
+'
+
+PARSE_AND_LIST_OPTIONS='
+ fprintf (file, _("\
+ --itanium Generate code for Intel Itanium processor\n"
+ ));
+'
+
+PARSE_AND_LIST_ARGS_CASES='
+ case OPTION_ITANIUM:
+ itanium = 1;
+ break;
+'
+
+LDEMUL_AFTER_PARSE=gld${EMULATION_NAME}_after_parse
+. ${srcdir}/emultempl/needrelax.em
diff --git a/gnu/usr.bin/binutils/ld/emultempl/irix.em b/gnu/usr.bin/binutils/ld/emultempl/irix.em
new file mode 100644
index 00000000000..19511dd31ac
--- /dev/null
+++ b/gnu/usr.bin/binutils/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/gnu/usr.bin/binutils/ld/emultempl/m68hc1xelf.em b/gnu/usr.bin/binutils/ld/emultempl/m68hc1xelf.em
index 5e5dc102434..ecae4c08b47 100644
--- a/gnu/usr.bin/binutils/ld/emultempl/m68hc1xelf.em
+++ b/gnu/usr.bin/binutils/ld/emultempl/m68hc1xelf.em
@@ -44,12 +44,7 @@ cat >>e${EMULATION_NAME}.c <<EOF
#include "ldctor.h"
#include "elf32-m68hc1x.h"
-static void m68hc11elf_create_output_section_statements PARAMS ((void));
-static asection *m68hc11elf_add_stub_section
- PARAMS ((const char *, asection *));
-static void gld${EMULATION_NAME}_finish PARAMS ((void));
-static void m68hc11_elf_${EMULATION_NAME}_before_allocation PARAMS ((void));
-
+static asection *m68hc11elf_add_stub_section (const char *, asection *);
/* Fake input file for stubs. */
static lang_input_statement_type *stub_file;
@@ -64,7 +59,7 @@ static int no_trampoline = 0;
static const char* bank_window_name = 0;
static void
-m68hc11_elf_${EMULATION_NAME}_before_allocation ()
+m68hc11_elf_${EMULATION_NAME}_before_allocation (void)
{
lang_memory_region_type* region;
int ret;
@@ -73,7 +68,7 @@ m68hc11_elf_${EMULATION_NAME}_before_allocation ()
/* If generating a relocatable output file, then we don't
have to generate the trampolines. */
- if (link_info.relocateable)
+ if (link_info.relocatable)
return;
ret = elf32_m68hc11_setup_section_lists (output_bfd, &link_info);
@@ -87,9 +82,9 @@ m68hc11_elf_${EMULATION_NAME}_before_allocation ()
/* Call into the BFD backend to do the real work. */
if (!elf32_m68hc11_size_stubs (output_bfd,
- stub_file->the_bfd,
- &link_info,
- &m68hc11elf_add_stub_section))
+ stub_file->the_bfd,
+ &link_info,
+ &m68hc11elf_add_stub_section))
{
einfo ("%X%P: can not size stub section: %E\n");
return;
@@ -107,7 +102,7 @@ m68hc11_elf_${EMULATION_NAME}_before_allocation ()
But for 68HC11 this is board specific. The definition of such
memory region allows to control how this paged memory is accessed. */
- region = lang_memory_region_lookup (bank_window_name);
+ region = lang_memory_region_lookup (bank_window_name, FALSE);
/* Check the length to see if it was defined in the script. */
if (region->length != 0)
@@ -123,7 +118,7 @@ m68hc11_elf_${EMULATION_NAME}_before_allocation ()
pinfo->bank_size = region->length;
pinfo->bank_shift = 0;
for (i = pinfo->bank_size; i != 0; i >>= 1)
- pinfo->bank_shift++;
+ pinfo->bank_shift++;
pinfo->bank_shift--;
pinfo->bank_size = 1L << pinfo->bank_shift;
pinfo->bank_mask = (1 << pinfo->bank_shift) - 1;
@@ -131,12 +126,12 @@ m68hc11_elf_${EMULATION_NAME}_before_allocation ()
pinfo->bank_physical_end = region->origin + pinfo->bank_size;
if (pinfo->bank_size != region->length)
- {
- einfo (_("warning: the size of the 'window' memory region "
- "is not a power of 2\n"));
- einfo (_("warning: its size %d is truncated to %d\n"),
- region->length, pinfo->bank_size);
- }
+ {
+ einfo (_("warning: the size of the 'window' memory region "
+ "is not a power of 2\n"));
+ einfo (_("warning: its size %d is truncated to %d\n"),
+ region->length, pinfo->bank_size);
+ }
}
}
@@ -144,7 +139,7 @@ m68hc11_elf_${EMULATION_NAME}_before_allocation ()
fake input file to hold the stub sections. */
static void
-m68hc11elf_create_output_section_statements ()
+m68hc11elf_create_output_section_statements (void)
{
stub_file = lang_add_input_file ("linker stubs",
lang_input_file_is_fake_enum,
@@ -152,8 +147,8 @@ m68hc11elf_create_output_section_statements ()
stub_file->the_bfd = bfd_create ("linker stubs", output_bfd);
if (stub_file->the_bfd == NULL
|| !bfd_set_arch_mach (stub_file->the_bfd,
- bfd_get_arch (output_bfd),
- bfd_get_mach (output_bfd)))
+ bfd_get_arch (output_bfd),
+ bfd_get_mach (output_bfd)))
{
einfo ("%X%P: can not create BFD %E\n");
return;
@@ -171,13 +166,8 @@ struct hook_stub_info
/* Traverse the linker tree to find the spot where the stub goes. */
-static bfd_boolean hook_in_stub
- PARAMS ((struct hook_stub_info *, lang_statement_union_type **));
-
static bfd_boolean
-hook_in_stub (info, lp)
- struct hook_stub_info *info;
- lang_statement_union_type **lp;
+hook_in_stub (struct hook_stub_info *info, lang_statement_union_type **lp)
{
lang_statement_union_type *l;
bfd_boolean ret;
@@ -213,10 +203,10 @@ hook_in_stub (info, lp)
case lang_input_section_enum:
if (l->input_section.section == info->input_section
- || strcmp (bfd_get_section_name (output_section,
- l->input_section.section),
- bfd_get_section_name (output_section,
- info->input_section)) == 0)
+ || strcmp (bfd_get_section_name (output_section,
+ l->input_section.section),
+ bfd_get_section_name (output_section,
+ info->input_section)) == 0)
{
/* We've found our section. Insert the stub immediately
before its associated input section. */
@@ -253,9 +243,8 @@ hook_in_stub (info, lp)
immediately before INPUT_SECTION. */
static asection *
-m68hc11elf_add_stub_section (stub_sec_name, tramp_section)
- const char *stub_sec_name;
- asection *tramp_section;
+m68hc11elf_add_stub_section (const char *stub_sec_name,
+ asection *tramp_section)
{
asection *stub_sec;
flagword flags;
@@ -263,7 +252,7 @@ m68hc11elf_add_stub_section (stub_sec_name, tramp_section)
const char *secname;
lang_output_section_statement_type *os;
struct hook_stub_info info;
-
+
stub_sec = bfd_make_section_anyway (stub_file->the_bfd, stub_sec_name);
if (stub_sec == NULL)
goto err_ret;
@@ -300,18 +289,18 @@ m68hc11elf_add_stub_section (stub_sec_name, tramp_section)
to build linker stubs. */
static void
-gld${EMULATION_NAME}_finish ()
+gld${EMULATION_NAME}_finish (void)
{
/* Now build the linker stubs. */
if (stub_file->the_bfd->sections != NULL)
{
/* Call again the trampoline analyzer to initialize the trampoline
- stubs with the correct symbol addresses. Since there could have
- been relaxation, the symbol addresses that were found during
- first call may no longer be correct. */
+ stubs with the correct symbol addresses. Since there could have
+ been relaxation, the symbol addresses that were found during
+ first call may no longer be correct. */
if (!elf32_m68hc11_size_stubs (output_bfd,
- stub_file->the_bfd,
- &link_info, 0))
+ stub_file->the_bfd,
+ &link_info, 0))
{
einfo ("%X%P: can not size stub section: %E\n");
return;
@@ -325,23 +314,16 @@ gld${EMULATION_NAME}_finish ()
/* Avoid processing the fake stub_file in vercheck, stat_needed and
check_needed routines. */
-static void m68hc11_for_each_input_file_wrapper
- PARAMS ((lang_input_statement_type *));
-static void m68hc11_lang_for_each_input_file
- PARAMS ((void (*) (lang_input_statement_type *)));
-
-static void (*real_func) PARAMS ((lang_input_statement_type *));
+static void (*real_func) (lang_input_statement_type *);
-static void m68hc11_for_each_input_file_wrapper (l)
- lang_input_statement_type *l;
+static void m68hc11_for_each_input_file_wrapper (lang_input_statement_type *l)
{
if (l != stub_file)
(*real_func) (l);
}
static void
-m68hc11_lang_for_each_input_file (func)
- void (*func) PARAMS ((lang_input_statement_type *));
+m68hc11_lang_for_each_input_file (void (*func) (lang_input_statement_type *))
{
real_func = func;
lang_for_each_input_file (&m68hc11_for_each_input_file_wrapper);
@@ -355,8 +337,8 @@ EOF
# parse_args and list_options functions.
#
PARSE_AND_LIST_PROLOGUE='
-#define OPTION_NO_TRAMPOLINE 300
-#define OPTION_BANK_WINDOW 301
+#define OPTION_NO_TRAMPOLINE 300
+#define OPTION_BANK_WINDOW 301
'
# The options are repeated below so that no abbreviations are allowed.
diff --git a/gnu/usr.bin/binutils/ld/emultempl/m68kcoff.em b/gnu/usr.bin/binutils/ld/emultempl/m68kcoff.em
index 765447a258b..162dcf7ed7a 100644
--- a/gnu/usr.bin/binutils/ld/emultempl/m68kcoff.em
+++ b/gnu/usr.bin/binutils/ld/emultempl/m68kcoff.em
@@ -4,7 +4,7 @@ cat >e${EMULATION_NAME}.c <<EOF
/* This file is is generated by a shell script. DO NOT EDIT! */
/* Handle embedded relocs for m68k.
- Copyright 2000, 2002, 2003 Free Software Foundation, Inc.
+ Copyright 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
Written by Michael Sokolov <msokolov@ivan.Harhan.ORG>, based on generic.em
by Steve Chamberlain <steve@cygnus.com>, embedded relocs code based on
mipsecoff.em by Ian Lance Taylor <ian@cygnus.com>.
@@ -37,17 +37,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "ldemul.h"
#include "ldmisc.h"
-static void gld${EMULATION_NAME}_before_parse PARAMS ((void));
-static void gld${EMULATION_NAME}_after_open PARAMS ((void));
-static void check_sections PARAMS ((bfd *, asection *, PTR));
-static void gld${EMULATION_NAME}_after_allocation PARAMS ((void));
-static char *gld${EMULATION_NAME}_get_script PARAMS ((int *isfile));
+static void check_sections (bfd *, asection *, void *);
static void
-gld${EMULATION_NAME}_before_parse ()
+gld${EMULATION_NAME}_before_parse (void)
{
#ifndef TARGET_ /* I.e., if not generic. */
- ldfile_set_output_arch ("`echo ${ARCH}`");
+ ldfile_set_output_arch ("`echo ${ARCH}`", bfd_arch_unknown);
#endif /* not TARGET_ */
}
@@ -58,12 +54,12 @@ gld${EMULATION_NAME}_before_parse ()
time. */
static void
-gld${EMULATION_NAME}_after_open ()
+gld${EMULATION_NAME}_after_open (void)
{
bfd *abfd;
if (! command_line.embedded_relocs
- || link_info.relocateable)
+ || link_info.relocatable)
return;
for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next)
@@ -103,7 +99,7 @@ gld${EMULATION_NAME}_after_open ()
/* Double check that all other data sections are empty, as is
required for embedded PIC code. */
- bfd_map_over_sections (abfd, check_sections, (PTR) datasec);
+ bfd_map_over_sections (abfd, check_sections, datasec);
}
}
@@ -111,13 +107,10 @@ gld${EMULATION_NAME}_after_open ()
relocs. This is called via bfd_map_over_sections. */
static void
-check_sections (abfd, sec, datasec)
- bfd *abfd;
- asection *sec;
- PTR datasec;
+check_sections (bfd *abfd, asection *sec, void *datasec)
{
if ((bfd_get_section_flags (abfd, sec) & SEC_DATA)
- && sec != (asection *) datasec
+ && sec != datasec
&& sec->reloc_count != 0)
einfo ("%B%X: section %s has relocs; can not use --embedded-relocs\n",
abfd, bfd_get_section_name (abfd, sec));
@@ -128,12 +121,12 @@ check_sections (abfd, sec, datasec)
BFD backend routine to do the work. */
static void
-gld${EMULATION_NAME}_after_allocation ()
+gld${EMULATION_NAME}_after_allocation (void)
{
bfd *abfd;
if (! command_line.embedded_relocs
- || link_info.relocateable)
+ || link_info.relocatable)
return;
for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next)
@@ -164,8 +157,7 @@ gld${EMULATION_NAME}_after_allocation ()
}
static char *
-gld${EMULATION_NAME}_get_script(isfile)
- int *isfile;
+gld${EMULATION_NAME}_get_script (int *isfile)
EOF
if test -n "$COMPILE_IN"
@@ -176,14 +168,14 @@ then
sc="-f stringify.sed"
cat >>e${EMULATION_NAME}.c <<EOF
-{
+{
*isfile = 0;
- if (link_info.relocateable && config.build_constructors)
+ if (link_info.relocatable && config.build_constructors)
return
EOF
sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c
-echo ' ; else if (link_info.relocateable) return' >> 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
@@ -197,12 +189,12 @@ else
# Scripts read from the filesystem.
cat >>e${EMULATION_NAME}.c <<EOF
-{
+{
*isfile = 1;
- if (link_info.relocateable && config.build_constructors)
+ if (link_info.relocatable && config.build_constructors)
return "ldscripts/${EMULATION_NAME}.xu";
- else if (link_info.relocateable)
+ else if (link_info.relocatable)
return "ldscripts/${EMULATION_NAME}.xr";
else if (!config.text_read_only)
return "ldscripts/${EMULATION_NAME}.xbn";
@@ -217,7 +209,7 @@ fi
cat >>e${EMULATION_NAME}.c <<EOF
-struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
+struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
{
gld${EMULATION_NAME}_before_parse,
syslib_default,
diff --git a/gnu/usr.bin/binutils/ld/emultempl/m68kelf.em b/gnu/usr.bin/binutils/ld/emultempl/m68kelf.em
index cb3b86bbfef..31db20bcafe 100644
--- a/gnu/usr.bin/binutils/ld/emultempl/m68kelf.em
+++ b/gnu/usr.bin/binutils/ld/emultempl/m68kelf.em
@@ -1,5 +1,5 @@
# This shell script emits a C file. -*- C -*-
-# Copyright 2000, 2001 Free Software Foundation, Inc.
+# Copyright 2000, 2001, 2003 Free Software Foundation, Inc.
# Written by Michael Sokolov <msokolov@ivan.Harhan.ORG>, based on armelf.em
#
# This file is part of GLD, the Gnu Linker.
@@ -31,23 +31,21 @@ esac
cat >>e${EMULATION_NAME}.c <<EOF
-static void m68k_elf_after_open PARAMS ((void));
#ifdef SUPPORT_EMBEDDED_RELOCS
-static void check_sections PARAMS ((bfd *, asection *, PTR));
+static void check_sections (bfd *, asection *, void *);
#endif
-static void m68k_elf_after_allocation PARAMS ((void));
/* This function is run after all the input files have been opened. */
static void
-m68k_elf_after_open ()
+m68k_elf_after_open (void)
{
/* Call the standard elf routine. */
gld${EMULATION_NAME}_after_open ();
#ifdef SUPPORT_EMBEDDED_RELOCS
if (command_line.embedded_relocs
- && (! link_info.relocateable))
+ && (! link_info.relocatable))
{
bfd *abfd;
@@ -95,7 +93,7 @@ m68k_elf_after_open ()
/* Double check that all other data sections are empty, as is
required for embedded PIC code. */
- bfd_map_over_sections (abfd, check_sections, (PTR) datasec);
+ bfd_map_over_sections (abfd, check_sections, datasec);
}
}
#endif /* SUPPORT_EMBEDDED_RELOCS */
@@ -106,13 +104,10 @@ m68k_elf_after_open ()
relocs. This is called via bfd_map_over_sections. */
static void
-check_sections (abfd, sec, datasec)
- bfd *abfd;
- asection *sec;
- PTR datasec;
+check_sections (bfd *abfd, asection *sec, void *datasec)
{
if ((bfd_get_section_flags (abfd, sec) & SEC_DATA)
- && sec != (asection *) datasec
+ && sec != datasec
&& sec->reloc_count != 0)
einfo ("%B%X: section %s has relocs; can not use --embedded-relocs\n",
abfd, bfd_get_section_name (abfd, sec));
@@ -124,14 +119,14 @@ check_sections (abfd, sec, datasec)
been set. */
static void
-m68k_elf_after_allocation ()
+m68k_elf_after_allocation (void)
{
/* Call the standard elf routine. */
after_allocation_default ();
#ifdef SUPPORT_EMBEDDED_RELOCS
if (command_line.embedded_relocs
- && (! link_info.relocateable))
+ && (! link_info.relocatable))
{
bfd *abfd;
diff --git a/gnu/usr.bin/binutils/ld/emultempl/mipself.em b/gnu/usr.bin/binutils/ld/emultempl/mipself.em
index 62a53e0a57f..a950fb11d4b 100644
--- a/gnu/usr.bin/binutils/ld/emultempl/mipself.em
+++ b/gnu/usr.bin/binutils/ld/emultempl/mipself.em
@@ -1,4 +1,5 @@
-# Copyright 2002 Free Software Foundation, Inc.
+# 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.
#
@@ -17,7 +18,6 @@
# 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 shell script emits a C file. -*- C -*-
# This file is sourced from elf32.em, and defines some extra routines for m68k
@@ -33,23 +33,20 @@ esac
cat >>e${EMULATION_NAME}.c <<EOF
-static void mips_elf${ELFSIZE}_after_open PARAMS ((void));
#ifdef SUPPORT_EMBEDDED_RELOCS
-static void mips_elf${ELFSIZE}_check_sections PARAMS ((bfd *, asection *,
- PTR));
+static void mips_elf${ELFSIZE}_check_sections (bfd *, asection *, void *);
#endif
-static void mips_elf${ELFSIZE}_after_allocation PARAMS ((void));
/* This function is run after all the input files have been opened. */
static void
-mips_elf${ELFSIZE}_after_open()
+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.relocateable))
+ if (command_line.embedded_relocs && (! link_info.relocatable))
{
bfd *abfd;
@@ -105,7 +102,7 @@ mips_elf${ELFSIZE}_after_open()
/* 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,
- (PTR) datasec);
+ datasec);
}
}
#endif /* SUPPORT_EMBEDDED_RELOCS */
@@ -116,13 +113,10 @@ mips_elf${ELFSIZE}_after_open()
relocs. This is called via bfd_map_over_sections. */
static void
-mips_elf${ELFSIZE}_check_sections (abfd, sec, sdatasec)
- bfd *abfd;
- asection *sec;
- PTR sdatasec;
+mips_elf${ELFSIZE}_check_sections (bfd *abfd, asection *sec, void *sdatasec)
{
if ((bfd_get_section_flags (abfd, sec) & SEC_DATA)
- && sec != (asection *) sdatasec
+ && 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));
@@ -134,13 +128,13 @@ mips_elf${ELFSIZE}_check_sections (abfd, sec, sdatasec)
BFD backend routine to do the work. */
static void
-mips_elf${ELFSIZE}_after_allocation ()
+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.relocateable))
+ if (command_line.embedded_relocs && (! link_info.relocatable))
{
bfd *abfd;
diff --git a/gnu/usr.bin/binutils/ld/emultempl/mmix-elfnmmo.em b/gnu/usr.bin/binutils/ld/emultempl/mmix-elfnmmo.em
index 8ec604f6e36..9777fa307ba 100644
--- a/gnu/usr.bin/binutils/ld/emultempl/mmix-elfnmmo.em
+++ b/gnu/usr.bin/binutils/ld/emultempl/mmix-elfnmmo.em
@@ -1,5 +1,5 @@
# This shell script emits a C file. -*- C -*-
-# Copyright 2001, 2002 Free Software Foundation, Inc.
+# Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
#
# This file is part of GLD, the Gnu Linker.
#
@@ -24,13 +24,10 @@
cat >>e${EMULATION_NAME}.c <<EOF
#include "elf/mmix.h"
-static void mmix_before_allocation PARAMS ((void));
-static void mmix_after_allocation PARAMS ((void));
-
/* Set up handling of linker-allocated global registers. */
static void
-mmix_before_allocation ()
+mmix_before_allocation (void)
{
/* Call the default first. */
gld${EMULATION_NAME}_before_allocation ();
@@ -41,11 +38,11 @@ mmix_before_allocation ()
maintenance burden to keep them in sync. (Of course we lose the
maintenance burden of checking that it still does what we need.) */
- /* Force -relax on if not doing a relocatable link. */
- if (! link_info.relocateable)
- command_line.relax = TRUE;
+ /* Force -relax on (regardless of whether we're doing a relocatable
+ link). */
+ command_line.relax = TRUE;
- if (!_bfd_mmix_prepare_linker_allocated_gregs (output_bfd, &link_info))
+ if (!_bfd_mmix_before_linker_allocation (output_bfd, &link_info))
einfo ("%X%P: Internal problems setting up section %s",
MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME);
}
@@ -55,7 +52,7 @@ mmix_before_allocation ()
GREGs. */
static void
-mmix_after_allocation ()
+mmix_after_allocation (void)
{
asection *sec
= bfd_get_section_by_name (output_bfd, MMIX_REG_CONTENTS_SECTION_NAME);
@@ -112,7 +109,7 @@ mmix_after_allocation ()
if (sec != NULL)
bfd_set_section_vma (abfd, sec, 0);
- if (!_bfd_mmix_finalize_linker_allocated_gregs (output_bfd, &link_info))
+ if (!_bfd_mmix_after_linker_allocation (output_bfd, &link_info))
{
/* This is a fatal error; make einfo call not return. */
einfo ("%F%P: Can't finalize linker-allocated global registers\n");
diff --git a/gnu/usr.bin/binutils/ld/emultempl/mmixelf.em b/gnu/usr.bin/binutils/ld/emultempl/mmixelf.em
index 80d2d94830c..7cdae552c41 100644
--- a/gnu/usr.bin/binutils/ld/emultempl/mmixelf.em
+++ b/gnu/usr.bin/binutils/ld/emultempl/mmixelf.em
@@ -1,5 +1,5 @@
# This shell script emits a C file. -*- C -*-
-# Copyright 2001, 2002 Free Software Foundation, Inc.
+# Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
#
# This file is part of GLD, the Gnu Linker.
#
@@ -26,10 +26,8 @@
cat >>e${EMULATION_NAME}.c <<EOF
#line 29 "${srcdir}/emultempl/elfmmix.em"
-static void elfmmix_before_parse PARAMS ((void));
-
static void
-elfmmix_before_parse ()
+elfmmix_before_parse (void)
{
gld${EMULATION_NAME}_before_parse ();
diff --git a/gnu/usr.bin/binutils/ld/emultempl/mmo.em b/gnu/usr.bin/binutils/ld/emultempl/mmo.em
index e65e89bc5d9..38f1dbf78ef 100644
--- a/gnu/usr.bin/binutils/ld/emultempl/mmo.em
+++ b/gnu/usr.bin/binutils/ld/emultempl/mmo.em
@@ -1,5 +1,5 @@
# This shell script emits a C file. -*- C -*-
-# Copyright 2001, 2002 Free Software Foundation, Inc.
+# Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
#
# This file is part of GLD, the Gnu Linker.
#
@@ -32,22 +32,13 @@ EOF
cat >>e${EMULATION_NAME}.c <<EOF
-static bfd_boolean mmo_place_orphan
- PARAMS ((lang_input_statement_type *, asection *));
-static asection *output_prev_sec_find
- PARAMS ((lang_output_section_statement_type *));
-static void mmo_finish PARAMS ((void));
-static void mmo_wipe_sec_reloc_flag PARAMS ((bfd *, asection *, PTR));
-static void mmo_after_open PARAMS ((void));
-
/* Find the last output section before given output statement.
Used by place_orphan. */
static asection *
-output_prev_sec_find (os)
- lang_output_section_statement_type *os;
+output_prev_sec_find (lang_output_section_statement_type *os)
{
- asection *s = (asection *) NULL;
+ asection *s = NULL;
lang_statement_union_type *u;
lang_output_section_statement_type *lookup;
@@ -85,9 +76,7 @@ struct orphan_save {
from elf32.em. */
static bfd_boolean
-mmo_place_orphan (file, s)
- lang_input_statement_type *file;
- asection *s;
+mmo_place_orphan (lang_input_statement_type *file, asection *s)
{
static struct orphan_save hold_text;
struct orphan_save *place;
@@ -97,7 +86,7 @@ mmo_place_orphan (file, s)
asection *snew, **pps, *bfd_section;
/* We have nothing to say for anything other than a final link. */
- if (link_info.relocateable
+ if (link_info.relocatable
|| (bfd_get_section_flags (s->owner, s)
& (SEC_EXCLUDE | SEC_LOAD)) != SEC_LOAD)
return FALSE;
@@ -138,7 +127,6 @@ mmo_place_orphan (file, s)
os = lang_enter_output_section_statement (bfd_get_section_name (s->owner,
s),
NULL, 0,
- (bfd_vma) 0,
(etree_type *) NULL,
(etree_type *) NULL,
(etree_type *) NULL);
@@ -227,10 +215,7 @@ mmo_place_orphan (file, s)
paper over the bug similarly. */
static void
-mmo_wipe_sec_reloc_flag (abfd, sec, ptr)
- bfd *abfd;
- asection *sec;
- PTR ptr ATTRIBUTE_UNUSED;
+mmo_wipe_sec_reloc_flag (bfd *abfd, asection *sec, void *ptr ATTRIBUTE_UNUSED)
{
bfd_set_section_flags (abfd, sec,
bfd_get_section_flags (abfd, sec) & ~SEC_RELOC);
@@ -239,7 +224,7 @@ mmo_wipe_sec_reloc_flag (abfd, sec, ptr)
/* Iterate with bfd_map_over_sections over mmo_wipe_sec_reloc_flag... */
static void
-mmo_finish ()
+mmo_finish (void)
{
bfd_map_over_sections (output_bfd, mmo_wipe_sec_reloc_flag, NULL);
}
@@ -251,7 +236,7 @@ mmo_finish ()
when all input files are seen, which is equivalent. */
static void
-mmo_after_open ()
+mmo_after_open (void)
{
/* When there's a mismatch between the output format and the emulation
(using weird combinations like "-m mmo --oformat elf64-mmix" for
diff --git a/gnu/usr.bin/binutils/ld/emultempl/needrelax.em b/gnu/usr.bin/binutils/ld/emultempl/needrelax.em
index 242b7787435..65e622bee74 100644
--- a/gnu/usr.bin/binutils/ld/emultempl/needrelax.em
+++ b/gnu/usr.bin/binutils/ld/emultempl/needrelax.em
@@ -1,5 +1,5 @@
# This shell script emits a C file. -*- C -*-
-# Copyright 2001, 2002 Free Software Foundation, Inc.
+# Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
#
# This file is part of GLD, the Gnu Linker.
#
@@ -25,16 +25,14 @@ LDEMUL_BEFORE_ALLOCATION=need_relax_${EMULATION_NAME}_before_allocation
cat >>e${EMULATION_NAME}.c <<EOF
-static void need_relax_${EMULATION_NAME}_before_allocation PARAMS ((void));
-
static void
-need_relax_${EMULATION_NAME}_before_allocation ()
+need_relax_${EMULATION_NAME}_before_allocation (void)
{
/* Call main function; we're just extending it. */
gld${EMULATION_NAME}_before_allocation ();
/* Force -relax on if not doing a relocatable link. */
- if (! link_info.relocateable)
+ if (! link_info.relocatable)
command_line.relax = TRUE;
}
EOF
diff --git a/gnu/usr.bin/binutils/ld/emultempl/netbsd.em b/gnu/usr.bin/binutils/ld/emultempl/netbsd.em
index 891a87941fc..43715e40462 100644
--- a/gnu/usr.bin/binutils/ld/emultempl/netbsd.em
+++ b/gnu/usr.bin/binutils/ld/emultempl/netbsd.em
@@ -1,9 +1,11 @@
LDEMUL_BEFORE_PARSE=gldnetbsd_before_parse
+
cat >>e${EMULATION_NAME}.c <<EOF
-static void gldnetbsd_before_parse PARAMS ((void));
+static void
+gld${EMULATION_NAME}_before_parse (void);
static void
-gldnetbsd_before_parse ()
+gldnetbsd_before_parse (void)
{
gld${EMULATION_NAME}_before_parse ();
link_info.common_skip_ar_aymbols = bfd_link_common_skip_text;
diff --git a/gnu/usr.bin/binutils/ld/emultempl/ppc32elf.em b/gnu/usr.bin/binutils/ld/emultempl/ppc32elf.em
index fbe1782aa1d..46145932c3d 100644
--- a/gnu/usr.bin/binutils/ld/emultempl/ppc32elf.em
+++ b/gnu/usr.bin/binutils/ld/emultempl/ppc32elf.em
@@ -29,10 +29,8 @@ cat >>e${EMULATION_NAME}.c <<EOF
/* Whether to run tls optimization. */
static int notlsopt = 0;
-static void ppc_before_allocation PARAMS ((void));
-
static void
-ppc_before_allocation ()
+ppc_before_allocation (void)
{
extern const bfd_target bfd_elf32_powerpc_vec;
extern const bfd_target bfd_elf32_powerpcle_vec;
diff --git a/gnu/usr.bin/binutils/ld/emultempl/ppc64elf.em b/gnu/usr.bin/binutils/ld/emultempl/ppc64elf.em
index 9f688a3d06a..4f408a9fa29 100644
--- a/gnu/usr.bin/binutils/ld/emultempl/ppc64elf.em
+++ b/gnu/usr.bin/binutils/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.
#
@@ -25,10 +25,12 @@ cat >>e${EMULATION_NAME}.c <<EOF
#include "ldctor.h"
#include "libbfd.h"
+#include "elf-bfd.h"
#include "elf64-ppc.h"
/* Fake input file for stubs. */
static lang_input_statement_type *stub_file;
+static int stub_added = 0;
/* Whether we need to call ppc_layout_sections_again. */
static int need_laying_out = 0;
@@ -44,28 +46,17 @@ static int dotsyms = 1;
/* Whether to run tls optimization. */
static int notlsopt = 0;
-static void ppc_create_output_section_statements
- PARAMS ((void));
-static void ppc_after_open
- PARAMS ((void));
-static void ppc_before_allocation
- PARAMS ((void));
-static asection *ppc_add_stub_section
- PARAMS ((const char *, asection *));
-static void ppc_layout_sections_again
- PARAMS ((void));
-static void gld${EMULATION_NAME}_after_allocation
- PARAMS ((void));
-static void build_section_lists
- PARAMS ((lang_statement_union_type *));
-static struct bfd_elf_version_expr *gld${EMULATION_NAME}_new_vers_pattern
- PARAMS ((struct bfd_elf_version_expr *));
+/* Whether to emit symbols for stubs. */
+static int emit_stub_syms = 0;
+
+static asection *toc_section = 0;
+
/* This is called before the input files are opened. We create a new
fake input file to hold the stub sections. */
static void
-ppc_create_output_section_statements ()
+ppc_create_output_section_statements (void)
{
extern const bfd_target bfd_elf64_powerpc_vec;
extern const bfd_target bfd_elf64_powerpcle_vec;
@@ -74,6 +65,8 @@ ppc_create_output_section_statements ()
&& 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);
@@ -88,10 +81,11 @@ ppc_create_output_section_statements ()
}
ldlang_add_file (stub_file);
+ ppc64_elf_init_stub_bfd (stub_file->the_bfd, &link_info);
}
static void
-ppc_after_open ()
+ppc_after_open (void)
{
if (!ppc64_elf_mark_entry_syms (&link_info))
{
@@ -103,7 +97,7 @@ ppc_after_open ()
}
static void
-ppc_before_allocation ()
+ppc_before_allocation (void)
{
if (stub_file != NULL)
{
@@ -118,7 +112,7 @@ ppc_before_allocation ()
/* Size the sections. This is premature, but we want to know the
TLS segment layout so that certain optimizations can be done. */
lang_size_sections (stat_ptr->head, abs_output_section,
- &stat_ptr->head, 0, (bfd_vma) 0, NULL, TRUE);
+ &stat_ptr->head, 0, 0, NULL, TRUE);
if (!ppc64_elf_tls_optimize (output_bfd, &link_info))
{
@@ -126,6 +120,8 @@ ppc_before_allocation ()
return;
}
+ /* We must not cache anything from the preliminary sizing. */
+ elf_tdata (output_bfd)->program_header_size = 0;
lang_reset_memory_regions ();
}
}
@@ -141,13 +137,8 @@ struct hook_stub_info
/* Traverse the linker tree to find the spot where the stub goes. */
-static bfd_boolean hook_in_stub
- PARAMS ((struct hook_stub_info *, lang_statement_union_type **));
-
static bfd_boolean
-hook_in_stub (info, lp)
- struct hook_stub_info *info;
- lang_statement_union_type **lp;
+hook_in_stub (struct hook_stub_info *info, lang_statement_union_type **lp)
{
lang_statement_union_type *l;
bfd_boolean ret;
@@ -219,9 +210,7 @@ hook_in_stub (info, lp)
immediately before INPUT_SECTION. */
static asection *
-ppc_add_stub_section (stub_sec_name, input_section)
- const char *stub_sec_name;
- asection *input_section;
+ppc_add_stub_section (const char *stub_sec_name, asection *input_section)
{
asection *stub_sec;
flagword flags;
@@ -250,6 +239,7 @@ ppc_add_stub_section (stub_sec_name, input_section)
if (info.add.head == NULL)
goto err_ret;
+ stub_added = 1;
if (hook_in_stub (&info, &os->children.head))
return stub_sec;
@@ -262,7 +252,7 @@ ppc_add_stub_section (stub_sec_name, input_section)
/* Another call-back for ppc64_elf_size_stubs. */
static void
-ppc_layout_sections_again ()
+ppc_layout_sections_again (void)
{
/* If we have changed sizes of the stub sections, then we need
to recalculate all the section offsets. This may mean we need to
@@ -273,38 +263,47 @@ ppc_layout_sections_again ()
/* Resize the sections. */
lang_size_sections (stat_ptr->head, abs_output_section,
- &stat_ptr->head, 0, (bfd_vma) 0, NULL, TRUE);
+ &stat_ptr->head, 0, 0, NULL, TRUE);
/* Recalculate TOC base. */
ldemul_after_allocation ();
/* Do the assignments again. */
- lang_do_assignments (stat_ptr->head, abs_output_section,
- (fill_type *) 0, (bfd_vma) 0);
+ lang_do_assignments (stat_ptr->head, abs_output_section, NULL, 0);
}
/* Call the back-end function to set TOC base after we have placed all
the sections. */
static void
-gld${EMULATION_NAME}_after_allocation ()
+gld${EMULATION_NAME}_after_allocation (void)
{
- if (!link_info.relocateable)
+ if (!link_info.relocatable)
_bfd_set_gp_value (output_bfd, ppc64_elf_toc (output_bfd));
}
static void
-build_section_lists (statement)
- lang_statement_union_type *statement;
+build_toc_list (lang_statement_union_type *statement)
+{
+ if (statement->header.type == lang_input_section_enum
+ && !statement->input_section.ifile->just_syms_flag
+ && statement->input_section.section->output_section == toc_section)
+ ppc64_elf_next_toc_section (&link_info, statement->input_section.section);
+}
+
+
+static void
+build_section_lists (lang_statement_union_type *statement)
{
if (statement->header.type == lang_input_section_enum
&& !statement->input_section.ifile->just_syms_flag
&& statement->input_section.section->output_section != NULL
&& statement->input_section.section->output_section->owner == output_bfd)
{
- ppc64_elf_next_input_section (&link_info,
- statement->input_section.section);
+ if (!ppc64_elf_next_input_section (&link_info,
+ statement->input_section.section))
+ einfo ("%X%P: can not size stub section: %E\n");
}
}
@@ -312,23 +311,23 @@ build_section_lists (statement)
/* Final emulation specific call. */
static void
-gld${EMULATION_NAME}_finish ()
+gld${EMULATION_NAME}_finish (void)
{
/* e_entry on PowerPC64 points to the function descriptor for
_start. If _start is missing, default to the first function
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
stubs. */
- if (stub_file != NULL && !link_info.relocateable)
+ if (stub_file != NULL && !link_info.relocatable)
{
int ret = ppc64_elf_setup_section_lists (output_bfd, &link_info);
if (ret != 0)
@@ -339,11 +338,16 @@ gld${EMULATION_NAME}_finish ()
return;
}
+ toc_section = bfd_get_section_by_name (output_bfd, ".got");
+ if (toc_section != NULL)
+ lang_for_each_statement (build_toc_list);
+
+ ppc64_elf_reinit_toc (output_bfd, &link_info);
+
lang_for_each_statement (build_section_lists);
/* Call into the BFD backend to do the real work. */
if (!ppc64_elf_size_stubs (output_bfd,
- stub_file->the_bfd,
&link_info,
group_size,
&ppc_add_stub_section,
@@ -358,10 +362,24 @@ gld${EMULATION_NAME}_finish ()
if (need_laying_out)
ppc_layout_sections_again ();
- if (stub_file != NULL && stub_file->the_bfd->sections != NULL)
+ if (stub_added)
{
- if (!ppc64_elf_build_stubs (&link_info))
+ char *msg = NULL;
+ char *line, *endline;
+
+ if (!ppc64_elf_build_stubs (emit_stub_syms, &link_info,
+ config.stats ? &msg : NULL))
einfo ("%X%P: can not build stubs: %E\n");
+
+ for (line = msg; line != NULL; line = endline)
+ {
+ endline = strchr (line, '\n');
+ if (endline != NULL)
+ *endline++ = '\0';
+ fprintf (stderr, "%s: %s\n", program_name, line);
+ }
+ if (msg != NULL)
+ free (msg);
}
}
@@ -384,55 +402,24 @@ gld${EMULATION_NAME}_finish ()
exported. Lack of an exported function code sym may cause a
definition to be pulled in from a static library. */
-struct bfd_elf_version_expr *
-gld${EMULATION_NAME}_new_vers_pattern (entry)
- struct bfd_elf_version_expr *entry;
+static struct bfd_elf_version_expr *
+gld${EMULATION_NAME}_new_vers_pattern (struct bfd_elf_version_expr *entry)
{
struct bfd_elf_version_expr *dot_entry;
- struct bfd_elf_version_expr *next;
unsigned int len;
char *dot_pat;
- if (!dotsyms || entry->pattern[0] == '*')
+ if (!dotsyms || entry->pattern[0] == '*' || entry->pattern[0] == '.')
return entry;
- /* Is the script adding ".foo" explicitly? */
- if (entry->pattern[0] == '.')
- {
- /* We may have added this pattern automatically. Don't add it
- again. Quadratic behaviour here is acceptable as the list
- may be traversed for each input bfd symbol. */
- for (next = entry->next; next != NULL; next = next->next)
- {
- if (strcmp (next->pattern, entry->pattern) == 0
- && next->match == entry->match)
- {
- next = entry->next;
- free ((char *) entry->pattern);
- free (entry);
- return next;
- }
- }
- return entry;
- }
-
- /* Don't add ".foo" if the script has already done so. */
- for (next = entry->next; next != NULL; next = next->next)
- {
- if (next->pattern[0] == '.'
- && strcmp (next->pattern + 1, entry->pattern) == 0
- && next->match == entry->match)
- return entry;
- }
-
- dot_entry = (struct bfd_elf_version_expr *) xmalloc (sizeof *dot_entry);
+ dot_entry = xmalloc (sizeof *dot_entry);
+ *dot_entry = *entry;
dot_entry->next = entry;
len = strlen (entry->pattern) + 2;
dot_pat = xmalloc (len);
dot_pat[0] = '.';
memcpy (dot_pat + 1, entry->pattern, len - 1);
dot_entry->pattern = dot_pat;
- dot_entry->match = entry->match;
return dot_entry;
}
@@ -440,23 +427,16 @@ gld${EMULATION_NAME}_new_vers_pattern (entry)
/* Avoid processing the fake stub_file in vercheck, stat_needed and
check_needed routines. */
-static void ppc_for_each_input_file_wrapper
- PARAMS ((lang_input_statement_type *));
-static void ppc_lang_for_each_input_file
- PARAMS ((void (*) (lang_input_statement_type *)));
-
-static void (*real_func) PARAMS ((lang_input_statement_type *));
+static void (*real_func) (lang_input_statement_type *);
-static void ppc_for_each_input_file_wrapper (l)
- lang_input_statement_type *l;
+static void ppc_for_each_input_file_wrapper (lang_input_statement_type *l)
{
if (l != stub_file)
(*real_func) (l);
}
static void
-ppc_lang_for_each_input_file (func)
- void (*func) PARAMS ((lang_input_statement_type *));
+ppc_lang_for_each_input_file (void (*func) (lang_input_statement_type *))
{
real_func = func;
lang_for_each_input_file (&ppc_for_each_input_file_wrapper);
@@ -471,13 +451,15 @@ EOF
#
PARSE_AND_LIST_PROLOGUE='
#define OPTION_STUBGROUP_SIZE 301
-#define OPTION_DOTSYMS (OPTION_STUBGROUP_SIZE + 1)
+#define OPTION_STUBSYMS (OPTION_STUBGROUP_SIZE + 1)
+#define OPTION_DOTSYMS (OPTION_STUBSYMS + 1)
#define OPTION_NO_DOTSYMS (OPTION_DOTSYMS + 1)
#define OPTION_NO_TLS_OPT (OPTION_NO_DOTSYMS + 1)
'
PARSE_AND_LIST_LONGOPTS='
{ "stub-group-size", required_argument, NULL, OPTION_STUBGROUP_SIZE },
+ { "emit-stub-syms", no_argument, NULL, OPTION_STUBSYMS },
{ "dotsyms", no_argument, NULL, OPTION_DOTSYMS },
{ "no-dotsyms", no_argument, NULL, OPTION_NO_DOTSYMS },
{ "no-tls-optimize", no_argument, NULL, OPTION_NO_TLS_OPT },
@@ -494,6 +476,9 @@ PARSE_AND_LIST_OPTIONS='
the linker should choose suitable defaults.\n"
));
fprintf (file, _("\
+ --emit-stub-syms Label linker stubs with a symbol.\n"
+ ));
+ fprintf (file, _("\
--dotsyms For every version pattern \"foo\" in a version script,\n\
add \".foo\" so that function code symbols are\n\
treated the same as function descriptor symbols.\n\
@@ -517,6 +502,10 @@ PARSE_AND_LIST_ARGS_CASES='
}
break;
+ case OPTION_STUBSYMS:
+ emit_stub_syms = 1;
+ break;
+
case OPTION_DOTSYMS:
dotsyms = 1;
break;
diff --git a/gnu/usr.bin/binutils/ld/emultempl/sh64elf.em b/gnu/usr.bin/binutils/ld/emultempl/sh64elf.em
index 066cab86d8b..83bfe676bb1 100644
--- a/gnu/usr.bin/binutils/ld/emultempl/sh64elf.em
+++ b/gnu/usr.bin/binutils/ld/emultempl/sh64elf.em
@@ -33,9 +33,6 @@ cat >>e${EMULATION_NAME}.c <<EOF
#include "elf/sh.h"
#include "elf32-sh64.h"
-static void sh64_elf_${EMULATION_NAME}_before_allocation PARAMS ((void));
-static void sh64_elf_${EMULATION_NAME}_after_allocation PARAMS ((void));
-
/* Check if we need a .cranges section and create it if it's not in any
input file. It might seem better to always create it and if unneeded,
discard it, but I don't find a simple way to discard it totally from
@@ -47,7 +44,7 @@ static void sh64_elf_${EMULATION_NAME}_after_allocation PARAMS ((void));
they will be linked. */
static void
-sh64_elf_${EMULATION_NAME}_before_allocation ()
+sh64_elf_${EMULATION_NAME}_before_allocation (void)
{
asection *cranges;
asection *osec;
@@ -240,7 +237,7 @@ sh64_elf_${EMULATION_NAME}_before_allocation ()
/* Size up and extend the .cranges section, merging generated entries. */
static void
-sh64_elf_${EMULATION_NAME}_after_allocation ()
+sh64_elf_${EMULATION_NAME}_after_allocation (void)
{
bfd_vma new_cranges = 0;
bfd_vma cranges_growth = 0;
@@ -378,14 +375,20 @@ sh64_elf_${EMULATION_NAME}_after_allocation ()
}
}
- BFD_ASSERT (cranges->contents == NULL);
+ /* ldemul_after_allocation may be called twice. First directly from
+ 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_discard_info returned true. */
+ if (cranges->contents != NULL)
+ free (cranges->contents);
+
BFD_ASSERT (sh64_elf_section_data (cranges)->sh64_info != NULL);
/* Make sure we have .cranges in memory even if there were only
assembler-generated .cranges. */
cranges_growth = new_cranges * SH64_CRANGE_SIZE;
- cranges->contents
- = (bfd_byte *) xcalloc (cranges->_raw_size + cranges_growth, 1);
+ cranges->contents = xcalloc (cranges->_raw_size + cranges_growth, 1);
bfd_set_section_flags (cranges->owner, cranges,
bfd_get_section_flags (cranges->owner, cranges)
| SEC_IN_MEMORY);
@@ -483,9 +486,9 @@ sh64_elf_${EMULATION_NAME}_after_allocation ()
continue;
}
- /* If we emit relocateable contents, we need a
+ /* If we emit relocatable contents, we need a
relocation for the start address. */
- if (link_info.relocateable || link_info.emitrelocations)
+ if (link_info.relocatable || link_info.emitrelocations)
{
/* FIXME: We could perhaps use lang_add_reloc and
friends here, but I'm not really sure that
@@ -507,8 +510,7 @@ sh64_elf_${EMULATION_NAME}_after_allocation ()
- cranges->contents);
cr_addr_order->size = 4;
cr_addr_order->u.reloc.p
- = ((struct bfd_link_order_reloc *)
- xmalloc (sizeof (struct bfd_link_order_reloc)));
+ = xmalloc (sizeof (struct bfd_link_order_reloc));
cr_addr_order->u.reloc.p->reloc = BFD_RELOC_32;
cr_addr_order->u.reloc.p->u.section = osec;
@@ -540,7 +542,7 @@ sh64_elf_${EMULATION_NAME}_after_allocation ()
bfd_put_32 (output_bfd, cr_size,
crangesp + SH64_CRANGE_CR_SIZE_OFFSET);
- bfd_put_16 (output_bfd, (bfd_vma) cr_type,
+ bfd_put_16 (output_bfd, cr_type,
crangesp + SH64_CRANGE_CR_TYPE_OFFSET);
last_cr_type = cr_type;
@@ -555,7 +557,7 @@ sh64_elf_${EMULATION_NAME}_after_allocation ()
}
/* The .cranges section will have this size, no larger or smaller.
- Since relocs (if relocateable linking) will be emitted into the
+ Since relocs (if relocatable linking) will be emitted into the
"extended" size, we must set the raw size to the total. We have to
keep track of the number of new .cranges entries.
diff --git a/gnu/usr.bin/binutils/ld/emultempl/ticoff.em b/gnu/usr.bin/binutils/ld/emultempl/ticoff.em
index 90c940e4976..8f86b04f0c7 100644
--- a/gnu/usr.bin/binutils/ld/emultempl/ticoff.em
+++ b/gnu/usr.bin/binutils/ld/emultempl/ticoff.em
@@ -3,7 +3,7 @@
(echo;echo;echo;echo)>e${EMULATION_NAME}.c # there, now line numbers match ;-)
cat >>e${EMULATION_NAME}.c <<EOF
/* This file is part of GLD, the Gnu Linker.
- Copyright 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
+ Copyright 1999, 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
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
@@ -20,8 +20,8 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* For TI COFF */
-/* Need to determine load and run pages for output sections */
-
+/* Need to determine load and run pages for output sections */
+
#define TARGET_IS_${EMULATION_NAME}
#include "bfd.h"
@@ -39,24 +39,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
static int coff_version;
-static void gld_${EMULATION_NAME}_before_parse PARAMS ((void));
-static char *gld_${EMULATION_NAME}_get_script PARAMS ((int *));
-static void gld${EMULATION_NAME}_add_options
- PARAMS ((int, char **, int, struct option **, int, struct option **));
-static bfd_boolean gld${EMULATION_NAME}_handle_option PARAMS ((int));
-static void gld_${EMULATION_NAME}_list_options PARAMS ((FILE *));
-
/* TI COFF extra command line options */
#define OPTION_COFF_FORMAT (300 + 1)
static void
-gld${EMULATION_NAME}_add_options (ns, shortopts, nl, longopts, nrl, really_longopts)
- int ns ATTRIBUTE_UNUSED;
- char **shortopts ATTRIBUTE_UNUSED;
- int nl;
- struct option **longopts;
- int nrl ATTRIBUTE_UNUSED;
- struct option **really_longopts ATTRIBUTE_UNUSED;
+gld${EMULATION_NAME}_add_options
+ (int ns ATTRIBUTE_UNUSED, char **shortopts ATTRIBUTE_UNUSED, int nl,
+ struct option **longopts, int nrl ATTRIBUTE_UNUSED,
+ struct option **really_longopts ATTRIBUTE_UNUSED)
{
static const struct option xtra_long[] = {
/* TI COFF options */
@@ -70,15 +60,13 @@ gld${EMULATION_NAME}_add_options (ns, shortopts, nl, longopts, nrl, really_longo
}
static void
-gld_${EMULATION_NAME}_list_options (file)
- FILE * file;
+gld_${EMULATION_NAME}_list_options (FILE * file)
{
- fprintf (file, _(" --format 0|1|2 Specify which COFF version to use"));
-}
+ fprintf (file, _(" --format 0|1|2 Specify which COFF version to use\n"));
+}
static bfd_boolean
-gld${EMULATION_NAME}_handle_option (optc)
- int optc;
+gld${EMULATION_NAME}_handle_option (int optc)
{
switch (optc)
{
@@ -89,12 +77,10 @@ gld${EMULATION_NAME}_handle_option (optc)
if ((*optarg == '0' || *optarg == '1' || *optarg == '2')
&& optarg[1] == '\0')
{
- extern void lang_add_output_format
- PARAMS ((const char *, const char *, const char *, int));
static char buf[] = "coffX-${OUTPUT_FORMAT_TEMPLATE}";
coff_version = *optarg - '0';
buf[4] = *optarg;
- lang_add_output_format (buf, NULL, NULL, 0);
+ lang_add_output_format (buf, NULL, NULL, 0);
}
else
{
@@ -106,16 +92,15 @@ gld${EMULATION_NAME}_handle_option (optc)
}
static void
-gld_${EMULATION_NAME}_before_parse()
+gld_${EMULATION_NAME}_before_parse(void)
{
#ifndef TARGET_ /* I.e., if not generic. */
- ldfile_set_output_arch ("`echo ${ARCH}`");
+ ldfile_set_output_arch ("`echo ${ARCH}`", bfd_arch_unknown);
#endif /* not TARGET_ */
}
static char *
-gld_${EMULATION_NAME}_get_script (isfile)
- int *isfile;
+gld_${EMULATION_NAME}_get_script (int *isfile)
EOF
if test -n "$COMPILE_IN"
then
@@ -128,11 +113,11 @@ s/$/\\n\\/
$s/$/n"/
'
cat >>e${EMULATION_NAME}.c <<EOF
-{
+{
*isfile = 0;
- if (link_info.relocateable && config.build_constructors)
+ if (link_info.relocatable && config.build_constructors)
return `sed "$sc" ldscripts/${EMULATION_NAME}.xu`;
- else if (link_info.relocateable)
+ else if (link_info.relocatable)
return `sed "$sc" ldscripts/${EMULATION_NAME}.xr`;
else if (!config.text_read_only)
return `sed "$sc" ldscripts/${EMULATION_NAME}.xbn`;
@@ -147,12 +132,12 @@ else
# Scripts read from the filesystem.
cat >>e${EMULATION_NAME}.c <<EOF
-{
+{
*isfile = 1;
- if (link_info.relocateable && config.build_constructors)
+ if (link_info.relocatable && config.build_constructors)
return "ldscripts/${EMULATION_NAME}.xu";
- else if (link_info.relocateable)
+ else if (link_info.relocatable)
return "ldscripts/${EMULATION_NAME}.xr";
else if (!config.text_read_only)
return "ldscripts/${EMULATION_NAME}.xbn";
@@ -166,7 +151,7 @@ EOF
fi
cat >>e${EMULATION_NAME}.c <<EOF
-struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
+struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
{
gld_${EMULATION_NAME}_before_parse,
syslib_default,
diff --git a/gnu/usr.bin/binutils/ld/emultempl/xtensaelf.em b/gnu/usr.bin/binutils/ld/emultempl/xtensaelf.em
index b0700758f69..87629200f65 100644
--- a/gnu/usr.bin/binutils/ld/emultempl/xtensaelf.em
+++ b/gnu/usr.bin/binutils/ld/emultempl/xtensaelf.em
@@ -26,22 +26,8 @@ cat >>e${EMULATION_NAME}.c <<EOF
#include <xtensa-config.h>
-static char *elf_xtensa_choose_target
- PARAMS ((int, char **));
-static bfd_boolean elf_xtensa_place_orphan
- PARAMS ((lang_input_statement_type *, asection *));
-static void elf_xtensa_before_parse
- PARAMS ((void));
-static void elf_xtensa_before_allocation
- PARAMS ((void));
-static void xtensa_wild_group_interleave
- PARAMS ((lang_statement_union_type *));
-static void xtensa_wild_group_interleave_callback
- PARAMS ((lang_statement_union_type *));
-static void xtensa_colocate_output_literals
- PARAMS ((lang_statement_union_type *));
-static void xtensa_colocate_output_literals_callback
- PARAMS ((lang_statement_union_type *));
+static void xtensa_wild_group_interleave (lang_statement_union_type *);
+static void xtensa_colocate_output_literals (lang_statement_union_type *);
/* Flag for the emulation-specific "--no-relax" option. */
@@ -58,9 +44,8 @@ static bfd_boolean xtensa_use_literal_pages = FALSE;
static char *
-elf_xtensa_choose_target (argc, argv)
- int argc ATTRIBUTE_UNUSED;
- char **argv ATTRIBUTE_UNUSED;
+elf_xtensa_choose_target (int argc ATTRIBUTE_UNUSED,
+ char **argv ATTRIBUTE_UNUSED)
{
if (XCHAL_HAVE_BE)
return "${BIG_OUTPUT_FORMAT}";
@@ -70,12 +55,10 @@ elf_xtensa_choose_target (argc, argv)
static bfd_boolean
-elf_xtensa_place_orphan (file, s)
- lang_input_statement_type *file;
- asection *s;
+elf_xtensa_place_orphan (lang_input_statement_type *file, asection *s)
{
/* Early exit for relocatable links. */
- if (link_info.relocateable)
+ if (link_info.relocatable)
return FALSE;
return gld${EMULATION_NAME}_place_orphan (file, s);
@@ -83,7 +66,7 @@ elf_xtensa_place_orphan (file, s)
static void
-elf_xtensa_before_parse ()
+elf_xtensa_before_parse (void)
{
/* Just call the default hook.... Tensilica's version of this function
does some other work that isn't relevant here. */
@@ -94,8 +77,8 @@ elf_xtensa_before_parse ()
/* This is called after the sections have been attached to output
sections, but before any sizes or addresses have been set. */
-void
-elf_xtensa_before_allocation ()
+static void
+elf_xtensa_before_allocation (void)
{
bfd *in_bfd;
bfd_boolean is_big_endian = XCHAL_HAVE_BE;
@@ -143,12 +126,12 @@ elf_xtensa_before_allocation ()
gld${EMULATION_NAME}_before_allocation ();
xtensa_wild_group_interleave (stat_ptr->head);
- if (command_line.relax)
+ if (command_line.relax)
xtensa_colocate_output_literals (stat_ptr->head);
/* TBD: We need to force the page alignments to here and only do
them as needed for the entire output section. Finally, if this
- is a relocateable link then we need to add alignment notes so
+ is a relocatable link then we need to add alignment notes so
that the literals can be separated later. */
}
@@ -184,64 +167,29 @@ struct reloc_deps_graph_t
};
static void xtensa_layout_wild
- PARAMS ((const reloc_deps_graph *, lang_wild_statement_type *));
+ (const reloc_deps_graph *, lang_wild_statement_type *);
-typedef void (*deps_callback_t)
- PARAMS ((asection *, /* src_sec */
- bfd_vma, /* src_offset */
- asection *, /* target_sec */
- bfd_vma, /* target_offset */
- PTR)); /* closure */
+typedef void (*deps_callback_t) (asection *, /* src_sec */
+ bfd_vma, /* src_offset */
+ asection *, /* target_sec */
+ bfd_vma, /* target_offset */
+ void *); /* closure */
-static void build_deps_graph_callback
- PARAMS ((asection *, bfd_vma, asection *, bfd_vma, PTR));
extern bfd_boolean xtensa_callback_required_dependence
- PARAMS ((bfd *, asection *, struct bfd_link_info *,
- deps_callback_t, PTR));
+ (bfd *, asection *, struct bfd_link_info *, deps_callback_t, void *);
static void xtensa_ldlang_clear_addresses
- PARAMS ((lang_statement_union_type *));
+ (lang_statement_union_type *);
static bfd_boolean ld_local_file_relocations_fit
- PARAMS ((lang_statement_union_type *, const reloc_deps_graph *));
+ (lang_statement_union_type *, const reloc_deps_graph *);
static bfd_vma ld_assign_relative_paged_dot
- PARAMS ((bfd_vma, lang_statement_union_type *,
- const reloc_deps_graph *, bfd_boolean));
+ (bfd_vma, lang_statement_union_type *, const reloc_deps_graph *,
+ bfd_boolean);
static bfd_vma ld_xtensa_insert_page_offsets
- PARAMS ((bfd_vma, lang_statement_union_type *, reloc_deps_graph *,
- bfd_boolean));
-static void lang_for_each_statement_worker
- PARAMS ((void (*) (lang_statement_union_type *),
- lang_statement_union_type *));
-static void xtensa_move_dependencies_to_front
- PARAMS ((reloc_deps_graph *, lang_wild_statement_type *));
-static reloc_deps_graph *ld_build_required_section_dependence
- PARAMS ((lang_statement_union_type *));
-static bfd_boolean section_is_source
- PARAMS ((const reloc_deps_graph *, lang_statement_union_type *));
-static bfd_boolean section_is_target
- PARAMS ((const reloc_deps_graph *, lang_statement_union_type *));
-static bfd_boolean section_is_source_or_target
- PARAMS ((const reloc_deps_graph *, lang_statement_union_type *));
-static bfd_boolean deps_has_sec_edge
- PARAMS ((const reloc_deps_graph *, asection *, asection *));
-static bfd_boolean deps_has_edge
- PARAMS ((const reloc_deps_graph *, lang_statement_union_type *,
- lang_statement_union_type *));
-static void add_deps_edge
- PARAMS ((reloc_deps_graph *, asection *, asection *));
+ (bfd_vma, lang_statement_union_type *, reloc_deps_graph *, bfd_boolean);
#if EXTRA_VALIDATION
static size_t ld_count_children
- PARAMS ((lang_statement_union_type *));
+ (lang_statement_union_type *);
#endif
-static void free_reloc_deps_graph
- PARAMS ((reloc_deps_graph *));
-static void xtensa_colocate_literals
- PARAMS ((reloc_deps_graph *, lang_statement_union_type *));
-static reloc_deps_section *xtensa_get_section_deps
- PARAMS ((const reloc_deps_graph *, asection *));
-static void xtensa_set_section_deps
- PARAMS ((const reloc_deps_graph *, asection *, reloc_deps_section *));
-static void xtensa_append_section_deps
- PARAMS ((reloc_deps_graph *, asection *));
extern lang_statement_list_type constructor_list;
@@ -250,99 +198,94 @@ extern lang_statement_list_type constructor_list;
there statically. */
static void
-lang_for_each_statement_worker (func, s)
- void (*func) PARAMS ((lang_statement_union_type *));
- lang_statement_union_type *s;
+lang_for_each_statement_worker (void (*func) (lang_statement_union_type *),
+ lang_statement_union_type *s)
{
for (; s != (lang_statement_union_type *) NULL; s = s->header.next)
{
func (s);
switch (s->header.type)
- {
- case lang_constructors_statement_enum:
- lang_for_each_statement_worker (func, constructor_list.head);
- break;
- case lang_output_section_statement_enum:
- lang_for_each_statement_worker
- (func,
- s->output_section_statement.children.head);
- break;
- case lang_wild_statement_enum:
- lang_for_each_statement_worker
- (func,
- s->wild_statement.children.head);
- break;
- case lang_group_statement_enum:
- lang_for_each_statement_worker (func,
- s->group_statement.children.head);
- break;
- case lang_data_statement_enum:
- case lang_reloc_statement_enum:
- case lang_object_symbols_statement_enum:
- case lang_output_statement_enum:
- case lang_target_statement_enum:
- case lang_input_section_enum:
- case lang_input_statement_enum:
- case lang_assignment_statement_enum:
- case lang_padding_statement_enum:
- case lang_address_statement_enum:
- case lang_fill_statement_enum:
- break;
- default:
- FAIL ();
- break;
- }
+ {
+ case lang_constructors_statement_enum:
+ lang_for_each_statement_worker (func, constructor_list.head);
+ break;
+ case lang_output_section_statement_enum:
+ lang_for_each_statement_worker
+ (func,
+ s->output_section_statement.children.head);
+ break;
+ case lang_wild_statement_enum:
+ lang_for_each_statement_worker
+ (func,
+ s->wild_statement.children.head);
+ break;
+ case lang_group_statement_enum:
+ lang_for_each_statement_worker (func,
+ s->group_statement.children.head);
+ break;
+ case lang_data_statement_enum:
+ case lang_reloc_statement_enum:
+ case lang_object_symbols_statement_enum:
+ case lang_output_statement_enum:
+ case lang_target_statement_enum:
+ case lang_input_section_enum:
+ case lang_input_statement_enum:
+ case lang_assignment_statement_enum:
+ case lang_padding_statement_enum:
+ case lang_address_statement_enum:
+ case lang_fill_statement_enum:
+ break;
+ default:
+ FAIL ();
+ break;
+ }
}
}
/* End of verbatim code from ldlang.c. */
-reloc_deps_section *
-xtensa_get_section_deps (deps, sec)
- const reloc_deps_graph *deps ATTRIBUTE_UNUSED;
- asection *sec;
+static reloc_deps_section *
+xtensa_get_section_deps (const reloc_deps_graph *deps ATTRIBUTE_UNUSED,
+ asection *sec)
{
/* We have a separate function for this so that
we could in the future keep a completely independent
structure that maps a section to its dependence edges.
For now, we place these in the sec->userdata field. */
- reloc_deps_section *sec_deps = (reloc_deps_section *) sec->userdata;
+ reloc_deps_section *sec_deps = sec->userdata;
return sec_deps;
}
-void
-xtensa_set_section_deps (deps, sec, deps_section)
- const reloc_deps_graph *deps ATTRIBUTE_UNUSED;
- asection *sec;
- reloc_deps_section *deps_section;
+static void
+xtensa_set_section_deps (const reloc_deps_graph *deps ATTRIBUTE_UNUSED,
+ asection *sec,
+ reloc_deps_section *deps_section)
{
- sec->userdata = (void *) deps_section;
+ sec->userdata = deps_section;
}
/* This is used to keep a list of all of the sections participating in
the graph so we can clean them up quickly. */
-static void
-xtensa_append_section_deps (deps, sec)
- reloc_deps_graph *deps;
- asection *sec;
+static void
+xtensa_append_section_deps (reloc_deps_graph *deps, asection *sec)
{
if (deps->size <= deps->count)
{
asection **new_sections;
size_t i;
size_t new_size;
-
+
new_size = deps->size * 2;
if (new_size == 0)
new_size = 20;
-
- new_sections = (asection**) xmalloc (sizeof (asection*) * new_size);
- memset (new_sections, 0, sizeof (asection*) * new_size);
- for (i = 0; i < deps->count; i++)
+
+ new_sections = xmalloc (sizeof (asection *) * new_size);
+ memset (new_sections, 0, sizeof (asection *) * new_size);
+ for (i = 0; i < deps->count; i++)
{
new_sections[i] = deps->sections[i];
}
@@ -356,9 +299,8 @@ xtensa_append_section_deps (deps, sec)
}
-static void
-free_reloc_deps_graph (deps)
- reloc_deps_graph *deps;
+static void
+free_reloc_deps_graph (reloc_deps_graph *deps)
{
size_t i;
for (i = 0; i < deps->count; i++)
@@ -366,7 +308,7 @@ free_reloc_deps_graph (deps)
asection *sec = deps->sections[i];
reloc_deps_section *sec_deps;
sec_deps = xtensa_get_section_deps (deps, sec);
- if (sec_deps)
+ if (sec_deps)
{
reloc_deps_e *next;
while (sec_deps->succs != NULL)
@@ -375,7 +317,7 @@ free_reloc_deps_graph (deps)
free (sec_deps->succs);
sec_deps->succs = next;
}
-
+
while (sec_deps->preds != NULL)
{
next = sec_deps->preds->next;
@@ -393,10 +335,9 @@ free_reloc_deps_graph (deps)
}
-bfd_boolean
-section_is_source (deps, s)
- const reloc_deps_graph *deps ATTRIBUTE_UNUSED;
- lang_statement_union_type *s;
+static bfd_boolean
+section_is_source (const reloc_deps_graph *deps ATTRIBUTE_UNUSED,
+ lang_statement_union_type *s)
{
asection *sec;
const reloc_deps_section *sec_deps;
@@ -406,14 +347,13 @@ section_is_source (deps, s)
sec = s->input_section.section;
sec_deps = xtensa_get_section_deps (deps, sec);
- return (sec_deps && sec_deps->succs != NULL);
+ return sec_deps && sec_deps->succs != NULL;
}
-bfd_boolean
-section_is_target (deps, s)
- const reloc_deps_graph *deps ATTRIBUTE_UNUSED;
- lang_statement_union_type *s;
+static bfd_boolean
+section_is_target (const reloc_deps_graph *deps ATTRIBUTE_UNUSED,
+ lang_statement_union_type *s)
{
asection *sec;
const reloc_deps_section *sec_deps;
@@ -423,13 +363,12 @@ section_is_target (deps, s)
sec = s->input_section.section;
sec_deps = xtensa_get_section_deps (deps, sec);
- return (sec_deps && sec_deps->preds != NULL);
+ return sec_deps && sec_deps->preds != NULL;
}
-bfd_boolean
-section_is_source_or_target (deps, s)
- const reloc_deps_graph *deps ATTRIBUTE_UNUSED;
- lang_statement_union_type *s;
+static bfd_boolean
+section_is_source_or_target (const reloc_deps_graph *deps ATTRIBUTE_UNUSED,
+ lang_statement_union_type *s)
{
return (section_is_source (deps, s)
|| section_is_target (deps, s));
@@ -449,19 +388,14 @@ struct xtensa_ld_iter_t
struct xtensa_ld_iter_stack_t
{
xtensa_ld_iter iterloc; /* List that hold it. */
-
+
xtensa_ld_iter_stack *next; /* Next in the stack. */
xtensa_ld_iter_stack *prev; /* Back pointer for stack. */
};
-static void ld_xtensa_move_section_after
- PARAMS ((xtensa_ld_iter *, xtensa_ld_iter *));
-
-void
-ld_xtensa_move_section_after (to, current)
- xtensa_ld_iter *to;
- xtensa_ld_iter *current;
+static void
+ld_xtensa_move_section_after (xtensa_ld_iter *to, xtensa_ld_iter *current)
{
lang_statement_union_type *to_next;
lang_statement_union_type *current_next;
@@ -474,7 +408,7 @@ ld_xtensa_move_section_after (to, current)
if (to == current)
return;
-
+
#if EXTRA_VALIDATION
old_to_count = ld_count_children (to->parent);
old_current_count = ld_count_children (current->parent);
@@ -482,9 +416,9 @@ ld_xtensa_move_section_after (to, current)
to_next = *(to->loc);
current_next = (*current->loc)->header.next;
-
+
*(to->loc) = *(current->loc);
-
+
*(current->loc) = current_next;
(*(to->loc))->header.next = to_next;
@@ -502,7 +436,7 @@ ld_xtensa_move_section_after (to, current)
new_to_count = ld_count_children (to->parent);
new_current_count = ld_count_children (current->parent);
- ASSERT ((old_to_count + old_current_count)
+ ASSERT ((old_to_count + old_current_count)
== (new_to_count + new_current_count));
#endif
}
@@ -511,41 +445,21 @@ ld_xtensa_move_section_after (to, current)
/* Can only be called with lang_statements that have lists. Returns
false if the list is empty. */
-static bfd_boolean iter_stack_empty
- PARAMS ((xtensa_ld_iter_stack **));
-static bfd_boolean iter_stack_push
- PARAMS ((xtensa_ld_iter_stack **, lang_statement_union_type *));
-static void iter_stack_pop
- PARAMS ((xtensa_ld_iter_stack **));
-static void iter_stack_update
- PARAMS ((xtensa_ld_iter_stack **));
-static void iter_stack_next
- PARAMS ((xtensa_ld_iter_stack **));
-static lang_statement_union_type *iter_stack_current
- PARAMS ((xtensa_ld_iter_stack **));
-static void iter_stack_create
- PARAMS ((xtensa_ld_iter_stack **, lang_statement_union_type *));
-static void iter_stack_copy_current
- PARAMS ((xtensa_ld_iter_stack **, xtensa_ld_iter *));
-
-
-static bfd_boolean
-iter_stack_empty (stack_p)
- xtensa_ld_iter_stack **stack_p;
+static bfd_boolean
+iter_stack_empty (xtensa_ld_iter_stack **stack_p)
{
- return (*stack_p == NULL);
+ return *stack_p == NULL;
}
static bfd_boolean
-iter_stack_push (stack_p, parent)
- xtensa_ld_iter_stack **stack_p;
- lang_statement_union_type *parent;
+iter_stack_push (xtensa_ld_iter_stack **stack_p,
+ lang_statement_union_type *parent)
{
xtensa_ld_iter_stack *stack;
lang_statement_list_type *l = NULL;
- switch (parent->header.type)
+ switch (parent->header.type)
{
case lang_output_section_statement_enum:
l = &parent->output_section_statement.children;
@@ -562,10 +476,10 @@ iter_stack_push (stack_p, parent)
}
/* Empty. do not push. */
- if (l->tail == &l->head)
+ if (l->tail == &l->head)
return FALSE;
- stack = (xtensa_ld_iter_stack *) xmalloc (sizeof (xtensa_ld_iter_stack));
+ stack = xmalloc (sizeof (xtensa_ld_iter_stack));
memset (stack, 0, sizeof (xtensa_ld_iter_stack));
stack->iterloc.parent = parent;
stack->iterloc.l = l;
@@ -573,28 +487,27 @@ iter_stack_push (stack_p, parent)
stack->next = *stack_p;
stack->prev = NULL;
- if (*stack_p != NULL)
+ if (*stack_p != NULL)
(*stack_p)->prev = stack;
*stack_p = stack;
return TRUE;
}
-static void
-iter_stack_pop (stack_p)
- xtensa_ld_iter_stack **stack_p;
+static void
+iter_stack_pop (xtensa_ld_iter_stack **stack_p)
{
xtensa_ld_iter_stack *stack;
stack = *stack_p;
- if (stack == NULL)
+ if (stack == NULL)
{
ASSERT (stack != NULL);
return;
}
- if (stack->next != NULL)
+ if (stack->next != NULL)
stack->next->prev = NULL;
*stack_p = stack->next;
@@ -607,11 +520,10 @@ iter_stack_pop (stack_p)
accordingly. */
static void
-iter_stack_update (stack_p)
- xtensa_ld_iter_stack **stack_p;
+iter_stack_update (xtensa_ld_iter_stack **stack_p)
{
if (!iter_stack_empty (stack_p)
- && (*(*stack_p)->iterloc.loc) == NULL)
+ && (*(*stack_p)->iterloc.loc) == NULL)
{
iter_stack_pop (stack_p);
@@ -626,9 +538,8 @@ iter_stack_update (stack_p)
}
-static void
-iter_stack_next (stack_p)
- xtensa_ld_iter_stack **stack_p;
+static void
+iter_stack_next (xtensa_ld_iter_stack **stack_p)
{
xtensa_ld_iter_stack *stack;
lang_statement_union_type *current;
@@ -636,9 +547,9 @@ iter_stack_next (stack_p)
current = *stack->iterloc.loc;
/* If we are on the first element. */
- if (current != NULL)
+ if (current != NULL)
{
- switch (current->header.type)
+ switch (current->header.type)
{
case lang_output_section_statement_enum:
case lang_wild_statement_enum:
@@ -664,8 +575,7 @@ iter_stack_next (stack_p)
static lang_statement_union_type *
-iter_stack_current (stack_p)
- xtensa_ld_iter_stack **stack_p;
+iter_stack_current (xtensa_ld_iter_stack **stack_p)
{
return *((*stack_p)->iterloc.loc);
}
@@ -673,28 +583,25 @@ iter_stack_current (stack_p)
/* The iter stack is a preorder. */
-static void
-iter_stack_create (stack_p, parent)
- xtensa_ld_iter_stack **stack_p;
- lang_statement_union_type *parent;
+static void
+iter_stack_create (xtensa_ld_iter_stack **stack_p,
+ lang_statement_union_type *parent)
{
iter_stack_push (stack_p, parent);
}
-static void
-iter_stack_copy_current (stack_p, front)
- xtensa_ld_iter_stack **stack_p;
- xtensa_ld_iter *front;
+static void
+iter_stack_copy_current (xtensa_ld_iter_stack **stack_p,
+ xtensa_ld_iter *front)
{
*front = (*stack_p)->iterloc;
}
-void
-xtensa_colocate_literals (deps, statement)
- reloc_deps_graph *deps;
- lang_statement_union_type *statement;
+static void
+xtensa_colocate_literals (reloc_deps_graph *deps,
+ lang_statement_union_type *statement)
{
/* Keep a stack of pointers to control iteration through the contours. */
xtensa_ld_iter_stack *stack = NULL;
@@ -719,15 +626,15 @@ xtensa_colocate_literals (deps, statement)
lang_for_each_statement_worker (xtensa_ldlang_clear_addresses, statement);
#endif
-
+
iter_stack_create (stack_p, statement);
- while (!iter_stack_empty (stack_p))
+ while (!iter_stack_empty (stack_p))
{
bfd_boolean skip_increment = FALSE;
lang_statement_union_type *l = iter_stack_current (stack_p);
-
- switch (l->header.type)
+
+ switch (l->header.type)
{
case lang_assignment_statement_enum:
/* Any assignment statement should block reordering across it. */
@@ -740,12 +647,12 @@ xtensa_colocate_literals (deps, statement)
{
in_literals = (section_is_target (deps, l)
&& !section_is_source (deps, l));
- if (in_literals)
+ if (in_literals)
{
front_p = &front;
iter_stack_copy_current (stack_p, front_p);
}
- }
+ }
else
{
bfd_boolean is_target;
@@ -762,15 +669,15 @@ xtensa_colocate_literals (deps, statement)
}
else
{
- if (is_target)
+ if (is_target)
{
/* Try to insert in place. */
ld_xtensa_move_section_after (front_p, current_p);
- ld_assign_relative_paged_dot (0x100000,
+ ld_assign_relative_paged_dot (0x100000,
statement,
deps,
xtensa_use_literal_pages);
-
+
/* We use this code because it's already written. */
if (!ld_local_file_relocations_fit (statement, deps))
{
@@ -779,7 +686,7 @@ xtensa_colocate_literals (deps, statement)
/* Reset the literal placement. */
iter_stack_copy_current (stack_p, front_p);
}
- else
+ else
{
/* Move front pointer up by one. */
front_p->loc = &(*front_p->loc)->header.next;
@@ -801,15 +708,14 @@ xtensa_colocate_literals (deps, statement)
/* Be careful to update the stack_p if it now is a null. */
iter_stack_update (stack_p);
}
-
+
lang_for_each_statement_worker (xtensa_ldlang_clear_addresses, statement);
}
-void
-xtensa_move_dependencies_to_front (deps, w)
- reloc_deps_graph *deps;
- lang_wild_statement_type *w;
+static void
+xtensa_move_dependencies_to_front (reloc_deps_graph *deps,
+ lang_wild_statement_type *w)
{
/* Keep a front pointer and a current pointer. */
lang_statement_union_type **front;
@@ -825,7 +731,7 @@ xtensa_move_dependencies_to_front (deps, w)
return;
current = &(*front)->header.next;
- while (*current != NULL)
+ while (*current != NULL)
{
if (section_is_source_or_target (deps, *current))
{
@@ -853,10 +759,9 @@ xtensa_move_dependencies_to_front (deps, w)
static bfd_boolean
-deps_has_sec_edge (deps, src, tgt)
- const reloc_deps_graph *deps;
- asection *src;
- asection *tgt;
+deps_has_sec_edge (const reloc_deps_graph *deps,
+ asection *src,
+ asection *tgt)
{
const reloc_deps_section *sec_deps;
const reloc_deps_e *sec_deps_e;
@@ -864,13 +769,13 @@ deps_has_sec_edge (deps, src, tgt)
sec_deps = xtensa_get_section_deps (deps, src);
if (sec_deps == NULL)
return FALSE;
-
+
for (sec_deps_e = sec_deps->succs;
- sec_deps_e != NULL;
+ sec_deps_e != NULL;
sec_deps_e = sec_deps_e->next)
{
ASSERT (sec_deps_e->src == src);
- if (sec_deps_e->tgt == tgt)
+ if (sec_deps_e->tgt == tgt)
return TRUE;
}
return FALSE;
@@ -878,10 +783,9 @@ deps_has_sec_edge (deps, src, tgt)
static bfd_boolean
-deps_has_edge (deps, src, tgt)
- const reloc_deps_graph *deps;
- lang_statement_union_type *src;
- lang_statement_union_type *tgt;
+deps_has_edge (const reloc_deps_graph *deps,
+ lang_statement_union_type *src,
+ lang_statement_union_type *tgt)
{
if (!section_is_source (deps, src))
return FALSE;
@@ -892,17 +796,16 @@ deps_has_edge (deps, src, tgt)
return FALSE;
if (tgt->header.type != lang_input_section_enum)
return FALSE;
-
+
return deps_has_sec_edge (deps, src->input_section.section,
tgt->input_section.section);
}
static void
-add_deps_edge (deps, src_sec, tgt_sec)
- reloc_deps_graph *deps;
- asection *src_sec;
- asection *tgt_sec;
+add_deps_edge (reloc_deps_graph *deps,
+ asection *src_sec,
+ asection *tgt_sec)
{
reloc_deps_section *src_sec_deps;
reloc_deps_section *tgt_sec_deps;
@@ -912,13 +815,12 @@ add_deps_edge (deps, src_sec, tgt_sec)
if (deps_has_sec_edge (deps, src_sec, tgt_sec))
return;
-
+
src_sec_deps = xtensa_get_section_deps (deps, src_sec);
if (src_sec_deps == NULL)
{
/* Add a section. */
- src_sec_deps = (reloc_deps_section *)
- xmalloc (sizeof (reloc_deps_section));
+ src_sec_deps = xmalloc (sizeof (reloc_deps_section));
memset (src_sec_deps, 0, sizeof (reloc_deps_section));
src_sec_deps->is_only_literal = 0;
src_sec_deps->preds = NULL;
@@ -931,8 +833,7 @@ add_deps_edge (deps, src_sec, tgt_sec)
if (tgt_sec_deps == NULL)
{
/* Add a section. */
- tgt_sec_deps = (reloc_deps_section *)
- xmalloc (sizeof (reloc_deps_section));
+ tgt_sec_deps = xmalloc (sizeof (reloc_deps_section));
memset (tgt_sec_deps, 0, sizeof (reloc_deps_section));
tgt_sec_deps->is_only_literal = 0;
tgt_sec_deps->preds = NULL;
@@ -942,14 +843,14 @@ add_deps_edge (deps, src_sec, tgt_sec)
}
/* Add the edges. */
- src_edge = (reloc_deps_e *) xmalloc (sizeof (reloc_deps_e));
+ src_edge = xmalloc (sizeof (reloc_deps_e));
memset (src_edge, 0, sizeof (reloc_deps_e));
src_edge->src = src_sec;
src_edge->tgt = tgt_sec;
src_edge->next = src_sec_deps->succs;
src_sec_deps->succs = src_edge;
- tgt_edge = (reloc_deps_e *) xmalloc (sizeof (reloc_deps_e));
+ tgt_edge = xmalloc (sizeof (reloc_deps_e));
memset (tgt_edge, 0, sizeof (reloc_deps_e));
tgt_edge->src = src_sec;
tgt_edge->tgt = tgt_sec;
@@ -958,17 +859,14 @@ add_deps_edge (deps, src_sec, tgt_sec)
}
-void
-build_deps_graph_callback (src_sec, src_offset,
- target_sec, target_offset, closure)
- asection *src_sec;
- bfd_vma src_offset ATTRIBUTE_UNUSED;
- asection *target_sec;
- bfd_vma target_offset ATTRIBUTE_UNUSED;
- PTR closure;
+static void
+build_deps_graph_callback (asection *src_sec,
+ bfd_vma src_offset ATTRIBUTE_UNUSED,
+ asection *target_sec,
+ bfd_vma target_offset ATTRIBUTE_UNUSED,
+ void *closure)
{
- reloc_deps_graph *deps;
- deps = (reloc_deps_graph*) closure;
+ reloc_deps_graph *deps = closure;
/* If the target is defined. */
if (target_sec != NULL)
@@ -976,21 +874,20 @@ build_deps_graph_callback (src_sec, src_offset,
}
-reloc_deps_graph *
-ld_build_required_section_dependence (s)
- lang_statement_union_type *s;
+static reloc_deps_graph *
+ld_build_required_section_dependence (lang_statement_union_type *s)
{
reloc_deps_graph *deps;
xtensa_ld_iter_stack *stack = NULL;
- deps = (reloc_deps_graph*) xmalloc (sizeof (reloc_deps_graph));
+ deps = xmalloc (sizeof (reloc_deps_graph));
deps->sections = NULL;
deps->count = 0;
deps->size = 0;
-
+
for (iter_stack_create (&stack, s);
!iter_stack_empty (&stack);
- iter_stack_next (&stack))
+ iter_stack_next (&stack))
{
lang_statement_union_type *l = iter_stack_current (&stack);
@@ -1003,7 +900,7 @@ ld_build_required_section_dependence (s)
&link_info,
/* Use the same closure. */
build_deps_graph_callback,
- (PTR) deps);
+ deps);
}
}
return deps;
@@ -1011,15 +908,14 @@ ld_build_required_section_dependence (s)
#if EXTRA_VALIDATION
-size_t
-ld_count_children (s)
- lang_statement_union_type *s;
+static size_t
+ld_count_children (lang_statement_union_type *s)
{
size_t count = 0;
xtensa_ld_iter_stack *stack = NULL;
for (iter_stack_create (&stack, s);
!iter_stack_empty (&stack);
- iter_stack_next (&stack))
+ iter_stack_next (&stack))
{
lang_statement_union_type *l = iter_stack_current (&stack);
ASSERT (l != NULL);
@@ -1030,9 +926,8 @@ ld_count_children (s)
#endif /* EXTRA_VALIDATION */
-void
-xtensa_wild_group_interleave_callback (statement)
- lang_statement_union_type * statement;
+static void
+xtensa_wild_group_interleave_callback (lang_statement_union_type *statement)
{
lang_wild_statement_type *w;
reloc_deps_graph *deps;
@@ -1069,13 +964,13 @@ xtensa_wild_group_interleave_callback (statement)
break;
}
}
- }
+ }
/* Special case until the NOREORDER linker directive is supported:
- *(.init) output sections and *(.fini) specs may NOT be reordered. */
+ *(.init) output sections and *(.fini) specs may NOT be reordered. */
/* Check for sorting in a section list wildcard spec as well. */
- if (!no_reorder)
+ if (!no_reorder)
{
struct wildcard_list *l;
for (l = w->section_list; l != NULL; l = l->next)
@@ -1095,7 +990,7 @@ xtensa_wild_group_interleave_callback (statement)
#endif
/* It is now officially a target. Build the graph of source
- section -> target section (kept as a list of edges). */
+ section -> target section (kept as a list of edges). */
deps = ld_build_required_section_dependence (statement);
/* If this wildcard does not reorder.... */
@@ -1124,18 +1019,16 @@ xtensa_wild_group_interleave_callback (statement)
}
-void
-xtensa_wild_group_interleave (s)
- lang_statement_union_type *s;
+static void
+xtensa_wild_group_interleave (lang_statement_union_type *s)
{
lang_for_each_statement_worker (xtensa_wild_group_interleave_callback, s);
}
-void
-xtensa_layout_wild (deps, w)
- const reloc_deps_graph *deps;
- lang_wild_statement_type *w;
+static void
+xtensa_layout_wild (const reloc_deps_graph *deps,
+ lang_wild_statement_type *w)
{
/* If it does not fit initially, we need to do this step. Move all
of the wild literal sections to a new list, then move each of
@@ -1145,7 +1038,7 @@ xtensa_layout_wild (deps, w)
size_t old_count, new_count;
size_t ct1, ct2;
#endif
-
+
lang_wild_statement_type literal_wild;
literal_wild.header.next = NULL;
literal_wild.header.type = lang_wild_statement_enum;
@@ -1167,7 +1060,7 @@ xtensa_layout_wild (deps, w)
if (l->header.type == lang_input_section_enum)
{
if (section_is_target (deps, l)
- && ! section_is_source (deps, l))
+ && ! section_is_source (deps, l))
{
/* Detach. */
*s_p = l->header.next;
@@ -1179,7 +1072,7 @@ xtensa_layout_wild (deps, w)
*literal_wild.children.tail = l;
literal_wild.children.tail = &l->header.next;
continue;
- }
+ }
}
s_p = &(*s_p)->header.next;
}
@@ -1187,10 +1080,10 @@ xtensa_layout_wild (deps, w)
#if EXTRA_VALIDATION
ct1 = ld_count_children ((lang_statement_union_type*) w);
ct2 = ld_count_children ((lang_statement_union_type*) &literal_wild);
-
+
ASSERT (old_count == (ct1 + ct2));
#endif
-
+
/* Now place them back in front of their dependent sections. */
while (literal_wild.children.head != NULL)
@@ -1205,12 +1098,12 @@ xtensa_layout_wild (deps, w)
/* Detach. */
literal_wild.children.head = lit->header.next;
- if (literal_wild.children.head == NULL)
+ if (literal_wild.children.head == NULL)
literal_wild.children.tail = &literal_wild.children.head;
lit->header.next = NULL;
/* Find a spot to place it. */
- for (s_p = &w->children.head; *s_p != NULL; s_p = &(*s_p)->header.next)
+ for (s_p = &w->children.head; *s_p != NULL; s_p = &(*s_p)->header.next)
{
lang_statement_union_type *src = *s_p;
if (deps_has_edge (deps, src, lit))
@@ -1222,7 +1115,7 @@ xtensa_layout_wild (deps, w)
break;
}
}
-
+
if (!placed)
{
/* Put it at the end. */
@@ -1238,9 +1131,8 @@ xtensa_layout_wild (deps, w)
}
-void
-xtensa_colocate_output_literals_callback (statement)
- lang_statement_union_type * statement;
+static void
+xtensa_colocate_output_literals_callback (lang_statement_union_type *statement)
{
lang_output_section_statement_type *os;
reloc_deps_graph *deps;
@@ -1271,7 +1163,7 @@ xtensa_colocate_output_literals_callback (statement)
#endif
/* It is now officially a target. Build the graph of source
- section -> target section (kept as a list of edges). */
+ section -> target section (kept as a list of edges). */
deps = ld_build_required_section_dependence (statement);
@@ -1290,7 +1182,7 @@ xtensa_colocate_output_literals_callback (statement)
/* Insert align/offset assignment statement. */
if (xtensa_use_literal_pages)
{
- ld_xtensa_insert_page_offsets ((bfd_vma) 0, statement, deps,
+ ld_xtensa_insert_page_offsets (0, statement, deps,
xtensa_use_literal_pages);
lang_for_each_statement_worker (xtensa_ldlang_clear_addresses,
statement);
@@ -1302,21 +1194,19 @@ xtensa_colocate_output_literals_callback (statement)
}
-void
-xtensa_colocate_output_literals (s)
- lang_statement_union_type *s;
+static void
+xtensa_colocate_output_literals (lang_statement_union_type *s)
{
lang_for_each_statement_worker (xtensa_colocate_output_literals_callback, s);
}
-void
-xtensa_ldlang_clear_addresses (statement)
- lang_statement_union_type * statement;
+static void
+xtensa_ldlang_clear_addresses (lang_statement_union_type *statement)
{
switch (statement->header.type)
{
- case lang_input_section_enum:
+ case lang_input_section_enum:
{
asection *bfd_section = statement->input_section.section;
bfd_section->output_offset = 0;
@@ -1328,16 +1218,15 @@ xtensa_ldlang_clear_addresses (statement)
}
-bfd_vma
-ld_assign_relative_paged_dot (dot, s, deps, lit_align)
- bfd_vma dot;
- lang_statement_union_type *s;
- const reloc_deps_graph *deps ATTRIBUTE_UNUSED;
- bfd_boolean lit_align;
+static bfd_vma
+ld_assign_relative_paged_dot (bfd_vma dot,
+ lang_statement_union_type *s,
+ const reloc_deps_graph *deps ATTRIBUTE_UNUSED,
+ bfd_boolean lit_align)
{
/* Walk through all of the input statements in this wild statement
assign dot to all of them. */
-
+
xtensa_ld_iter_stack *stack = NULL;
xtensa_ld_iter_stack **stack_p = &stack;
@@ -1346,18 +1235,18 @@ ld_assign_relative_paged_dot (dot, s, deps, lit_align)
for (iter_stack_create (stack_p, s);
!iter_stack_empty (stack_p);
- iter_stack_next (stack_p))
+ iter_stack_next (stack_p))
{
lang_statement_union_type *l = iter_stack_current (stack_p);
-
- switch (l->header.type)
+
+ switch (l->header.type)
{
case lang_input_section_enum:
{
asection *section = l->input_section.section;
size_t align_pow = section->alignment_power;
bfd_boolean do_xtensa_alignment = FALSE;
-
+
if (lit_align)
{
bfd_boolean sec_is_target = section_is_target (deps, l);
@@ -1371,7 +1260,7 @@ ld_assign_relative_paged_dot (dot, s, deps, lit_align)
do_xtensa_alignment = TRUE;
}
first_section = FALSE;
- if (section->_raw_size != 0)
+ if (section->_raw_size != 0)
in_literals = (sec_is_target && !sec_is_source);
}
@@ -1397,18 +1286,17 @@ ld_assign_relative_paged_dot (dot, s, deps, lit_align)
}
-bfd_boolean
-ld_local_file_relocations_fit (statement, deps)
- lang_statement_union_type *statement;
- const reloc_deps_graph *deps ATTRIBUTE_UNUSED;
+static bfd_boolean
+ld_local_file_relocations_fit (lang_statement_union_type *statement,
+ const reloc_deps_graph *deps ATTRIBUTE_UNUSED)
{
/* Walk over all of the dependencies that we identified and make
sure that IF the source and target are here (addr != 0):
1) target addr < source addr
- 2) (roundup(source + source_size, 4) - rounddown(target, 4))
+ 2) (roundup(source + source_size, 4) - rounddown(target, 4))
< (256K - (1 << bad align))
Need a worst-case proof.... */
-
+
xtensa_ld_iter_stack *stack = NULL;
xtensa_ld_iter_stack **stack_p = &stack;
size_t max_align_power = 0;
@@ -1419,10 +1307,10 @@ ld_local_file_relocations_fit (statement, deps)
/* Find the worst-case alignment requirement for this set of statements. */
for (iter_stack_create (stack_p, statement);
!iter_stack_empty (stack_p);
- iter_stack_next (stack_p))
+ iter_stack_next (stack_p))
{
lang_statement_union_type *l = iter_stack_current (stack_p);
- if (l->header.type == lang_input_section_enum)
+ if (l->header.type == lang_input_section_enum)
{
lang_input_section_type *input = &l->input_section;
asection *section = input->section;
@@ -1435,21 +1323,21 @@ ld_local_file_relocations_fit (statement, deps)
for (i = 0; i < deps->count; i++)
{
asection *sec = deps->sections[i];
- const reloc_deps_section *deps_section =
+ const reloc_deps_section *deps_section =
xtensa_get_section_deps (deps, sec);
if (deps_section)
{
/* We choose to walk through the successors. */
for (e = deps_section->succs; e != NULL; e = e->next)
{
- if ((e->src != e->tgt)
+ if (e->src != e->tgt
&& e->src->output_section == e->tgt->output_section
&& e->src->output_offset != 0
&& e->tgt->output_offset != 0)
{
- bfd_vma l32r_addr =
+ bfd_vma l32r_addr =
align_power (e->src->output_offset + e->src->_raw_size, 2);
- bfd_vma target_addr = e->tgt->output_offset & (~3);
+ bfd_vma target_addr = e->tgt->output_offset & ~3;
if (l32r_addr < target_addr)
{
fprintf (stderr, "Warning: "
@@ -1457,7 +1345,7 @@ ld_local_file_relocations_fit (statement, deps)
return FALSE;
}
- if ((l32r_addr - target_addr) > (256*1024 - align_penalty))
+ if (l32r_addr - target_addr > 256 * 1024 - align_penalty)
return FALSE;
}
}
@@ -1468,35 +1356,34 @@ ld_local_file_relocations_fit (statement, deps)
}
-bfd_vma
-ld_xtensa_insert_page_offsets (dot, s, deps, lit_align)
- bfd_vma dot;
- lang_statement_union_type *s;
- reloc_deps_graph *deps;
- bfd_boolean lit_align;
+static bfd_vma
+ld_xtensa_insert_page_offsets (bfd_vma dot,
+ lang_statement_union_type *s,
+ reloc_deps_graph *deps,
+ bfd_boolean lit_align)
{
xtensa_ld_iter_stack *stack = NULL;
xtensa_ld_iter_stack **stack_p = &stack;
bfd_boolean first_section = FALSE;
bfd_boolean in_literals = FALSE;
-
+
if (!lit_align)
return FALSE;
for (iter_stack_create (stack_p, s);
!iter_stack_empty (stack_p);
- iter_stack_next (stack_p))
+ iter_stack_next (stack_p))
{
lang_statement_union_type *l = iter_stack_current (stack_p);
- switch (l->header.type)
- {
+ switch (l->header.type)
+ {
case lang_input_section_enum:
{
asection *section = l->input_section.section;
bfd_boolean do_xtensa_alignment = FALSE;
-
+
if (lit_align)
{
if (section->_raw_size != 0
@@ -1507,7 +1394,7 @@ ld_xtensa_insert_page_offsets (dot, s, deps, lit_align)
do_xtensa_alignment = TRUE;
}
first_section = FALSE;
- if (section->_raw_size != 0)
+ if (section->_raw_size != 0)
{
in_literals = (section_is_target (deps, l)
&& !section_is_source (deps, l));
@@ -1527,7 +1414,7 @@ ld_xtensa_insert_page_offsets (dot, s, deps, lit_align)
lang_statement_union_type *assign_union;
lang_statement_list_type tmplist;
lang_statement_list_type *old_stat_ptr = stat_ptr;
-
+
/* There is hidden state in "lang_add_assignment". It
appends the new assignment statement to the stat_ptr
list. Thus, we swap it before and after the call. */
@@ -1544,12 +1431,12 @@ ld_xtensa_insert_page_offsets (dot, s, deps, lit_align)
assign_union->header.next = l;
*(*stack_p)->iterloc.loc = assign_union;
iter_stack_next (stack_p);
- }
- }
- break;
- default:
- break;
- }
+ }
+ }
+ break;
+ default:
+ break;
+ }
}
return dot;
}
diff --git a/gnu/usr.bin/binutils/ld/ldver.texi b/gnu/usr.bin/binutils/ld/ldver.texi
index b9c7648a697..3610a96b967 100644
--- a/gnu/usr.bin/binutils/ld/ldver.texi
+++ b/gnu/usr.bin/binutils/ld/ldver.texi
@@ -1 +1 @@
-@set VERSION 2.14
+@set VERSION 2.15
diff --git a/gnu/usr.bin/binutils/ld/pe-dll.c b/gnu/usr.bin/binutils/ld/pe-dll.c
index 1430754842a..45d00aedccb 100644
--- a/gnu/usr.bin/binutils/ld/pe-dll.c
+++ b/gnu/usr.bin/binutils/ld/pe-dll.c
@@ -1,5 +1,6 @@
/* Routines to help build PEI-format DLLs (Win32 etc)
- Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004
+ Free Software Foundation, Inc.
Written by DJ Delorie <dj@cygnus.com>
This file is part of GLD, the Gnu Linker.
@@ -120,8 +121,7 @@
See also: ld/emultempl/pe.em. */
-static void
-add_bfd_to_link PARAMS ((bfd *, const char *, struct bfd_link_info *));
+static void add_bfd_to_link (bfd *, const char *, struct bfd_link_info *);
/* For emultempl/pe.em. */
@@ -138,7 +138,7 @@ int pe_dll_extra_pe_debug = 0;
static bfd_vma image_base;
static bfd *filler_bfd;
-static struct sec *edata_s, *reloc_s;
+static struct bfd_section *edata_s, *reloc_s;
static unsigned char *edata_d, *reloc_d;
static size_t edata_sz, reloc_sz;
static int runtime_pseudo_relocs_created = 0;
@@ -232,6 +232,7 @@ static autofilter_entry_type autofilter_symbollist[] =
/* Do not specify library suffix explicitly, to allow for dllized versions. */
static autofilter_entry_type autofilter_liblist[] =
{
+ { "libcygwin", 9 },
{ "libgcc", 6 },
{ "libstdc++", 9 },
{ "libmingw32", 10 },
@@ -287,39 +288,8 @@ static autofilter_entry_type autofilter_symbolsuffixlist[] =
#define U(str) (pe_details->underscored ? "_" str : str)
-static int reloc_sort PARAMS ((const void *, const void *));
-static int pe_export_sort PARAMS ((const void *, const void *));
-static int auto_export PARAMS ((bfd *, def_file *, const char *));
-static void process_def_file PARAMS ((bfd *, struct bfd_link_info *));
-static void build_filler_bfd PARAMS ((int));
-static void generate_edata PARAMS ((bfd *, struct bfd_link_info *));
-static void fill_exported_offsets PARAMS ((bfd *, struct bfd_link_info *));
-static void fill_edata PARAMS ((bfd *, struct bfd_link_info *));
-static void generate_reloc PARAMS ((bfd *, struct bfd_link_info *));
-static void quoteput PARAMS ((char *, FILE *, int));
-static asection *quick_section PARAMS ((bfd *, const char *, int, int));
-static void quick_symbol
- PARAMS ((bfd *, const char *, const char *, const char *,
- asection *, int, int));
-static void quick_reloc PARAMS ((bfd *, int, int, int));
-static bfd *make_head PARAMS ((bfd *));
-static bfd *make_tail PARAMS ((bfd *));
-static bfd *make_one PARAMS ((def_file_export *, bfd *));
-static bfd *make_singleton_name_thunk PARAMS ((const char *, bfd *));
-static char *make_import_fixup_mark PARAMS ((arelent *));
-static bfd *make_import_fixup_entry
- PARAMS ((const char *, const char *, const char *, bfd *));
-static bfd *make_runtime_pseudo_reloc
- PARAMS ((const char *, const char *, int, bfd *));
-static bfd *pe_create_runtime_relocator_reference
- PARAMS ((bfd *));
-static unsigned int pe_get16 PARAMS ((bfd *, int));
-static unsigned int pe_get32 PARAMS ((bfd *, int));
-static unsigned int pe_as32 PARAMS ((void *));
-
void
-pe_dll_id_target (target)
- const char *target;
+pe_dll_id_target (const char *target)
{
int i;
@@ -346,21 +316,19 @@ typedef struct
reloc_data_type;
static int
-reloc_sort (va, vb)
- const void *va, *vb;
+reloc_sort (const void *va, const void *vb)
{
- bfd_vma a = ((reloc_data_type *) va)->vma;
- bfd_vma b = ((reloc_data_type *) vb)->vma;
+ bfd_vma a = ((const reloc_data_type *) va)->vma;
+ bfd_vma b = ((const reloc_data_type *) vb)->vma;
return (a > b) ? 1 : ((a < b) ? -1 : 0);
}
static int
-pe_export_sort (va, vb)
- const void *va, *vb;
+pe_export_sort (const void *va, const void *vb)
{
- def_file_export *a = (def_file_export *) va;
- def_file_export *b = (def_file_export *) vb;
+ const def_file_export *a = va;
+ const def_file_export *b = vb;
return strcmp (a->name, b->name);
}
@@ -372,7 +340,7 @@ pe_export_sort (va, vb)
defined, since we can't export symbols we don't have. */
static bfd_vma *exported_symbol_offsets;
-static struct sec **exported_symbol_sections;
+static struct bfd_section **exported_symbol_sections;
static int export_table_size;
static int count_exported;
static int count_exported_byname;
@@ -392,9 +360,7 @@ exclude_list_struct;
static struct exclude_list_struct *excludes = 0;
void
-pe_dll_add_excludes (new_excludes, type)
- const char *new_excludes;
- const int type;
+pe_dll_add_excludes (const char *new_excludes, const int type)
{
char *local_copy;
char *exclude_string;
@@ -406,9 +372,8 @@ pe_dll_add_excludes (new_excludes, type)
{
struct exclude_list_struct *new_exclude;
- new_exclude = ((struct exclude_list_struct *)
- xmalloc (sizeof (struct exclude_list_struct)));
- new_exclude->string = (char *) xmalloc (strlen (exclude_string) + 1);
+ new_exclude = xmalloc (sizeof (struct exclude_list_struct));
+ new_exclude->string = xmalloc (strlen (exclude_string) + 1);
strcpy (new_exclude->string, exclude_string);
new_exclude->type = type;
new_exclude->next = excludes;
@@ -423,10 +388,7 @@ pe_dll_add_excludes (new_excludes, type)
It can be used for contextual checks. */
static int
-auto_export (abfd, d, n)
- bfd *abfd;
- def_file *d;
- const char *n;
+auto_export (bfd *abfd, def_file *d, const char *n)
{
int i;
struct exclude_list_struct *ex;
@@ -453,7 +415,7 @@ auto_export (abfd, d, n)
n, abfd, abfd->my_archive);
/* First of all, make context checks:
- Don't export anything from standard libs. */
+ Don't export anything from standard libs. */
if (libname)
{
afptr = autofilter_liblist;
@@ -535,14 +497,12 @@ auto_export (abfd, d, n)
}
static void
-process_def_file (abfd, info)
- bfd *abfd ATTRIBUTE_UNUSED;
- struct bfd_link_info *info;
+process_def_file (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info *info)
{
int i, j;
struct bfd_link_hash_entry *blhe;
bfd *b;
- struct sec *s;
+ struct bfd_section *s;
def_file_export *e = 0;
if (!pe_def_file)
@@ -567,7 +527,7 @@ process_def_file (abfd, info)
/* If we are not building a DLL, when there are no exports
we do not build an export table at all. */
if (!pe_dll_export_everything && pe_def_file->num_exports == 0
- && !(info->shared))
+ && !info->shared)
return;
/* Now, maybe export everything else the default way. */
@@ -579,14 +539,14 @@ process_def_file (abfd, info)
int nsyms, symsize;
symsize = bfd_get_symtab_upper_bound (b);
- symbols = (asymbol **) xmalloc (symsize);
+ symbols = xmalloc (symsize);
nsyms = bfd_canonicalize_symtab (b, symbols);
for (j = 0; j < nsyms; j++)
{
/* We should export symbols which are either global or not
- anything at all. (.bss data is the latter)
- We should not export undefined symbols. */
+ anything at all. (.bss data is the latter)
+ We should not export undefined symbols. */
if (symbols[j]->section != &bfd_und_section
&& ((symbols[j]->flags & BSF_GLOBAL)
|| (symbols[j]->flags == BFD_FORT_COMM_DEFAULT_VALUE)))
@@ -595,7 +555,7 @@ process_def_file (abfd, info)
/* We should not re-export imported stuff. */
{
- char *name = (char *) xmalloc (strlen (sn) + 2 + 6);
+ char *name = xmalloc (strlen (sn) + 2 + 6);
sprintf (name, "%s%s", U("_imp_"), sn);
blhe = bfd_link_hash_lookup (info->hash, name,
@@ -632,9 +592,9 @@ process_def_file (abfd, info)
if (strchr (pe_def_file->exports[i].name, '@'))
{
/* This will preserve internal_name, which may have been
- pointing to the same memory as name, or might not
- have. */
- int lead_at = (*pe_def_file->exports[i].name =='@');
+ pointing to the same memory as name, or might not
+ have. */
+ int lead_at = (*pe_def_file->exports[i].name == '@');
char *tmp = xstrdup (pe_def_file->exports[i].name + lead_at);
*(strchr (tmp, '@')) = 0;
@@ -649,7 +609,7 @@ process_def_file (abfd, info)
{
if (strchr (pe_def_file->exports[i].name, '@'))
{
- int lead_at = (*pe_def_file->exports[i].name == '@' ) ;
+ int lead_at = (*pe_def_file->exports[i].name == '@');
char *tmp = xstrdup (pe_def_file->exports[i].name + lead_at);
*(strchr (tmp, '@')) = 0;
@@ -666,17 +626,18 @@ process_def_file (abfd, info)
/* Convenience, but watch out for it changing. */
e = pe_def_file->exports;
- exported_symbol_offsets = (bfd_vma *) xmalloc (NE * sizeof (bfd_vma));
- exported_symbol_sections = (struct sec **) xmalloc (NE * sizeof (struct sec *));
+ exported_symbol_offsets = xmalloc (NE * sizeof (bfd_vma));
+ exported_symbol_sections = xmalloc (NE * sizeof (struct bfd_section *));
- memset (exported_symbol_sections, 0, NE * sizeof (struct sec *));
+ memset (exported_symbol_sections, 0, NE * sizeof (struct bfd_section *));
max_ordinal = 0;
min_ordinal = 65536;
count_exported = 0;
count_exported_byname = 0;
count_with_ordinals = 0;
- qsort (pe_def_file->exports, NE, sizeof (pe_def_file->exports[0]), pe_export_sort);
+ qsort (pe_def_file->exports, NE, sizeof (pe_def_file->exports[0]),
+ pe_export_sort);
for (i = 0, j = 0; i < NE; i++)
{
if (i > 0 && strcmp (e[i].name, e[i - 1].name) == 0)
@@ -717,8 +678,9 @@ process_def_file (abfd, info)
for (i = 0; i < NE; i++)
{
- char *name = (char *) xmalloc (strlen (pe_def_file->exports[i].internal_name) + 2);
+ char *name;
+ name = xmalloc (strlen (pe_def_file->exports[i].internal_name) + 2);
if (pe_details->underscored
&& (*pe_def_file->exports[i].internal_name != '@'))
{
@@ -783,8 +745,7 @@ process_def_file (abfd, info)
/* Build the bfd that will contain .edata and .reloc sections. */
static void
-build_filler_bfd (include_edata)
- int include_edata;
+build_filler_bfd (int include_edata)
{
lang_input_statement_type *filler_file;
filler_file = lang_add_input_file ("dll stuff",
@@ -838,9 +799,7 @@ build_filler_bfd (include_edata)
/* Gather all the exported symbols and build the .edata section. */
static void
-generate_edata (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info ATTRIBUTE_UNUSED;
+generate_edata (bfd *abfd, struct bfd_link_info *info ATTRIBUTE_UNUSED)
{
int i, next_ordinal;
int name_table_size = 0;
@@ -871,7 +830,7 @@ generate_edata (abfd, info)
}
export_table_size = max_ordinal - min_ordinal + 1;
- exported_symbols = (int *) xmalloc (export_table_size * sizeof (int));
+ exported_symbols = xmalloc (export_table_size * sizeof (int));
for (i = 0; i < export_table_size; i++)
exported_symbols[i] = -1;
@@ -923,19 +882,18 @@ generate_edata (abfd, info)
been done in process_def_file(). */
static void
-fill_exported_offsets (abfd, info)
- bfd *abfd ATTRIBUTE_UNUSED;
- struct bfd_link_info *info;
+fill_exported_offsets (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info *info)
{
int i;
struct bfd_link_hash_entry *blhe;
for (i = 0; i < pe_def_file->num_exports; i++)
{
- char *name = (char *) xmalloc (strlen (pe_def_file->exports[i].internal_name) + 2);
+ char *name;
+ name = xmalloc (strlen (pe_def_file->exports[i].internal_name) + 2);
if (pe_details->underscored
- && (*pe_def_file->exports[i].internal_name != '@'))
+ && *pe_def_file->exports[i].internal_name != '@')
{
*name = '_';
strcpy (name + 1, pe_def_file->exports[i].internal_name);
@@ -947,7 +905,7 @@ fill_exported_offsets (abfd, info)
name,
FALSE, FALSE, TRUE);
- if (blhe && (blhe->type == bfd_link_hash_defined))
+ if (blhe && blhe->type == bfd_link_hash_defined)
exported_symbol_offsets[i] = blhe->u.def.value;
free (name);
@@ -955,30 +913,29 @@ fill_exported_offsets (abfd, info)
}
static void
-fill_edata (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info ATTRIBUTE_UNUSED;
+fill_edata (bfd *abfd, struct bfd_link_info *info ATTRIBUTE_UNUSED)
{
- int i, hint;
+ 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;
time (&now);
- edata_d = (unsigned char *) xmalloc (edata_sz);
+ edata_d = xmalloc (edata_sz);
/* 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)
+#define ERVA(ptr) (((unsigned char *)(ptr) - edata_d) \
+ + edata_s->output_section->vma - image_base)
memset (edata_d, 0, edata_sz);
bfd_put_32 (abfd, now, edata_d + 4);
@@ -1000,32 +957,36 @@ fill_edata (abfd, info)
fill_exported_offsets (abfd, info);
- /* Ok, now for the filling in part. */
+ /* Ok, now for the filling in part.
+ Scan alphabetically - ie the ordering in the exports[] table,
+ rather than by ordinal - the ordering in the exported_symbol[]
+ table. See dlltool.c and:
+ http://sources.redhat.com/ml/binutils/2003-04/msg00379.html
+ for more information. */
hint = 0;
- for (i = 0; i < export_table_size; i++)
+ for (s = 0; s < NE; s++)
{
- int s = exported_symbols[i];
-
- if (s != -1)
+ struct bfd_section *ssec = exported_symbol_sections[s];
+ if (ssec && pe_def_file->exports[s].ordinal != -1)
{
- struct sec *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++;
}
}
@@ -1033,13 +994,12 @@ fill_edata (abfd, info)
}
-static struct sec *current_sec;
+static struct bfd_section *current_sec;
void
-pe_walk_relocs_of_symbol (info, name, cb)
- struct bfd_link_info *info;
- const char *name;
- int (*cb) (arelent *, asection *);
+pe_walk_relocs_of_symbol (struct bfd_link_info *info,
+ const char *name,
+ int (*cb) (arelent *, asection *))
{
bfd *b;
asection *s;
@@ -1050,7 +1010,7 @@ pe_walk_relocs_of_symbol (info, name, cb)
int nsyms, symsize;
symsize = bfd_get_symtab_upper_bound (b);
- symbols = (asymbol **) xmalloc (symsize);
+ symbols = xmalloc (symsize);
nsyms = bfd_canonicalize_symtab (b, symbols);
for (s = b->sections; s; s = s->next)
@@ -1067,12 +1027,12 @@ pe_walk_relocs_of_symbol (info, name, cb)
current_sec = s;
relsize = bfd_get_reloc_upper_bound (b, s);
- relocs = (arelent **) xmalloc ((size_t) relsize);
+ relocs = xmalloc (relsize);
nrelocs = bfd_canonicalize_reloc (b, s, relocs, symbols);
for (i = 0; i < nrelocs; i++)
{
- struct symbol_cache_entry *sym = *relocs[i]->sym_ptr_ptr;
+ struct bfd_symbol *sym = *relocs[i]->sym_ptr_ptr;
if (!strcmp (name, sym->name))
cb (relocs[i], s);
@@ -1090,28 +1050,25 @@ pe_walk_relocs_of_symbol (info, name, cb)
/* Gather all the relocations and build the .reloc section. */
static void
-generate_reloc (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+generate_reloc (bfd *abfd, struct bfd_link_info *info)
{
/* For .reloc stuff. */
reloc_data_type *reloc_data;
int total_relocs = 0;
int i;
- unsigned long sec_page = (unsigned long) (-1);
+ unsigned long sec_page = (unsigned long) -1;
unsigned long page_ptr, page_count;
int bi;
bfd *b;
- struct sec *s;
+ struct bfd_section *s;
total_relocs = 0;
for (b = info->input_bfds; b; b = b->link_next)
for (s = b->sections; s; s = s->next)
total_relocs += s->reloc_count;
- reloc_data =
- (reloc_data_type *) xmalloc (total_relocs * sizeof (reloc_data_type));
+ reloc_data = xmalloc (total_relocs * sizeof (reloc_data_type));
total_relocs = 0;
bi = 0;
@@ -1145,25 +1102,25 @@ generate_reloc (abfd, info)
}
symsize = bfd_get_symtab_upper_bound (b);
- symbols = (asymbol **) xmalloc (symsize);
+ symbols = xmalloc (symsize);
nsyms = bfd_canonicalize_symtab (b, symbols);
relsize = bfd_get_reloc_upper_bound (b, s);
- relocs = (arelent **) xmalloc ((size_t) relsize);
+ relocs = xmalloc (relsize);
nrelocs = bfd_canonicalize_reloc (b, s, relocs, symbols);
for (i = 0; i < nrelocs; i++)
{
if (pe_dll_extra_pe_debug)
{
- struct symbol_cache_entry *sym = *relocs[i]->sym_ptr_ptr;
+ struct bfd_symbol *sym = *relocs[i]->sym_ptr_ptr;
printf ("rel: %s\n", sym->name);
}
if (!relocs[i]->howto->pc_relative
&& relocs[i]->howto->type != pe_details->imagebase_reloc)
{
bfd_vma sym_vma;
- struct symbol_cache_entry *sym = *relocs[i]->sym_ptr_ptr;
+ struct bfd_symbol *sym = *relocs[i]->sym_ptr_ptr;
sym_vma = (relocs[i]->addend
+ sym->value
@@ -1198,6 +1155,18 @@ generate_reloc (abfd, info)
reloc_data[total_relocs].type = 5;
total_relocs++;
break;
+ case BITS_AND_SHIFT (24, 2):
+ /* FIXME: 0 is ARM_26D, it is defined in bfd/coff-arm.c
+ Those ARM_xxx definitions should go in proper
+ header someday. */
+ if (relocs[i]->howto->type == 0
+ /* Older GNU linkers used 5 instead of 0 for this reloc. */
+ || relocs[i]->howto->type == 5)
+ /* This is an ARM_26D reloc, which is an ARM_26 reloc
+ that has already been fully processed during a
+ previous link stage, so ignore it here. */
+ break;
+ /* Fall through. */
default:
/* xgettext:c-format */
einfo (_("%XError: %d-bit reloc in dll\n"),
@@ -1238,10 +1207,10 @@ generate_reloc (abfd, info)
}
reloc_sz = (reloc_sz + 3) & ~3; /* 4-byte align. */
- reloc_d = (unsigned char *) xmalloc (reloc_sz);
- sec_page = (unsigned long) (-1);
+ reloc_d = xmalloc (reloc_sz);
+ sec_page = (unsigned long) -1;
reloc_sz = 0;
- page_ptr = (unsigned long) (-1);
+ page_ptr = (unsigned long) -1;
page_count = 0;
for (i = 0; i < total_relocs; i++)
@@ -1254,7 +1223,7 @@ generate_reloc (abfd, info)
while (reloc_sz & 3)
reloc_d[reloc_sz++] = 0;
- if (page_ptr != (unsigned long) (-1))
+ if (page_ptr != (unsigned long) -1)
bfd_put_32 (abfd, reloc_sz - page_ptr, reloc_d + page_ptr + 4);
bfd_put_32 (abfd, this_page, reloc_d + reloc_sz);
@@ -1280,7 +1249,7 @@ generate_reloc (abfd, info)
while (reloc_sz & 3)
reloc_d[reloc_sz++] = 0;
- if (page_ptr != (unsigned long) (-1))
+ if (page_ptr != (unsigned long) -1)
bfd_put_32 (abfd, reloc_sz - page_ptr, reloc_d + page_ptr + 4);
while (reloc_sz < reloc_s->_raw_size)
@@ -1291,10 +1260,7 @@ generate_reloc (abfd, info)
corresponds to it. */
static void
-quoteput (s, f, needs_quotes)
- char *s;
- FILE *f;
- int needs_quotes;
+quoteput (char *s, FILE *f, int needs_quotes)
{
char *cp;
@@ -1327,8 +1293,7 @@ quoteput (s, f, needs_quotes)
}
void
-pe_dll_generate_def_file (pe_out_def_filename)
- const char *pe_out_def_filename;
+pe_dll_generate_def_file (const char *pe_out_def_filename)
{
int i;
FILE *out = fopen (pe_out_def_filename, "w");
@@ -1496,11 +1461,7 @@ static char *dll_symname;
#define UNDSEC (asection *) &bfd_und_section
static asection *
-quick_section (abfd, name, flags, align)
- bfd *abfd;
- const char *name;
- int flags;
- int align;
+quick_section (bfd *abfd, const char *name, int flags, int align)
{
asection *sec;
asymbol *sym;
@@ -1522,17 +1483,16 @@ quick_section (abfd, name, flags, align)
}
static void
-quick_symbol (abfd, n1, n2, n3, sec, flags, addr)
- bfd *abfd;
- const char *n1;
- const char *n2;
- const char *n3;
- asection *sec;
- int flags;
- int addr;
+quick_symbol (bfd *abfd,
+ const char *n1,
+ const char *n2,
+ const char *n3,
+ asection *sec,
+ int flags,
+ int addr)
{
asymbol *sym;
- char *name = (char *) xmalloc (strlen (n1) + strlen (n2) + strlen (n3) + 1);
+ char *name = xmalloc (strlen (n1) + strlen (n2) + strlen (n3) + 1);
strcpy (name, n1);
strcat (name, n2);
@@ -1549,19 +1509,15 @@ static arelent *reltab = 0;
static int relcount = 0, relsize = 0;
static void
-quick_reloc (abfd, address, which_howto, symidx)
- bfd *abfd;
- int address;
- int which_howto;
- int symidx;
+quick_reloc (bfd *abfd, int address, int which_howto, int symidx)
{
- if (relcount >= (relsize - 1))
+ if (relcount >= relsize - 1)
{
relsize += 10;
if (reltab)
- reltab = (arelent *) xrealloc (reltab, relsize * sizeof (arelent));
+ reltab = xrealloc (reltab, relsize * sizeof (arelent));
else
- reltab = (arelent *) xmalloc (relsize * sizeof (arelent));
+ reltab = xmalloc (relsize * sizeof (arelent));
}
reltab[relcount].address = address;
reltab[relcount].addend = 0;
@@ -1577,7 +1533,7 @@ save_relocs (asection *sec)
sec->relocation = reltab;
sec->reloc_count = relcount;
- sec->orelocation = (arelent **) xmalloc ((relcount + 1) * sizeof (arelent *));
+ sec->orelocation = xmalloc ((relcount + 1) * sizeof (arelent *));
for (i = 0; i < relcount; i++)
sec->orelocation[i] = sec->relocation + i;
sec->orelocation[relcount] = 0;
@@ -1604,15 +1560,14 @@ save_relocs (asection *sec)
hname: */
static bfd *
-make_head (parent)
- bfd *parent;
+make_head (bfd *parent)
{
asection *id2, *id5, *id4;
unsigned char *d2, *d5, *d4;
char *oname;
bfd *abfd;
- oname = (char *) xmalloc (20);
+ oname = xmalloc (20);
sprintf (oname, "d%06d.o", tmp_seq);
tmp_seq++;
@@ -1624,7 +1579,7 @@ make_head (parent)
bfd_set_arch_mach (abfd, pe_details->bfd_arch, 0);
symptr = 0;
- symtab = (asymbol **) xmalloc (6 * sizeof (asymbol *));
+ symtab = xmalloc (6 * sizeof (asymbol *));
id2 = quick_section (abfd, ".idata$2", SEC_HAS_CONTENTS, 2);
id5 = quick_section (abfd, ".idata$5", SEC_HAS_CONTENTS, 2);
id4 = quick_section (abfd, ".idata$4", SEC_HAS_CONTENTS, 2);
@@ -1638,7 +1593,7 @@ make_head (parent)
the start of the list of sections from other objects. */
bfd_set_section_size (abfd, id2, 20);
- d2 = (unsigned char *) xmalloc (20);
+ d2 = xmalloc (20);
id2->contents = d2;
memset (d2, 0, 20);
d2[0] = d2[16] = 4; /* Reloc addend. */
@@ -1648,12 +1603,12 @@ make_head (parent)
save_relocs (id2);
bfd_set_section_size (abfd, id5, 4);
- d5 = (unsigned char *) xmalloc (4);
+ d5 = xmalloc (4);
id5->contents = d5;
memset (d5, 0, 4);
bfd_set_section_size (abfd, id4, 4);
- d4 = (unsigned char *) xmalloc (4);
+ d4 = xmalloc (4);
id4->contents = d4;
memset (d4, 0, 4);
@@ -1677,8 +1632,7 @@ make_head (parent)
.asciz "my.dll" */
static bfd *
-make_tail (parent)
- bfd *parent;
+make_tail (bfd *parent)
{
asection *id4, *id5, *id7;
unsigned char *d4, *d5, *d7;
@@ -1686,7 +1640,7 @@ make_tail (parent)
char *oname;
bfd *abfd;
- oname = (char *) xmalloc (20);
+ oname = xmalloc (20);
sprintf (oname, "d%06d.o", tmp_seq);
tmp_seq++;
@@ -1698,19 +1652,19 @@ make_tail (parent)
bfd_set_arch_mach (abfd, pe_details->bfd_arch, 0);
symptr = 0;
- symtab = (asymbol **) xmalloc (5 * sizeof (asymbol *));
+ symtab = xmalloc (5 * sizeof (asymbol *));
id4 = quick_section (abfd, ".idata$4", SEC_HAS_CONTENTS, 2);
id5 = quick_section (abfd, ".idata$5", SEC_HAS_CONTENTS, 2);
id7 = quick_section (abfd, ".idata$7", SEC_HAS_CONTENTS, 2);
quick_symbol (abfd, U (""), dll_symname, "_iname", id7, BSF_GLOBAL, 0);
bfd_set_section_size (abfd, id4, 4);
- d4 = (unsigned char *) xmalloc (4);
+ d4 = xmalloc (4);
id4->contents = d4;
memset (d4, 0, 4);
bfd_set_section_size (abfd, id5, 4);
- d5 = (unsigned char *) xmalloc (4);
+ d5 = xmalloc (4);
id5->contents = d5;
memset (d5, 0, 4);
@@ -1718,7 +1672,7 @@ make_tail (parent)
if (len & 1)
len++;
bfd_set_section_size (abfd, id7, len);
- d7 = (unsigned char *) xmalloc (len);
+ d7 = xmalloc (len);
id7->contents = d7;
strcpy (d7, dll_filename);
@@ -1783,9 +1737,7 @@ static unsigned char jmp_mips_bytes[] =
};
static bfd *
-make_one (exp, parent)
- def_file_export *exp;
- bfd *parent;
+make_one (def_file_export *exp, bfd *parent)
{
asection *tx, *id7, *id5, *id4, *id6;
unsigned char *td = NULL, *d7, *d5, *d4, *d6 = NULL;
@@ -1813,7 +1765,7 @@ make_one (exp, parent)
abort ();
}
- oname = (char *) xmalloc (20);
+ oname = xmalloc (20);
sprintf (oname, "d%06d.o", tmp_seq);
tmp_seq++;
@@ -1825,7 +1777,7 @@ make_one (exp, parent)
bfd_set_arch_mach (abfd, pe_details->bfd_arch, 0);
symptr = 0;
- symtab = (asymbol **) xmalloc (11 * sizeof (asymbol *));
+ symtab = xmalloc (11 * sizeof (asymbol *));
tx = quick_section (abfd, ".text", SEC_CODE|SEC_HAS_CONTENTS, 2);
id7 = quick_section (abfd, ".idata$7", SEC_HAS_CONTENTS, 2);
id5 = quick_section (abfd, ".idata$5", SEC_HAS_CONTENTS, 2);
@@ -1834,32 +1786,38 @@ make_one (exp, parent)
if (*exp->internal_name == '@')
{
+ quick_symbol (abfd, U ("_head_"), dll_symname, "", UNDSEC,
+ BSF_GLOBAL, 0);
if (! exp->flag_data)
quick_symbol (abfd, "", exp->internal_name, "", tx, BSF_GLOBAL, 0);
- quick_symbol (abfd, U ("_head_"), dll_symname, "", UNDSEC, BSF_GLOBAL, 0);
- quick_symbol (abfd, U ("_imp_"), exp->internal_name, "", id5, BSF_GLOBAL, 0);
+ quick_symbol (abfd, U ("_imp_"), exp->internal_name, "", id5,
+ BSF_GLOBAL, 0);
/* Fastcall applies only to functions,
so no need for auto-import symbol. */
}
else
{
+ quick_symbol (abfd, U ("_head_"), dll_symname, "", UNDSEC,
+ BSF_GLOBAL, 0);
if (! exp->flag_data)
- quick_symbol (abfd, U (""), exp->internal_name, "", tx, BSF_GLOBAL, 0);
- quick_symbol (abfd, U ("_head_"), dll_symname, "", UNDSEC, BSF_GLOBAL, 0);
- quick_symbol (abfd, U ("_imp__"), exp->internal_name, "", id5, BSF_GLOBAL, 0);
+ quick_symbol (abfd, U (""), exp->internal_name, "", tx,
+ BSF_GLOBAL, 0);
+ quick_symbol (abfd, U ("_imp__"), exp->internal_name, "", id5,
+ BSF_GLOBAL, 0);
/* Symbol to reference ord/name of imported
- data symbol, used to implement auto-import. */
+ data symbol, used to implement auto-import. */
if (exp->flag_data)
- quick_symbol (abfd, U("_nm__"), exp->internal_name, "", id6, BSF_GLOBAL,0);
+ quick_symbol (abfd, U("_nm__"), exp->internal_name, "", id6,
+ BSF_GLOBAL,0);
}
if (pe_dll_compat_implib)
- quick_symbol (abfd, U ("__imp_"), exp->internal_name, "",
- id5, BSF_GLOBAL, 0);
+ quick_symbol (abfd, U ("__imp_"), exp->internal_name, "", id5,
+ BSF_GLOBAL, 0);
if (! exp->flag_data)
{
bfd_set_section_size (abfd, tx, jmp_byte_count);
- td = (unsigned char *) xmalloc (jmp_byte_count);
+ td = xmalloc (jmp_byte_count);
tx->contents = td;
memcpy (td, jmp_bytes, jmp_byte_count);
@@ -1883,14 +1841,14 @@ make_one (exp, parent)
}
bfd_set_section_size (abfd, id7, 4);
- d7 = (unsigned char *) xmalloc (4);
+ d7 = xmalloc (4);
id7->contents = d7;
memset (d7, 0, 4);
- quick_reloc (abfd, 0, BFD_RELOC_RVA, 6);
+ quick_reloc (abfd, 0, BFD_RELOC_RVA, 5);
save_relocs (id7);
bfd_set_section_size (abfd, id5, 4);
- d5 = (unsigned char *) xmalloc (4);
+ d5 = xmalloc (4);
id5->contents = d5;
memset (d5, 0, 4);
@@ -1907,7 +1865,7 @@ make_one (exp, parent)
}
bfd_set_section_size (abfd, id4, 4);
- d4 = (unsigned char *) xmalloc (4);
+ d4 = xmalloc (4);
id4->contents = d4;
memset (d4, 0, 4);
@@ -1934,7 +1892,7 @@ make_one (exp, parent)
if (len & 1)
len++;
bfd_set_section_size (abfd, id6, len);
- d6 = (unsigned char *) xmalloc (len);
+ d6 = xmalloc (len);
id6->contents = d6;
memset (d6, 0, len);
d6[0] = exp->hint & 0xff;
@@ -1956,9 +1914,7 @@ make_one (exp, parent)
}
static bfd *
-make_singleton_name_thunk (import, parent)
- const char *import;
- bfd *parent;
+make_singleton_name_thunk (const char *import, bfd *parent)
{
/* Name thunks go to idata$4. */
asection *id4;
@@ -1966,7 +1922,7 @@ make_singleton_name_thunk (import, parent)
char *oname;
bfd *abfd;
- oname = (char *) xmalloc (20);
+ oname = xmalloc (20);
sprintf (oname, "nmth%06d.o", tmp_seq);
tmp_seq++;
@@ -1978,13 +1934,13 @@ make_singleton_name_thunk (import, parent)
bfd_set_arch_mach (abfd, pe_details->bfd_arch, 0);
symptr = 0;
- symtab = (asymbol **) xmalloc (3 * sizeof (asymbol *));
+ symtab = xmalloc (3 * sizeof (asymbol *));
id4 = quick_section (abfd, ".idata$4", SEC_HAS_CONTENTS, 2);
quick_symbol (abfd, U ("_nm_thnk_"), import, "", id4, BSF_GLOBAL, 0);
quick_symbol (abfd, U ("_nm_"), import, "", UNDSEC, BSF_GLOBAL, 0);
bfd_set_section_size (abfd, id4, 8);
- d4 = (unsigned char *) xmalloc (4);
+ d4 = xmalloc (4);
id4->contents = d4;
memset (d4, 0, 8);
quick_reloc (abfd, 0, BFD_RELOC_RVA, 2);
@@ -1999,22 +1955,21 @@ make_singleton_name_thunk (import, parent)
}
static char *
-make_import_fixup_mark (rel)
- arelent *rel;
+make_import_fixup_mark (arelent *rel)
{
/* We convert reloc to symbol, for later reference. */
static int counter;
static char *fixup_name = NULL;
static size_t buffer_len = 0;
- struct symbol_cache_entry *sym = *rel->sym_ptr_ptr;
+ struct bfd_symbol *sym = *rel->sym_ptr_ptr;
bfd *abfd = bfd_asymbol_bfd (sym);
struct bfd_link_hash_entry *bh;
if (!fixup_name)
{
- fixup_name = (char *) xmalloc (384);
+ fixup_name = xmalloc (384);
buffer_len = 384;
}
@@ -2027,7 +1982,7 @@ make_import_fixup_mark (rel)
/* New buffer size is length of symbol, plus 25, but
then rounded up to the nearest multiple of 128. */
buffer_len = ((strlen (sym->name) + 25) + 127) & ~127;
- fixup_name = (char *) xmalloc (buffer_len);
+ fixup_name = xmalloc (buffer_len);
}
sprintf (fixup_name, "__fu%d_%s", counter++, sym->name);
@@ -2057,18 +2012,17 @@ make_import_fixup_mark (rel)
.rva __fuNN_SYM (pointer to reference (address) in text) */
static bfd *
-make_import_fixup_entry (name, fixup_name, dll_symname, parent)
- const char *name;
- const char *fixup_name;
- const char *dll_symname;
- bfd *parent;
+make_import_fixup_entry (const char *name,
+ const char *fixup_name,
+ const char *dll_symname,
+ bfd *parent)
{
asection *id3;
unsigned char *d3;
char *oname;
bfd *abfd;
- oname = (char *) xmalloc (20);
+ oname = xmalloc (20);
sprintf (oname, "fu%06d.o", tmp_seq);
tmp_seq++;
@@ -2080,7 +2034,7 @@ make_import_fixup_entry (name, fixup_name, dll_symname, parent)
bfd_set_arch_mach (abfd, pe_details->bfd_arch, 0);
symptr = 0;
- symtab = (asymbol **) xmalloc (6 * sizeof (asymbol *));
+ symtab = xmalloc (6 * sizeof (asymbol *));
id3 = quick_section (abfd, ".idata$3", SEC_HAS_CONTENTS, 2);
#if 0
@@ -2091,7 +2045,7 @@ make_import_fixup_entry (name, fixup_name, dll_symname, parent)
quick_symbol (abfd, "", fixup_name, "", UNDSEC, BSF_GLOBAL, 0);
bfd_set_section_size (abfd, id3, 20);
- d3 = (unsigned char *) xmalloc (20);
+ d3 = xmalloc (20);
id3->contents = d3;
memset (d3, 0, 20);
@@ -2113,18 +2067,17 @@ make_import_fixup_entry (name, fixup_name, dll_symname, parent)
.rva __fuNN_SYM (pointer to reference (address) in text) */
static bfd *
-make_runtime_pseudo_reloc (name, fixup_name, addend, parent)
- const char *name ATTRIBUTE_UNUSED;
- const char *fixup_name;
- int addend;
- bfd *parent;
+make_runtime_pseudo_reloc (const char *name ATTRIBUTE_UNUSED,
+ const char *fixup_name,
+ int addend,
+ bfd *parent)
{
asection *rt_rel;
unsigned char *rt_rel_d;
char *oname;
bfd *abfd;
- oname = (char *) xmalloc (20);
+ oname = xmalloc (20);
sprintf (oname, "rtr%06d.o", tmp_seq);
tmp_seq++;
@@ -2136,13 +2089,14 @@ make_runtime_pseudo_reloc (name, fixup_name, addend, parent)
bfd_set_arch_mach (abfd, pe_details->bfd_arch, 0);
symptr = 0;
- symtab = (asymbol **) xmalloc (2 * sizeof (asymbol *));
- rt_rel = quick_section (abfd, ".rdata_runtime_pseudo_reloc", SEC_HAS_CONTENTS, 2);
+ symtab = xmalloc (2 * sizeof (asymbol *));
+ rt_rel = quick_section (abfd, ".rdata_runtime_pseudo_reloc",
+ SEC_HAS_CONTENTS, 2);
quick_symbol (abfd, "", fixup_name, "", UNDSEC, BSF_GLOBAL, 0);
bfd_set_section_size (abfd, rt_rel, 8);
- rt_rel_d = (unsigned char *) xmalloc (8);
+ rt_rel_d = xmalloc (8);
rt_rel->contents = rt_rel_d;
memset (rt_rel_d, 0, 8);
bfd_put_32 (abfd, addend, rt_rel_d);
@@ -2162,15 +2116,14 @@ make_runtime_pseudo_reloc (name, fixup_name, addend, parent)
.rva __pei386_runtime_relocator */
static bfd *
-pe_create_runtime_relocator_reference (parent)
- bfd *parent;
+pe_create_runtime_relocator_reference (bfd *parent)
{
asection *extern_rt_rel;
unsigned char *extern_rt_rel_d;
char *oname;
bfd *abfd;
- oname = (char *) xmalloc (20);
+ oname = xmalloc (20);
sprintf (oname, "ertr%06d.o", tmp_seq);
tmp_seq++;
@@ -2182,13 +2135,14 @@ pe_create_runtime_relocator_reference (parent)
bfd_set_arch_mach (abfd, pe_details->bfd_arch, 0);
symptr = 0;
- symtab = (asymbol **) xmalloc (2 * sizeof (asymbol *));
+ symtab = xmalloc (2 * sizeof (asymbol *));
extern_rt_rel = quick_section (abfd, ".rdata", SEC_HAS_CONTENTS, 2);
- quick_symbol (abfd, "", "__pei386_runtime_relocator", "", UNDSEC, BSF_NO_FLAGS, 0);
+ quick_symbol (abfd, "", "__pei386_runtime_relocator", "", UNDSEC,
+ BSF_NO_FLAGS, 0);
bfd_set_section_size (abfd, extern_rt_rel, 4);
- extern_rt_rel_d = (unsigned char *) xmalloc (4);
+ extern_rt_rel_d = xmalloc (4);
extern_rt_rel->contents = extern_rt_rel_d;
quick_reloc (abfd, 0, BFD_RELOC_RVA, 1);
@@ -2203,13 +2157,10 @@ pe_create_runtime_relocator_reference (parent)
}
void
-pe_create_import_fixup (rel, s, addend)
- arelent *rel;
- asection *s;
- int addend;
+pe_create_import_fixup (arelent *rel, asection *s, int addend)
{
char buf[300];
- struct symbol_cache_entry *sym = *rel->sym_ptr_ptr;
+ struct bfd_symbol *sym = *rel->sym_ptr_ptr;
struct bfd_link_hash_entry *name_thunk_sym;
const char *name = sym->name;
char *fixup_name = make_import_fixup_mark (rel);
@@ -2226,6 +2177,7 @@ pe_create_import_fixup (rel, s, addend)
/* If we ever use autoimport, we have to cast text section writable. */
config.text_read_only = FALSE;
+ output_bfd->flags &= ~WP_TEXT;
}
if (addend == 0 || link_info.pei386_runtime_pseudo_reloc)
@@ -2265,9 +2217,7 @@ pe_create_import_fixup (rel, s, addend)
void
-pe_dll_generate_implib (def, impfilename)
- def_file *def;
- const char *impfilename;
+pe_dll_generate_implib (def_file *def, const char *impfilename)
{
int i;
bfd *ar_head;
@@ -2307,6 +2257,9 @@ pe_dll_generate_implib (def, 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;
@@ -2339,10 +2292,7 @@ pe_dll_generate_implib (def, impfilename)
}
static void
-add_bfd_to_link (abfd, name, link_info)
- bfd *abfd;
- const char *name;
- struct bfd_link_info *link_info;
+add_bfd_to_link (bfd *abfd, const char *name, struct bfd_link_info *link_info)
{
lang_input_statement_type *fake_file;
@@ -2357,9 +2307,7 @@ add_bfd_to_link (abfd, name, link_info)
}
void
-pe_process_import_defs (output_bfd, link_info)
- bfd *output_bfd;
- struct bfd_link_info *link_info;
+pe_process_import_defs (bfd *output_bfd, struct bfd_link_info *link_info)
{
def_file_module *module;
@@ -2387,12 +2335,15 @@ pe_process_import_defs (output_bfd, link_info)
struct bfd_link_hash_entry *blhe;
int lead_at = (*pe_def_file->imports[i].internal_name == '@');
/* See if we need this import. */
- char *name = (char *) xmalloc (strlen (pe_def_file->imports[i].internal_name) + 2 + 6);
+ size_t len = strlen (pe_def_file->imports[i].internal_name);
+ char *name = xmalloc (len + 2 + 6);
if (lead_at)
- sprintf (name, "%s%s", "", pe_def_file->imports[i].internal_name);
+ sprintf (name, "%s%s", "",
+ pe_def_file->imports[i].internal_name);
else
- sprintf (name, "%s%s",U (""), pe_def_file->imports[i].internal_name);
+ sprintf (name, "%s%s",U (""),
+ pe_def_file->imports[i].internal_name);
blhe = bfd_link_hash_lookup (link_info->hash, name,
FALSE, FALSE, FALSE);
@@ -2448,9 +2399,7 @@ pe_process_import_defs (output_bfd, link_info)
handled, FALSE if not. */
static unsigned int
-pe_get16 (abfd, where)
- bfd *abfd;
- int where;
+pe_get16 (bfd *abfd, int where)
{
unsigned char b[2];
@@ -2460,9 +2409,7 @@ pe_get16 (abfd, where)
}
static unsigned int
-pe_get32 (abfd, where)
- bfd *abfd;
- int where;
+pe_get32 (bfd *abfd, int where)
{
unsigned char b[4];
@@ -2474,8 +2421,7 @@ pe_get32 (abfd, where)
#if 0 /* This is not currently used. */
static unsigned int
-pe_as16 (ptr)
- void *ptr;
+pe_as16 (void *ptr)
{
unsigned char *b = ptr;
@@ -2485,8 +2431,7 @@ pe_as16 (ptr)
#endif
static unsigned int
-pe_as32 (ptr)
- void *ptr;
+pe_as32 (void *ptr)
{
unsigned char *b = ptr;
@@ -2494,8 +2439,7 @@ pe_as32 (ptr)
}
bfd_boolean
-pe_implied_import_dll (filename)
- const char *filename;
+pe_implied_import_dll (const char *filename)
{
bfd *dll;
unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
@@ -2507,9 +2451,11 @@ pe_implied_import_dll (filename)
/* Initialization with start > end guarantees that is_data
will not be set by mistake, and avoids compiler warning. */
unsigned long data_start = 1;
- unsigned long data_end = 0;
- unsigned long bss_start = 1;
- unsigned long bss_end = 0;
+ unsigned long data_end = 0;
+ unsigned long rdata_start = 1;
+ unsigned long rdata_end = 0;
+ unsigned long bss_start = 1;
+ unsigned long bss_end = 0;
/* No, I can't use bfd here. kernel32.dll puts its export table in
the middle of the .rdata section. */
@@ -2542,7 +2488,7 @@ pe_implied_import_dll (filename)
pe_get16 (dll, pe_header_offset + 4 + 16));
expptr = 0;
- /* Get the rva and size of the export section. */
+ /* Get the rva and size of the export section. */
for (i = 0; i < nsections; i++)
{
char sname[8];
@@ -2564,7 +2510,7 @@ pe_implied_import_dll (filename)
}
/* Scan sections and store the base and size of the
- data and bss segments in data/base_start/end. */
+ data and bss segments in data/base_start/end. */
for (i = 0; i < nsections; i++)
{
unsigned long secptr1 = secptr + 40 * i;
@@ -2585,7 +2531,16 @@ pe_implied_import_dll (filename)
if (pe_dll_extra_pe_debug)
printf ("%s %s: 0x%08lx-0x%08lx (0x%08lx)\n",
__FUNCTION__, sec_name, vaddr, vaddr + vsize, flags);
- }
+ }
+ else if (strcmp(sec_name,".rdata") == 0)
+ {
+ rdata_start = vaddr;
+ rdata_end = vaddr + vsize;
+
+ if (pe_dll_extra_pe_debug)
+ printf ("%s %s: 0x%08lx-0x%08lx (0x%08lx)\n",
+ __FUNCTION__, sec_name, vaddr, vaddr + vsize, flags);
+ }
else if (strcmp (sec_name,".bss") == 0)
{
bss_start = vaddr;
@@ -2597,7 +2552,7 @@ pe_implied_import_dll (filename)
}
}
- expdata = (unsigned char *) xmalloc (export_size);
+ expdata = xmalloc (export_size);
bfd_seek (dll, (file_ptr) expptr, SEEK_SET);
bfd_bread (expdata, (bfd_size_type) export_size, dll);
erva = expdata - export_rva;
@@ -2631,7 +2586,7 @@ pe_implied_import_dll (filename)
/* Pointer to the names vector. */
unsigned long name_rva = pe_as32 (erva + name_rvas + i * 4);
def_file_import *imp;
- /* Pointer to the function address vector. */
+ /* Pointer to the function address vector. */
unsigned long func_rva = pe_as32 (erva + exp_funcbase + i * 4);
int is_data = 0;
@@ -2639,16 +2594,18 @@ pe_implied_import_dll (filename)
exported in buggy auto-import releases. */
if (strncmp (erva + name_rva, "_nm_", 4) != 0)
{
- /* is_data is true if the address is in the data or bss segment. */
+ /* is_data is true if the address is in the data, rdata or bss
+ segment. */
is_data =
(func_rva >= data_start && func_rva < data_end)
+ || (func_rva >= rdata_start && func_rva < rdata_end)
|| (func_rva >= bss_start && func_rva < bss_end);
imp = def_file_add_import (pe_def_file, erva + name_rva,
dll_name, i, 0);
/* Mark symbol type. */
imp->data = is_data;
-
+
if (pe_dll_extra_pe_debug)
printf ("%s dll-name: %s sym: %s addr: 0x%lx %s\n",
__FUNCTION__, dll_name, erva + name_rva,
@@ -2665,14 +2622,12 @@ pe_implied_import_dll (filename)
can put the right values in place. */
void
-pe_dll_build_sections (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+pe_dll_build_sections (bfd *abfd, struct bfd_link_info *info)
{
pe_dll_id_target (bfd_get_target (abfd));
process_def_file (abfd, info);
- if (pe_def_file->num_exports == 0 && !(info->shared))
+ if (pe_def_file->num_exports == 0 && !info->shared)
return;
generate_edata (abfd, info);
@@ -2680,18 +2635,14 @@ pe_dll_build_sections (abfd, info)
}
void
-pe_exe_build_sections (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info ATTRIBUTE_UNUSED;
+pe_exe_build_sections (bfd *abfd, struct bfd_link_info *info ATTRIBUTE_UNUSED)
{
pe_dll_id_target (bfd_get_target (abfd));
build_filler_bfd (0);
}
void
-pe_dll_fill_sections (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+pe_dll_fill_sections (bfd *abfd, struct bfd_link_info *info)
{
pe_dll_id_target (bfd_get_target (abfd));
image_base = pe_data (abfd)->pe_opthdr.ImageBase;
@@ -2703,15 +2654,13 @@ pe_dll_fill_sections (abfd, info)
/* Resize the sections. */
lang_size_sections (stat_ptr->head, abs_output_section,
- &stat_ptr->head, 0, (bfd_vma) 0, NULL, TRUE);
+ &stat_ptr->head, 0, 0, NULL, TRUE);
/* Redo special stuff. */
ldemul_after_allocation ();
/* Do the assignments again. */
- lang_do_assignments (stat_ptr->head,
- abs_output_section,
- (fill_type *) 0, (bfd_vma) 0);
+ lang_do_assignments (stat_ptr->head, abs_output_section, NULL, 0);
}
fill_edata (abfd, info);
@@ -2724,9 +2673,7 @@ pe_dll_fill_sections (abfd, info)
}
void
-pe_exe_fill_sections (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+pe_exe_fill_sections (bfd *abfd, struct bfd_link_info *info)
{
pe_dll_id_target (bfd_get_target (abfd));
image_base = pe_data (abfd)->pe_opthdr.ImageBase;
@@ -2738,15 +2685,13 @@ pe_exe_fill_sections (abfd, info)
/* Resize the sections. */
lang_size_sections (stat_ptr->head, abs_output_section,
- &stat_ptr->head, 0, (bfd_vma) 0, NULL, TRUE);
+ &stat_ptr->head, 0, 0, NULL, TRUE);
/* Redo special stuff. */
ldemul_after_allocation ();
/* Do the assignments again. */
- lang_do_assignments (stat_ptr->head,
- abs_output_section,
- (fill_type *) 0, (bfd_vma) 0);
+ lang_do_assignments (stat_ptr->head, abs_output_section, NULL, 0);
}
reloc_s->contents = reloc_d;
}
diff --git a/gnu/usr.bin/binutils/ld/pe-dll.h b/gnu/usr.bin/binutils/ld/pe-dll.h
index 9c50f5e3ee7..029bf339513 100644
--- a/gnu/usr.bin/binutils/ld/pe-dll.h
+++ b/gnu/usr.bin/binutils/ld/pe-dll.h
@@ -1,5 +1,5 @@
/* pe-dll.h: Header file for routines used to build Windows DLLs.
- Copyright 1999, 2000, 2002 Free Software Foundation, Inc.
+ Copyright 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
This file is part of GLD, the Gnu Linker.
@@ -36,28 +36,27 @@ extern int pe_dll_compat_implib;
extern int pe_dll_extra_pe_debug;
extern void pe_dll_id_target
- PARAMS ((const char *));
+ (const char *);
extern void pe_dll_add_excludes
- PARAMS ((const char *, const int));
+ (const char *, const int);
extern void pe_dll_generate_def_file
- PARAMS ((const char *));
+ (const char *);
extern void pe_dll_generate_implib
- PARAMS ((def_file *, const char *));
+ (def_file *, const char *);
extern void pe_process_import_defs
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean pe_implied_import_dll
- PARAMS ((const char *));
+ (const char *);
extern void pe_dll_build_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern void pe_exe_build_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern void pe_dll_fill_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern void pe_exe_fill_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern void pe_walk_relocs_of_symbol
- PARAMS ((struct bfd_link_info * info, const char *name,
- int (*cb) (arelent *, asection *)));
+ (struct bfd_link_info *, const char *, int (*) (arelent *, asection *));
extern void pe_create_import_fixup
- PARAMS ((arelent * rel, asection *, int));
+ (arelent * rel, asection *, int);
#endif /* PE_DLL_H */
diff --git a/gnu/usr.bin/binutils/ld/po/Make-in b/gnu/usr.bin/binutils/ld/po/Make-in
index 4291090c000..6b6cfda3613 100644
--- a/gnu/usr.bin/binutils/ld/po/Make-in
+++ b/gnu/usr.bin/binutils/ld/po/Make-in
@@ -24,6 +24,8 @@ gnulocaledir = $(prefix)/share/locale
gettextsrcdir = $(prefix)/share/gettext/po
subdir = po
+DESTDIR =
+
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -111,9 +113,9 @@ install-data: install-data-@USE_NLS@
install-data-no: all
install-data-yes: all
if test -r $(MKINSTALLDIRS); then \
- $(MKINSTALLDIRS) $(datadir); \
+ $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
else \
- $(top_srcdir)/mkinstalldirs $(datadir); \
+ $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \
fi
@catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
@@ -123,7 +125,7 @@ install-data-yes: all
*) destdir=$(localedir);; \
esac; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
- dir=$$destdir/$$lang/LC_MESSAGES; \
+ dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
if test -r $(MKINSTALLDIRS); then \
$(MKINSTALLDIRS) $$dir; \
else \
@@ -153,12 +155,12 @@ install-data-yes: all
done
if test "$(PACKAGE)" = "gettext"; then \
if test -r $(MKINSTALLDIRS); then \
- $(MKINSTALLDIRS) $(gettextsrcdir); \
+ $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
else \
- $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
+ $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \
fi; \
$(INSTALL_DATA) $(srcdir)/Makefile.in.in \
- $(gettextsrcdir)/Makefile.in.in; \
+ $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
else \
: ; \
fi
@@ -171,12 +173,12 @@ uninstall:
for cat in $$catalogs; do \
cat=`basename $$cat`; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
- rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
- rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
- rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
- rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
+ rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
+ rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
done
- rm -f $(gettextsrcdir)/po-Makefile.in.in
+ rm -f $(DESTDIR)$(gettextsrcdir)/po-Makefile.in.in
check: all
diff --git a/gnu/usr.bin/binutils/ld/po/POTFILES.in b/gnu/usr.bin/binutils/ld/po/POTFILES.in
index f7a614d82d9..55ae6ff2b99 100644
--- a/gnu/usr.bin/binutils/ld/po/POTFILES.in
+++ b/gnu/usr.bin/binutils/ld/po/POTFILES.in
@@ -1,7 +1,6 @@
deffile.h
emultempl/armcoff.em
emultempl/pe.em
-ld.h
ldcref.c
ldctor.c
ldctor.h
@@ -11,6 +10,7 @@ ldexp.c
ldexp.h
ldfile.c
ldfile.h
+ld.h
ldlang.c
ldlang.h
ldlex.h
diff --git a/gnu/usr.bin/binutils/ld/po/da.gmo b/gnu/usr.bin/binutils/ld/po/da.gmo
new file mode 100644
index 00000000000..495c6034cd0
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/po/da.gmo
Binary files differ
diff --git a/gnu/usr.bin/binutils/ld/po/da.po b/gnu/usr.bin/binutils/ld/po/da.po
new file mode 100644
index 00000000000..37457b76b29
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/po/da.po
@@ -0,0 +1,1702 @@
+# Danish messages for ld.
+# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+# Keld Simonsen <keld@dkuug.dk>, 2002
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ld 2.12.91\n"
+"POT-Creation-Date: 2002-07-23 15:58-0400\n"
+"PO-Revision-Date: 2002-11-10 12:31+0100\n"
+"Last-Translator: Keld Simonsen <keld@dkuug.dk>\n"
+"Language-Team: Danish <dansk@klid.dk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: emultempl/armcoff.em:71
+msgid " --support-old-code Support interworking with old code\n"
+msgstr " --support-old-code Understøt samvirke med gammel kode\n"
+
+#: emultempl/armcoff.em:72
+msgid " --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n"
+msgstr ""
+" --thumb-entry=<sym> Indstil indgangspunktet til at være tommelsymbolet\n"
+" <sym>\n"
+
+#: emultempl/armcoff.em:141
+#, c-format
+msgid "Errors encountered processing file %s"
+msgstr "Fejl skete ved behandling af filen %s"
+
+#: emultempl/armcoff.em:207 emultempl/pe.em:1422
+msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
+msgstr "%P: advarsel: \"--thumb-entry %s\" tilsidesætter \"-e %s\"\n"
+
+#: emultempl/armcoff.em:212 emultempl/pe.em:1427
+msgid "%P: warning: connot find thumb start symbol %s\n"
+msgstr "%P: advarsel: kan ikke finde tommelstartsymbol %s\n"
+
+#: emultempl/pe.em:317
+msgid " --base_file <basefile> Generate a base file for relocatable DLLs\n"
+msgstr ""
+" --base_file <basefil> Generér en basefil for\n"
+" relokérbare DLL'er\n"
+
+#: emultempl/pe.em:318
+msgid " --dll Set image base to the default for DLLs\n"
+msgstr ""
+" --dll Sæt billedbase til standard for\n"
+" DLL'er\n"
+
+#: emultempl/pe.em:319
+msgid " --file-alignment <size> Set file alignment\n"
+msgstr " --file-alignment <størrelse> Sæt filjustering\n"
+
+#: emultempl/pe.em:320
+msgid " --heap <size> Set initial size of the heap\n"
+msgstr " --heap <størrelse> Sæt initiel størrelse på bunken\n"
+
+#: emultempl/pe.em:321
+msgid " --image-base <address> Set start address of the executable\n"
+msgstr " --image-base <adresse> Sæt startadressen for den kørbare\n"
+
+#: emultempl/pe.em:322
+msgid " --major-image-version <number> Set version number of the executable\n"
+msgstr " --major-image-version <nummer> Sæt versionsnummer for den kørbare\n"
+
+#: emultempl/pe.em:323
+msgid " --major-os-version <number> Set minimum required OS version\n"
+msgstr " --major-os-version <nummer> Sæt laveste krævet OS-version\n"
+
+#: emultempl/pe.em:324
+msgid " --major-subsystem-version <number> Set minimum required OS subsystem version\n"
+msgstr ""
+" --major-subsystem-version <nummer> Sæt laveste nødvendige\n"
+" OS-undersystemsversion\n"
+
+#: emultempl/pe.em:325
+msgid " --minor-image-version <number> Set revision number of the executable\n"
+msgstr ""
+" --minor-image-version <nummer> Sæt underrevisionsnummer for\n"
+" den kørbare\n"
+
+#: emultempl/pe.em:326
+msgid " --minor-os-version <number> Set minimum required OS revision\n"
+msgstr " --minor-os-version <nummer> Sæt laveste krævet OS-revision\n"
+
+#: emultempl/pe.em:327
+msgid " --minor-subsystem-version <number> Set minimum required OS subsystem revision\n"
+msgstr ""
+" --minor-subsystem-version <nummer> Sæt laveste nødvendige\n"
+" OS-undersystemsrevision\n"
+
+#: emultempl/pe.em:328
+msgid " --section-alignment <size> Set section alignment\n"
+msgstr " --section-alignment <størrelse> Sæt sektionsjustering\n"
+
+#: emultempl/pe.em:329
+msgid " --stack <size> Set size of the initial stack\n"
+msgstr " --stack <størrelse> Sæt størrelse på initiel stak\n"
+
+#: emultempl/pe.em:330
+msgid " --subsystem <name>[:<version>] Set required OS subsystem [& version]\n"
+msgstr ""
+" --subsystem <navn>[:<version>] Sæt nødvendigt OS-undersystem\n"
+" [og krævet version]\n"
+
+#: emultempl/pe.em:331
+msgid " --support-old-code Support interworking with old code\n"
+msgstr " --support-old-code Understøttelse samvirken med gammel kode\n"
+
+#: emultempl/pe.em:332
+msgid " --thumb-entry=<symbol> Set the entry point to be Thumb <symbol>\n"
+msgstr ""
+" --thumb-entry=<symbol> Sæt indgangspunktet til at\n"
+" være tommel <symbol>\n"
+
+#: emultempl/pe.em:334
+msgid " --add-stdcall-alias Export symbols with and without @nn\n"
+msgstr " --add-stdcall-alias Eksportér symboler med og uden @nn\n"
+
+#: emultempl/pe.em:335
+msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n"
+msgstr " --disable-stdcall-fixup Lænk ikke _sym til _sym@nn\n"
+
+#: emultempl/pe.em:336
+msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n"
+msgstr " --enable-stdcall-fixup Lænk _sym til _sym@nn uden advarsler\n"
+
+#: emultempl/pe.em:337
+msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"
+msgstr ""
+" --exclude-symbols sym,sym,... Udelad symboler fra automatisk\n"
+" export\n"
+
+#: emultempl/pe.em:338
+msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n"
+msgstr ""
+" --exclude-libs bibl,bibl,... Udelad bibliotek fra automatisk\n"
+" export\n"
+
+#: emultempl/pe.em:339
+msgid " --export-all-symbols Automatically export all globals to DLL\n"
+msgstr ""
+" --export-all-symbols Eksportér automatisk alle symboler\n"
+" til DLL\n"
+
+#: emultempl/pe.em:340
+msgid " --kill-at Remove @nn from exported symbols\n"
+msgstr " --kill-at Fjern @nn fra eksporterede symboler\n"
+
+#: emultempl/pe.em:341
+msgid " --out-implib <file> Generate import library\n"
+msgstr " --out-implib <fil> Generér importbibliotek\n"
+
+#: emultempl/pe.em:342
+msgid " --output-def <file> Generate a .DEF file for the built DLL\n"
+msgstr " --output-def <fil> Generér en .DEF-fil for bygget DLL\n"
+
+#: emultempl/pe.em:343
+msgid " --warn-duplicate-exports Warn about duplicate exports.\n"
+msgstr " --warn-duplicate-exports Advar om dublet-eksporter.\n"
+
+#: emultempl/pe.em:344
+msgid ""
+" --compat-implib Create backward compatible import libs;\n"
+" create __imp_<SYMBOL> as well.\n"
+msgstr ""
+" --compat-implib Opret bagudkompatible importbiblioteker;\n"
+" og opret også __imp_<SYMBOL>.\n"
+
+#: emultempl/pe.em:346
+msgid ""
+" --enable-auto-image-base Automatically choose image base for DLLs\n"
+" unless user specifies one\n"
+msgstr ""
+" --enable-auto-image-base Vælg automatisk billedbase for DLL'er\n"
+" med mindre brugeren ikke angiver én\n"
+
+#: emultempl/pe.em:348
+msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n"
+msgstr ""
+" --disable-auto-image-base Vælg ikke billedbase automatisk\n"
+" (standard).\n"
+
+#: emultempl/pe.em:349
+msgid ""
+" --dll-search-prefix=<string> When linking dynamically to a dll without an\n"
+" importlib, use <string><basename>.dll \n"
+" in preference to lib<basename>.dll \n"
+msgstr ""
+" --dll-search-prefix=<streng> Brug <streng><basenavn>.dll i stedet\n"
+" for lib<basenavn>.dll ved dynamisk\n"
+" lænkning uden et importbibliotek\n"
+
+#: emultempl/pe.em:352
+msgid ""
+" --enable-auto-import Do sophistcated linking of _sym to \n"
+" __imp_sym for DATA references\n"
+msgstr ""
+" --enable-auto-import Udfør sofistikeret lænkning af _sym til\n"
+" __imp_sym for DATA-referencer\n"
+
+#: emultempl/pe.em:354
+msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n"
+msgstr ""
+" --disable-auto-import Importér ikke DATA-objekter fra DLL'er\n"
+" automatisk\n"
+
+#: emultempl/pe.em:355
+msgid ""
+" --enable-extra-pe-debug Enable verbose debug output when building\n"
+" or linking to DLLs (esp. auto-import)\n"
+msgstr ""
+" --enable-extra-pe-debug Brug udførlig fejlsøgningsuddata ved\n"
+" bygning af eller lænkning til DLL'er\n"
+" (især automatisk import)\n"
+
+#: emultempl/pe.em:424
+msgid "%P: warning: bad version number in -subsystem option\n"
+msgstr "%P: advarsel: fejlagtigt nummer i flaget -subsystem\n"
+
+#: emultempl/pe.em:460
+msgid "%P%F: invalid subsystem type %s\n"
+msgstr "%P%F: ugyldig type af undersystem %s\n"
+
+#: emultempl/pe.em:475
+msgid "%P%F: invalid hex number for PE parameter '%s'\n"
+msgstr "%P%F: ugyldigt heksadecimalt tal for PE-parameteren \"%s\"\n"
+
+#: emultempl/pe.em:493
+msgid "%P%F: strange hex info for PE parameter '%s'\n"
+msgstr "%P%F: mærkelig heksadecimal information for PE-parameteren \"%s\"\n"
+
+#: emultempl/pe.em:532
+#, c-format
+msgid "%s: Can't open base file %s\n"
+msgstr "%s: Kan ikke åbne basefilen %s\n"
+
+#: emultempl/pe.em:738
+msgid "%P: warning, file alignment > section alignment.\n"
+msgstr "%P: advarsel, filjusteringen > sektionsjusteringen.\n"
+
+#: emultempl/pe.em:822 emultempl/pe.em:848
+#, c-format
+msgid "Warning: resolving %s by linking to %s\n"
+msgstr "Advarsel: løser %s ved at lænke til %s\n"
+
+#: emultempl/pe.em:827 emultempl/pe.em:853
+msgid "Use --enable-stdcall-fixup to disable these warnings\n"
+msgstr "Brug --enable-stdcall-fixup til at deaktivere disse advarsler\n"
+
+#: emultempl/pe.em:828 emultempl/pe.em:854
+msgid "Use --disable-stdcall-fixup to disable these fixups\n"
+msgstr "Brug --disable-stdcall-fixup til at deaktivere disse rettelser\n"
+
+#: emultempl/pe.em:879
+msgid "%C: Cannot get section contents - auto-import exception\n"
+msgstr "%C: Kan ikke få fat i sektionsindhold - undtagen 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: variablen \"%T\" kan ikke importeres automatisk. Læs dokumentationen for ld's --enable-auto-import for detaljer.\n"
+
+#: emultempl/pe.em:916
+#, c-format
+msgid "Info: resolving %s by linking to %s (auto-import)\n"
+msgstr "Info: løser %s ved at lænke til %s (automatisk import)\n"
+
+#: emultempl/pe.em:997
+msgid "%F%P: PE operations on non PE file.\n"
+msgstr "%F%P: PE-operationer på fil som ikke er PE.\n"
+
+#: emultempl/pe.em:1226
+#, c-format
+msgid "Errors encountered processing file %s\n"
+msgstr "Fejl opstod ved behandling af filen %s\n"
+
+#: emultempl/pe.em:1249
+#, c-format
+msgid "Errors encountered processing file %s for interworking"
+msgstr "Fejl opstod ved behandling af filen %s for interaktion"
+
+#: emultempl/pe.em:1305 ldlang.c:2065 ldlang.c:4608 ldlang.c:4641
+#: ldmain.c:1061
+msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
+msgstr "%P%F: bfd_link_hash_lookup mislykkedes: %E\n"
+
+#: ldcref.c:158
+msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n"
+msgstr "%X%P: bfd_hash_table_init af krydsreferencetabellen mislykkedes: %E\n"
+
+#: ldcref.c:164
+msgid "%X%P: cref_hash_lookup failed: %E\n"
+msgstr "%X%P: cref_hash_lookup mislykkedes: %E\n"
+
+#: ldcref.c:235
+msgid ""
+"\n"
+"Cross Reference Table\n"
+"\n"
+msgstr ""
+"\n"
+"Krydsreferencetabel\n"
+"\n"
+
+#: ldcref.c:236
+msgid "Symbol"
+msgstr "Symbol"
+
+#: ldcref.c:244
+msgid "File\n"
+msgstr "Fil\n"
+
+#: ldcref.c:248
+msgid "No symbols\n"
+msgstr "Ingen symboler\n"
+
+#: ldcref.c:400
+msgid "%P: symbol `%T' missing from main hash table\n"
+msgstr "%P: symbol \"%T\" mangler fra hastabellen\n"
+
+#: ldcref.c:465
+msgid "%B%F: could not read symbols; %E\n"
+msgstr "%B%F: kunne ikke læse symboler; %E\n"
+
+#: ldcref.c:469 ldmain.c:1127 ldmain.c:1131
+msgid "%B%F: could not read symbols: %E\n"
+msgstr "%B%F: kunne ikke læse symboler: %E\n"
+
+#: ldcref.c:537 ldcref.c:544 ldmain.c:1177 ldmain.c:1184
+msgid "%B%F: could not read relocs: %E\n"
+msgstr "%B%F: kunne ikke læse relokeringer: %E\n"
+
+#. We found a reloc for the symbol. The symbol is defined
+#. 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
+msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n"
+msgstr "%X%C: forbudt krydsreference fra %s til \"%T\" i %s\n"
+
+#: ldctor.c:88
+msgid "%P%X: Different relocs used in set %s\n"
+msgstr "%P%X: Forskellige relokeringer brugt i gruppen %s\n"
+
+#: ldctor.c:106
+msgid "%P%X: Different object file formats composing set %s\n"
+msgstr "%P%X: Forskellige objektfilformater udgør gruppen %s\n"
+
+#: ldctor.c:288 ldctor.c:302
+msgid "%P%X: %s does not support reloc %s for set %s\n"
+msgstr "%P%X: %s understøtter ikke relokeringen %s for gruppen %s\n"
+
+#: ldctor.c:323
+msgid "%P%X: Unsupported size %d for set %s\n"
+msgstr "%P%X: Størrelsen %d for gruppen %s understøttes ikke\n"
+
+#: ldctor.c:344
+msgid ""
+"\n"
+"Set Symbol\n"
+"\n"
+msgstr ""
+"\n"
+"Gruppe Symbol\n"
+"\n"
+
+#: ldemul.c:225
+msgid "%S SYSLIB ignored\n"
+msgstr "%S SYSLIB ignoreredes\n"
+
+#: ldemul.c:232
+msgid "%S HLL ignored\n"
+msgstr "%S HLL ignoreredes\n"
+
+#: ldemul.c:253
+msgid "%P: unrecognised emulation mode: %s\n"
+msgstr "%P: ukendt emuleringstilstand: %s\n"
+
+#: ldemul.c:254
+msgid "Supported emulations: "
+msgstr "Emuleringer som understøttes: "
+
+#: ldemul.c:298
+msgid " no emulation specific options.\n"
+msgstr " ingen emuleringsspecifikke flag.\n"
+
+#: ldexp.c:174
+msgid "%F%P: %s uses undefined section %s\n"
+msgstr "%F%P: %s bruger udefineret sektion %s\n"
+
+#: ldexp.c:176
+msgid "%F%P: %s forward reference of section %s\n"
+msgstr "%F%P: %s fremadreference af sektionen %s\n"
+
+#: ldexp.c:304
+msgid "%F%S %% by zero\n"
+msgstr "%F%S %% med nul\n"
+
+#: ldexp.c:311
+msgid "%F%S / by zero\n"
+msgstr "%F%S / med nul\n"
+
+#: ldexp.c:463
+msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
+msgstr "%X%S: uløseligt symbol \"%s\" refereredes i udtrykket\n"
+
+#: ldexp.c:483
+msgid "%F%S: undefined symbol `%s' referenced in expression\n"
+msgstr "%F%S: udefinerede symbol \"%s\" refereredes i udtrykket\n"
+
+#: ldexp.c:685
+msgid "%F%S can not PROVIDE assignment to location counter\n"
+msgstr "%F%S kan ikke LEVERE tildeling til pladsregnere\n"
+
+#: ldexp.c:695
+msgid "%F%S invalid assignment to location counter\n"
+msgstr "%F%S ugyldig tildeling til pladsregnere\n"
+
+#: ldexp.c:699
+msgid "%F%S assignment to location counter invalid outside of SECTION\n"
+msgstr "%F%S tildeling til pladsregnere som er ugyldig uden for SEKTION\n"
+
+#: ldexp.c:708
+msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
+msgstr "%F%S kan ikke flytte pladsregnere bagud (fra %V til %V)\n"
+
+#: ldexp.c:735
+msgid "%P%F:%s: hash creation failed\n"
+msgstr "%P%F:%s: oprettelse af hash mislykkedes\n"
+
+#: ldexp.c:1037 ldexp.c:1071
+msgid "%F%S nonconstant expression for %s\n"
+msgstr "%F%S ikke-konstant udtryk for %s\n"
+
+#: ldexp.c:1126
+msgid "%F%S non constant expression for %s\n"
+msgstr "%F%S ikke-konstant udtryk for %s\n"
+
+#: ldfile.c:105
+#, c-format
+msgid "attempt to open %s failed\n"
+msgstr "forsøg på at åbne %s mislykkedes\n"
+
+#: ldfile.c:107
+#, c-format
+msgid "attempt to open %s succeeded\n"
+msgstr "forsøg på at åbne %s lykkedes\n"
+
+#: ldfile.c:113
+msgid "%F%P: invalid BFD target `%s'\n"
+msgstr "%F%P: ugyldigt BFD-mål \"%s\"\n"
+
+#: ldfile.c:142
+msgid "%P: skipping incompatible %s when searching for %s\n"
+msgstr "%P: hopper over inkompatibel %s ved søgning af %s\n"
+
+#: ldfile.c:234
+msgid "%F%P: cannot open %s for %s: %E\n"
+msgstr "%F%P: kan ikke åbne %s for %s: %E\n"
+
+#: ldfile.c:237
+msgid "%F%P: cannot open %s: %E\n"
+msgstr "%F%P: kan ikke åbne %s: %E\n"
+
+#: ldfile.c:267
+msgid "%F%P: cannot find %s\n"
+msgstr "%F%P: kan ikke finde %s\n"
+
+#: ldfile.c:286 ldfile.c:302
+#, c-format
+msgid "cannot find script file %s\n"
+msgstr "kan ikke finde skriptfilen %s\n"
+
+#: ldfile.c:288 ldfile.c:304
+#, c-format
+msgid "opened script file %s\n"
+msgstr "åbnede skriptfilen %s\n"
+
+#: ldfile.c:353
+msgid "%P%F: cannot open linker script file %s: %E\n"
+msgstr "%P%F: kan ikke åbne lænkerskriptfilen %s: %E\n"
+
+#: ldfile.c:391
+msgid "%P%F: unknown architecture: %s\n"
+msgstr "%P%F: ukendt arkitektur: %s\n"
+
+#: ldfile.c:407
+msgid "%P%F: target architecture respecified\n"
+msgstr "%P%F: målarkitekturen specificeredes igen\n"
+
+#: ldfile.c:461
+msgid "%P%F: cannot represent machine `%s'\n"
+msgstr "%P%F: kan ikke repræsentere maskinen \"%s\"\n"
+
+#: ldlang.c:784
+msgid ""
+"\n"
+"Memory Configuration\n"
+"\n"
+msgstr ""
+"\n"
+"Hukommelseskonfiguration\n"
+"\n"
+
+#: ldlang.c:786
+msgid "Name"
+msgstr "Navn"
+
+#: ldlang.c:786
+msgid "Origin"
+msgstr "Begyndelse"
+
+#: ldlang.c:786
+msgid "Length"
+msgstr "Længde"
+
+#: ldlang.c:786
+msgid "Attributes"
+msgstr "Attributter"
+
+#: ldlang.c:828
+msgid ""
+"\n"
+"Linker script and memory map\n"
+"\n"
+msgstr ""
+"\n"
+"Lænkerskript og hukommelsestabel\n"
+"\n"
+
+#: ldlang.c:845
+msgid "%P%F: Illegal use of `%s' section\n"
+msgstr "%P%F: Ikke tilladt brug af sektionen \"%s\"\n"
+
+#: ldlang.c:855
+msgid "%P%F: output format %s cannot represent section called %s\n"
+msgstr "%P%F: uddataformatet %s kan ikke repræsentere sektionen kaldet %s\n"
+
+#: ldlang.c:1016
+msgid "%P: %B: warning: ignoring duplicate section `%s'\n"
+msgstr "%P: %B: advarsel: ignorerer dublet-sektion \"%s\"\n"
+
+#: ldlang.c:1019
+msgid "%P: %B: warning: ignoring duplicate `%s' section symbol `%s'\n"
+msgstr "%P: %B: advarsel: ignorerer dobbelt \"%s\"-sektionssymbol \"%s\"\n"
+
+#: ldlang.c:1033
+msgid "%P: %B: warning: duplicate section `%s' has different size\n"
+msgstr "%P: %B: advarsel: dublet-sektion \"%s\" har anden størrelse\n"
+
+#: ldlang.c:1084
+msgid "%P%F: Failed to create hash table\n"
+msgstr "%P%F: Mislykkedes med at oprette hashtabel\n"
+
+#: ldlang.c:1503
+msgid "%B: file not recognized: %E\n"
+msgstr "%B: filen ikke genkendt: %E\n"
+
+#: ldlang.c:1504
+msgid "%B: matching formats:"
+msgstr "%B: matchende format:"
+
+#: ldlang.c:1511
+msgid "%F%B: file not recognized: %E\n"
+msgstr "%F%B: filen ikke genkendt: %E\n"
+
+#: ldlang.c:1567
+msgid "%F%B: member %B in archive is not an object\n"
+msgstr "%F%B: medlem %B i arkivet er ikke et objekt\n"
+
+#: ldlang.c:1578 ldlang.c:1592
+msgid "%F%B: could not read symbols: %E\n"
+msgstr "%F%B: kunne ikke læse symboler: %E\n"
+
+#: ldlang.c:1853
+msgid "%P: warning: could not find any targets that match endianness requirement\n"
+msgstr "%P: advarsel: kunne ikke finde nogen mål som matcher kravet på endianess\n"
+
+#: ldlang.c:1866
+msgid "%P%F: target %s not found\n"
+msgstr "%P%F: målet %s fandtes ikke\n"
+
+#: ldlang.c:1868
+msgid "%P%F: cannot open output file %s: %E\n"
+msgstr "%P%F: kan ikke åbne uddatafilen %s: %E\n"
+
+#: ldlang.c:1878
+msgid "%P%F:%s: can not make object file: %E\n"
+msgstr "%P%F:%s: kan ikke oprette objektfilen: %E\n"
+
+#: ldlang.c:1882
+msgid "%P%F:%s: can not set architecture: %E\n"
+msgstr "%P%F:%s: kan ikke sætte arkitektur: %E\n"
+
+#: ldlang.c:1886
+msgid "%P%F: can not create link hash table: %E\n"
+msgstr "%P%F: kan ikke oprette hashtabel over lænker: %E\n"
+
+#: ldlang.c:2235
+msgid " load address 0x%V"
+msgstr " indlæsningsadresse 0x%V"
+
+#: ldlang.c:2375
+msgid "%W (size before relaxing)\n"
+msgstr "%W (størrelse inden forenkling)\n"
+
+#: ldlang.c:2462
+#, c-format
+msgid "Address of section %s set to "
+msgstr "Adressen på sektionen %s sat til "
+
+#: ldlang.c:2623
+#, c-format
+msgid "Fail with %d\n"
+msgstr "Mislykkes med %d\n"
+
+#: ldlang.c:2868
+msgid "%X%P: section %s [%V -> %V] overlaps section %s [%V -> %V]\n"
+msgstr "%X%P: sektionen %s [%V -> %V] overlapper med sektionen %s [%V -> %V]\n"
+
+#: ldlang.c:2897
+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 er ikke inden for området %s\n"
+
+#: ldlang.c:2905
+msgid "%X%P: region %s is full (%B section %s)\n"
+msgstr "%X%P: området %s er fuldt (%B-sektion %s)\n"
+
+#: ldlang.c:2955
+msgid "%P%X: Internal error on COFF shared library section %s\n"
+msgstr "%P%X: Intern fejl i delt COFF-bibliotek sektion %s\n"
+
+#: ldlang.c:2999
+msgid "%P: warning: no memory region specified for section `%s'\n"
+msgstr "%P: advarsel: intet hukommelsesområde angivet for sektionen \"%s\"\n"
+
+#: ldlang.c:3014
+msgid "%P: warning: changing start of section %s by %u bytes\n"
+msgstr "%P: advarsel: ændrer start på sektionen %s med %u byte\n"
+
+#: ldlang.c:3028
+msgid "%F%S: non constant address expression for section %s\n"
+msgstr "%F%S: ikke-konstant adresseudtryk for sektionen %s\n"
+
+#: ldlang.c:3203
+msgid "%P%F: can't relax section: %E\n"
+msgstr "%P%F: kan ikke forenkle sektion: %E\n"
+
+#: ldlang.c:3398
+msgid "%F%P: invalid data statement\n"
+msgstr "%F%P: ugyldig datasætning\n"
+
+#: ldlang.c:3435
+msgid "%F%P: invalid reloc statement\n"
+msgstr "%F%P: ugyldig relokeringssætning\n"
+
+#: ldlang.c:3574
+msgid "%P%F:%s: can't set start address\n"
+msgstr "%P%F:%s: kan ikke sætte startadresse\n"
+
+#: ldlang.c:3587 ldlang.c:3605
+msgid "%P%F: can't set start address\n"
+msgstr "%P%F: kan ikke sætte startadresse\n"
+
+#: ldlang.c:3599
+msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
+msgstr "%P: advarsel: kan ikke finde indgangssymbol %s; bruger som standard %V\n"
+
+#: ldlang.c:3610
+msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
+msgstr "%P: advarsel: kan ikke finde indgangssymbol %s; sætter ikke startadresse\n"
+
+#: ldlang.c:3660
+msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n"
+msgstr "%P%F: Relokérbar lænkning med omlænkninger fra formatet %s (%B) til formatet %s (%B) understøttes ikke\n"
+
+#: ldlang.c:3669
+msgid "%P: warning: %s architecture of input file `%B' is incompatible with %s output\n"
+msgstr "%P: advarsel: %s-arkitekturen i inddatafilen \"%B\" er inkompatibel med %s-uddata\n"
+
+#: ldlang.c:3690
+msgid "%E%X: failed to merge target specific data of file %B\n"
+msgstr "%E%X: mislykkedes at sammenslå målspecifik data i filen %B\n"
+
+#: ldlang.c:3779
+msgid ""
+"\n"
+"Allocating common symbols\n"
+msgstr ""
+"\n"
+"Allokerer fælles symboler\n"
+
+#: ldlang.c:3780
+msgid ""
+"Common symbol size file\n"
+"\n"
+msgstr ""
+"Fælles symbol størrelse fil\n"
+"\n"
+
+#. This message happens when using the
+#. svr3.ifile linker script, so I have
+#. disabled it.
+#: ldlang.c:3858
+msgid "%P: no [COMMON] command, defaulting to .bss\n"
+msgstr "%P: ingen [COMMON]-kommando, bruger standardalternativet .bss\n"
+
+#: ldlang.c:3917
+msgid "%P%F: invalid syntax in flags\n"
+msgstr "%P%F: ugyldig syntaks i flag\n"
+
+#: ldlang.c:4532
+msgid "%P%Fmultiple STARTUP files\n"
+msgstr "%P%Fflere samtidige STARTUP-filer\n"
+
+#: ldlang.c:4575
+msgid "%X%P:%S: section has both a load address and a load region\n"
+msgstr "%X%P:%S: sektionen har både en indlæsningsadresse og et hukommelsesindlæsningsområde\n"
+
+#: ldlang.c:4825
+msgid "%F%P: bfd_record_phdr failed: %E\n"
+msgstr "%F%P: bfd_record_phdr mislykkedes: %E\n"
+
+#: ldlang.c:4844
+msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
+msgstr "%X%P: sektionen \"%s\" er tildelt til ikke-eksisterende phvd \"%s\"\n"
+
+#: ldlang.c:5143
+msgid "%X%P: unknown language `%s' in version information\n"
+msgstr "%X%P: ukendt sprog i \"%s\" i versionsinformation\n"
+
+#: ldlang.c:5195
+msgid "%X%P: anonymous version tag cannot be combined with other version tags\n"
+msgstr "%X%P: anonym versionsmærke kan ikke kombineres med andre versionsmærker\n"
+
+#: ldlang.c:5202
+msgid "%X%P: duplicate version tag `%s'\n"
+msgstr "%X%P: dobbelt versionsmærke \"%s\"\n"
+
+#: ldlang.c:5215 ldlang.c:5228
+msgid "%X%P: duplicate expression `%s' in version information\n"
+msgstr "%X%P: dobbelt udtryk \"%s\" i versionsinformation\n"
+
+#: ldlang.c:5270
+msgid "%X%P: unable to find version dependency `%s'\n"
+msgstr "%X%P: kan ikke finde versionsafhængighed \"%s\"\n"
+
+#: ldlang.c:5292
+msgid "%X%P: unable to read .exports section contents\n"
+msgstr "%X%P: kan ikke læse indeholdet i .exports-sektionen\n"
+
+#: ldmain.c:198
+msgid "%X%P: can't set BFD default target to `%s': %E\n"
+msgstr "%X%P: kan ikke sætte BSD-standardmålet til \"%s\": %E\n"
+
+#: ldmain.c:290
+msgid "%P%F: -r and --mpc860c0 may not be used together\n"
+msgstr "%P%F: -r og --mpc860c0 kan ikke bruges sammen\n"
+
+#: ldmain.c:292
+msgid "%P%F: --relax and -r may not be used together\n"
+msgstr "%P%F: --relax og -r kan ikke bruges sammen\n"
+
+#: ldmain.c:294
+msgid "%P%F: -r and -shared may not be used together\n"
+msgstr "%P%F: -r og -shared kan ikke bruges sammen\n"
+
+#: ldmain.c:300
+msgid "%P%F: -F may not be used without -shared\n"
+msgstr "%P%F: -F kan ikke bruges uden -shared\n"
+
+#: ldmain.c:302
+msgid "%P%F: -f may not be used without -shared\n"
+msgstr "%P%F: -f kan ikke bruges uden -shared\n"
+
+#: ldmain.c:341
+msgid "using external linker script:"
+msgstr "bruger eksternt lænkerskript:"
+
+#: ldmain.c:343
+msgid "using internal linker script:"
+msgstr "bruger internt lænkerskript:"
+
+#: ldmain.c:377
+msgid "%P%F: no input files\n"
+msgstr "%P%F: ingen inddatafiler\n"
+
+#: ldmain.c:382
+msgid "%P: mode %s\n"
+msgstr "%P: tilstand %s\n"
+
+#: ldmain.c:399
+msgid "%P%F: cannot open map file %s: %E\n"
+msgstr "%P%F: kan ikke åbne tabelfil %s: %E\n"
+
+#: ldmain.c:432
+msgid "%P: link errors found, deleting executable `%s'\n"
+msgstr "%P: lænkefejl fandtes, fjerner den kørbare fil \"%s\"\n"
+
+#: ldmain.c:443
+msgid "%F%B: final close failed: %E\n"
+msgstr "%F%B: afsluttende lukning mislykkedes: %E\n"
+
+#: ldmain.c:467
+msgid "%X%P: unable to open for source of copy `%s'\n"
+msgstr "%X%P: kan ikke åbne for kildekoden til kopien \"%s\"\n"
+
+#: ldmain.c:469
+msgid "%X%P: unable to open for destination of copy `%s'\n"
+msgstr "%X%P: kan ikke åbne for mål af kopien \"%s\"\n"
+
+#: ldmain.c:475
+msgid "%P: Error writing file `%s'\n"
+msgstr "%P: Fejl ved skrivning af filen \"%s\"\n"
+
+#: ldmain.c:481 pe-dll.c:1463
+#, c-format
+msgid "%P: Error closing file `%s'\n"
+msgstr "%P: Fejl ved lukning af filen \"%s\"\n"
+
+#: ldmain.c:498
+#, c-format
+msgid "%s: total time in link: %ld.%06ld\n"
+msgstr "%s: total tid i lænkning: %ld.%06ld\n"
+
+#: ldmain.c:501
+#, c-format
+msgid "%s: data size %ld\n"
+msgstr "%s: datastørrelse %ld\n"
+
+#: ldmain.c:542
+msgid "%P%F: missing argument to -m\n"
+msgstr "%P%F: argument mangler til -m\n"
+
+#: ldmain.c:670 ldmain.c:691 ldmain.c:722
+msgid "%P%F: bfd_hash_table_init failed: %E\n"
+msgstr "%P%F: bfd_hash_table_init mislykkedes: %E\n"
+
+#: ldmain.c:675 ldmain.c:694
+msgid "%P%F: bfd_hash_lookup failed: %E\n"
+msgstr "%P%F: bfd_hash_lookup mislykkedes: %E\n"
+
+#: ldmain.c:709
+msgid "%X%P: error: duplicate retain-symbols-file\n"
+msgstr "%X%P: fejl: dobbelt retain-symbols-file\n"
+
+#: ldmain.c:753
+msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
+msgstr "%P%F: bfd_hash_lookup for indgang mislykkedes: %E\n"
+
+#: ldmain.c:758
+msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
+msgstr "%P: \"-retain-symbols-file\" tilsidesætter \"-s\" og \"-S\"\n"
+
+#: ldmain.c:834
+msgid ""
+"Archive member included because of file (symbol)\n"
+"\n"
+msgstr ""
+"Arkivmedlem inkluderet på grund af fil (symbol)\n"
+"\n"
+
+#: ldmain.c:905
+msgid "%X%C: multiple definition of `%T'\n"
+msgstr "%X%C: flere definitioner af \"%T\"\n"
+
+#: ldmain.c:908
+msgid "%D: first defined here\n"
+msgstr "%D: først defineret hér\n"
+
+#: ldmain.c:912
+msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
+msgstr "%P: Deaktiverer forenkling: det vil ikke fungere med flere definitioner\n"
+
+#: ldmain.c:943
+msgid "%B: warning: definition of `%T' overriding common\n"
+msgstr "%B: advarsel: definitioner af \"%T\" tilsidesætter fælles\n"
+
+#: ldmain.c:946
+msgid "%B: warning: common is here\n"
+msgstr "%B: advarsel: fælles er hér\n"
+
+#: ldmain.c:953
+msgid "%B: warning: common of `%T' overridden by definition\n"
+msgstr "%B: advarsel: fælles i \"%T\" tilsidesattes af definition\n"
+
+#: ldmain.c:956
+msgid "%B: warning: defined here\n"
+msgstr "%B: advarsel: defineret hér\n"
+
+#: ldmain.c:963
+msgid "%B: warning: common of `%T' overridden by larger common\n"
+msgstr "%B: advarsel: fælles i \"%T\" tilsidesattes af større fælles\n"
+
+#: ldmain.c:966
+msgid "%B: warning: larger common is here\n"
+msgstr "%B: advarsel: større fælles er hér\n"
+
+#: ldmain.c:970
+msgid "%B: warning: common of `%T' overriding smaller common\n"
+msgstr "%B: advarsel: fælles i \"%T\" tilsidesætter mindre fælles\n"
+
+#: ldmain.c:973
+msgid "%B: warning: smaller common is here\n"
+msgstr "%B: advarsel: mindre fælles er hér\n"
+
+#: ldmain.c:977
+msgid "%B: warning: multiple common of `%T'\n"
+msgstr "%B: advarsel: flere fælles i \"%T\"\n"
+
+#: ldmain.c:979
+msgid "%B: warning: previous common is here\n"
+msgstr "%B: advarsel: foregående fælles er hér\n"
+
+#: ldmain.c:1000 ldmain.c:1039
+msgid "%P: warning: global constructor %s used\n"
+msgstr "%P: advarsel: global konstruktor %s bruges\n"
+
+#: ldmain.c:1049
+msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
+msgstr "%P%F: Fejl i BFD-bagende: BFD_RELOC_CTOR understøttes ikke\n"
+
+#: ldmain.c:1233
+msgid "%F%P: bfd_hash_table_init failed: %E\n"
+msgstr "%F%P: bfd_hash_table_init mislykkedes: %E\n"
+
+#: ldmain.c:1240
+msgid "%F%P: bfd_hash_lookup failed: %E\n"
+msgstr "%F%P: bfd_hash_lookup mislykkedes: %E\n"
+
+#: ldmain.c:1260
+msgid "%C: undefined reference to `%T'\n"
+msgstr "%C: udefineret reference til \"%T\"\n"
+
+#: ldmain.c:1266
+msgid "%D: more undefined references to `%T' follow\n"
+msgstr "%D: flere udefinerede referencer til \"%T\" følger\n"
+
+#: ldmain.c:1273
+msgid "%B: undefined reference to `%T'\n"
+msgstr "%B: udefineret reference til \"%T\"\n"
+
+#: ldmain.c:1279
+msgid "%B: more undefined references to `%T' follow\n"
+msgstr "%B: flere udefinerede referencer til \"%T\" følger\n"
+
+#: ldmain.c:1299 ldmain.c:1320 ldmain.c:1339
+msgid "%P%X: generated"
+msgstr "%P%X: genereret"
+
+#: ldmain.c:1302
+msgid " relocation truncated to fit: %s %T"
+msgstr " relokering trunkeret til at passe til: %s %T"
+
+#: ldmain.c:1323
+#, c-format
+msgid "dangerous relocation: %s\n"
+msgstr "farlig relokering: %s\n"
+
+#: ldmain.c:1342
+msgid " reloc refers to symbol `%T' which is not being output\n"
+msgstr " relokering refererer til symbol \"%T\" som ikke skrives ud\n"
+
+#: ldmisc.c:157
+msgid "no symbol"
+msgstr "intet symbol"
+
+#: ldmisc.c:221
+#, c-format
+msgid "built in linker script:%u"
+msgstr "indbygget lænkerskript:%u"
+
+#: ldmisc.c:271 ldmisc.c:275
+msgid "%B%F: could not read symbols\n"
+msgstr "%B%F: kunne ikke læse 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:463
+msgid "%F%P: internal error %s %d\n"
+msgstr "%F%P: intern fejl %s %d\n"
+
+#: ldmisc.c:513
+msgid "%P: internal error: aborting at %s line %d in %s\n"
+msgstr "%P: intern fejl: afbryder ved %s linje %d i %s\n"
+
+#: ldmisc.c:516
+msgid "%P: internal error: aborting at %s line %d\n"
+msgstr "%P: intern fejl: afbryder ved %s linje %d\n"
+
+#: ldmisc.c:518
+msgid "%P%F: please report this bug\n"
+msgstr "%P%F: rapportér denne fejl\n"
+
+#. Output for noisy == 2 is intended to follow the GNU standards.
+#: ldver.c:38
+#, c-format
+msgid "GNU ld version %s\n"
+msgstr "GNU ld version %s\n"
+
+#: ldver.c:42
+msgid "Copyright 2002 Free Software Foundation, Inc.\n"
+msgstr "Copyright 2002 Free Software Foundation, Inc.\n"
+
+#: ldver.c:43
+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 ""
+"Dette program er frit programmel. Du kan videredistribuere det under\n"
+"betingelserne i GNU General Public License. Dette program har ingen som\n"
+"helst garanti.\n"
+
+#: ldver.c:52
+msgid " Supported emulations:\n"
+msgstr " Emuleringer som understøttes:\n"
+
+#: ldwrite.c:59 ldwrite.c:195
+msgid "%P%F: bfd_new_link_order failed\n"
+msgstr "%P%F: bfd_new_link_order mislykkedes\n"
+
+#: ldwrite.c:325
+msgid "%F%P: clone section failed: %E\n"
+msgstr "%F%P: klonsektion mislykkedes: %E\n"
+
+#: ldwrite.c:364
+#, c-format
+msgid "%8x something else\n"
+msgstr "%8x noget andet\n"
+
+#: ldwrite.c:547
+msgid "%F%P: final link failed: %E\n"
+msgstr "%F%P: afsluttende lænkning mislykkedes: %E\n"
+
+#: lexsup.c:172 lexsup.c:267
+msgid "KEYWORD"
+msgstr "NØGLEORD"
+
+#: lexsup.c:172
+msgid "Shared library control for HP/UX compatibility"
+msgstr "Styrelse af delte biblioteker for kompatibilitet med HP/UX"
+
+#: lexsup.c:175
+msgid "ARCH"
+msgstr "ARK"
+
+#: lexsup.c:175
+msgid "Set architecture"
+msgstr "Sæt arkitektur"
+
+#: lexsup.c:177 lexsup.c:336
+msgid "TARGET"
+msgstr "MÅL"
+
+#: lexsup.c:177
+msgid "Specify target for following input files"
+msgstr "Angiv mål for følgende inddatafiler"
+
+#: lexsup.c:179 lexsup.c:220 lexsup.c:232 lexsup.c:241 lexsup.c:312
+#: lexsup.c:343 lexsup.c:383
+msgid "FILE"
+msgstr "FIL"
+
+#: lexsup.c:179
+msgid "Read MRI format linker script"
+msgstr "Læs lænkerskript i MRI-format"
+
+#: lexsup.c:181
+msgid "Force common symbols to be defined"
+msgstr "Tving fælles symboler til at være definerede"
+
+#: lexsup.c:185 lexsup.c:373 lexsup.c:375 lexsup.c:377
+msgid "ADDRESS"
+msgstr "ADRESSE"
+
+#: lexsup.c:185
+msgid "Set start address"
+msgstr "Sæt startadresse"
+
+#: lexsup.c:187
+msgid "Export all dynamic symbols"
+msgstr "Eksportér alle dynamiske symboler"
+
+#: lexsup.c:189
+msgid "Link big-endian objects"
+msgstr "Lænk objekt som er big-endian"
+
+#: lexsup.c:191
+msgid "Link little-endian objects"
+msgstr "Lænk objekt som er little-endian"
+
+#: lexsup.c:193 lexsup.c:196
+msgid "SHLIB"
+msgstr "DELBIBL"
+
+#: lexsup.c:193
+msgid "Auxiliary filter for shared object symbol table"
+msgstr "Ydre filter for symboltabel over delte objekter"
+
+#: lexsup.c:196
+msgid "Filter for shared object symbol table"
+msgstr "Filter for symboltabel over delte objekter"
+
+#: lexsup.c:198
+msgid "Ignored"
+msgstr "Ignoreret"
+
+#: lexsup.c:200
+msgid "SIZE"
+msgstr "STØRRELSE"
+
+#: lexsup.c:200
+msgid "Small data size (if no size, same as --shared)"
+msgstr "Lille datastørrelse (hvis ingen størrelse, samme som --shared)"
+
+#: lexsup.c:203
+msgid "FILENAME"
+msgstr "FILNAVN"
+
+#: lexsup.c:203
+msgid "Set internal name of shared library"
+msgstr "Sæt internt navn på delt bibliotek"
+
+#: lexsup.c:205
+msgid "PROGRAM"
+msgstr "PROGRAM"
+
+#: lexsup.c:205
+msgid "Set PROGRAM as the dynamic linker to use"
+msgstr "Sæt PROGRAM som den dynamiske lænker der bruges"
+
+#: lexsup.c:207
+msgid "LIBNAME"
+msgstr "BIBLNAVN"
+
+#: lexsup.c:207
+msgid "Search for library LIBNAME"
+msgstr "Søg efter biblioteket BIBLNAVN"
+
+#: lexsup.c:209
+msgid "DIRECTORY"
+msgstr "KATALOG"
+
+#: lexsup.c:209
+msgid "Add DIRECTORY to library search path"
+msgstr "Tilføj KATALOG til bibliotekssøgestien"
+
+#: lexsup.c:211
+msgid "EMULATION"
+msgstr "EMULERING"
+
+#: lexsup.c:211
+msgid "Set emulation"
+msgstr "Sæt emulering"
+
+#: lexsup.c:213
+msgid "Print map file on standard output"
+msgstr "Vis tabelfil på standard ud"
+
+#: lexsup.c:215
+msgid "Do not page align data"
+msgstr "Justér ikke data efter lige sider"
+
+#: lexsup.c:217
+msgid "Do not page align data, do not make text readonly"
+msgstr "Justér ikke data efter lige sider, gør ikke teksten kun læsbar"
+
+#: lexsup.c:220
+msgid "Set output file name"
+msgstr "Sæt uddatafilnavnet"
+
+#: lexsup.c:222
+msgid "Optimize output file"
+msgstr "Optimér uddatafil"
+
+#: lexsup.c:224
+msgid "Ignored for SVR4 compatibility"
+msgstr "Ignoreret for kompatibilitet med SVR4"
+
+#: lexsup.c:228
+msgid "Generate relocateable output"
+msgstr "Generér relokérbar uddata"
+
+#: lexsup.c:232
+msgid "Just link symbols (if directory, same as --rpath)"
+msgstr "Lænk kun symboler (hvis katalog, samme som --rpath)"
+
+#: lexsup.c:235
+msgid "Strip all symbols"
+msgstr "Fjern alle symboler"
+
+#: lexsup.c:237
+msgid "Strip debugging symbols"
+msgstr "Fjern fejlsøgningssymboler"
+
+#: lexsup.c:239
+msgid "Trace file opens"
+msgstr "Udskriv filåbninger"
+
+#: lexsup.c:241
+msgid "Read linker script"
+msgstr "Læs lænkerskript"
+
+#: lexsup.c:243 lexsup.c:259 lexsup.c:298 lexsup.c:310 lexsup.c:367
+#: lexsup.c:386 lexsup.c:406
+msgid "SYMBOL"
+msgstr "SYMBOL"
+
+#: lexsup.c:243
+msgid "Start with undefined reference to SYMBOL"
+msgstr "Begynd med udefineret reference til SYMBOL"
+
+#: lexsup.c:245
+msgid "[=SECTION]"
+msgstr "[=SEKTION]"
+
+#: lexsup.c:245
+msgid "Don't merge input [SECTION | orphan] sections"
+msgstr "Flet ikke [SEKTION | forælderløse] sektioner"
+
+#: lexsup.c:247
+msgid "Build global constructor/destructor tables"
+msgstr "Byg globale konstruktors-/destruktorstabeller"
+
+#: lexsup.c:249
+msgid "Print version information"
+msgstr "Vis versionsinformation"
+
+#: lexsup.c:251
+msgid "Print version and emulation information"
+msgstr "Vis versions- og emuleringsinformation"
+
+#: lexsup.c:253
+msgid "Discard all local symbols"
+msgstr "Smid alle lokale symboler væk"
+
+#: lexsup.c:255
+msgid "Discard temporary local symbols (default)"
+msgstr "Smid temporære lokale symboler væk (standard)"
+
+#: lexsup.c:257
+msgid "Don't discard any local symbols"
+msgstr "Smid ikke nogen lokale symboler væk"
+
+#: lexsup.c:259
+msgid "Trace mentions of SYMBOL"
+msgstr "Udskriv omtale af SYMBOL"
+
+#: lexsup.c:261 lexsup.c:345 lexsup.c:347
+msgid "PATH"
+msgstr "SØGESTI"
+
+#: lexsup.c:261
+msgid "Default search path for Solaris compatibility"
+msgstr "Standardsøgesti for Solaris-kompatibilitet"
+
+#: lexsup.c:263
+msgid "Start a group"
+msgstr "Start en gruppe"
+
+#: lexsup.c:265
+msgid "End a group"
+msgstr "Slut en gruppe"
+
+#: lexsup.c:267
+msgid "Ignored for SunOS compatibility"
+msgstr "Ignoreret for SunOS-kompatibilitet"
+
+#: lexsup.c:269
+msgid "Link against shared libraries"
+msgstr "Lænk mod delte biblioteker"
+
+#: lexsup.c:275
+msgid "Do not link against shared libraries"
+msgstr "Lænk ikke mod delte biblioteker"
+
+#: lexsup.c:283
+msgid "Bind global references locally"
+msgstr "Bind globale referencer lokalt"
+
+#: lexsup.c:285
+msgid "Check section addresses for overlaps (default)"
+msgstr "Kontrollér sektionsadresser for overlapninger (standard)"
+
+#: lexsup.c:287
+msgid "Do not check section addresses for overlaps"
+msgstr "Kontrollér ikke sektionsadresser for overlapninger"
+
+#: lexsup.c:290
+msgid "Output cross reference table"
+msgstr "Opret krydsreferencetabel"
+
+#: lexsup.c:292
+msgid "SYMBOL=EXPRESSION"
+msgstr "SYMBOL=UDTRYK"
+
+#: lexsup.c:292
+msgid "Define a symbol"
+msgstr "Definér en symbol"
+
+#: lexsup.c:294
+msgid "[=STYLE]"
+msgstr "[=STIL]"
+
+#: lexsup.c:294
+msgid "Demangle symbol names [using STYLE]"
+msgstr "Afkod symbolnavn [brug STIL]"
+
+#: lexsup.c:296
+msgid "Generate embedded relocs"
+msgstr "Generér indlejrede relokeringer"
+
+#: lexsup.c:298
+msgid "Call SYMBOL at unload-time"
+msgstr "Kald SYMBOL ved udlæsning"
+
+#: lexsup.c:300
+msgid "Force generation of file with .exe suffix"
+msgstr "Tving generering af fil med endelsen .exe"
+
+#: lexsup.c:302
+msgid "Remove unused sections (on some targets)"
+msgstr "Fjern ubrugte sektioner (på visse mål)"
+
+#: lexsup.c:305
+msgid "Don't remove unused sections (default)"
+msgstr "Fjern ikke ubrugte sektioner (standard)"
+
+#: lexsup.c:308
+msgid "Print option help"
+msgstr "Vis hjælp om flag"
+
+#: lexsup.c:310
+msgid "Call SYMBOL at load-time"
+msgstr "Kald SYMBOL ved indlæsning"
+
+#: lexsup.c:312
+msgid "Write a map file"
+msgstr "Skriv en tabelfil"
+
+#: lexsup.c:314
+msgid "Do not define Common storage"
+msgstr "Definér ikke fælles lagring"
+
+#: lexsup.c:316
+msgid "Do not demangle symbol names"
+msgstr "Afkod ikke symbolnavne"
+
+#: lexsup.c:318
+msgid "Use less memory and more disk I/O"
+msgstr "Brug mindre hukommelse og mere disk-I/O"
+
+#: lexsup.c:320
+msgid "Allow no undefined symbols"
+msgstr "Tillad ingen udefinerede symboler"
+
+#: lexsup.c:322
+msgid "Allow undefined symbols in shared objects"
+msgstr "Tillad udefinerede symboler i delte objekter"
+
+#: lexsup.c:324
+msgid "Allow multiple definitions"
+msgstr "Tillad flere definitioner"
+
+# src/prefs.c:170
+#: lexsup.c:326
+msgid "Don't warn about mismatched input files"
+msgstr "Advar ikke om uparrede inddatafiler"
+
+#: lexsup.c:328
+msgid "Turn off --whole-archive"
+msgstr "Deaktivér ---whole-archive"
+
+#: lexsup.c:330
+msgid "Create an output file even if errors occur"
+msgstr "Opret en uddatafil også hvis fejl forekommer"
+
+#: lexsup.c:334
+msgid ""
+"Only use library directories specified on\n"
+"\t\t\t\tthe command line"
+msgstr ""
+"Brug kun bibliotekskataloger som angives\n"
+"\t\t\t\tpå kommandolinjen"
+
+#: lexsup.c:336
+msgid "Specify target of output file"
+msgstr "Angiv mål for uddatafil"
+
+#: lexsup.c:338
+msgid "Ignored for Linux compatibility"
+msgstr "Ignoreret for kompatibilitet med Linux"
+
+#: lexsup.c:340
+msgid "Relax branches on certain targets"
+msgstr "Forenkl greninger på visse mål"
+
+#: lexsup.c:343
+msgid "Keep only symbols listed in FILE"
+msgstr "Behold kun symboler angivne i FIL"
+
+#: lexsup.c:345
+msgid "Set runtime shared library search path"
+msgstr "Sæt kørselstidssøgesti for delte biblioteker"
+
+#: lexsup.c:347
+msgid "Set link time shared library search path"
+msgstr "Sæt lænkningstidssøgesti for delte biblioteker"
+
+#: lexsup.c:349
+msgid "Create a shared library"
+msgstr "Opret et delt bibliotek"
+
+#: lexsup.c:353
+msgid "Sort common symbols by size"
+msgstr "Sortér fælles symboler efter størrelse"
+
+#: lexsup.c:357
+msgid "COUNT"
+msgstr "ANTAL"
+
+#: lexsup.c:357
+msgid "How many tags to reserve in .dynamic section"
+msgstr "Hvor mange mærker som skal reserveres i .dynamic-sektion"
+
+#: lexsup.c:359
+msgid "[=SIZE]"
+msgstr "[=STØRRELSE]"
+
+#: lexsup.c:359
+msgid "Split output sections every SIZE octets"
+msgstr "Del uddatasektioner hver STØRRELSE oktetter"
+
+#: lexsup.c:361
+msgid "[=COUNT]"
+msgstr "[=ANTAL]"
+
+#: lexsup.c:361
+msgid "Split output sections every COUNT relocs"
+msgstr "Del uddatasektioner hver ANTAL relokeringer"
+
+#: lexsup.c:363
+msgid "Print memory usage statistics"
+msgstr "Vis statistik over hukommelsesbrug"
+
+#: lexsup.c:365
+msgid "Display target specific options"
+msgstr "Vis målspecifikke flag"
+
+#: lexsup.c:367
+msgid "Do task level linking"
+msgstr "Udfør lænkning på opgaveniveau"
+
+#: lexsup.c:369
+msgid "Use same format as native linker"
+msgstr "Brug samme format som indbygget lænker"
+
+#: lexsup.c:371
+msgid "SECTION=ADDRESS"
+msgstr "SEKTION=ADRESSE"
+
+#: lexsup.c:371
+msgid "Set address of named section"
+msgstr "Sæt adresse på navngiven sektion"
+
+#: lexsup.c:373
+msgid "Set address of .bss section"
+msgstr "Sæt adresse på .bss-sektion"
+
+#: lexsup.c:375
+msgid "Set address of .data section"
+msgstr "Sæt adresse på .data-sektion"
+
+#: lexsup.c:377
+msgid "Set address of .text section"
+msgstr "Sæt adresse på .text-sektion"
+
+#: lexsup.c:379
+msgid "Output lots of information during link"
+msgstr "Vis meget information under lænkning"
+
+#: lexsup.c:383
+msgid "Read version information script"
+msgstr "Læs skript med versionsinformation"
+
+#: lexsup.c:386
+msgid ""
+"Take export symbols list from .exports, using\n"
+"\t\t\t\tSYMBOL as the version."
+msgstr ""
+"Tag liste med eksportsymboler fra .exports og\n"
+"\t\t\t\tbrug SYMBOL som version."
+
+#: lexsup.c:389
+msgid "Warn about duplicate common symbols"
+msgstr "Advar for duplerede fælles symboler"
+
+#: lexsup.c:391
+msgid "Warn if global constructors/destructors are seen"
+msgstr "Advar hvis globale konstruktorer/destruktorer findes"
+
+#: lexsup.c:394
+msgid "Warn if the multiple GP values are used"
+msgstr "Advar hvis flere GP-værdier bruges"
+
+#: lexsup.c:396
+msgid "Warn only once per undefined symbol"
+msgstr "Advar kun én gang per udefineret symbol"
+
+#: lexsup.c:398
+msgid "Warn if start of section changes due to alignment"
+msgstr "Advar hvis begyndelsen på sektionen ændres på grund af justering"
+
+#: lexsup.c:401
+msgid "Treat warnings as errors"
+msgstr "Behandl advarsler som fejl"
+
+#: lexsup.c:404
+msgid "Include all objects from following archives"
+msgstr "Inkludér alle objekter fra følgende arkiver"
+
+#: lexsup.c:406
+msgid "Use wrapper functions for SYMBOL"
+msgstr "Brug indkapslingsfunktioner for SYMBOL"
+
+#: lexsup.c:408
+msgid "[=WORDS]"
+msgstr "[=ORD]"
+
+#: lexsup.c:408
+msgid ""
+"Modify problematic branches in last WORDS (1-10,\n"
+"\t\t\t\tdefault 5) words of a page"
+msgstr ""
+"Ændr problematiske greninger i sidste ORD (1-10,\n"
+"\t\t\t\tstandardværdi 5) ord på en side"
+
+#: lexsup.c:574
+msgid "%P: unrecognized option '%s'\n"
+msgstr "%P: ukendt flag \"%s\"\n"
+
+#: lexsup.c:576
+msgid "%P%F: use the --help option for usage information\n"
+msgstr "%P%F: brug flaget --help for brugsinformation\n"
+
+#: lexsup.c:595
+msgid "%P%F: unrecognized -a option `%s'\n"
+msgstr "%P%F: ukendt -a-flag \"%s\"\n"
+
+#: lexsup.c:608
+msgid "%P%F: unrecognized -assert option `%s'\n"
+msgstr "%P%F: ukendt -assert-flag \"%s\"\n"
+
+#: lexsup.c:651
+msgid "%F%P: unknown demangling style `%s'"
+msgstr "%F%P: ukendt afkodningsstil \"%s\""
+
+#: lexsup.c:711
+msgid "%P%F: invalid number `%s'\n"
+msgstr "%P%F: ugyldigt tal \"%s\"\n"
+
+#. 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
+#. but it cannot parse the text after the -r so it refuses to
+#. increment the optind counter. Detect this case and issue
+#. 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
+msgid "%P%F: bad -rpath option\n"
+msgstr "%P%F: ukendt -rpath-flag\n"
+
+#: lexsup.c:910
+msgid "%P%F: -shared not supported\n"
+msgstr "%P%F: -shared understøttes ikke\n"
+
+#: lexsup.c:942
+msgid "%P%F: invalid argument to option \"--section-start\"\n"
+msgstr "%P%F: ugyldigt argument til flaget \"--section-start\"\n"
+
+#: lexsup.c:948
+msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
+msgstr "%P%F: argumenter mangler til flaget \"--section-start\"\n"
+
+#: lexsup.c:1097
+msgid "%P%F: may not nest groups (--help for usage)\n"
+msgstr "%P%F: må ikke neste grupper (--help for brug)\n"
+
+#: lexsup.c:1104
+msgid "%P%F: group ended before it began (--help for usage)\n"
+msgstr "%P%F: gruppen sluttede inden den begyndte (--help for brug)\n"
+
+#: lexsup.c:1118
+msgid "%P%F: invalid argument to option \"mpc860c0\"\n"
+msgstr "%P%F: ugyldigt argument til flaget \"mpc860c0\"\n"
+
+#: lexsup.c:1173
+msgid "%P%F: invalid hex number `%s'\n"
+msgstr "%P%F: ugyldigt heksadecimalt tal \"%s\"\n"
+
+#: lexsup.c:1185
+#, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr "Brug: %s [flag] fil...\n"
+
+#: lexsup.c:1187
+msgid "Options:\n"
+msgstr "Alternativer:\n"
+
+#. Note: Various tools (such as libtool) depend upon the
+#. format of the listings below - do not change them.
+#: lexsup.c:1270
+#, c-format
+msgid "%s: supported targets:"
+msgstr "%s: mål som understøttes:"
+
+#: lexsup.c:1278
+#, c-format
+msgid "%s: supported emulations: "
+msgstr "%s: emuleringer som understøttes: "
+
+#: lexsup.c:1283
+#, c-format
+msgid "%s: emulation specific options:\n"
+msgstr "%s: emuleringsspecifikke flag:\n"
+
+#: lexsup.c:1287
+#, c-format
+msgid "Report bugs to %s\n"
+msgstr ""
+"Rapportér fejl til %s\n"
+"Rapportér fejl i oversættelsen til dansk@klid.dk\n"
+
+#: mri.c:334
+msgid "%P%F: unknown format type %s\n"
+msgstr "%P%F: ukendt formattype %s\n"
+
+#: pe-dll.c:321
+#, c-format
+msgid "%XUnsupported PEI architecture: %s\n"
+msgstr "%XPEI-arkitekturen understøttes ikke: %s\n"
+
+#: pe-dll.c:671
+#, c-format
+msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
+msgstr "%XFejl, dubleret EXPORT med ordinaler: %s (%d mod %d)\n"
+
+#: pe-dll.c:678
+#, c-format
+msgid "Warning, duplicate EXPORT: %s\n"
+msgstr "Advarsel, dubleret EXPORT: %s\n"
+
+#: pe-dll.c:742
+#, c-format
+msgid "%XCannot export %s: symbol not defined\n"
+msgstr "%XKan ikke eksportere %s: symbol er ikke defineret\n"
+
+#: pe-dll.c:748
+#, c-format
+msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n"
+msgstr "%XKan ikke eksportere %s: symbol er af forkert type (%d mod %d)\n"
+
+#: pe-dll.c:755
+#, c-format
+msgid "%XCannot export %s: symbol not found\n"
+msgstr "%XKan ikke eksportere %s: symbol fandtes ikke\n"
+
+#: pe-dll.c:870
+#, c-format
+msgid "%XError, ordinal used twice: %d (%s vs %s)\n"
+msgstr "%XFejl, ordinalen bruges to gange: %d (%s mod %s)\n"
+
+#: pe-dll.c:1181
+#, c-format
+msgid "%XError: %d-bit reloc in dll\n"
+msgstr "%XFejl: %d-bit relokering i dll\n"
+
+#: pe-dll.c:1316
+#, c-format
+msgid "%s: Can't open output def file %s\n"
+msgstr "%s: Kan ikke åbne uddatadefinitionsfilen %s\n"
+
+#: pe-dll.c:1459
+msgid "; no contents available\n"
+msgstr "; intet indhold er tilgængeligt\n"
+
+#: pe-dll.c:2128
+#, c-format
+msgid "%XCan't open .lib file: %s\n"
+msgstr "%XKan ikke åbne .lib-filen: %s\n"
+
+#: pe-dll.c:2133
+#, c-format
+msgid "Creating library file: %s\n"
+msgstr "Opretter biblioteksfil: %s\n"
diff --git a/gnu/usr.bin/binutils/ld/po/es.gmo b/gnu/usr.bin/binutils/ld/po/es.gmo
new file mode 100644
index 00000000000..1a6a7b55016
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/po/es.gmo
Binary files differ
diff --git a/gnu/usr.bin/binutils/ld/po/es.po b/gnu/usr.bin/binutils/ld/po/es.po
new file mode 100644
index 00000000000..0c42d100d4c
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/po/es.po
@@ -0,0 +1,1775 @@
+# Mensajes en español para ld 2.14rel030712.
+# Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+# Cristian Othón Martínez Vera <cfuga@itam.mx>, 2002, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ld 2.14rel030712\n"
+"POT-Creation-Date: 2003-07-11 13:58+0930\n"
+"PO-Revision-Date: 2003-07-14 18:48-0500\n"
+"Last-Translator: Cristian Othón Martínez Vera <cfuga@itam.mx>\n"
+"Language-Team: Spanish <es@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:72
+msgid " --support-old-code Support interworking with old code\n"
+msgstr " --support-old-code Soporte para interoperar con código antiguo\n"
+
+#: emultempl/armcoff.em:73
+msgid " --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n"
+msgstr " --thumb-entry=<sim> Establece el punto de entrada para el símbolo Thumb <sim>\n"
+
+#: emultempl/armcoff.em:121
+#, c-format
+msgid "Errors encountered processing file %s"
+msgstr "Errores encontrados al procesar el fichero %s"
+
+#: emultempl/armcoff.em:188 emultempl/pe.em:1396
+msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
+msgstr "%P: aviso: '--thumb-entry %s' se impone a '-e %s'\n"
+
+#: emultempl/armcoff.em:193 emultempl/pe.em:1401
+msgid "%P: warning: connot find thumb start symbol %s\n"
+msgstr "%P: aviso: no se puede encontrar el símbolo de inicio thumb %s\n"
+
+#: emultempl/pe.em:300
+msgid " --base_file <basefile> Generate a base file for relocatable DLLs\n"
+msgstr " --base_file <ficherobase> Genera un fichero base para DLLs reubicables\n"
+
+# DLL son las siglas en inglés de `Biblioteca de Enlace Dinámico'.
+# El problema es que las siglas en español (BED) no están muy extendidas.
+# Se dejó `DLL' sin traducir en todas las ocasiones. cfuga
+#: emultempl/pe.em:301
+msgid " --dll Set image base to the default for DLLs\n"
+msgstr " --dll Establece la imagen base por omisión para las DLLs\n"
+
+#: emultempl/pe.em:302
+msgid " --file-alignment <size> Set file alignment\n"
+msgstr " --file-alignment <tamaño> Establece el fichero de alineación\n"
+
+#: emultempl/pe.em:303
+msgid " --heap <size> Set initial size of the heap\n"
+msgstr " --heap <tamaño> Establece el tamaño inicial del montón\n"
+
+#: emultempl/pe.em:304
+msgid " --image-base <address> Set start address of the executable\n"
+msgstr " --image-base <dirección> Establece la dirección de inicio del ejecutable\n"
+
+#: emultempl/pe.em:305
+msgid " --major-image-version <number> Set version number of the executable\n"
+msgstr " --major-image-version <número> Establece el número de versión del ejecutable\n"
+
+#: emultempl/pe.em:306
+msgid " --major-os-version <number> Set minimum required OS version\n"
+msgstr " --major-os-version <número> Establece la versión mínima requerida del SO\n"
+
+#: emultempl/pe.em:307
+msgid " --major-subsystem-version <number> Set minimum required OS subsystem version\n"
+msgstr " --major-subsystem-version <número> Establece la versión mínima requerida del subsistema del SO\n"
+
+#: emultempl/pe.em:308
+msgid " --minor-image-version <number> Set revision number of the executable\n"
+msgstr " --minor-image-version <número> Establece el número de revisión del ejecutable\n"
+
+#: emultempl/pe.em:309
+msgid " --minor-os-version <number> Set minimum required OS revision\n"
+msgstr " --minor-os-version <número> Establece la revisión mínima requerida del SO\n"
+
+#: emultempl/pe.em:310
+msgid " --minor-subsystem-version <number> Set minimum required OS subsystem revision\n"
+msgstr " --minor-subsystem-version <número> Establece la revisión mínima requerida del subsistema del SO\n"
+
+#: emultempl/pe.em:311
+msgid " --section-alignment <size> Set section alignment\n"
+msgstr " --section-alignment <tamaño> Establece la alineación de la sección\n"
+
+#: emultempl/pe.em:312
+msgid " --stack <size> Set size of the initial stack\n"
+msgstr " --stack <size> Establece el tamaño de la pila inicial\n"
+
+#: emultempl/pe.em:313
+msgid " --subsystem <name>[:<version>] Set required OS subsystem [& version]\n"
+msgstr " --subsystem <nombre>[:<versión>] Establece el subsistema [y versión] requeridos del SO\n"
+
+#: emultempl/pe.em:314
+msgid " --support-old-code Support interworking with old code\n"
+msgstr " --support-old-code Soporte para interoperar con código antiguo\n"
+
+#: emultempl/pe.em:315
+msgid " --thumb-entry=<symbol> Set the entry point to be Thumb <symbol>\n"
+msgstr " --thumb-entry=<símbolo> Establece el punto de entrada para el símbolo Thumb <símbolo>\n"
+
+#: emultempl/pe.em:317
+msgid " --add-stdcall-alias Export symbols with and without @nn\n"
+msgstr " --add-stdcall-alias Exportar símbolos con y sin @nn\n"
+
+#: emultempl/pe.em:318
+msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n"
+msgstr " --disable-stdcall-fixup No enlazar _sym con _sym@nn\n"
+
+#: emultempl/pe.em:319
+msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n"
+msgstr " --enable-stdcall-fixup Enlazar _sym con _sym@nn sin avisos\n"
+
+#: emultempl/pe.em:320
+msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"
+msgstr " --exclude-symbols sim,sim,... Excluye los símbolos de la exportación automática\n"
+
+#: emultempl/pe.em:321
+msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n"
+msgstr " --exclude-libs bib,bib,... Excluye las bibliotecas de la exportación automática\n"
+
+#: emultempl/pe.em:322
+msgid " --export-all-symbols Automatically export all globals to DLL\n"
+msgstr " --export-all-symbols Exporta automáticamente todos los globales a la DLL\n"
+
+#: emultempl/pe.em:323
+msgid " --kill-at Remove @nn from exported symbols\n"
+msgstr " --kill-at Elimina @nn de los símbolos exportados\n"
+
+#: emultempl/pe.em:324
+msgid " --out-implib <file> Generate import library\n"
+msgstr " --out-implib <fichero> Generar una biblioteca de importación\n"
+
+#: emultempl/pe.em:325
+msgid " --output-def <file> Generate a .DEF file for the built DLL\n"
+msgstr " --output-def <fichero> Generar un fichero .DEF para la DLL construida\n"
+
+#: emultempl/pe.em:326
+msgid " --warn-duplicate-exports Warn about duplicate exports.\n"
+msgstr " --warn-duplicate-exports Avisar sobre exportaciones duplicadas.\n"
+
+#: emultempl/pe.em:327
+msgid ""
+" --compat-implib Create backward compatible import libs;\n"
+" create __imp_<SYMBOL> as well.\n"
+msgstr ""
+" --compat-implib Crear bibliotecas de importación compatibles hacia atrás;\n"
+" cerar además __imp_<SÍMBOLO>.\n"
+
+#: emultempl/pe.em:329
+msgid ""
+" --enable-auto-image-base Automatically choose image base for DLLs\n"
+" unless user specifies one\n"
+msgstr ""
+" --enable-auto-image-base Escoger automáticamente la imagen base para las DLLs\n"
+" a menos que el usuario especifique una\n"
+
+#: emultempl/pe.em:331
+msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n"
+msgstr " --disable-auto-image-base No escoger automáticamente una imagen base. (por omisión)\n"
+
+#: emultempl/pe.em:332
+msgid ""
+" --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=<cadena> Al enlazar dinámicamente con una dll sin una\n"
+" biblioteca de importación, usar <cadena><nombrebase>.dll \n"
+" en lugar de lib<nombrebase>.dll \n"
+
+#: emultempl/pe.em:335
+msgid ""
+" --enable-auto-import Do sophistcated linking of _sym to\n"
+" __imp_sym for DATA references\n"
+msgstr ""
+" --enable-auto-import Hacer enlazado sofisticado de _sym a\n"
+" __imp_sym para las referencias DATA\n"
+
+#: emultempl/pe.em:337
+msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n"
+msgstr " --disable-auto-import No importar automáticamente elementos DATA de las DLLs\n"
+
+#: 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 Evitar limitaciones de autoimportación\n"
+" agregando pseudo-reubicaciones resueltas\n"
+" al momento de ejecución.\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 No agregar pseudo-reubicaciones al momento\n"
+" de ejecución para DATOS autoimportados.\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"
+msgstr ""
+" --enable-extra-pe-debug Activa la salida de depuración detallada al construir\n"
+" o enlazar a DLLs (en part. con auto-importación)\n"
+
+#: emultempl/pe.em:412
+msgid "%P: warning: bad version number in -subsystem option\n"
+msgstr "%P: aviso: número de versión erróneo en la opción -subsystem\n"
+
+#: emultempl/pe.em:448
+msgid "%P%F: invalid subsystem type %s\n"
+msgstr "%P%F: tipo de subsistema %s inválido\n"
+
+#: emultempl/pe.em:460
+msgid "%P%F: invalid hex number for PE parameter '%s'\n"
+msgstr "%P%F: número hexadecimal inválido para el parámetro PE '%s'\n"
+
+#: emultempl/pe.em:477
+msgid "%P%F: strange hex info for PE parameter '%s'\n"
+msgstr "%P%F: información hexadecimal extraña para el parámetro PE '%s'\n"
+
+#: emultempl/pe.em:494
+#, c-format
+msgid "%s: Can't open base file %s\n"
+msgstr "%s: No se puede abrir el fichero base %s\n"
+
+#: emultempl/pe.em:707
+msgid "%P: warning, file alignment > section alignment.\n"
+msgstr "%P: aviso, alineación del fichero > alineación de la sección.\n"
+
+#: emultempl/pe.em:794 emultempl/pe.em:821
+#, c-format
+msgid "Warning: resolving %s by linking to %s\n"
+msgstr "Aviso: resolviendo %s al enlazar con %s\n"
+
+#: emultempl/pe.em:799 emultempl/pe.em:826
+msgid "Use --enable-stdcall-fixup to disable these warnings\n"
+msgstr "Use --enable-stdcall-fixup para desactivar estos avisos\n"
+
+#: emultempl/pe.em:800 emultempl/pe.em:827
+msgid "Use --disable-stdcall-fixup to disable these fixups\n"
+msgstr "Use --disable-stdcall-fixup para desactivar estas composturas\n"
+
+#: emultempl/pe.em:846
+#, c-format
+msgid "%C: Cannot get section contents - auto-import exception\n"
+msgstr "%C: No se puede obtener el contenido de la sección - excepción de auto-importación\n"
+
+#: emultempl/pe.em:883
+#, c-format
+msgid "Info: resolving %s by linking to %s (auto-import)\n"
+msgstr "Información: resolviendo %s al enlazar con %s (auto-importación)\n"
+
+#: emultempl/pe.em:954
+msgid "%F%P: PE operations on non PE file.\n"
+msgstr "%F%P: operaciones PE en un fichero que no es PE.\n"
+
+#: emultempl/pe.em:1188
+#, c-format
+msgid "Errors encountered processing file %s\n"
+msgstr "Se encontraron errores al procesar el fichero %s\n"
+
+#: emultempl/pe.em:1211
+#, c-format
+msgid "Errors encountered processing file %s for interworking"
+msgstr "Se encontraron errores el procesar el fichero %s para interoperabilidad"
+
+#: 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: falló bfd_link_hash_lookup: %E\n"
+
+#: ldcref.c:153
+msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n"
+msgstr "%X%P: falló bfd_hash_table_init de la tabla cref: %E\n"
+
+#: ldcref.c:159
+msgid "%X%P: cref_hash_lookup failed: %E\n"
+msgstr "%X%P: falló cref_hash_lookup: %E\n"
+
+#: ldcref.c:225
+msgid ""
+"\n"
+"Cross Reference Table\n"
+"\n"
+msgstr ""
+"\n"
+"Tabla de Referencias Cruzadas\n"
+"\n"
+
+#: ldcref.c:226
+msgid "Symbol"
+msgstr "Símbolo"
+
+#: ldcref.c:234
+msgid "File\n"
+msgstr "Fichero\n"
+
+#: ldcref.c:238
+msgid "No symbols\n"
+msgstr "No hay símbolos\n"
+
+#: ldcref.c:384
+msgid "%P: symbol `%T' missing from main hash table\n"
+msgstr "%P: falta el símbolo `%T' de la tabla principal de dispersión\n"
+
+#: ldcref.c:448
+msgid "%B%F: could not read symbols; %E\n"
+msgstr "%B%F: no se pueden leer símbolos; %E\n"
+
+#: ldcref.c:452 ldmain.c:1187 ldmain.c:1191
+msgid "%B%F: could not read symbols: %E\n"
+msgstr "%B%F: no se pueden leer símbolos: %E\n"
+
+#: ldcref.c:517 ldcref.c:524 ldmain.c:1234 ldmain.c:1241
+msgid "%B%F: could not read relocs: %E\n"
+msgstr "%B%F: no se pueden leer las reubicaciones: %E\n"
+
+#. We found a reloc for the symbol. The symbol is defined
+#. 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:543
+msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n"
+msgstr "%X%C: referencia cruzada prohibida de %s a `%T' en %s\n"
+
+#: ldctor.c:84
+msgid "%P%X: Different relocs used in set %s\n"
+msgstr "%P%X: Se usaron diferentes reubicaciones en el conjunto %s\n"
+
+#: ldctor.c:102
+msgid "%P%X: Different object file formats composing set %s\n"
+msgstr "%P%X: Formatos diferentes de fichero objeto componen al conjunto %s\n"
+
+#: ldctor.c:281 ldctor.c:295
+msgid "%P%X: %s does not support reloc %s for set %s\n"
+msgstr "%P%X: %s no tiene soporte para la reubicación para el conjunto %s\n"
+
+#: ldctor.c:316
+msgid "%P%X: Unsupported size %d for set %s\n"
+msgstr "%P%X: Tamaño %d sin soporte para el conjunto %s\n"
+
+#: ldctor.c:337
+msgid ""
+"\n"
+"Set Symbol\n"
+"\n"
+msgstr ""
+"\n"
+"Conjunto Símbolo\n"
+"\n"
+
+#: ldemul.c:247
+#, c-format
+msgid "%S SYSLIB ignored\n"
+msgstr "%S se ignora SYSLIB\n"
+
+#: ldemul.c:254
+#, c-format
+msgid "%S HLL ignored\n"
+msgstr "%S se ignora HLL\n"
+
+#: ldemul.c:275
+msgid "%P: unrecognised emulation mode: %s\n"
+msgstr "%P: no se reconoce el modo de emulación: %s\n"
+
+#: ldemul.c:276
+msgid "Supported emulations: "
+msgstr "Emulaciones con soporte: "
+
+#: ldemul.c:320
+msgid " no emulation specific options.\n"
+msgstr " no hay opciones específicas de emulación.\n"
+
+#: ldexp.c:148
+msgid "%F%P: %s uses undefined section %s\n"
+msgstr "%F%P: %s usa la sección sin definir %s\n"
+
+#: ldexp.c:150
+msgid "%F%P: %s forward reference of section %s\n"
+msgstr "%F%P: %s es una referencia hacia adelante de la sección %s\n"
+
+#: ldexp.c:355
+#, c-format
+msgid "%F%S %% by zero\n"
+msgstr "%F%S %% por cero\n"
+
+#: ldexp.c:362
+#, c-format
+msgid "%F%S / by zero\n"
+msgstr "%F%S / por cero\n"
+
+#: ldexp.c:533
+#, c-format
+msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
+msgstr "%X%S: símbolo `%s' sin resolución referenciado en la expresión\n"
+
+#: ldexp.c:553
+#, c-format
+msgid "%F%S: undefined symbol `%s' referenced in expression\n"
+msgstr "%F%S: símbolo `%s' indefinido referenciado en la expresión\n"
+
+#: ldexp.c:677
+#, c-format
+msgid "%F%S can not PROVIDE assignment to location counter\n"
+msgstr "%F%S no puede hacer una asignación PROVIDE al contador de ubicación\n"
+
+#: ldexp.c:687
+#, c-format
+msgid "%F%S invalid assignment to location counter\n"
+msgstr "%F%S asignación inválida al contador de ubicación\n"
+
+#: ldexp.c:691
+#, c-format
+msgid "%F%S assignment to location counter invalid outside of SECTION\n"
+msgstr "%F%S asignación al contador de ubicación es inválida fuera de SECTION\n"
+
+#: ldexp.c:700
+msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
+msgstr "%F%S no se puede mover el contador de ubicación hacia atrás (de %V a %V)\n"
+
+#: ldexp.c:727
+msgid "%P%F:%s: hash creation failed\n"
+msgstr "%P%F:%s: falló la creación de la dispersión\n"
+
+#: ldexp.c:1003 ldexp.c:1035
+#, c-format
+msgid "%F%S nonconstant expression for %s\n"
+msgstr "%F%S expresión no constante para %s\n"
+
+#: ldexp.c:1089
+#, c-format
+msgid "%F%S non constant expression for %s\n"
+msgstr "%F%S expresión no constante para %s\n"
+
+#: ldfile.c:144
+#, c-format
+msgid "attempt to open %s failed\n"
+msgstr "falló el intento de abrir %s\n"
+
+#: ldfile.c:146
+#, c-format
+msgid "attempt to open %s succeeded\n"
+msgstr "tuvo éxito el intento de abrir %s\n"
+
+#: ldfile.c:152
+msgid "%F%P: invalid BFD target `%s'\n"
+msgstr "%F%P: objetivo BFD inválido `%s'\n"
+
+#: ldfile.c:258 ldfile.c:275
+msgid "%P: skipping incompatible %s when searching for %s\n"
+msgstr "%P: saltando el %s incompatible mientras se buscaba %s\n"
+
+#: ldfile.c:377
+msgid "%F%P: cannot open %s for %s: %E\n"
+msgstr "%F%P: no se puede abrir %s para %s: %E\n"
+
+#: ldfile.c:380
+msgid "%F%P: cannot open %s: %E\n"
+msgstr "%F%P: no se puede abrir %s: %E\n"
+
+#: ldfile.c:410
+msgid "%F%P: cannot find %s inside %s\n"
+msgstr "%F%P: no se puede encontrar %s dentro de %s\n"
+
+#: ldfile.c:413
+msgid "%F%P: cannot find %s\n"
+msgstr "%F%P: no se puede encontrar %s\n"
+
+#: ldfile.c:430 ldfile.c:446
+#, c-format
+msgid "cannot find script file %s\n"
+msgstr "no se puede encontrar el fichero de guión %s\n"
+
+#: ldfile.c:432 ldfile.c:448
+#, c-format
+msgid "opened script file %s\n"
+msgstr "fichero de guión %s abierto\n"
+
+#: ldfile.c:492
+msgid "%P%F: cannot open linker script file %s: %E\n"
+msgstr "%P%F: no se puede abrir el fichero de guión del enlazador %s: %E\n"
+
+#: ldfile.c:529
+msgid "%P%F: unknown architecture: %s\n"
+msgstr "%P%F: arquitectura desconocida: %s\n"
+
+#: ldfile.c:543
+msgid "%P%F: target architecture respecified\n"
+msgstr "%P%F: arquitectura destino reespecificada\n"
+
+#: ldfile.c:594
+msgid "%P%F: cannot represent machine `%s'\n"
+msgstr "%P%F: no se puede representar la máquina `%s'\n"
+
+#: ldlang.c:640
+msgid ""
+"\n"
+"Memory Configuration\n"
+"\n"
+msgstr ""
+"\n"
+"Configuración de la Memoria\n"
+"\n"
+
+#: ldlang.c:642
+msgid "Name"
+msgstr "Nombre"
+
+#: ldlang.c:642
+msgid "Origin"
+msgstr "Origen"
+
+#: ldlang.c:642
+msgid "Length"
+msgstr "Longitud"
+
+#: ldlang.c:642
+msgid "Attributes"
+msgstr "Atributos"
+
+#: ldlang.c:682
+msgid ""
+"\n"
+"Linker script and memory map\n"
+"\n"
+msgstr ""
+"\n"
+"Guión del enlazador y mapa de memoria\n"
+"\n"
+
+#: ldlang.c:698
+msgid "%P%F: Illegal use of `%s' section\n"
+msgstr "%P%F: Uso ilegal de la sección `%s'\n"
+
+#: ldlang.c:707
+msgid "%P%F: output format %s cannot represent section called %s\n"
+msgstr "%P%F: el formato de salida %s no puede representar la sección llamada %s\n"
+
+#: ldlang.c:867
+msgid "%P: %B: warning: ignoring duplicate section `%s'\n"
+msgstr "%P: %B: aviso: ignorando la sección duplicada `%s'\n"
+
+#: ldlang.c:870
+msgid "%P: %B: warning: ignoring duplicate `%s' section symbol `%s'\n"
+msgstr "%P: %B: aviso: ignorando el símbolo duplicado `%s' de la sección `%s'\n"
+
+#: ldlang.c:884
+msgid "%P: %B: warning: duplicate section `%s' has different size\n"
+msgstr "%P: %B: aviso: la sección duplicada `%s' tiene tamaño diferente\n"
+
+#: ldlang.c:936
+msgid "%P%F: Failed to create hash table\n"
+msgstr "%P%F: Falló al crear la tabla de dispersión\n"
+
+#: ldlang.c:1351
+msgid "%B: file not recognized: %E\n"
+msgstr "%B: fichero no reconocido: %E\n"
+
+#: ldlang.c:1352
+msgid "%B: matching formats:"
+msgstr "%B: formatos coincidentes:"
+
+#: ldlang.c:1359
+msgid "%F%B: file not recognized: %E\n"
+msgstr "%F%B: fichero no reconocido: %E\n"
+
+#: ldlang.c:1418
+msgid "%F%B: member %B in archive is not an object\n"
+msgstr "%F%B: el miembro %B en el archivo no es un objeto\n"
+
+#: ldlang.c:1429 ldlang.c:1443
+msgid "%F%B: could not read symbols: %E\n"
+msgstr "%F%B: no se puede leer símbolos: %E\n"
+
+#: ldlang.c:1698
+msgid "%P: warning: could not find any targets that match endianness requirement\n"
+msgstr "%P: aviso: no se puede encontrar ningún objetivo que coincida con los requerimientos de endianess\n"
+
+#: ldlang.c:1711
+msgid "%P%F: target %s not found\n"
+msgstr "%P%F: no se encuentra el objetivo %s\n"
+
+#: ldlang.c:1713
+msgid "%P%F: cannot open output file %s: %E\n"
+msgstr "%P%F: no se puede abrir el fichero de salida %s: %E\n"
+
+#: ldlang.c:1723
+msgid "%P%F:%s: can not make object file: %E\n"
+msgstr "%P%F:%s: no se puede hacer el fichero objeto: %E\n"
+
+#: ldlang.c:1727
+msgid "%P%F:%s: can not set architecture: %E\n"
+msgstr "%P%F:%s: no se puede establecer la arquitectura: %E\n"
+
+#: ldlang.c:1731
+msgid "%P%F: can not create link hash table: %E\n"
+msgstr "%P%F: no se puede crear la tabla de dispersión de enlace: %E\n"
+
+#: ldlang.c:2069
+msgid " load address 0x%V"
+msgstr " cargar la dirección 0x%V"
+
+#: ldlang.c:2204
+msgid "%W (size before relaxing)\n"
+msgstr "%W (tamaño antes de la relajación)\n"
+
+#: ldlang.c:2288
+#, c-format
+msgid "Address of section %s set to "
+msgstr "La dirección de la sección %s se estableció a "
+
+#: ldlang.c:2443
+#, c-format
+msgid "Fail with %d\n"
+msgstr "Falló con %d\n"
+
+#: ldlang.c:2683
+msgid "%X%P: section %s [%V -> %V] overlaps section %s [%V -> %V]\n"
+msgstr "%X%P: la sección %s [%V -> %V] sobreescribe a la sección %s [%V -> %V]\n"
+
+#: ldlang.c:2711
+msgid "%X%P: address 0x%v of %B section %s is not within region %s\n"
+msgstr "%X%P: la dirección 0x%v de %B sección %s no está dentro de la región %s\n"
+
+#: ldlang.c:2719
+msgid "%X%P: region %s is full (%B section %s)\n"
+msgstr "%X%P: la región %s está llena (%B sección %s)\n"
+
+#: ldlang.c:2770
+msgid "%P%X: Internal error on COFF shared library section %s\n"
+msgstr "%P%X: Error interno en la sección %s de biblioteca compartida COFF\n"
+
+#: ldlang.c:2826
+msgid "%P%F: error: no memory region specified for loadable section `%s'\n"
+msgstr "%P%F: aviso: no se especificó una región de memoria para la sección cargable `%s'\n"
+
+#: ldlang.c:2830
+msgid "%P: warning: no memory region specified for loadable section `%s'\n"
+msgstr "%P: aviso: no se especificó una región de memoria para la sección cargable `%s'\n"
+
+#: ldlang.c:2846
+msgid "%P: warning: changing start of section %s by %u bytes\n"
+msgstr "%P: aviso: cambiando el inicio de la sección %s por %u bytes\n"
+
+#: ldlang.c:2859
+#, c-format
+msgid "%F%S: non constant address expression for section %s\n"
+msgstr "%F%S: expresión de dirección no constante para la sección %s\n"
+
+#: ldlang.c:3036
+msgid "%P%F: can't relax section: %E\n"
+msgstr "%P%F: no se puede relajar la sección: %E\n"
+
+#: ldlang.c:3232
+msgid "%F%P: invalid data statement\n"
+msgstr "%F%P: declaración inválida de datos\n"
+
+#: ldlang.c:3269
+msgid "%F%P: invalid reloc statement\n"
+msgstr "%F%P: declaración inválida de reubicación\n"
+
+#: ldlang.c:3408
+msgid "%P%F:%s: can't set start address\n"
+msgstr "%P%F:%s: no se puede establecer la dirección de inicio\n"
+
+#: ldlang.c:3421 ldlang.c:3439
+msgid "%P%F: can't set start address\n"
+msgstr "%P%F: no se puede establecer la dirección de inicio\n"
+
+#: ldlang.c:3433
+msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
+msgstr "%P: aviso: no se puede encontrar el símbolo de entrada %s; usando por omisión %V\n"
+
+#: ldlang.c:3444
+msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
+msgstr "%P: aviso: no se puede encontrar el símbolo de entrada %s; no se establece la dirección de inicio\n"
+
+#: 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: No tiene soporte el enlazado reubicable con reubicaciones del formato %s (%B) al formato %s (%B)\n"
+
+#: ldlang.c:3497
+msgid "%P: warning: %s architecture of input file `%B' is incompatible with %s output\n"
+msgstr "%P: aviso: la arquitectura %s del fichero de entrada `%B' es incompatible con la salida %s\n"
+
+#: ldlang.c:3518
+msgid "%E%X: failed to merge target specific data of file %B\n"
+msgstr "%E%X: falló la mezcla de datos específicos de objetivo del fichero %B\n"
+
+#: ldlang.c:3604
+msgid ""
+"\n"
+"Allocating common symbols\n"
+msgstr ""
+"\n"
+"Asignando símbolos comunes\n"
+
+#: ldlang.c:3605
+msgid ""
+"Common symbol size file\n"
+"\n"
+msgstr ""
+"Símbolo común tamaño fichero\n"
+"\n"
+
+#. This message happens when using the
+#. svr3.ifile linker script, so I have
+#. disabled it.
+#: ldlang.c:3681
+msgid "%P: no [COMMON] command, defaulting to .bss\n"
+msgstr "%P: no hay una orden [COMMON], usando .bss por omisión\n"
+
+#: ldlang.c:3737
+msgid "%P%F: invalid syntax in flags\n"
+msgstr "%P%F: sintaxis inválida en los interruptores\n"
+
+#: ldlang.c:4325
+msgid "%P%Fmultiple STARTUP files\n"
+msgstr "%P%Fficheros STARTUP múltiples\n"
+
+#: ldlang.c:4368
+msgid "%X%P:%S: section has both a load address and a load region\n"
+msgstr "%X%P:%S: la sección tiene tanto una dirección de carga como una región de carga\n"
+
+#: ldlang.c:4608
+msgid "%F%P: bfd_record_phdr failed: %E\n"
+msgstr "%F%P: falló bfd_record_phdr: %E\n"
+
+#: ldlang.c:4627
+msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
+msgstr "%X%P: se asignó la sección `%s' al phdr no existente `%s'\n"
+
+#: ldlang.c:4919
+msgid "%X%P: unknown language `%s' in version information\n"
+msgstr "%X%P: lenguaje `%s' desconocido en la información de la versión\n"
+
+#: ldlang.c:4969
+msgid "%X%P: anonymous version tag cannot be combined with other version tags\n"
+msgstr "%X%P: la marca de versión anónima no se puede combinar con otras marcas de versión\n"
+
+#: ldlang.c:4977
+msgid "%X%P: duplicate version tag `%s'\n"
+msgstr "%X%P: marca de versión `%s' duplicada\n"
+
+#: ldlang.c:4990 ldlang.c:5003
+msgid "%X%P: duplicate expression `%s' in version information\n"
+msgstr "%X%P: expresión `%s' duplicada en la información de la versión\n"
+
+#: ldlang.c:5043
+msgid "%X%P: unable to find version dependency `%s'\n"
+msgstr "%X%P: no se puede encontrar la dependencia de versión `%s'\n"
+
+#: ldlang.c:5065
+msgid "%X%P: unable to read .exports section contents\n"
+msgstr "%X%P: no se pueden leer los contenidos de la sección .exports\n"
+
+#: ldmain.c:247
+msgid "%X%P: can't set BFD default target to `%s': %E\n"
+msgstr "%X%P: no se puede establecer el objetivo BFD por omisión a `%s': %E\n"
+
+#: ldmain.c:349
+msgid "%P%F: -r and --mpc860c0 may not be used together\n"
+msgstr "%P%F: no se pueden usar juntos -r y --mpc860c0\n"
+
+#: ldmain.c:351
+msgid "%P%F: --relax and -r may not be used together\n"
+msgstr "%P%F: no se pueden usar juntos -relax y -r\n"
+
+#: ldmain.c:353
+msgid "%P%F: -r and -shared may not be used together\n"
+msgstr "%P%F: no se pueden usar juntos -r y -shared\n"
+
+#: ldmain.c:359
+msgid "%P%F: -F may not be used without -shared\n"
+msgstr "%P%F: no se puede usar -F sin -shared\n"
+
+#: ldmain.c:361
+msgid "%P%F: -f may not be used without -shared\n"
+msgstr "%P%F: no se puede usar -f sin -shared\n"
+
+#: ldmain.c:403
+msgid "using external linker script:"
+msgstr "usando el guión externo del enlazador:"
+
+#: ldmain.c:405
+msgid "using internal linker script:"
+msgstr "usando el guión interno del enlazador:"
+
+#: ldmain.c:439
+msgid "%P%F: no input files\n"
+msgstr "%P%F: no hay ficheros de entrada\n"
+
+#: ldmain.c:443
+msgid "%P: mode %s\n"
+msgstr "%P: modo %s\n"
+
+#: ldmain.c:459
+msgid "%P%F: cannot open map file %s: %E\n"
+msgstr "%P%F: no se puede encontrar el fichero de mapeo %s: %E\n"
+
+#: ldmain.c:489
+msgid "%P: link errors found, deleting executable `%s'\n"
+msgstr "%P: se encontraron errores de enlace, borrando el ejecutable `%s'\n"
+
+#: ldmain.c:498
+msgid "%F%B: final close failed: %E\n"
+msgstr "%F%B: falló el cerrado final: %E\n"
+
+#: ldmain.c:524
+msgid "%X%P: unable to open for source of copy `%s'\n"
+msgstr "%X%P: no se puede abrir para la fuente de la copia `%s'\n"
+
+#: ldmain.c:527
+msgid "%X%P: unable to open for destination of copy `%s'\n"
+msgstr "%X%P: no se puede abrir para el destino de la copia `%s'\n"
+
+#: ldmain.c:534
+msgid "%P: Error writing file `%s'\n"
+msgstr "%P: Error al escribir el fichero `%s'\n"
+
+#: ldmain.c:539 pe-dll.c:1443
+#, c-format
+msgid "%P: Error closing file `%s'\n"
+msgstr "%P: Error al cerrar el fichero `%s'\n"
+
+#: ldmain.c:555
+#, c-format
+msgid "%s: total time in link: %ld.%06ld\n"
+msgstr "%s: tiempo total en el enlazado: %ld.%06ld\n"
+
+#: ldmain.c:558
+#, c-format
+msgid "%s: data size %ld\n"
+msgstr "%s: tamaño de los datos %ld\n"
+
+#: ldmain.c:596
+msgid "%P%F: missing argument to -m\n"
+msgstr "%P%F: falta el argumento para -m\n"
+
+#: ldmain.c:741 ldmain.c:759 ldmain.c:789
+msgid "%P%F: bfd_hash_table_init failed: %E\n"
+msgstr "%P%F: falló bfd_hash_table_init: %E\n"
+
+#: ldmain.c:745 ldmain.c:763
+msgid "%P%F: bfd_hash_lookup failed: %E\n"
+msgstr "%P%F: falló bfd_hash_lookup: %E\n"
+
+#: ldmain.c:777
+msgid "%X%P: error: duplicate retain-symbols-file\n"
+msgstr "%X%P: error: fichero de símbolos a retener duplicado\n"
+
+#: ldmain.c:819
+msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
+msgstr "%P%F: falló bfd_hash_lookup para la inserción: %E\n"
+
+#: ldmain.c:824
+msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
+msgstr "%P `-retain-symbols-file' se impone a `-s' y `-S'\n"
+
+#: ldmain.c:899
+msgid ""
+"Archive member included because of file (symbol)\n"
+"\n"
+msgstr ""
+"Se incluyó el miembro del archivo debido al fichero (símbolo)\n"
+"\n"
+
+#: ldmain.c:969
+msgid "%X%C: multiple definition of `%T'\n"
+msgstr "%X%C: definiciones múltiples de `%T'\n"
+
+#: ldmain.c:972
+msgid "%D: first defined here\n"
+msgstr "%D: primero se definió aquí\n"
+
+#: ldmain.c:976
+msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
+msgstr "%P: Desactivandola la relajación: no trabajará con definiciones múltiples\n"
+
+# FIXME: Revisar en el código fuente si `common' se refiere a una orden o
+# se puede sustituir por `común'. cfuga
+#: ldmain.c:1006
+msgid "%B: warning: definition of `%T' overriding common\n"
+msgstr "%B: aviso: la definición de `%T' se impone a common\n"
+
+#: ldmain.c:1009
+msgid "%B: warning: common is here\n"
+msgstr "%B: aviso: common está aquí\n"
+
+#: ldmain.c:1016
+msgid "%B: warning: common of `%T' overridden by definition\n"
+msgstr "%B: aviso: el common de `%T' es sobrepasado por definición\n"
+
+#: ldmain.c:1019
+msgid "%B: warning: defined here\n"
+msgstr "%B: aviso: definido aquí\n"
+
+#: ldmain.c:1026
+msgid "%B: warning: common of `%T' overridden by larger common\n"
+msgstr "%B: aviso: el common de `%T' es sobrepasado por un common más grande\n"
+
+#: ldmain.c:1029
+msgid "%B: warning: larger common is here\n"
+msgstr "%B: aviso: el common más grande está aquí\n"
+
+#: ldmain.c:1033
+msgid "%B: warning: common of `%T' overriding smaller common\n"
+msgstr "%B: aviso: el common de `%T' es sobrepasado por un common más pequeño\n"
+
+#: ldmain.c:1036
+msgid "%B: warning: smaller common is here\n"
+msgstr "%B: aviso: el common más pequeño está aquí\n"
+
+#: ldmain.c:1040
+msgid "%B: warning: multiple common of `%T'\n"
+msgstr "%B: aviso: common múltiple de `%T'\n"
+
+#: ldmain.c:1042
+msgid "%B: warning: previous common is here\n"
+msgstr "%B: aviso: el common previo está aquí\n"
+
+#: ldmain.c:1062 ldmain.c:1100
+msgid "%P: warning: global constructor %s used\n"
+msgstr "%P: aviso: se usó el constructor global %s\n"
+
+#: ldmain.c:1110
+msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
+msgstr "%P%F: error del frente trasero de BFD: BFD_RELOC_CTOR sin soporte\n"
+
+#: ldmain.c:1287 ldmisc.c:533
+msgid "%F%P: bfd_hash_table_init failed: %E\n"
+msgstr "%F%P: falló bfd_hash_table_init: %E\n"
+
+#: ldmain.c:1294 ldmisc.c:540
+msgid "%F%P: bfd_hash_lookup failed: %E\n"
+msgstr "%F%P: falló bfd_hash_lookup: %E\n"
+
+#: ldmain.c:1314
+msgid "%C: undefined reference to `%T'\n"
+msgstr "%C: referencia a `%T' sin definir\n"
+
+#: ldmain.c:1320
+msgid "%D: more undefined references to `%T' follow\n"
+msgstr "%D: más referencias a `%T' sin definir a continuación\n"
+
+#: ldmain.c:1327
+msgid "%B: undefined reference to `%T'\n"
+msgstr "%B: referencia a `%T' sin definir\n"
+
+#: ldmain.c:1333
+msgid "%B: more undefined references to `%T' follow\n"
+msgstr "%B: más referencias a `%T' sin definir a continuación\n"
+
+#: ldmain.c:1364 ldmain.c:1392 ldmain.c:1410
+msgid "%P%X: generated"
+msgstr "%P%X: generado"
+
+#: ldmain.c:1371
+msgid " additional relocation overflows omitted from the output\n"
+msgstr " se omitieron desbordamientos de reubicación adicionales de la salida\n"
+
+#: ldmain.c:1375
+msgid " relocation truncated to fit: %s %T"
+msgstr " reubicación truncada para ajustar: %s %T"
+
+#: ldmain.c:1395
+#, c-format
+msgid "dangerous relocation: %s\n"
+msgstr "reubicación peligrosa: %s\n"
+
+#: ldmain.c:1413
+msgid " reloc refers to symbol `%T' which is not being output\n"
+msgstr " la reubicación se refiere al símbolo `%T' el cual no se muestra\n"
+
+#: ldmisc.c:147
+msgid "no symbol"
+msgstr "no hay símbolo"
+
+#: ldmisc.c:211
+#, c-format
+msgid "built in linker script:%u"
+msgstr "guión interno del enlazador:%u"
+
+#: ldmisc.c:260 ldmisc.c:264
+msgid "%B%F: could not read symbols\n"
+msgstr "%B%F: no se pueden leer los símbolos\n"
+
+#: ldmisc.c:291
+msgid ": In function `%T':\n"
+msgstr ": En la función `%T':\n"
+
+#: ldmisc.c:438
+msgid "%F%P: internal error %s %d\n"
+msgstr "%F%P: error interno %s %d\n"
+
+#: ldmisc.c:484
+msgid "%P: internal error: aborting at %s line %d in %s\n"
+msgstr "%P: error interno: abortando en %s línea %d en %s\n"
+
+#: ldmisc.c:487
+msgid "%P: internal error: aborting at %s line %d\n"
+msgstr "%P: error interno: abortando en %s línea %d\n"
+
+#: ldmisc.c:489
+msgid "%P%F: please report this bug\n"
+msgstr "%P%F: por favor reporte este bicho\n"
+
+#. Output for noisy == 2 is intended to follow the GNU standards.
+#: ldver.c:39
+#, c-format
+msgid "GNU ld version %s\n"
+msgstr "GNU ld versión %s\n"
+
+#: ldver.c:43
+msgid "Copyright 2002 Free Software Foundation, Inc.\n"
+msgstr "Copyright 2002 Free Software Foundation, Inc.\n"
+
+#: 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"
+msgstr ""
+"Este programa es software libre; puede redistribuirse bajo los términos de\n"
+"la Licencia Pública General de GNU. Este programa no tiene absolutamente\n"
+"ninguna garantía.\n"
+
+#: ldver.c:53
+msgid " Supported emulations:\n"
+msgstr " Emulaciones con soporte:\n"
+
+#: ldwrite.c:54 ldwrite.c:190
+msgid "%P%F: bfd_new_link_order failed\n"
+msgstr "%P%F: falló bfd_new_link_order\n"
+
+#: ldwrite.c:310
+msgid "%F%P: clone section failed: %E\n"
+msgstr "%F%P: falló la clonación de la sección: %E\n"
+
+#: ldwrite.c:348
+#, c-format
+msgid "%8x something else\n"
+msgstr "%8x algo más\n"
+
+#: ldwrite.c:525
+msgid "%F%P: final link failed: %E\n"
+msgstr "%F%P: falló el enlace final: %E\n"
+
+#: lexsup.c:179 lexsup.c:284
+msgid "KEYWORD"
+msgstr "PALABRA CLAVE"
+
+#: lexsup.c:179
+msgid "Shared library control for HP/UX compatibility"
+msgstr "Control de biblioteca compartida para compatibilidad con HP/UX"
+
+#: lexsup.c:182
+msgid "ARCH"
+msgstr "ARQ"
+
+#: lexsup.c:182
+msgid "Set architecture"
+msgstr "Establecer la arquitectura"
+
+#: lexsup.c:184 lexsup.c:357
+msgid "TARGET"
+msgstr "OBJETIVO"
+
+#: lexsup.c:184
+msgid "Specify target for following input files"
+msgstr "Especificar el objetivo para los siguientes ficheros de entrada"
+
+#: lexsup.c:186 lexsup.c:229 lexsup.c:241 lexsup.c:254 lexsup.c:329
+#: lexsup.c:364 lexsup.c:408
+msgid "FILE"
+msgstr "FICHERO"
+
+#: lexsup.c:186
+msgid "Read MRI format linker script"
+msgstr "Leer el guión del enlazador de formato MRI"
+
+#: lexsup.c:188
+msgid "Force common symbols to be defined"
+msgstr "Forzar que los símbolos comunes sean definidos"
+
+#: lexsup.c:192 lexsup.c:398 lexsup.c:400 lexsup.c:402
+msgid "ADDRESS"
+msgstr "DIRECCIÓN"
+
+#: lexsup.c:192
+msgid "Set start address"
+msgstr "Establecer la dirección de inicio"
+
+#: lexsup.c:194
+msgid "Export all dynamic symbols"
+msgstr "Exportar todos los símbolos dinámicos"
+
+#: lexsup.c:196
+msgid "Link big-endian objects"
+msgstr "Enlazar objetos big-endian"
+
+#: lexsup.c:198
+msgid "Link little-endian objects"
+msgstr "Enlazar objetos little-endian"
+
+#: lexsup.c:200 lexsup.c:203
+msgid "SHLIB"
+msgstr "BIBCOMP"
+
+#: lexsup.c:200
+msgid "Auxiliary filter for shared object symbol table"
+msgstr "Filtro auxiliar para la tabla de símbolos de objetos compartidos"
+
+#: lexsup.c:203
+msgid "Filter for shared object symbol table"
+msgstr "Filtro para la tabla de símbolos de objetos compartidos"
+
+#: lexsup.c:205
+msgid "Ignored"
+msgstr "Ignorado"
+
+#: lexsup.c:207
+msgid "SIZE"
+msgstr "TAMAÑO"
+
+#: lexsup.c:207
+msgid "Small data size (if no size, same as --shared)"
+msgstr "Tamaño de los datos small (si no se especifica, es el mismo que --shared)"
+
+#: lexsup.c:210
+msgid "FILENAME"
+msgstr "FICHERO"
+
+#: lexsup.c:210
+msgid "Set internal name of shared library"
+msgstr "Establecer el nombre interno de la biblioteca compartida"
+
+#: lexsup.c:212
+msgid "PROGRAM"
+msgstr "PROGRAMA"
+
+#: lexsup.c:212
+msgid "Set PROGRAM as the dynamic linker to use"
+msgstr "Establece el PROGRAMA como el enlazador dinámico a utilizar"
+
+#: lexsup.c:214
+msgid "LIBNAME"
+msgstr "NOMBREBIB"
+
+#: lexsup.c:214
+msgid "Search for library LIBNAME"
+msgstr "Buscar la biblioteca NOMBREBIB"
+
+#: lexsup.c:216
+msgid "DIRECTORY"
+msgstr "DIRECTORIO"
+
+#: lexsup.c:216
+msgid "Add DIRECTORY to library search path"
+msgstr "Agregar el DIRECTORIO a la ruta de búsqueda de bibliotecas"
+
+#: lexsup.c:218
+msgid "EMULATION"
+msgstr "EMULACIÓN"
+
+#: lexsup.c:218
+msgid "Set emulation"
+msgstr "Establecer la emulación"
+
+#: lexsup.c:220
+msgid "Print map file on standard output"
+msgstr "Imprimir el fichero mapa en la salida estándar"
+
+#: lexsup.c:222
+msgid "Do not page align data"
+msgstr "No paginar los datos alineados"
+
+#: lexsup.c:224
+msgid "Do not page align data, do not make text readonly"
+msgstr "No paginar los datos alineados, no hacer el texto de sólo lectura"
+
+#: lexsup.c:227
+msgid "Page align data, make text readonly"
+msgstr "Paginar los datos alineados, hacer el texto de sólo lectura"
+
+#: lexsup.c:229
+msgid "Set output file name"
+msgstr "Establecer el nombre del fichero de salida"
+
+#: lexsup.c:231
+msgid "Optimize output file"
+msgstr "Optimizar la salida del fichero"
+
+#: lexsup.c:233
+msgid "Ignored for SVR4 compatibility"
+msgstr "Ignorado por compatibilidad con SVR4"
+
+#: lexsup.c:237
+msgid "Generate relocatable output"
+msgstr "Generar salida reubicable"
+
+#: lexsup.c:241
+msgid "Just link symbols (if directory, same as --rpath)"
+msgstr "Sólo enlazar símbolos (si es un directorio, es igual que --rpath)"
+
+#: lexsup.c:244
+msgid "Strip all symbols"
+msgstr "Descartar todos los símbolos"
+
+#: lexsup.c:246
+msgid "Strip debugging symbols"
+msgstr "Descartar los símbolos de depuración"
+
+#: lexsup.c:248
+msgid "Strip symbols in discarded sections"
+msgstr "Descartar símbolos en las secciones descartadas"
+
+#: lexsup.c:250
+msgid "Do not strip symbols in discarded sections"
+msgstr "No descartar símbolos en las secciones descartadas"
+
+#: lexsup.c:252
+msgid "Trace file opens"
+msgstr "Rastrear la apertura de ficheros"
+
+#: lexsup.c:254
+msgid "Read linker script"
+msgstr "Leer el guión del enlazador"
+
+#: lexsup.c:256 lexsup.c:272 lexsup.c:315 lexsup.c:327 lexsup.c:392
+#: lexsup.c:411 lexsup.c:431
+msgid "SYMBOL"
+msgstr "SÍMBOLO"
+
+#: lexsup.c:256
+msgid "Start with undefined reference to SYMBOL"
+msgstr "Iniciar con una referencia sin definir hacia el SÍMBOLO"
+
+#: lexsup.c:258
+msgid "[=SECTION]"
+msgstr "[=SECCIóN]"
+
+#: lexsup.c:258
+msgid "Don't merge input [SECTION | orphan] sections"
+msgstr "No mezclar secciones de entrada [SECCIÓN | huérfanas]"
+
+#: lexsup.c:260
+msgid "Build global constructor/destructor tables"
+msgstr "Construir tablas globales de constructores/destructores"
+
+#: lexsup.c:262
+msgid "Print version information"
+msgstr "Mostrar la información de la versión"
+
+#: lexsup.c:264
+msgid "Print version and emulation information"
+msgstr "Mostrar la información de la versión y la emulación"
+
+#: lexsup.c:266
+msgid "Discard all local symbols"
+msgstr "Descartar todos los símbolos locales"
+
+#: lexsup.c:268
+msgid "Discard temporary local symbols (default)"
+msgstr "Descartar los símbolos locales temporales (por omisión)"
+
+#: lexsup.c:270
+msgid "Don't discard any local symbols"
+msgstr "No descartar ningún símbolo local"
+
+#: lexsup.c:272
+msgid "Trace mentions of SYMBOL"
+msgstr "Rastrear las menciones del SÍMBOLO"
+
+#: lexsup.c:274 lexsup.c:366 lexsup.c:368
+msgid "PATH"
+msgstr "RUTA"
+
+#: lexsup.c:274
+msgid "Default search path for Solaris compatibility"
+msgstr "Ruta de búsqueda por omisión para compatibilidad con Solaris"
+
+#: lexsup.c:276
+msgid "Start a group"
+msgstr "Iniciar un grupo"
+
+#: lexsup.c:278
+msgid "End a group"
+msgstr "Terminar un grupo"
+
+#: lexsup.c:280
+msgid "Accept input files whose architecture cannot be determined"
+msgstr "Aceptar ficheros de entrada cuya arquitectura no se pueda determinar"
+
+#: lexsup.c:282
+msgid "Reject input files whose architecture is unknown"
+msgstr "Rechazar ficheros de entrada cuya arquitectura es desconocida"
+
+#: lexsup.c:284
+msgid "Ignored for SunOS compatibility"
+msgstr "Ignorado por compatibilidad con SunOS"
+
+#: lexsup.c:286
+msgid "Link against shared libraries"
+msgstr "Enlazar contra bibliotecas compartidas"
+
+#: lexsup.c:292
+msgid "Do not link against shared libraries"
+msgstr "No enlazar contra bibliotecas compartidas"
+
+#: lexsup.c:300
+msgid "Bind global references locally"
+msgstr "Asociar localmente las referencias globlales"
+
+#: lexsup.c:302
+msgid "Check section addresses for overlaps (default)"
+msgstr "Revisar las direcciones de las secciones por traslapes (por omisión)"
+
+#: lexsup.c:304
+msgid "Do not check section addresses for overlaps"
+msgstr "No revisar las direcciones de las secciones por traslapes"
+
+#: lexsup.c:307
+msgid "Output cross reference table"
+msgstr "Mostrar la tabla de referencias cruzadas"
+
+#: lexsup.c:309
+msgid "SYMBOL=EXPRESSION"
+msgstr "SÍMBOLO=EXPRESIÓN"
+
+#: lexsup.c:309
+msgid "Define a symbol"
+msgstr "Define un símbolo"
+
+#: lexsup.c:311
+msgid "[=STYLE]"
+msgstr "[=ESTILO]"
+
+#: lexsup.c:311
+msgid "Demangle symbol names [using STYLE]"
+msgstr "Desenreda los nombres de los símbolos [utilizando el ESTILO]"
+
+# No me convence mucho la traducción de `embedded' por imbuído. cfuga
+#: lexsup.c:313
+msgid "Generate embedded relocs"
+msgstr "Genera reubicaciones imbuídas"
+
+#: lexsup.c:315
+msgid "Call SYMBOL at unload-time"
+msgstr "Llamar al SÍMBOLO al momento de descargar"
+
+#: lexsup.c:317
+msgid "Force generation of file with .exe suffix"
+msgstr "Forzar la generación del fichero con sufijo .exe"
+
+#: lexsup.c:319
+msgid "Remove unused sections (on some targets)"
+msgstr "Eliminar las secciones sin uso (en algunos objetivos)"
+
+#: lexsup.c:322
+msgid "Don't remove unused sections (default)"
+msgstr "No eliminar las secciones sin uso (por omisión)"
+
+#: lexsup.c:325
+msgid "Print option help"
+msgstr "Muestra la ayuda de opciones"
+
+#: lexsup.c:327
+msgid "Call SYMBOL at load-time"
+msgstr "Llamar al SÍMBOLO al momento de cargar"
+
+#: lexsup.c:329
+msgid "Write a map file"
+msgstr "Escribir un fichero mapa"
+
+#: lexsup.c:331
+msgid "Do not define Common storage"
+msgstr "No definir almacenamiento Common"
+
+#: lexsup.c:333
+msgid "Do not demangle symbol names"
+msgstr "No desenredar los nombres de los símbolos"
+
+#: lexsup.c:335
+msgid "Use less memory and more disk I/O"
+msgstr "Usar menos memoria y más E/S de disco"
+
+#: lexsup.c:337
+msgid "Allow no undefined symbols"
+msgstr "No permitir símbolos sin definir"
+
+#: lexsup.c:339
+msgid "Allow undefined symbols in shared objects (the default)"
+msgstr "Permitir símbolos sin definir en objetos compartidos (por omisión)"
+
+#: lexsup.c:341
+msgid "Do not allow undefined symbols in shared objects"
+msgstr "No permitir símbolos sin definir en objetos compartidos"
+
+#: lexsup.c:343
+msgid "Allow multiple definitions"
+msgstr "Permitir definiciones múltiples"
+
+#: lexsup.c:345
+msgid "Disallow undefined version"
+msgstr "No permitir versiones sin definir"
+
+#: lexsup.c:347
+msgid "Don't warn about mismatched input files"
+msgstr "No avisar sobre ficheros de entrada sin coincidencia"
+
+#: lexsup.c:349
+msgid "Turn off --whole-archive"
+msgstr "Apagar --whole-archive"
+
+#: lexsup.c:351
+msgid "Create an output file even if errors occur"
+msgstr "Crear un fichero de salida aún si ocurren errores"
+
+#: lexsup.c:355
+msgid ""
+"Only use library directories specified on\n"
+"\t\t\t\tthe command line"
+msgstr ""
+"Utilizar solamente los directorios de bibliotecas\n"
+"\t\t\t\tespecificados en la línea de comandos"
+
+#: lexsup.c:357
+msgid "Specify target of output file"
+msgstr "Especificar el objetivo del fichero de salida"
+
+#: lexsup.c:359
+msgid "Ignored for Linux compatibility"
+msgstr "Ignorado por compatibilidad con Linux"
+
+#: lexsup.c:361
+msgid "Relax branches on certain targets"
+msgstr "Relajar ramificaciones en ciertos objetivos"
+
+#: lexsup.c:364
+msgid "Keep only symbols listed in FILE"
+msgstr "Conservar solamente los símbolos enlistados en el FICHERO"
+
+#: lexsup.c:366
+msgid "Set runtime shared library search path"
+msgstr "Establecer la rúta de búsqueda de bibliotecas compartidas en tiempo de ejecución"
+
+#: lexsup.c:368
+msgid "Set link time shared library search path"
+msgstr "Establecer la rúta de búsqueda de bibliotecas compartidas en tiempo de enlace"
+
+#: lexsup.c:370
+msgid "Create a shared library"
+msgstr "Crear una biblioteca compartida"
+
+#: lexsup.c:374
+msgid "Create a position independent executable"
+msgstr "Crear un ejecutable independiente de posición"
+
+#: lexsup.c:378
+msgid "Sort common symbols by size"
+msgstr "Ordenar los símbolos comunes por tamaño"
+
+#: lexsup.c:382
+msgid "COUNT"
+msgstr "CUENTA"
+
+#: lexsup.c:382
+msgid "How many tags to reserve in .dynamic section"
+msgstr "Cúantas marcas reservar en la sección .dynamic"
+
+#: lexsup.c:384
+msgid "[=SIZE]"
+msgstr "[=TAMAÑO]"
+
+#: lexsup.c:384
+msgid "Split output sections every SIZE octets"
+msgstr "Dividir las secciones de salida cada TAMAÑO octetos"
+
+#: lexsup.c:386
+msgid "[=COUNT]"
+msgstr "[=CUENTA]"
+
+#: lexsup.c:386
+msgid "Split output sections every COUNT relocs"
+msgstr "Dividir las secciones de salida cada CUENTA reubicaciones"
+
+#: lexsup.c:388
+msgid "Print memory usage statistics"
+msgstr "Mostrar las estadísticas de uso de memoria"
+
+#: lexsup.c:390
+msgid "Display target specific options"
+msgstr "Mostrar las opciones específicas del objetivo"
+
+#: lexsup.c:392
+msgid "Do task level linking"
+msgstr "Enlazar a nivel de tarea"
+
+#: lexsup.c:394
+msgid "Use same format as native linker"
+msgstr "Usar el mismo formato que el enlazador nativo"
+
+#: lexsup.c:396
+msgid "SECTION=ADDRESS"
+msgstr "SECCIÓN=DIRECCIÓN"
+
+#: lexsup.c:396
+msgid "Set address of named section"
+msgstr "Establecer la dirección de la sección nombrada"
+
+#: lexsup.c:398
+msgid "Set address of .bss section"
+msgstr "Establecer la dirección de la sección .bss"
+
+#: lexsup.c:400
+msgid "Set address of .data section"
+msgstr "Establecer la dirección de la sección .data"
+
+#: lexsup.c:402
+msgid "Set address of .text section"
+msgstr "Establecer la dirección de la sección .text"
+
+#: lexsup.c:404
+msgid "Output lots of information during link"
+msgstr "Mostrar mucha información durante el enlace"
+
+#: lexsup.c:408
+msgid "Read version information script"
+msgstr "Leer la información de la versión del guión"
+
+#: lexsup.c:411
+msgid ""
+"Take export symbols list from .exports, using\n"
+"\t\t\t\tSYMBOL as the version."
+msgstr ""
+"Tomar la lista de exportación de símbolos de .exports, usando\n"
+"\t\t\tel SÍMBOLO como la versión."
+
+#: lexsup.c:414
+msgid "Warn about duplicate common symbols"
+msgstr "Avisar sobre símbolos comunes duplicados"
+
+#: lexsup.c:416
+msgid "Warn if global constructors/destructors are seen"
+msgstr "Avisar si se ven constructores/destructores globales"
+
+#: lexsup.c:419
+msgid "Warn if the multiple GP values are used"
+msgstr "Avisar si se usan los valores múltiples GP"
+
+#: lexsup.c:421
+msgid "Warn only once per undefined symbol"
+msgstr "Avisar sólo una vez por cada símbolo sin definir"
+
+#: lexsup.c:423
+msgid "Warn if start of section changes due to alignment"
+msgstr "Avisar si el inicio de la sección cambia debido a la alineación"
+
+#: lexsup.c:426
+msgid "Treat warnings as errors"
+msgstr "Tratar los avisos como errores"
+
+#: lexsup.c:429
+msgid "Include all objects from following archives"
+msgstr "Incluir todos los objetos de los siguientes ficheros"
+
+#: lexsup.c:431
+msgid "Use wrapper functions for SYMBOL"
+msgstr "Usar funciones de envoltura para el SÍMBOLO"
+
+#: lexsup.c:433
+msgid "[=WORDS]"
+msgstr "[=PALABRAS]"
+
+#: lexsup.c:433
+msgid ""
+"Modify problematic branches in last WORDS (1-10,\n"
+"\t\t\t\tdefault 5) words of a page"
+msgstr ""
+"Modificar las ramificaciones problemáticas en las últimas PALABRAS (1-10,\n"
+"\t\t\t5 por omisión) palabras de una página"
+
+#: lexsup.c:602
+msgid "%P: unrecognized option '%s'\n"
+msgstr "%P: opción `%s' no reconocida\n"
+
+#: lexsup.c:604
+msgid "%P%F: use the --help option for usage information\n"
+msgstr "%P%F: use la opción --help para información de modo de empleo\n"
+
+#: lexsup.c:622
+msgid "%P%F: unrecognized -a option `%s'\n"
+msgstr "%P%F: opción -a `%s' no reconocida\n"
+
+#: lexsup.c:635
+msgid "%P%F: unrecognized -assert option `%s'\n"
+msgstr "%P%F: opción -assert `%s' no reconocida\n"
+
+#: lexsup.c:678
+msgid "%F%P: unknown demangling style `%s'"
+msgstr "%F%P: estilo de desenredo `%s' desconocido"
+
+#: lexsup.c:737
+msgid "%P%F: invalid number `%s'\n"
+msgstr "%P%F: número `%s' inválido\n"
+
+#. 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
+#. but it cannot parse the text after the -r so it refuses to
+#. increment the optind counter. Detect this case and issue
+#. 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
+msgid "%P%F: bad -rpath option\n"
+msgstr "%P%F: opción -rpath errónea\n"
+
+#: lexsup.c:953
+msgid "%P%F: -shared not supported\n"
+msgstr "%P%F: -shared no tiene soporte\n"
+
+#: lexsup.c:962
+msgid "%P%F: -pie not supported\n"
+msgstr "%P%F: -pie no tiene soporte\n"
+
+#: lexsup.c:994
+msgid "%P%F: invalid argument to option \"--section-start\"\n"
+msgstr "%P%F: argumento inválido para la opción \"--section-start\"\n"
+
+#: lexsup.c:1000
+msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
+msgstr "%P%F: falta(n) argumento(s) para la opción \"--section-start\"\n"
+
+#: lexsup.c:1158
+msgid "%P%F: may not nest groups (--help for usage)\n"
+msgstr "%P%F: no se pueden anidar grupos (--help para modo de empleo)\n"
+
+#: lexsup.c:1165
+msgid "%P%F: group ended before it began (--help for usage)\n"
+msgstr "%P%F: el grupo terminó antes de empezar (--help para modo de empleo)\n"
+
+#: lexsup.c:1179
+msgid "%P%F: invalid argument to option \"mpc860c0\"\n"
+msgstr "%P%F: Argumento inválido para la opción \"mpc860c0\"\n"
+
+#: lexsup.c:1234
+msgid "%P%F: invalid hex number `%s'\n"
+msgstr "%P%F: número hexadecimal `%s' inválido\n"
+
+#: lexsup.c:1246
+#, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr "Modo de empleo: %s [opciones] fichero...\n"
+
+#: lexsup.c:1248
+msgid "Options:\n"
+msgstr "Opciones:\n"
+
+#. Note: Various tools (such as libtool) depend upon the
+#. format of the listings below - do not change them.
+#: lexsup.c:1331
+#, c-format
+msgid "%s: supported targets:"
+msgstr "%s: objetivos con soporte:"
+
+#: lexsup.c:1339
+#, c-format
+msgid "%s: supported emulations: "
+msgstr "%s: emulaciones con soporte: "
+
+#: lexsup.c:1344
+#, c-format
+msgid "%s: emulation specific options:\n"
+msgstr "%s: opciones específicas de emulación:\n"
+
+#: lexsup.c:1348
+#, c-format
+msgid "Report bugs to %s\n"
+msgstr "Reportar bichos a %s\n"
+
+#: mri.c:307
+msgid "%P%F: unknown format type %s\n"
+msgstr "%P%F: tipo de formato %s desconocido\n"
+
+#: pe-dll.c:301
+#, c-format
+msgid "%XUnsupported PEI architecture: %s\n"
+msgstr "%XArquitectura PEI sin soporte: %s\n"
+
+#: pe-dll.c:650
+#, c-format
+msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
+msgstr "%XError, EXPORT duplicado con ordinales: %s (%d vs %d)\n"
+
+#: pe-dll.c:657
+#, c-format
+msgid "Warning, duplicate EXPORT: %s\n"
+msgstr "Aviso, EXPORT duplicado: %s\n"
+
+#: pe-dll.c:723
+#, c-format
+msgid "%XCannot export %s: symbol not defined\n"
+msgstr "%XNo se puede exportar %s: símbolo no definido\n"
+
+#: pe-dll.c:729
+#, c-format
+msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n"
+msgstr "%XNo se puede exportar %s: tipo erróneo del símbolo (%d vs %d)\n"
+
+#: pe-dll.c:736
+#, c-format
+msgid "%XCannot export %s: symbol not found\n"
+msgstr "%XNo se puede exportar %s: no se encuentra el símbolo\n"
+
+#: pe-dll.c:848
+#, c-format
+msgid "%XError, ordinal used twice: %d (%s vs %s)\n"
+msgstr "%XError, ordinal utilizado dos veces: %d (%s vs %s)\n"
+
+#: pe-dll.c:1165
+#, c-format
+msgid "%XError: %d-bit reloc in dll\n"
+msgstr "%XError: reubicación de %d-bit en la dll\n"
+
+#: pe-dll.c:1296
+#, c-format
+msgid "%s: Can't open output def file %s\n"
+msgstr "%s: No se puede abrir el fichero por omisión de salida %s\n"
+
+#: pe-dll.c:1439
+msgid "; no contents available\n"
+msgstr "; no hay contenido disponible\n"
+
+#: 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: no se puede auto-importar la variable '%T'. Por favor lea la documentación para --enable-auto-import de ld para más detalles.\n"
+
+#: pe-dll.c:2233
+#, c-format
+msgid "%XCan't open .lib file: %s\n"
+msgstr "%XNo se puede abrir el fichero .lib: %s\n"
+
+#: pe-dll.c:2238
+#, c-format
+msgid "Creating library file: %s\n"
+msgstr "Creando el fichero de biblioteca: %s\n"
+
+#~ msgid " create __imp_<SYMBOL> as well.\n"
+#~ msgstr " creando también __imp_<SÍMBOLO>.\n"
+
+#~ msgid " unless user specifies one\n"
+#~ msgstr " a menos que el usuario especifique alguna\n"
+
+#~ msgid " --dll-search-prefix=<string> When linking dynamically to a dll witout an\n"
+#~ msgstr " --dll-search-prefix=<cadena> Al enlazar dinámicamente con una dll sin una\n"
+
+#~ msgid " importlib, use <string><basename>.dll \n"
+#~ msgstr " biblioteca de importación, usar <cadena><nombrebase>.dll\n"
+
+#~ msgid " in preference to lib<basename>.dll \n"
+#~ msgstr " en lugar de lib<nombrebase>.dll \n"
+
+#~ msgid "Archive member included"
+#~ msgstr "Se incluyó el fichero miembro"
+
+#~ msgid "Don't merge orphan sections with the same name"
+#~ msgstr "No mezclar secciones huérfanas con el mismo nombre"
diff --git a/gnu/usr.bin/binutils/ld/po/fr.gmo b/gnu/usr.bin/binutils/ld/po/fr.gmo
new file mode 100644
index 00000000000..f89d8825cec
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/po/fr.gmo
Binary files differ
diff --git a/gnu/usr.bin/binutils/ld/po/fr.po b/gnu/usr.bin/binutils/ld/po/fr.po
new file mode 100644
index 00000000000..2569145eca5
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/po/fr.po
@@ -0,0 +1,1698 @@
+# Messages français pour ld.
+# Copyright © 2004 Free Software Foundation, Inc.
+# Michel Robitaille <robitail@IRO.UMontreal.CA>, traducteur depuis/since 1996.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ld 2.12.91\n"
+"POT-Creation-Date: 2002-07-23 15:58-0400\n"
+"PO-Revision-Date: 2004-05-10 08:00-0500\n"
+"Last-Translator: Michel Robitaille <robitail@IRO.UMontreal.CA>\n"
+"Language-Team: French <traduc@traduc.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: emultempl/armcoff.em:71
+msgid " --support-old-code Support interworking with old code\n"
+msgstr " --support-old-code supporter les veilles versions de code\n"
+
+#: emultempl/armcoff.em:72
+msgid " --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n"
+msgstr " --thumb-entry=<sym> initialiser le point d'entrée de Thumb symbol à <sym>\n"
+
+#: emultempl/armcoff.em:141
+#, c-format
+msgid "Errors encountered processing file %s"
+msgstr "Erreur rencontrées lors du traitement du fichier %s"
+
+#: emultempl/armcoff.em:207 emultempl/pe.em:1422
+msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
+msgstr "%P: AVERTISSEMENT: « --thumb-entry %s » écrase « -e %s »\n"
+
+#: emultempl/armcoff.em:212 emultempl/pe.em:1427
+msgid "%P: warning: connot find thumb start symbol %s\n"
+msgstr "%P: AVERTISSEMENT: ne peut repérer le symbole thumb de départ %s\n"
+
+#: emultempl/pe.em:317
+msgid " --base_file <basefile> Generate a base file for relocatable DLLs\n"
+msgstr " --base_file <fichier_de_base> générer une fichier de base les les DLL relocalisables\n"
+
+#: emultempl/pe.em:318
+msgid " --dll Set image base to the default for DLLs\n"
+msgstr " --dll initialise l'image de base au DLL par défaut\n"
+
+#: emultempl/pe.em:319
+msgid " --file-alignment <size> Set file alignment\n"
+msgstr " --file-alignment <taille> initialiser l'alignement du fichier\n"
+
+#: emultempl/pe.em:320
+msgid " --heap <size> Set initial size of the heap\n"
+msgstr " --heap <taille> initialiser la taille initiale du monceau\n"
+
+#: emultempl/pe.em:321
+msgid " --image-base <address> Set start address of the executable\n"
+msgstr " --image-base <adresse> initialiser l'adresse de début de l'exécutable\n"
+
+#: emultempl/pe.em:322
+msgid " --major-image-version <number> Set version number of the executable\n"
+msgstr " --major-image-version <nombre> initialiser le numéro de version de l'exécutable\n"
+
+#: emultempl/pe.em:323
+msgid " --major-os-version <number> Set minimum required OS version\n"
+msgstr " --major-os-version <nombre> initialiser le numéro minimum de version du système d'exploitation\n"
+
+#: emultempl/pe.em:324
+msgid " --major-subsystem-version <number> Set minimum required OS subsystem version\n"
+msgstr " --major-subsystem-version <nombre> initialiser le numéro minimum de version du sous-système\n"
+
+#: emultempl/pe.em:325
+msgid " --minor-image-version <number> Set revision number of the executable\n"
+msgstr " --minor-image-version <nombre> initialiser le numéro de révision de l'exécutable\n"
+
+#: emultempl/pe.em:326
+msgid " --minor-os-version <number> Set minimum required OS revision\n"
+msgstr " --minor-os-version <nombre> initialiser le numéro minimum de version du système d'exploitation\n"
+
+#: emultempl/pe.em:327
+msgid " --minor-subsystem-version <number> Set minimum required OS subsystem revision\n"
+msgstr " --minor-subsystem-version <nombre> initialiser le numéro minimum de version du sous-système\n"
+
+#: emultempl/pe.em:328
+msgid " --section-alignment <size> Set section alignment\n"
+msgstr " --section-alignment <taille> initialiser l'alignement de section\n"
+
+#: emultempl/pe.em:329
+msgid " --stack <size> Set size of the initial stack\n"
+msgstr " --stack <taille> initialiser la taille initiale de la pile\n"
+
+#: emultempl/pe.em:330
+msgid " --subsystem <name>[:<version>] Set required OS subsystem [& version]\n"
+msgstr " --subsystem <nom>[:<version>] initialiser le sous-système de l'OS requis [&version]\n"
+
+#: emultempl/pe.em:331
+msgid " --support-old-code Support interworking with old code\n"
+msgstr " --support-old-code supporter l'inter-réseautage avec le vieux code\n"
+
+#: emultempl/pe.em:332
+msgid " --thumb-entry=<symbol> Set the entry point to be Thumb <symbol>\n"
+msgstr " --thumb-entry=<symbole> initialiser le point d'entrée de Thumb <symbole>\n"
+
+#: emultempl/pe.em:334
+msgid " --add-stdcall-alias Export symbols with and without @nn\n"
+msgstr " --add-stdcall-alias exporter les symboles avec et sans @nn\n"
+
+#: emultempl/pe.em:335
+msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n"
+msgstr " --disable-stdcall-fixup ne lier _sym à _sym@nn\n"
+
+#: emultempl/pe.em:336
+msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n"
+msgstr " --enable-stdcall-fixup lier _sym à _sym@nn sans avertissement\n"
+
+#: emultempl/pe.em:337
+msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"
+msgstr " --exclude-symbols sym,sym,... exclure les symboles de l'exportation automatique\n"
+
+#: emultempl/pe.em:338
+msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n"
+msgstr " --exclude-libs libs,lib,... exclure les librairies lors l'exportation automatique\n"
+
+#: emultempl/pe.em:339
+msgid " --export-all-symbols Automatically export all globals to DLL\n"
+msgstr " --export-all-symbols exporter automatiquement tous les globaux au DLL\n"
+
+#: emultempl/pe.em:340
+msgid " --kill-at Remove @nn from exported symbols\n"
+msgstr " --kill-at enlever les @nn des symboles exportés\n"
+
+#: emultempl/pe.em:341
+msgid " --out-implib <file> Generate import library\n"
+msgstr " --out-implib <fichier> générer la librairie d'importation\n"
+
+#: emultempl/pe.em:342
+msgid " --output-def <file> Generate a .DEF file for the built DLL\n"
+msgstr " --output-def <fichier> générer le fichier .DEF pour le DLL construit\n"
+
+#: emultempl/pe.em:343
+msgid " --warn-duplicate-exports Warn about duplicate exports.\n"
+msgstr " --warn-duplicate-exports avertir lors de l'exportation avec duplication\n"
+
+#: emultempl/pe.em:344
+msgid ""
+" --compat-implib Create backward compatible import libs;\n"
+" create __imp_<SYMBOL> as well.\n"
+msgstr ""
+" --compat-implib créer des librairies d'importation avec\n"
+" compatibilité arrière; \n"
+" créer __imp_<SYMBOL> aussi\n"
+
+#: emultempl/pe.em:346
+msgid ""
+" --enable-auto-image-base Automatically choose image base for DLLs\n"
+" unless user specifies one\n"
+msgstr ""
+" --enable-auto-image-base automatiquement choisir l'image de base pour les DLL\n"
+" à moins que l'usager en ait spécifié une\n"
+
+#: emultempl/pe.em:348
+msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n"
+msgstr " --disable-auto-image-base ne pas choisir automatiquement l'image de base (par défaut)\n"
+
+#: emultempl/pe.em:349
+msgid ""
+" --dll-search-prefix=<string> When linking dynamically to a dll without an\n"
+" importlib, use <string><basename>.dll \n"
+" in preference to lib<basename>.dll \n"
+msgstr ""
+" --dll-search-prefix=<chaîne> lors de l'édtiion de lien dynamique vers un DLL sans\n"
+" importlib, utiliser <chaîne><basename>.dll \n"
+" de préférence à lib<basename>.dll \n"
+
+#: emultempl/pe.em:352
+msgid ""
+" --enable-auto-import Do sophistcated linking of _sym to \n"
+" __imp_sym for DATA references\n"
+msgstr ""
+" --enable-auto-import faire de l'édition de liens sophistiquée de _sym vers \n"
+" __imp_sym pour les références DATA\n"
+
+#: emultempl/pe.em:354
+msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n"
+msgstr " --disable-auto-image-base ne pas choisir des items DATA auto-importés à partir des DLLs\n"
+
+#: emultempl/pe.em:355
+msgid ""
+" --enable-extra-pe-debug Enable verbose debug output when building\n"
+" or linking to DLLs (esp. auto-import)\n"
+msgstr ""
+" --enable-extra-pe-debug permettre le mode informatif durant la sortie\n"
+" de mise au point lors de la construction ou du lien\n"
+" vers un DLLs (spécialement en auto-import)\n"
+
+#: emultempl/pe.em:424
+msgid "%P: warning: bad version number in -subsystem option\n"
+msgstr "%P: AVERTISSEMENT: mauvais numéro de version dans l'option -subsystem\n"
+
+#: emultempl/pe.em:460
+msgid "%P%F: invalid subsystem type %s\n"
+msgstr "%P%F: type de sous-système invalide %s\n"
+
+#: emultempl/pe.em:475
+msgid "%P%F: invalid hex number for PE parameter '%s'\n"
+msgstr "%P%F: nombre hexadécimal invalide pour un paramètre PE « %s »\n"
+
+#: emultempl/pe.em:493
+msgid "%P%F: strange hex info for PE parameter '%s'\n"
+msgstr "%P%F: info étrange en hexadécimal pour un paramètre PE « %s »\n"
+
+#: emultempl/pe.em:532
+#, c-format
+msgid "%s: Can't open base file %s\n"
+msgstr "%s: ne peut ouvrir le fichier de base %s\n"
+
+#: emultempl/pe.em:738
+msgid "%P: warning, file alignment > section alignment.\n"
+msgstr "%P: AVERTISSEMENT, alignement de fichier > alignement de section\n"
+
+#: emultempl/pe.em:822 emultempl/pe.em:848
+#, c-format
+msgid "Warning: resolving %s by linking to %s\n"
+msgstr "AVERTISSEMENT: résolution de %s par un lien vers %s\n"
+
+#: emultempl/pe.em:827 emultempl/pe.em:853
+msgid "Use --enable-stdcall-fixup to disable these warnings\n"
+msgstr "Utiliser --enable-stdcall-fixup pour inhiber les avertissements\n"
+
+#: emultempl/pe.em:828 emultempl/pe.em:854
+msgid "Use --disable-stdcall-fixup to disable these fixups\n"
+msgstr "Utiliser --disable-stdcall-fixup pour inhiber les correctifs\n"
+
+#: emultempl/pe.em:879
+msgid "%C: Cannot get section contents - auto-import exception\n"
+msgstr "%C: ne peut obtenir le contenu de section - exception auto-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: variable « %T » ne peut être auto-importée. SVP lire la documentation de ld --enable-auto-import pour plus de détails.\n"
+
+#: emultempl/pe.em:916
+#, c-format
+msgid "Info: resolving %s by linking to %s (auto-import)\n"
+msgstr "Info: résolution de %s par un lien vers %s (auto-importé)\n"
+
+#: emultempl/pe.em:997
+msgid "%F%P: PE operations on non PE file.\n"
+msgstr "%F%P: operations PE sur des fichiers non PE.\n"
+
+#: emultempl/pe.em:1226
+#, c-format
+msgid "Errors encountered processing file %s\n"
+msgstr "Erreurs rencontrées lors du traitement du fichier %s\n"
+
+#: emultempl/pe.em:1249
+#, c-format
+msgid "Errors encountered processing file %s for interworking"
+msgstr "Erreurs rencontrées lors du traitement du fichier %s pour l'inter-réseautage"
+
+#: emultempl/pe.em:1305 ldlang.c:2065 ldlang.c:4608 ldlang.c:4641
+#: ldmain.c:1061
+msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
+msgstr "%P%F: bfd_link_hash_lookup en échec: %E\n"
+
+#: ldcref.c:158
+msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n"
+msgstr "%X%P: bfd_hash_table_init de la tacle cref en échec: %E\n"
+
+#: ldcref.c:164
+msgid "%X%P: cref_hash_lookup failed: %E\n"
+msgstr "%X%P: cref_hash_lookup en échec: %E\n"
+
+#: ldcref.c:235
+msgid ""
+"\n"
+"Cross Reference Table\n"
+"\n"
+msgstr ""
+"\n"
+"Table de référence croisé\n"
+"\n"
+
+#: ldcref.c:236
+msgid "Symbol"
+msgstr "Symbole"
+
+#: ldcref.c:244
+msgid "File\n"
+msgstr "Fichier\n"
+
+#: ldcref.c:248
+msgid "No symbols\n"
+msgstr "Aucun symbol\n"
+
+#: ldcref.c:400
+msgid "%P: symbol `%T' missing from main hash table\n"
+msgstr "%P: symbole « %T » manquant dans la table de hachage principale\n"
+
+#: ldcref.c:465
+msgid "%B%F: could not read symbols; %E\n"
+msgstr "%B%F: ne peut lire les symboles; %E\n"
+
+#: ldcref.c:469 ldmain.c:1127 ldmain.c:1131
+msgid "%B%F: could not read symbols: %E\n"
+msgstr "%B%F: ne peut lire les symboles: %E\n"
+
+#: ldcref.c:537 ldcref.c:544 ldmain.c:1177 ldmain.c:1184
+msgid "%B%F: could not read relocs: %E\n"
+msgstr "%B%F: ne peut lire les relocalisations: %E\n"
+
+#. We found a reloc for the symbol. The symbol is defined
+#. 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
+msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n"
+msgstr "%X%C: référence croisée prohibé de %s vers « %T » dans %s\n"
+
+#: ldctor.c:88
+msgid "%P%X: Different relocs used in set %s\n"
+msgstr "%P%X: différentes relocalisations utilisées dans l'ensemble %s\n"
+
+#: ldctor.c:106
+msgid "%P%X: Different object file formats composing set %s\n"
+msgstr "%P%X: différents format de fichiers objet composant l'ensemble %s\n"
+
+#: ldctor.c:288 ldctor.c:302
+msgid "%P%X: %s does not support reloc %s for set %s\n"
+msgstr "%P%X: %s ne supporter pas la relocalisation %s pour l'ensemble %s\n"
+
+#: ldctor.c:323
+msgid "%P%X: Unsupported size %d for set %s\n"
+msgstr "%P%X: taille non supportée %d pour l'ensemble %s\n"
+
+#: ldctor.c:344
+msgid ""
+"\n"
+"Set Symbol\n"
+"\n"
+msgstr ""
+"\n"
+"Ensemble Symbole\n"
+"\n"
+
+#: ldemul.c:225
+msgid "%S SYSLIB ignored\n"
+msgstr "%S SYSLIB ignoré\n"
+
+#: ldemul.c:232
+msgid "%S HLL ignored\n"
+msgstr "%S HLL ignoré\n"
+
+#: ldemul.c:253
+msgid "%P: unrecognised emulation mode: %s\n"
+msgstr "%P: mode d'émulation non reconnu: %s\n"
+
+#: ldemul.c:254
+msgid "Supported emulations: "
+msgstr "Émulations supportées: "
+
+#: ldemul.c:298
+msgid " no emulation specific options.\n"
+msgstr " aucune option spécifique d'émulation.\n"
+
+#: ldexp.c:174
+msgid "%F%P: %s uses undefined section %s\n"
+msgstr "%F%P: %s utilise une section indéfinie %s\n"
+
+#: ldexp.c:176
+msgid "%F%P: %s forward reference of section %s\n"
+msgstr "%F%P: %s référence avant de la section %s\n"
+
+#: ldexp.c:304
+msgid "%F%S %% by zero\n"
+msgstr "%F%S %% par zéro\n"
+
+#: ldexp.c:311
+msgid "%F%S / by zero\n"
+msgstr "%F%S / by zéro\n"
+
+#: ldexp.c:463
+msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
+msgstr "%X%S: symbole non résolu « %s » référencé dans l'expression\n"
+
+#: ldexp.c:483
+msgid "%F%S: undefined symbol `%s' referenced in expression\n"
+msgstr "%F%S: symbole non résolu « %s » référencé dans l'expression\n"
+
+#: ldexp.c:685
+msgid "%F%S can not PROVIDE assignment to location counter\n"
+msgstr "%F%S ne peut FOURNIR une assignation au compteur de localisation\n"
+
+#: ldexp.c:695
+msgid "%F%S invalid assignment to location counter\n"
+msgstr "%F%S affection invalide au compteur de localisation\n"
+
+#: ldexp.c:699
+msgid "%F%S assignment to location counter invalid outside of SECTION\n"
+msgstr "%F%S affection au compteur de localisation invalide en dehors de la SECTION\n"
+
+#: ldexp.c:708
+msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
+msgstr "%F%S ne peut déplacer le compteur de localisation par en arrière (de %V vers %V)\n"
+
+#: ldexp.c:735
+msgid "%P%F:%s: hash creation failed\n"
+msgstr "%P%F:%s: création de la table de hachage en échec\n"
+
+#: ldexp.c:1037 ldexp.c:1071
+msgid "%F%S nonconstant expression for %s\n"
+msgstr "%F%S expression d'une non constante: %s\n"
+
+#: ldexp.c:1126
+msgid "%F%S non constant expression for %s\n"
+msgstr "%F%S expression de non constante: %s\n"
+
+#: ldfile.c:105
+#, c-format
+msgid "attempt to open %s failed\n"
+msgstr "échec de la tentative d'ouverture de %s\n"
+
+#: ldfile.c:107
+#, c-format
+msgid "attempt to open %s succeeded\n"
+msgstr "succès de la tentative d'ouverture de %s\n"
+
+#: ldfile.c:113
+msgid "%F%P: invalid BFD target `%s'\n"
+msgstr "%F%P: cible BFD invalide « %s »\n"
+
+#: ldfile.c:142
+msgid "%P: skipping incompatible %s when searching for %s\n"
+msgstr "%P: escamotage incompatible %s lors de la recherche de %s\n"
+
+#: ldfile.c:234
+msgid "%F%P: cannot open %s for %s: %E\n"
+msgstr "%F%P: ne peut ouvrir %s pour %s: %E\n"
+
+#: ldfile.c:237
+msgid "%F%P: cannot open %s: %E\n"
+msgstr "%F%P: ne peut ouvrir %s: %E\n"
+
+#: ldfile.c:267
+msgid "%F%P: cannot find %s\n"
+msgstr "%F%P: ne peut trouver %s\n"
+
+#: ldfile.c:286 ldfile.c:302
+#, c-format
+msgid "cannot find script file %s\n"
+msgstr "ne peut repérer le fichier de scripts %s\n"
+
+#: ldfile.c:288 ldfile.c:304
+#, c-format
+msgid "opened script file %s\n"
+msgstr "fichier de scripts ouvert %s\n"
+
+#: ldfile.c:353
+msgid "%P%F: cannot open linker script file %s: %E\n"
+msgstr "%P%F: ne peut ouvrir le fichier de scripts de l'éditeur de liens %s: %E\n"
+
+#: ldfile.c:391
+msgid "%P%F: unknown architecture: %s\n"
+msgstr "%P%F: architecture inconnue: %s\n"
+
+#: ldfile.c:407
+msgid "%P%F: target architecture respecified\n"
+msgstr "%P%F: architecture cible re-spécifiée\n"
+
+#: ldfile.c:461
+msgid "%P%F: cannot represent machine `%s'\n"
+msgstr "%P%F: ne peut représenter la machine « %s »\n"
+
+#: ldlang.c:784
+msgid ""
+"\n"
+"Memory Configuration\n"
+"\n"
+msgstr ""
+"\n"
+"Configuration mémoire\n"
+"\n"
+
+#: ldlang.c:786
+msgid "Name"
+msgstr "Nom"
+
+#: ldlang.c:786
+msgid "Origin"
+msgstr "Origine"
+
+#: ldlang.c:786
+msgid "Length"
+msgstr "Longueur"
+
+#: ldlang.c:786
+msgid "Attributes"
+msgstr "Attributs"
+
+#: ldlang.c:828
+msgid ""
+"\n"
+"Linker script and memory map\n"
+"\n"
+msgstr ""
+"\n"
+"Script de l'éditeurs de liens and table de projection mémoire\n"
+"\n"
+
+#: ldlang.c:845
+msgid "%P%F: Illegal use of `%s' section\n"
+msgstr "%P%F: utilisation illégale de la section « %s »\n"
+
+#: ldlang.c:855
+msgid "%P%F: output format %s cannot represent section called %s\n"
+msgstr "%P%F: format de sortie %s ne peut représenter la section %s\n"
+
+#: ldlang.c:1016
+msgid "%P: %B: warning: ignoring duplicate section `%s'\n"
+msgstr "%P: %B: AVERTISSEMENT: section dupliquée ignorée « %s »\n"
+
+#: ldlang.c:1019
+msgid "%P: %B: warning: ignoring duplicate `%s' section symbol `%s'\n"
+msgstr "%P: %B: AVERTISSEMENT: duplication ignorée « %s » dans la section symbole « %s »\n"
+
+#: ldlang.c:1033
+msgid "%P: %B: warning: duplicate section `%s' has different size\n"
+msgstr "%P: %B: AVERTISSEMENT: section dupliquée « %s » a un taille différente\n"
+
+#: ldlang.c:1084
+msgid "%P%F: Failed to create hash table\n"
+msgstr "%P%F: échec de création de la table de hachage\n"
+
+#: ldlang.c:1503
+msgid "%B: file not recognized: %E\n"
+msgstr "%B: fichier non reconnue: %E\n"
+
+#: ldlang.c:1504
+msgid "%B: matching formats:"
+msgstr "%B: formats concordants:"
+
+#: ldlang.c:1511
+msgid "%F%B: file not recognized: %E\n"
+msgstr "%F%B: fichier non reconnu: %E\n"
+
+#: ldlang.c:1567
+msgid "%F%B: member %B in archive is not an object\n"
+msgstr "%F%B: membre %B dans l'archive n'est pas un objet\n"
+
+#: ldlang.c:1578 ldlang.c:1592
+msgid "%F%B: could not read symbols: %E\n"
+msgstr "%F%B: ne peut lire les symboles: %E\n"
+
+#: ldlang.c:1853
+msgid "%P: warning: could not find any targets that match endianness requirement\n"
+msgstr ""
+"%P: AVERTISSEMENT: ne peut repérer les cibles qui concordent avec\n"
+"les types de système à octets de poids faible ou fort requis\n"
+
+#: ldlang.c:1866
+msgid "%P%F: target %s not found\n"
+msgstr "%P%F: cible %s non trouvée\n"
+
+#: ldlang.c:1868
+msgid "%P%F: cannot open output file %s: %E\n"
+msgstr "%P%F: ne peut ouvrir le fichier de sortie %s: %E\n"
+
+#: ldlang.c:1878
+msgid "%P%F:%s: can not make object file: %E\n"
+msgstr "%P%F:%s: ne peut créer le fichier objet: %E\n"
+
+#: ldlang.c:1882
+msgid "%P%F:%s: can not set architecture: %E\n"
+msgstr "%P%F:%s: ne peut initialiser l'architecture: %E\n"
+
+#: ldlang.c:1886
+msgid "%P%F: can not create link hash table: %E\n"
+msgstr "%P%F: ne peut créer un lien vers la table de hachage: %E\n"
+
+#: ldlang.c:2235
+msgid " load address 0x%V"
+msgstr " address de chargement 0x%V"
+
+#: ldlang.c:2375
+msgid "%W (size before relaxing)\n"
+msgstr "%W (taille avant relaxe)\n"
+
+#: ldlang.c:2462
+#, c-format
+msgid "Address of section %s set to "
+msgstr "Adresse de la section %s initialisé à "
+
+#: ldlang.c:2623
+#, c-format
+msgid "Fail with %d\n"
+msgstr "Échec avec %d\n"
+
+#: ldlang.c:2868
+msgid "%X%P: section %s [%V -> %V] overlaps section %s [%V -> %V]\n"
+msgstr "%X%P: section %s [%V -> %V] chevauche la section %s [%V -> %V]\n"
+
+#: ldlang.c:2897
+msgid "%X%P: address 0x%v of %B section %s is not within region %s\n"
+msgstr "%X%P: l'adresse 0x%v de %B de la section %s n'est pas dans la région %s\n"
+
+#: ldlang.c:2905
+msgid "%X%P: region %s is full (%B section %s)\n"
+msgstr "%X%P: région %s est pleine (%B section %s)\n"
+
+#: ldlang.c:2955
+msgid "%P%X: Internal error on COFF shared library section %s\n"
+msgstr "%P%X: erreur interne dans la section partagée de la librairie de COFF %s\n"
+
+#: ldlang.c:2999
+msgid "%P: warning: no memory region specified for section `%s'\n"
+msgstr "%P: AVERTISSEMENT: pas de région mémoire spécifiée pour la section « %s »\n"
+
+#: ldlang.c:3014
+msgid "%P: warning: changing start of section %s by %u bytes\n"
+msgstr "%P: AVERTISSEMENT: modification du début de section %s de %u octets\n"
+
+#: ldlang.c:3028
+msgid "%F%S: non constant address expression for section %s\n"
+msgstr "%F%S: adresse d'expression n'est pas une constante pour la section %s\n"
+
+#: ldlang.c:3203
+msgid "%P%F: can't relax section: %E\n"
+msgstr "%P%F: ne peut relâcher la section: %E\n"
+
+#: ldlang.c:3398
+msgid "%F%P: invalid data statement\n"
+msgstr "%F%P: déclaration invalide de données\n"
+
+#: ldlang.c:3435
+msgid "%F%P: invalid reloc statement\n"
+msgstr "%F%P: déclaration invalide de relocalisation\n"
+
+#: ldlang.c:3574
+msgid "%P%F:%s: can't set start address\n"
+msgstr "%P%F:%s: ne peut initialiser l'adresse de départ\n"
+
+#: ldlang.c:3587 ldlang.c:3605
+msgid "%P%F: can't set start address\n"
+msgstr "%P%F: ne peut initialiser l'adresse de départ\n"
+
+#: ldlang.c:3599
+msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
+msgstr "%P: AVERTISSEMENT: ne peut trouver le symbole d'entrée %s; utilise par défaut %V\n"
+
+#: ldlang.c:3610
+msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
+msgstr "%P: AVERTISSEMENT: ne peut trouver le symbole d'entrée %s; pas d'initialisation de l'adresse de départ\n"
+
+#: ldlang.c:3660
+msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n"
+msgstr "%P%F: liaison relocalisable avec relocalisation à partir du format %s (%B) au format %s (%B) n'est pas supportée\n"
+
+#: ldlang.c:3669
+msgid "%P: warning: %s architecture of input file `%B' is incompatible with %s output\n"
+msgstr "%P: AVERTISSEMENT: architecture %s du fichier d'entrée « %B » est incompatible avec la sortie %s\n"
+
+#: ldlang.c:3690
+msgid "%E%X: failed to merge target specific data of file %B\n"
+msgstr "%E%X: échec de fusion des données spécifiques cibles du fichier %B\n"
+
+#: ldlang.c:3779
+msgid ""
+"\n"
+"Allocating common symbols\n"
+msgstr ""
+"\n"
+"Allocation des symboles communs\n"
+
+#: ldlang.c:3780
+msgid ""
+"Common symbol size file\n"
+"\n"
+msgstr ""
+"Symbole commun taille fichier\n"
+"\n"
+
+#. This message happens when using the
+#. svr3.ifile linker script, so I have
+#. disabled it.
+#: ldlang.c:3858
+msgid "%P: no [COMMON] command, defaulting to .bss\n"
+msgstr "%P: pas de commande [COMMUNE], utilisation par défaut de .bss\n"
+
+#: ldlang.c:3917
+msgid "%P%F: invalid syntax in flags\n"
+msgstr "%P%F: syntaxe invalide dans les fanions\n"
+
+#: ldlang.c:4532
+msgid "%P%Fmultiple STARTUP files\n"
+msgstr "%P%F fichiers multiples de DÉPART\n"
+
+#: ldlang.c:4575
+msgid "%X%P:%S: section has both a load address and a load region\n"
+msgstr "%X%P:%S: section a à la fois une adresse de chargement et une région de chargement\n"
+
+#: ldlang.c:4825
+msgid "%F%P: bfd_record_phdr failed: %E\n"
+msgstr "%F%P: bfd_record_phdr en échec: %E\n"
+
+#: ldlang.c:4844
+msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
+msgstr "%X%P: section « %s » affectée à phdr inexistent « %s »\n"
+
+#: ldlang.c:5143
+msgid "%X%P: unknown language `%s' in version information\n"
+msgstr "%X%P: langage inconnue « %s » dans l'information de la version\n"
+
+#: ldlang.c:5195
+msgid "%X%P: anonymous version tag cannot be combined with other version tags\n"
+msgstr "%X%P: étiquette de version anonyme ne peut être combinée avec d'autres étiquettes de version\n"
+
+#: ldlang.c:5202
+msgid "%X%P: duplicate version tag `%s'\n"
+msgstr "%X%P: duplication de l'étiquette de version « %s »\n"
+
+#: ldlang.c:5215 ldlang.c:5228
+msgid "%X%P: duplicate expression `%s' in version information\n"
+msgstr "%X%P: duplication de l'expression « %s » dans l'information de version\n"
+
+#: ldlang.c:5270
+msgid "%X%P: unable to find version dependency `%s'\n"
+msgstr "%X%P: incapable de repérer les dépendences de version « %s »\n"
+
+#: ldlang.c:5292
+msgid "%X%P: unable to read .exports section contents\n"
+msgstr "%X%P: incapable de lire le contenu de la section .exports\n"
+
+#: ldmain.c:198
+msgid "%X%P: can't set BFD default target to `%s': %E\n"
+msgstr "%X%P: ne peut initialiser la cible par défaut BFD à « %s »: %E\n"
+
+#: ldmain.c:290
+msgid "%P%F: -r and --mpc860c0 may not be used together\n"
+msgstr "%P%F: -r et --mpc860c0 ne peuvent être utilisés ensemble\n"
+
+#: ldmain.c:292
+msgid "%P%F: --relax and -r may not be used together\n"
+msgstr "%P%F: --relax et -r ne peuvent être utilisés ensemble\n"
+
+#: ldmain.c:294
+msgid "%P%F: -r and -shared may not be used together\n"
+msgstr "%P%F: -r et -shared ne peuvent être utilisés ensemble\n"
+
+#: ldmain.c:300
+msgid "%P%F: -F may not be used without -shared\n"
+msgstr "%P%F: -F ne peut être utilisé sans -shared\n"
+
+#: ldmain.c:302
+msgid "%P%F: -f may not be used without -shared\n"
+msgstr "%P%F: -f ne peut être utilisé sans -shared\n"
+
+#: ldmain.c:341
+msgid "using external linker script:"
+msgstr "utilisation du script externe d'édition de liens:"
+
+#: ldmain.c:343
+msgid "using internal linker script:"
+msgstr "utilisation du script interne d'édition de liens:"
+
+#: ldmain.c:377
+msgid "%P%F: no input files\n"
+msgstr "%P%F: aucun fichier d'entrée\n"
+
+#: ldmain.c:382
+msgid "%P: mode %s\n"
+msgstr "%P: mode %s\n"
+
+#: ldmain.c:399
+msgid "%P%F: cannot open map file %s: %E\n"
+msgstr "%P%F: ne peut ouvrir le fichier de la table de projection %s: %E\n"
+
+#: ldmain.c:432
+msgid "%P: link errors found, deleting executable `%s'\n"
+msgstr "%P: erreurs de lien trouvés, destruction de l'exécutable « %s »\n"
+
+#: ldmain.c:443
+msgid "%F%B: final close failed: %E\n"
+msgstr "%F%B: fermeture finale en échec: %E\n"
+
+#: ldmain.c:467
+msgid "%X%P: unable to open for source of copy `%s'\n"
+msgstr "%X%P: incapable d'ouvrir la copie source de « %s »\n"
+
+#: ldmain.c:469
+msgid "%X%P: unable to open for destination of copy `%s'\n"
+msgstr "%X%P: incpapable d'ouvrir la copie destination de « %s »\n"
+
+#: ldmain.c:475
+msgid "%P: Error writing file `%s'\n"
+msgstr "%P: erreur lors de l'écriture du fichier « %s »\n"
+
+#: ldmain.c:481 pe-dll.c:1463
+#, c-format
+msgid "%P: Error closing file `%s'\n"
+msgstr "%P: erreur lors de la fermeture du fichier « %s »\n"
+
+#: ldmain.c:498
+#, c-format
+msgid "%s: total time in link: %ld.%06ld\n"
+msgstr "%s: temps total d'édition de liens: %ld.%06ld\n"
+
+#: ldmain.c:501
+#, c-format
+msgid "%s: data size %ld\n"
+msgstr "%s: tailles des données %ld\n"
+
+#: ldmain.c:542
+msgid "%P%F: missing argument to -m\n"
+msgstr "%P%F: argument manquant pour -m\n"
+
+#: ldmain.c:670 ldmain.c:691 ldmain.c:722
+msgid "%P%F: bfd_hash_table_init failed: %E\n"
+msgstr "%P%F: bfd_hash_table_init en échec: %E\n"
+
+#: ldmain.c:675 ldmain.c:694
+msgid "%P%F: bfd_hash_lookup failed: %E\n"
+msgstr "%P%F: bfd_hash_lookup en échec: %E\n"
+
+#: ldmain.c:709
+msgid "%X%P: error: duplicate retain-symbols-file\n"
+msgstr "%X%P: erreur: duplication dans retain-symbols-file\n"
+
+#: ldmain.c:753
+msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
+msgstr "%P%F: bfd_hash_lookup en échec lors d'une insertion: %E\n"
+
+#: ldmain.c:758
+msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
+msgstr "%P: « -retain-symbols-file » écrase les options « -s » et « -S »\n"
+
+#: ldmain.c:834
+msgid ""
+"Archive member included because of file (symbol)\n"
+"\n"
+msgstr ""
+"Membre de l'archive est inclu en raison du fichier (symbole)\n"
+"\n"
+
+#: ldmain.c:905
+msgid "%X%C: multiple definition of `%T'\n"
+msgstr "%X%C: définitions multiples de « %T »\n"
+
+#: ldmain.c:908
+msgid "%D: first defined here\n"
+msgstr "%D: défini pour la première fois ici\n"
+
+#: ldmain.c:912
+msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
+msgstr "%P: désactivation de la relâche: il ne pourra pas travailler avec des définitions multiples\n"
+
+#: ldmain.c:943
+msgid "%B: warning: definition of `%T' overriding common\n"
+msgstr "%B: AVERTISSEMENT: définition de « %T » écrase le commun\n"
+
+#: ldmain.c:946
+msgid "%B: warning: common is here\n"
+msgstr "%B: AVERTISSEMENT: le commun est ici\n"
+
+#: ldmain.c:953
+msgid "%B: warning: common of `%T' overridden by definition\n"
+msgstr "%B: AVERTISSEMENT: le commun de « %T » écrasé par définition\n"
+
+#: ldmain.c:956
+msgid "%B: warning: defined here\n"
+msgstr "%B: AVERTISSEMENT: défini ici\n"
+
+#: ldmain.c:963
+msgid "%B: warning: common of `%T' overridden by larger common\n"
+msgstr "%B: AVERTISSEMENT: le commun de « %T » écrasé par un commun de plus grande taille\n"
+
+#: ldmain.c:966
+msgid "%B: warning: larger common is here\n"
+msgstr "%B: AVERTISSEMENT: le commun de plus grande taille est ici\n"
+
+#: ldmain.c:970
+msgid "%B: warning: common of `%T' overriding smaller common\n"
+msgstr "%B: AVERTISSEMENT: le commun de « %T » écrasé par un commun de plus petite taille\n"
+
+#: ldmain.c:973
+msgid "%B: warning: smaller common is here\n"
+msgstr "%B: AVERTISSEMENT: le commun de plus petite taille est ici\n"
+
+#: ldmain.c:977
+msgid "%B: warning: multiple common of `%T'\n"
+msgstr "%B: AVERTISSEMENT: communs multiples de « %T »\n"
+
+#: ldmain.c:979
+msgid "%B: warning: previous common is here\n"
+msgstr "%B: AVERTISSEMENT: commun précédent est ici\n"
+
+#: ldmain.c:1000 ldmain.c:1039
+msgid "%P: warning: global constructor %s used\n"
+msgstr "%P: AVERTISSEMENT: constructeur global %s est utilisé\n"
+
+#: ldmain.c:1049
+msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
+msgstr "%P%F: BFD erreur de terminaison arrière (backend): BFD_RELOC_CTOR non supporté\n"
+
+#: ldmain.c:1233
+msgid "%F%P: bfd_hash_table_init failed: %E\n"
+msgstr "%F%P: bfd_hash_table_init en échec: %E\n"
+
+#: ldmain.c:1240
+msgid "%F%P: bfd_hash_lookup failed: %E\n"
+msgstr "%F%P: bfd_hash_lookup en échec: %E\n"
+
+#: ldmain.c:1260
+msgid "%C: undefined reference to `%T'\n"
+msgstr "%C: référence indéfinie vers « %T »\n"
+
+#: ldmain.c:1266
+msgid "%D: more undefined references to `%T' follow\n"
+msgstr "%D: encore plus de références indéfinies suivent vers « %T »\n"
+
+#: ldmain.c:1273
+msgid "%B: undefined reference to `%T'\n"
+msgstr "%B: référence indéfinie vers « %T »\n"
+
+#: ldmain.c:1279
+msgid "%B: more undefined references to `%T' follow\n"
+msgstr "%B: encore plus de références indéfinies suivent vers « %T »\n"
+
+#: ldmain.c:1299 ldmain.c:1320 ldmain.c:1339
+msgid "%P%X: generated"
+msgstr "%P%X: généré"
+
+#: ldmain.c:1302
+msgid " relocation truncated to fit: %s %T"
+msgstr " relocalisation tronquée pour concorder avec la taille: %s %T"
+
+#: ldmain.c:1323
+#, c-format
+msgid "dangerous relocation: %s\n"
+msgstr "relocalisation dangereuse: %s\n"
+
+#: ldmain.c:1342
+msgid " reloc refers to symbol `%T' which is not being output\n"
+msgstr " relocalisation réfère au symbole « %T » qui n'a pas été sorti\n"
+
+#: ldmisc.c:157
+msgid "no symbol"
+msgstr "aucun symbole"
+
+#: ldmisc.c:221
+#, c-format
+msgid "built in linker script:%u"
+msgstr "construit dans le script d'édition de liens:%u"
+
+#: ldmisc.c:271 ldmisc.c:275
+msgid "%B%F: could not read symbols\n"
+msgstr "%B%F: ne peut lire les symboles\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: dans la fonction « %T »:\n"
+
+#: ldmisc.c:463
+msgid "%F%P: internal error %s %d\n"
+msgstr "%F%P: erreur interne %s %d\n"
+
+#: ldmisc.c:513
+msgid "%P: internal error: aborting at %s line %d in %s\n"
+msgstr "%P: erreur interne: arrêt immédiat %s, ligne %d dans %s\n"
+
+#: ldmisc.c:516
+msgid "%P: internal error: aborting at %s line %d\n"
+msgstr "%P: erreur interne: arrêt immédiat à %s ligne %d\n"
+
+#: ldmisc.c:518
+msgid "%P%F: please report this bug\n"
+msgstr "%P%F: rapporter cette anomalie\n"
+
+#. Output for noisy == 2 is intended to follow the GNU standards.
+#: ldver.c:38
+#, c-format
+msgid "GNU ld version %s\n"
+msgstr "GNU ld version %s\n"
+
+#: ldver.c:42
+msgid "Copyright 2002 Free Software Foundation, Inc.\n"
+msgstr "Copyright 2002 Free Software Foundation, Inc.\n"
+
+#: ldver.c:43
+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 ""
+"Ce logiciel est libre; voir les sources pour les conditions de\n"
+"reproduction. AUCUNE garantie n'est donnée; tant pour des raisons\n"
+"COMMERCIALES que pour RÉPONDRE À UN BESOIN PARTICULIER.\n"
+
+#: ldver.c:52
+msgid " Supported emulations:\n"
+msgstr " Émulations supportées:\n"
+
+#: ldwrite.c:59 ldwrite.c:195
+msgid "%P%F: bfd_new_link_order failed\n"
+msgstr "%P%F: bfd_new_link_order en échec\n"
+
+#: ldwrite.c:325
+msgid "%F%P: clone section failed: %E\n"
+msgstr "%F%P: section clone en échec: %E\n"
+
+#: ldwrite.c:364
+#, c-format
+msgid "%8x something else\n"
+msgstr "%8x quelque chose d'autre\n"
+
+#: ldwrite.c:547
+msgid "%F%P: final link failed: %E\n"
+msgstr "%F%P: édition de lien finale en échec: %E\n"
+
+#: lexsup.c:172 lexsup.c:267
+msgid "KEYWORD"
+msgstr "MOT CLÉ"
+
+#: lexsup.c:172
+msgid "Shared library control for HP/UX compatibility"
+msgstr "Librairie partagée de contrôle pour compatibilité HP/UX"
+
+#: lexsup.c:175
+msgid "ARCH"
+msgstr "ARCH"
+
+#: lexsup.c:175
+msgid "Set architecture"
+msgstr "Initilisé l'architecture"
+
+#: lexsup.c:177 lexsup.c:336
+msgid "TARGET"
+msgstr "CIBLE"
+
+#: lexsup.c:177
+msgid "Specify target for following input files"
+msgstr "Spécifier la cible pour les règles suivantes pour les fichiers d'entrée"
+
+#: lexsup.c:179 lexsup.c:220 lexsup.c:232 lexsup.c:241 lexsup.c:312
+#: lexsup.c:343 lexsup.c:383
+msgid "FILE"
+msgstr "FICHIER"
+
+#: lexsup.c:179
+msgid "Read MRI format linker script"
+msgstr "Lecture du format MRI du script de l'éditeur de liens"
+
+#: lexsup.c:181
+msgid "Force common symbols to be defined"
+msgstr "Forcer les symboles communs à être définis"
+
+#: lexsup.c:185 lexsup.c:373 lexsup.c:375 lexsup.c:377
+msgid "ADDRESS"
+msgstr "ADRESSE"
+
+#: lexsup.c:185
+msgid "Set start address"
+msgstr "Initialiser l'adresse de début"
+
+#: lexsup.c:187
+msgid "Export all dynamic symbols"
+msgstr "Exportation de tous les symboles dynamiques"
+
+#: lexsup.c:189
+msgid "Link big-endian objects"
+msgstr "Lier les objets pour les systèmes à octet de poids fort (big endian)"
+
+#: lexsup.c:191
+msgid "Link little-endian objects"
+msgstr "Lier les objets pour les systèmes à octets de poids faible (little endian)"
+
+#: lexsup.c:193 lexsup.c:196
+msgid "SHLIB"
+msgstr "LIBRAIRIE COMMMUNE (SHLIB)"
+
+#: lexsup.c:193
+msgid "Auxiliary filter for shared object symbol table"
+msgstr "Filtre auxiliaire de la table de symboles de l'objet partagé"
+
+#: lexsup.c:196
+msgid "Filter for shared object symbol table"
+msgstr "Filtre de la table de symboles de l'objet partagé"
+
+#: lexsup.c:198
+msgid "Ignored"
+msgstr "Ignoré"
+
+#: lexsup.c:200
+msgid "SIZE"
+msgstr "TAILLE"
+
+#: lexsup.c:200
+msgid "Small data size (if no size, same as --shared)"
+msgstr "Petite taille des données (si aucune taille spécifié, identique à --shared)"
+
+#: lexsup.c:203
+msgid "FILENAME"
+msgstr "NOM DE FICHIER"
+
+#: lexsup.c:203
+msgid "Set internal name of shared library"
+msgstr "Initialisé le nom interne de la librairie partagée"
+
+#: lexsup.c:205
+msgid "PROGRAM"
+msgstr "PROGRAMME"
+
+#: lexsup.c:205
+msgid "Set PROGRAM as the dynamic linker to use"
+msgstr "Utiliser le PROGRAM comme éditeur de liens dynamique"
+
+#: lexsup.c:207
+msgid "LIBNAME"
+msgstr "NOM de LIBRAIRIE"
+
+#: lexsup.c:207
+msgid "Search for library LIBNAME"
+msgstr "Recherche de la librairie LIBNAME"
+
+#: lexsup.c:209
+msgid "DIRECTORY"
+msgstr "RÉPERTOIRE"
+
+#: lexsup.c:209
+msgid "Add DIRECTORY to library search path"
+msgstr "Ajout du RÉPERTOIRE au chemin de recherche de librairie"
+
+#: lexsup.c:211
+msgid "EMULATION"
+msgstr "ÉMULATION"
+
+#: lexsup.c:211
+msgid "Set emulation"
+msgstr "Initialisation de l'émuilation"
+
+#: lexsup.c:213
+msgid "Print map file on standard output"
+msgstr "Afficher le fichier de projection sur la sortie standard"
+
+#: lexsup.c:215
+msgid "Do not page align data"
+msgstr "Ne pas paginer l'alignement des données"
+
+#: lexsup.c:217
+msgid "Do not page align data, do not make text readonly"
+msgstr "Ne pas paginer l'alignement des donnnées, ne pas faire de texte en lecture seulement"
+
+#: lexsup.c:220
+msgid "Set output file name"
+msgstr "Initialisé le nom du fichier de sortie"
+
+#: lexsup.c:222
+msgid "Optimize output file"
+msgstr "Optimisé le fichier de sortie"
+
+#: lexsup.c:224
+msgid "Ignored for SVR4 compatibility"
+msgstr "Ignoré pour la compatibilité avec SVR4"
+
+#: lexsup.c:228
+msgid "Generate relocateable output"
+msgstr "Généré la sortie des relocalisables "
+
+#: lexsup.c:232
+msgid "Just link symbols (if directory, same as --rpath)"
+msgstr "Juste lier les symboles (si répertoire, identique à --rpath)"
+
+#: lexsup.c:235
+msgid "Strip all symbols"
+msgstr "Élaguer tous les symboles"
+
+#: lexsup.c:237
+msgid "Strip debugging symbols"
+msgstr "Élaguer tous les symboles de débug"
+
+#: lexsup.c:239
+msgid "Trace file opens"
+msgstr "Ouverture des fichiers de trace"
+
+#: lexsup.c:241
+msgid "Read linker script"
+msgstr "Lecture du script de l'éditeur de lien"
+
+#: lexsup.c:243 lexsup.c:259 lexsup.c:298 lexsup.c:310 lexsup.c:367
+#: lexsup.c:386 lexsup.c:406
+msgid "SYMBOL"
+msgstr "SYMBOLE"
+
+#: lexsup.c:243
+msgid "Start with undefined reference to SYMBOL"
+msgstr "Débuter avec une référence indéfinie au SYMBOLE"
+
+#: lexsup.c:245
+msgid "[=SECTION]"
+msgstr "[=SECTION]"
+
+#: lexsup.c:245
+msgid "Don't merge input [SECTION | orphan] sections"
+msgstr "Ne pas fusionner les sections d'entrée [SECTION | orpheline]"
+
+#: lexsup.c:247
+msgid "Build global constructor/destructor tables"
+msgstr "Bâtir les tables de constructeurs/destructeurs globaux"
+
+#: lexsup.c:249
+msgid "Print version information"
+msgstr "Afficher les informations de version"
+
+#: lexsup.c:251
+msgid "Print version and emulation information"
+msgstr "Afficher les information de version et d'émulation"
+
+#: lexsup.c:253
+msgid "Discard all local symbols"
+msgstr "Ignorer tous les symboles locaux"
+
+#: lexsup.c:255
+msgid "Discard temporary local symbols (default)"
+msgstr "Ignorer tous les symboles locaux temporaires (par défaut)"
+
+#: lexsup.c:257
+msgid "Don't discard any local symbols"
+msgstr "Ne pas ignorer tous les symboles locaux"
+
+#: lexsup.c:259
+msgid "Trace mentions of SYMBOL"
+msgstr "Tracer les mentions de SYMBOLE"
+
+#: lexsup.c:261 lexsup.c:345 lexsup.c:347
+msgid "PATH"
+msgstr "CHEMIN"
+
+#: lexsup.c:261
+msgid "Default search path for Solaris compatibility"
+msgstr "Chemin par défaut de recherche pour la compatibilité Solaris"
+
+#: lexsup.c:263
+msgid "Start a group"
+msgstr "Débuter un groupe"
+
+#: lexsup.c:265
+msgid "End a group"
+msgstr "Terminer un groupe"
+
+#: lexsup.c:267
+msgid "Ignored for SunOS compatibility"
+msgstr "Ignoré pour la compatibilité avec SunOS"
+
+#: lexsup.c:269
+msgid "Link against shared libraries"
+msgstr "Établir des liens vis à vis des librairies partagées"
+
+#: lexsup.c:275
+msgid "Do not link against shared libraries"
+msgstr "Ne pas établir de liens vis à vis des librairies partagées"
+
+#: lexsup.c:283
+msgid "Bind global references locally"
+msgstr "Lier les référence locales globales"
+
+#: lexsup.c:285
+msgid "Check section addresses for overlaps (default)"
+msgstr "Vérifier les adresses de section pour le chevauchement (par défaut)"
+
+#: lexsup.c:287
+msgid "Do not check section addresses for overlaps"
+msgstr "Ne pas vérifier les adresses des sections pour le chevauchement"
+
+#: lexsup.c:290
+msgid "Output cross reference table"
+msgstr "Produire la table des références croisées"
+
+#: lexsup.c:292
+msgid "SYMBOL=EXPRESSION"
+msgstr "SYMBOLE=EXPRESSION"
+
+#: lexsup.c:292
+msgid "Define a symbol"
+msgstr "Définir un symbole"
+
+#: lexsup.c:294
+msgid "[=STYLE]"
+msgstr "[=STYLE]"
+
+#: lexsup.c:294
+msgid "Demangle symbol names [using STYLE]"
+msgstr "Recouvrir les noms des symboles encodés par mutilisation [utilisant le STYLE]"
+
+#: lexsup.c:296
+msgid "Generate embedded relocs"
+msgstr "Générer des relocalisations imbriqués"
+
+#: lexsup.c:298
+msgid "Call SYMBOL at unload-time"
+msgstr "Appeler le SYMBOLE au moment du déchargement"
+
+#: lexsup.c:300
+msgid "Force generation of file with .exe suffix"
+msgstr "Force la génération de fichier avec le suffixe .exe"
+
+#: lexsup.c:302
+msgid "Remove unused sections (on some targets)"
+msgstr "Enlever les sections inutilisées (sur quelques cibles)"
+
+#: lexsup.c:305
+msgid "Don't remove unused sections (default)"
+msgstr "Ne pas enlever les sections inutilisées (par défaut)"
+
+#: lexsup.c:308
+msgid "Print option help"
+msgstr "Afficher l'aide-mémoire"
+
+#: lexsup.c:310
+msgid "Call SYMBOL at load-time"
+msgstr "Appeler le SYMBOLE au moment du chargement"
+
+#: lexsup.c:312
+msgid "Write a map file"
+msgstr "Écrire un fichier de projection"
+
+#: lexsup.c:314
+msgid "Do not define Common storage"
+msgstr "Ne pas définir le stockage commun"
+
+#: lexsup.c:316
+msgid "Do not demangle symbol names"
+msgstr "Ne pas recouvrir les noms des symboles encodés par mutilisation"
+
+#: lexsup.c:318
+msgid "Use less memory and more disk I/O"
+msgstr "Utiliser moins de mémoire et plus d'espace disque"
+
+#: lexsup.c:320
+msgid "Allow no undefined symbols"
+msgstr "Ne pas permettre de symboles indéfinis"
+
+#: lexsup.c:322
+msgid "Allow undefined symbols in shared objects"
+msgstr "Permettre les symboles indéfinis dans les objets partagés"
+
+#: lexsup.c:324
+msgid "Allow multiple definitions"
+msgstr "Autoriser des définitions multiples"
+
+#: lexsup.c:326
+msgid "Don't warn about mismatched input files"
+msgstr "Ne pas avertir à propos des non-concordances dans les fichiers d'entrée"
+
+#: lexsup.c:328
+msgid "Turn off --whole-archive"
+msgstr "Désactiver --whole-archive"
+
+#: lexsup.c:330
+msgid "Create an output file even if errors occur"
+msgstr "Créer un fichier de sortie même si des erreurs surviennent"
+
+#: lexsup.c:334
+msgid ""
+"Only use library directories specified on\n"
+"\t\t\t\tthe command line"
+msgstr ""
+"Utiliser seuelement les répertoires de librairies spécifiés sur\n"
+"la ligne de commande"
+
+#: lexsup.c:336
+msgid "Specify target of output file"
+msgstr "Spécifier un fichier cible de sortie"
+
+#: lexsup.c:338
+msgid "Ignored for Linux compatibility"
+msgstr "Ignoré pour la compatibilité avec Linux"
+
+#: lexsup.c:340
+msgid "Relax branches on certain targets"
+msgstr "Relâcher les branches de certaines cibles"
+
+#: lexsup.c:343
+msgid "Keep only symbols listed in FILE"
+msgstr "Conserver uniquement les symboles listés dans le FICHIER"
+
+#: lexsup.c:345
+msgid "Set runtime shared library search path"
+msgstr "Initialisé le chemin de recherche des librairies partagées pour l'exécution"
+
+#: lexsup.c:347
+msgid "Set link time shared library search path"
+msgstr "Initialisé le chemin de recherche des librairies partagées pour l'édition de liens"
+
+#: lexsup.c:349
+msgid "Create a shared library"
+msgstr "Créer une librairie partagée"
+
+#: lexsup.c:353
+msgid "Sort common symbols by size"
+msgstr "Trier les symboles communs par taille"
+
+#: lexsup.c:357
+msgid "COUNT"
+msgstr "DÉCOMPTE"
+
+#: lexsup.c:357
+msgid "How many tags to reserve in .dynamic section"
+msgstr "Combien d'étiquettes réservées dans la section .dynamic"
+
+#: lexsup.c:359
+msgid "[=SIZE]"
+msgstr "[=TAILLE]"
+
+#: lexsup.c:359
+msgid "Split output sections every SIZE octets"
+msgstr "Découper à la sortie les sections à chaque NOMBRE d'octets"
+
+#: lexsup.c:361
+msgid "[=COUNT]"
+msgstr "[=DÉCOMPTE]"
+
+#: lexsup.c:361
+msgid "Split output sections every COUNT relocs"
+msgstr "Découper à la sortie les sections à chaque NOMBRE de relocalisations"
+
+#: lexsup.c:363
+msgid "Print memory usage statistics"
+msgstr "Afficher les statistiques de l'utilisation de la mémoire"
+
+#: lexsup.c:365
+msgid "Display target specific options"
+msgstr "Afficher les options spécifiques cibles"
+
+#: lexsup.c:367
+msgid "Do task level linking"
+msgstr "Composer des liens au niveau de l'exécution de la tache"
+
+#: lexsup.c:369
+msgid "Use same format as native linker"
+msgstr "Utiliser le même format que l'éditeur de lien natif"
+
+#: lexsup.c:371
+msgid "SECTION=ADDRESS"
+msgstr "SECTION=ADRESSE"
+
+#: lexsup.c:371
+msgid "Set address of named section"
+msgstr "Initialisé l'adresse de la section nommé"
+
+#: lexsup.c:373
+msgid "Set address of .bss section"
+msgstr "Initialisé l'adresse de la section .bss"
+
+#: lexsup.c:375
+msgid "Set address of .data section"
+msgstr "Initialisé l'adresse de la section .data"
+
+#: lexsup.c:377
+msgid "Set address of .text section"
+msgstr "Initialisé l'adresse de la section .text"
+
+#: lexsup.c:379
+msgid "Output lots of information during link"
+msgstr "Afficher des tas d'information durant l'édition de lien"
+
+#: lexsup.c:383
+msgid "Read version information script"
+msgstr "Lire le script des informations de version"
+
+#: lexsup.c:386
+msgid ""
+"Take export symbols list from .exports, using\n"
+"\t\t\t\tSYMBOL as the version."
+msgstr ""
+"Prendre la liste des symboles exportés de .exports, en utilisant\n"
+"\t\t\t\tSYMBOLE comme version."
+
+#: lexsup.c:389
+msgid "Warn about duplicate common symbols"
+msgstr "AVERTIR au sujet des symboles communs dupliqués"
+
+#: lexsup.c:391
+msgid "Warn if global constructors/destructors are seen"
+msgstr "AVERTIR si des constructeurs/destructeurs globaux sont détectés"
+
+#: lexsup.c:394
+msgid "Warn if the multiple GP values are used"
+msgstr "AVERTIR si des valeurs GP multiples sont utilisées"
+
+#: lexsup.c:396
+msgid "Warn only once per undefined symbol"
+msgstr "AVERTIR seulement une fois pour chaque symbole indéfini"
+
+#: lexsup.c:398
+msgid "Warn if start of section changes due to alignment"
+msgstr "AVERTIR si le début de la section est modifié en raison de l'alignement"
+
+#: lexsup.c:401
+msgid "Treat warnings as errors"
+msgstr "Traiter les avertissements comme des erreurs"
+
+#: lexsup.c:404
+msgid "Include all objects from following archives"
+msgstr "Inclure tous les objets des archives suivantes"
+
+#: lexsup.c:406
+msgid "Use wrapper functions for SYMBOL"
+msgstr "Utiliser les fonctions d'emballage pour SYMBOLE"
+
+#: lexsup.c:408
+msgid "[=WORDS]"
+msgstr "[=MOTS]"
+
+#: lexsup.c:408
+msgid ""
+"Modify problematic branches in last WORDS (1-10,\n"
+"\t\t\t\tdefault 5) words of a page"
+msgstr ""
+"Modifier les branches problématiques dans les derniers MOTS (1-10,\n"
+"\t\t\t\tpar défaut 5 derniers) mots de la page"
+
+#: lexsup.c:574
+msgid "%P: unrecognized option '%s'\n"
+msgstr "%P: option « %s » non reocnnue\n"
+
+#: lexsup.c:576
+msgid "%P%F: use the --help option for usage information\n"
+msgstr "%P%F: utiliser --help pour afficher l'aide-mémoire\n"
+
+#: lexsup.c:595
+msgid "%P%F: unrecognized -a option `%s'\n"
+msgstr "%P%F: -a option non reocnnue « %s »\n"
+
+#: lexsup.c:608
+msgid "%P%F: unrecognized -assert option `%s'\n"
+msgstr "%P%F: -assert option non reconnue « %s »\n"
+
+#: lexsup.c:651
+msgid "%F%P: unknown demangling style `%s'"
+msgstr "%F%P: style inconnu de recouvrement du transcodage par mutilisation « %s »"
+
+#: lexsup.c:711
+msgid "%P%F: invalid number `%s'\n"
+msgstr "%P%F: nombre invalide « %s »\n"
+
+#. 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
+#. but it cannot parse the text after the -r so it refuses to
+#. increment the optind counter. Detect this case and issue
+#. 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
+msgid "%P%F: bad -rpath option\n"
+msgstr "%P%F: option -rpath non reconnue\n"
+
+#: lexsup.c:910
+msgid "%P%F: -shared not supported\n"
+msgstr "%P%F: -shared non supporté\n"
+
+#: lexsup.c:942
+msgid "%P%F: invalid argument to option \"--section-start\"\n"
+msgstr "%P%F: argument invalide pour l'option \"--section-start\"\n"
+
+#: lexsup.c:948
+msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
+msgstr "%P%F: argument(s) manquant(s) pour l'option \"--section-start\"\n"
+
+#: lexsup.c:1097
+msgid "%P%F: may not nest groups (--help for usage)\n"
+msgstr "%P%F: ne peut imbriquer les groupes (--help pour l'usage)\n"
+
+#: lexsup.c:1104
+msgid "%P%F: group ended before it began (--help for usage)\n"
+msgstr "%P%F: fin du groupe avant son début (--help pour l'usage)\n"
+
+#: lexsup.c:1118
+msgid "%P%F: invalid argument to option \"mpc860c0\"\n"
+msgstr "%P%F: argument invalide pour l'option « mpc860c0 »\n"
+
+#: lexsup.c:1173
+msgid "%P%F: invalid hex number `%s'\n"
+msgstr "%P%F: nombre hexadécimal invalide « %s »\n"
+
+#: lexsup.c:1185
+#, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr "Usage: %s [options] fichier...\n"
+
+#: lexsup.c:1187
+msgid "Options:\n"
+msgstr "Options:\n"
+
+#. Note: Various tools (such as libtool) depend upon the
+#. format of the listings below - do not change them.
+#: lexsup.c:1270
+#, c-format
+msgid "%s: supported targets:"
+msgstr "%s: cibles supportées:"
+
+#: lexsup.c:1278
+#, c-format
+msgid "%s: supported emulations: "
+msgstr "%s: émulations supportées: "
+
+#: lexsup.c:1283
+#, c-format
+msgid "%s: emulation specific options:\n"
+msgstr "%s: options spécifiques d'émulation:\n"
+
+#: lexsup.c:1287
+#, c-format
+msgid "Report bugs to %s\n"
+msgstr "Rapporter toutes anomalies à %s\n"
+
+#: mri.c:334
+msgid "%P%F: unknown format type %s\n"
+msgstr "%P%F: type de format inconnu %s\n"
+
+#: pe-dll.c:321
+#, c-format
+msgid "%XUnsupported PEI architecture: %s\n"
+msgstr "%XArchitecture PEI non supportée: %s\n"
+
+#: pe-dll.c:671
+#, c-format
+msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
+msgstr "%XErreur, duplicattion EXPORT avec nombre ordinal: %s (%d vs %d)\n"
+
+#: pe-dll.c:678
+#, c-format
+msgid "Warning, duplicate EXPORT: %s\n"
+msgstr "AVERTISSEMENT, duplication EXPORT: %s\n"
+
+#: pe-dll.c:742
+#, c-format
+msgid "%XCannot export %s: symbol not defined\n"
+msgstr "%XNe peut exporter %s: symbole indéfini\n"
+
+#: pe-dll.c:748
+#, c-format
+msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n"
+msgstr "%XNe peut exporter %s: mauvais type de symbole (%d vs %d)\n"
+
+#: pe-dll.c:755
+#, c-format
+msgid "%XCannot export %s: symbol not found\n"
+msgstr "%XNe peut exporter %s: symbole non repéré\n"
+
+#: pe-dll.c:870
+#, c-format
+msgid "%XError, ordinal used twice: %d (%s vs %s)\n"
+msgstr "%XErreur, ordinal utilisé 2 fois: %d (%s vs %s)\n"
+
+#: pe-dll.c:1181
+#, c-format
+msgid "%XError: %d-bit reloc in dll\n"
+msgstr "%XErreur: %d-bit relocalisation dans dll\n"
+
+#: pe-dll.c:1316
+#, c-format
+msgid "%s: Can't open output def file %s\n"
+msgstr "%s: ne peut ouvrir le fichier def %s\n"
+
+#: pe-dll.c:1459
+msgid "; no contents available\n"
+msgstr "; aucun contenu disponible\n"
+
+#: pe-dll.c:2128
+#, c-format
+msgid "%XCan't open .lib file: %s\n"
+msgstr "%XNe peut ouvrir le fichier .lib: %s\n"
+
+#: pe-dll.c:2133
+#, c-format
+msgid "Creating library file: %s\n"
+msgstr "Création du fichier de librairie: %s\n"
+
+#~ msgid " create __imp_<SYMBOL> as well.\n"
+#~ msgstr " créer __imp_<SYMBOL> aussi.\n"
+
+#~ msgid " unless user specifies one\n"
+#~ msgstr " à moins que l'usager en spécifie une\n"
+
+#~ msgid " --dll-search-prefix=<string> When linking dynamically to a dll witout an\n"
+#~ msgstr " --dll-search-prefix=<chaîne> lors du lien dynamique à un DLL sans un\n"
+
+#~ msgid " importlib, use <string><basename>.dll \n"
+#~ msgstr " librairie d'importation, utilier <chaîne><nom_de_base>.dll \n"
+
+#~ msgid " in preference to lib<basename>.dll \n"
+#~ msgstr " à la place de lib<nom_de_base>.dll \n"
+
+#~ msgid "Archive member included"
+#~ msgstr "Membre d'archive inclus"
+
+#~ msgid "Don't merge orphan sections with the same name"
+#~ msgstr "Ne pas fusionner les section orphelines avec le même nom"
diff --git a/gnu/usr.bin/binutils/ld/po/ld.pot b/gnu/usr.bin/binutils/ld/po/ld.pot
index 4bb918d5808..371423c859d 100644
--- a/gnu/usr.bin/binutils/ld/po/ld.pot
+++ b/gnu/usr.bin/binutils/ld/po/ld.pot
@@ -1,12 +1,13 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Free Software Foundation, Inc.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2002-02-08 04:11-0200\n"
+"POT-Creation-Date: 2003-07-11 13:58+0930\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"
@@ -14,189 +15,210 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\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 ""
-#: emultempl/armcoff.em:72
+#: emultempl/armcoff.em:73
msgid " --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n"
msgstr ""
-#: emultempl/armcoff.em:141
+#: emultempl/armcoff.em:121
#, c-format
msgid "Errors encountered processing file %s"
msgstr ""
-#: emultempl/armcoff.em:207 emultempl/pe.em:1414
+#: emultempl/armcoff.em:188 emultempl/pe.em:1396
msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
msgstr ""
-#: emultempl/armcoff.em:212 emultempl/pe.em:1419
+#: emultempl/armcoff.em:193 emultempl/pe.em:1401
msgid "%P: warning: connot find thumb start symbol %s\n"
msgstr ""
-#: emultempl/pe.em:315
+#: emultempl/pe.em:300
msgid ""
" --base_file <basefile> Generate a base file for relocatable "
"DLLs\n"
msgstr ""
-#: emultempl/pe.em:316
+#: emultempl/pe.em:301
msgid ""
" --dll Set image base to the default for DLLs\n"
msgstr ""
-#: emultempl/pe.em:317
+#: emultempl/pe.em:302
msgid " --file-alignment <size> Set file alignment\n"
msgstr ""
-#: emultempl/pe.em:318
+#: emultempl/pe.em:303
msgid " --heap <size> Set initial size of the heap\n"
msgstr ""
-#: emultempl/pe.em:319
+#: emultempl/pe.em:304
msgid ""
" --image-base <address> Set start address of the executable\n"
msgstr ""
-#: emultempl/pe.em:320
+#: emultempl/pe.em:305
msgid ""
" --major-image-version <number> Set version number of the executable\n"
msgstr ""
-#: emultempl/pe.em:321
+#: emultempl/pe.em:306
msgid " --major-os-version <number> Set minimum required OS version\n"
msgstr ""
-#: emultempl/pe.em:322
+#: emultempl/pe.em:307
msgid ""
" --major-subsystem-version <number> Set minimum required OS subsystem "
"version\n"
msgstr ""
-#: emultempl/pe.em:323
+#: emultempl/pe.em:308
msgid ""
" --minor-image-version <number> Set revision number of the executable\n"
msgstr ""
-#: emultempl/pe.em:324
+#: emultempl/pe.em:309
msgid " --minor-os-version <number> Set minimum required OS revision\n"
msgstr ""
-#: emultempl/pe.em:325
+#: emultempl/pe.em:310
msgid ""
" --minor-subsystem-version <number> Set minimum required OS subsystem "
"revision\n"
msgstr ""
-#: emultempl/pe.em:326
+#: emultempl/pe.em:311
msgid " --section-alignment <size> Set section alignment\n"
msgstr ""
-#: emultempl/pe.em:327
+#: emultempl/pe.em:312
msgid " --stack <size> Set size of the initial stack\n"
msgstr ""
-#: emultempl/pe.em:328
+#: emultempl/pe.em:313
msgid ""
" --subsystem <name>[:<version>] Set required OS subsystem [& version]\n"
msgstr ""
-#: emultempl/pe.em:329
+#: emultempl/pe.em:314
msgid ""
" --support-old-code Support interworking with old code\n"
msgstr ""
-#: emultempl/pe.em:330
+#: emultempl/pe.em:315
msgid ""
" --thumb-entry=<symbol> Set the entry point to be Thumb "
"<symbol>\n"
msgstr ""
-#: emultempl/pe.em:332
+#: emultempl/pe.em:317
msgid ""
" --add-stdcall-alias Export symbols with and without @nn\n"
msgstr ""
-#: emultempl/pe.em:333
+#: emultempl/pe.em:318
msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n"
msgstr ""
-#: emultempl/pe.em:334
+#: emultempl/pe.em:319
msgid ""
" --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n"
msgstr ""
-#: emultempl/pe.em:335
+#: emultempl/pe.em:320
msgid ""
" --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"
msgstr ""
-#: emultempl/pe.em:336
+#: emultempl/pe.em:321
+msgid ""
+" --exclude-libs lib,lib,... Exclude libraries from automatic "
+"export\n"
+msgstr ""
+
+#: emultempl/pe.em:322
msgid ""
" --export-all-symbols Automatically export all globals to "
"DLL\n"
msgstr ""
-#: emultempl/pe.em:337
+#: emultempl/pe.em:323
msgid " --kill-at Remove @nn from exported symbols\n"
msgstr ""
-#: emultempl/pe.em:338
+#: emultempl/pe.em:324
msgid " --out-implib <file> Generate import library\n"
msgstr ""
-#: emultempl/pe.em:339
+#: emultempl/pe.em:325
msgid ""
" --output-def <file> Generate a .DEF file for the built DLL\n"
msgstr ""
-#: emultempl/pe.em:340
+#: emultempl/pe.em:326
msgid " --warn-duplicate-exports Warn about duplicate exports.\n"
msgstr ""
-#: emultempl/pe.em:341
+#: emultempl/pe.em:327
msgid ""
" --compat-implib Create backward compatible import "
"libs;\n"
" create __imp_<SYMBOL> as well.\n"
msgstr ""
-#: emultempl/pe.em:343
+#: emultempl/pe.em:329
msgid ""
" --enable-auto-image-base Automatically choose image base for "
"DLLs\n"
" unless user specifies one\n"
msgstr ""
-#: emultempl/pe.em:345
+#: emultempl/pe.em:331
msgid ""
" --disable-auto-image-base Do not auto-choose image base. "
"(default)\n"
msgstr ""
-#: emultempl/pe.em:346
+#: emultempl/pe.em:332
msgid ""
" --dll-search-prefix=<string> When linking dynamically to a dll "
-"without an\n"
-" importlib, use <string><basename>."
-"dll \n"
+"without\n"
+" an importlib, use <string><basename>."
+"dll\n"
" in preference to lib<basename>.dll \n"
msgstr ""
-#: emultempl/pe.em:349
+#: 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 ""
-#: emultempl/pe.em:351
+#: emultempl/pe.em:337
msgid ""
" --disable-auto-import Do not auto-import DATA items from "
"DLLs\n"
msgstr ""
-#: emultempl/pe.em:352
+#: 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 ""
+
+#: emultempl/pe.em:341
+msgid ""
+" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations "
+"for\n"
+" auto-imported DATA.\n"
+msgstr ""
+
+#: emultempl/pe.em:343
msgid ""
" --enable-extra-pe-debug Enable verbose debug output when "
"building\n"
@@ -204,118 +226,113 @@ msgid ""
"import)\n"
msgstr ""
-#: emultempl/pe.em:421
+#: emultempl/pe.em:412
msgid "%P: warning: bad version number in -subsystem option\n"
msgstr ""
-#: emultempl/pe.em:457
+#: emultempl/pe.em:448
msgid "%P%F: invalid subsystem type %s\n"
msgstr ""
-#: emultempl/pe.em:472
+#: emultempl/pe.em:460
msgid "%P%F: invalid hex number for PE parameter '%s'\n"
msgstr ""
-#: emultempl/pe.em:490
+#: emultempl/pe.em:477
msgid "%P%F: strange hex info for PE parameter '%s'\n"
msgstr ""
-#: emultempl/pe.em:529
+#: emultempl/pe.em:494
#, c-format
msgid "%s: Can't open base file %s\n"
msgstr ""
-#: emultempl/pe.em:731
+#: emultempl/pe.em:707
msgid "%P: warning, file alignment > section alignment.\n"
msgstr ""
-#: emultempl/pe.em:815 emultempl/pe.em:841
+#: emultempl/pe.em:794 emultempl/pe.em:821
#, c-format
msgid "Warning: resolving %s by linking to %s\n"
msgstr ""
-#: emultempl/pe.em:820 emultempl/pe.em:846
+#: emultempl/pe.em:799 emultempl/pe.em:826
msgid "Use --enable-stdcall-fixup to disable these warnings\n"
msgstr ""
-#: emultempl/pe.em:821 emultempl/pe.em:847
+#: emultempl/pe.em:800 emultempl/pe.em:827
msgid "Use --disable-stdcall-fixup to disable these fixups\n"
msgstr ""
-#: emultempl/pe.em:872
+#: emultempl/pe.em:846
+#, c-format
msgid "%C: Cannot get section contents - auto-import exception\n"
msgstr ""
-#: emultempl/pe.em:880
-msgid ""
-"%C: variable '%T' can't be auto-imported. Please read the documentation for "
-"ld's --enable-auto-import for details.\n"
-msgstr ""
-
-#: emultempl/pe.em:908
+#: emultempl/pe.em:883
#, c-format
-msgid "Warning: resolving %s by linking to %s (auto-import)\n"
+msgid "Info: resolving %s by linking to %s (auto-import)\n"
msgstr ""
-#: emultempl/pe.em:989
+#: emultempl/pe.em:954
msgid "%F%P: PE operations on non PE file.\n"
msgstr ""
-#: emultempl/pe.em:1218
+#: emultempl/pe.em:1188
#, c-format
msgid "Errors encountered processing file %s\n"
msgstr ""
-#: emultempl/pe.em:1241
+#: emultempl/pe.em:1211
#, c-format
msgid "Errors encountered processing file %s for interworking"
msgstr ""
-#: emultempl/pe.em:1297 ldlang.c:2049 ldlang.c:4440 ldlang.c:4473
-#: ldmain.c:1069
+#: 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 ""
-#: ldcref.c:158
+#: ldcref.c:153
msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n"
msgstr ""
-#: ldcref.c:164
+#: ldcref.c:159
msgid "%X%P: cref_hash_lookup failed: %E\n"
msgstr ""
-#: ldcref.c:235
+#: ldcref.c:225
msgid ""
"\n"
"Cross Reference Table\n"
"\n"
msgstr ""
-#: ldcref.c:236
+#: ldcref.c:226
msgid "Symbol"
msgstr ""
-#: ldcref.c:244
+#: ldcref.c:234
msgid "File\n"
msgstr ""
-#: ldcref.c:248
+#: ldcref.c:238
msgid "No symbols\n"
msgstr ""
-#: ldcref.c:400
+#: ldcref.c:384
msgid "%P: symbol `%T' missing from main hash table\n"
msgstr ""
-#: ldcref.c:465
+#: ldcref.c:448
msgid "%B%F: could not read symbols; %E\n"
msgstr ""
-#: ldcref.c:469 ldmain.c:1135 ldmain.c:1139
+#: ldcref.c:452 ldmain.c:1187 ldmain.c:1191
msgid "%B%F: could not read symbols: %E\n"
msgstr ""
-#: ldcref.c:537 ldcref.c:544 ldmain.c:1185 ldmain.c:1192
+#: ldcref.c:517 ldcref.c:524 ldmain.c:1234 ldmain.c:1241
msgid "%B%F: could not read relocs: %E\n"
msgstr ""
@@ -323,361 +340,377 @@ msgstr ""
#. 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 ""
-#: ldctor.c:88
+#: ldctor.c:84
msgid "%P%X: Different relocs used in set %s\n"
msgstr ""
-#: ldctor.c:106
+#: ldctor.c:102
msgid "%P%X: Different object file formats composing set %s\n"
msgstr ""
-#: 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 ""
-#: ldctor.c:323
+#: ldctor.c:316
msgid "%P%X: Unsupported size %d for set %s\n"
msgstr ""
-#: ldctor.c:344
+#: ldctor.c:337
msgid ""
"\n"
"Set Symbol\n"
"\n"
msgstr ""
-#: ldemul.c:225
+#: ldemul.c:247
+#, c-format
msgid "%S SYSLIB ignored\n"
msgstr ""
-#: ldemul.c:232
+#: ldemul.c:254
+#, c-format
msgid "%S HLL ignored\n"
msgstr ""
-#: ldemul.c:253
+#: ldemul.c:275
msgid "%P: unrecognised emulation mode: %s\n"
msgstr ""
-#: ldemul.c:254
+#: ldemul.c:276
msgid "Supported emulations: "
msgstr ""
-#: ldemul.c:298
+#: ldemul.c:320
msgid " no emulation specific options.\n"
msgstr ""
-#: ldexp.c:163
+#: ldexp.c:148
msgid "%F%P: %s uses undefined section %s\n"
msgstr ""
-#: ldexp.c:165
+#: ldexp.c:150
msgid "%F%P: %s forward reference of section %s\n"
msgstr ""
-#: ldexp.c:277
+#: ldexp.c:355
+#, c-format
msgid "%F%S %% by zero\n"
msgstr ""
-#: ldexp.c:284
+#: ldexp.c:362
+#, c-format
msgid "%F%S / by zero\n"
msgstr ""
-#: ldexp.c:408
+#: ldexp.c:533
+#, c-format
msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
msgstr ""
-#: ldexp.c:427
+#: ldexp.c:553
+#, c-format
msgid "%F%S: undefined symbol `%s' referenced in expression\n"
msgstr ""
-#: ldexp.c:611
+#: ldexp.c:677
+#, c-format
msgid "%F%S can not PROVIDE assignment to location counter\n"
msgstr ""
-#: ldexp.c:621
+#: ldexp.c:687
+#, c-format
msgid "%F%S invalid assignment to location counter\n"
msgstr ""
-#: ldexp.c:625
+#: ldexp.c:691
+#, c-format
msgid "%F%S assignment to location counter invalid outside of SECTION\n"
msgstr ""
-#: ldexp.c:634
+#: ldexp.c:700
msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
msgstr ""
-#: ldexp.c:661
+#: ldexp.c:727
msgid "%P%F:%s: hash creation failed\n"
msgstr ""
-#: ldexp.c:963
+#: ldexp.c:1003 ldexp.c:1035
+#, c-format
msgid "%F%S nonconstant expression for %s\n"
msgstr ""
-#: ldexp.c:993
+#: ldexp.c:1089
+#, c-format
msgid "%F%S non constant expression for %s\n"
msgstr ""
-#: ldfile.c:105
+#: ldfile.c:144
#, c-format
msgid "attempt to open %s failed\n"
msgstr ""
-#: ldfile.c:107
+#: ldfile.c:146
#, c-format
msgid "attempt to open %s succeeded\n"
msgstr ""
-#: ldfile.c:113
+#: ldfile.c:152
msgid "%F%P: invalid BFD target `%s'\n"
msgstr ""
-#: ldfile.c:137
+#: ldfile.c:258 ldfile.c:275
msgid "%P: skipping incompatible %s when searching for %s\n"
msgstr ""
-#: ldfile.c:229
+#: ldfile.c:377
msgid "%F%P: cannot open %s for %s: %E\n"
msgstr ""
-#: ldfile.c:232
+#: ldfile.c:380
msgid "%F%P: cannot open %s: %E\n"
msgstr ""
-#: ldfile.c:262
+#: ldfile.c:410
+msgid "%F%P: cannot find %s inside %s\n"
+msgstr ""
+
+#: ldfile.c:413
msgid "%F%P: cannot find %s\n"
msgstr ""
-#: ldfile.c:281 ldfile.c:297
+#: ldfile.c:430 ldfile.c:446
#, c-format
msgid "cannot find script file %s\n"
msgstr ""
-#: ldfile.c:283 ldfile.c:299
+#: ldfile.c:432 ldfile.c:448
#, c-format
msgid "opened script file %s\n"
msgstr ""
-#: ldfile.c:348
+#: ldfile.c:492
msgid "%P%F: cannot open linker script file %s: %E\n"
msgstr ""
-#: ldfile.c:386
+#: ldfile.c:529
msgid "%P%F: unknown architecture: %s\n"
msgstr ""
-#: ldfile.c:402
+#: ldfile.c:543
msgid "%P%F: target architecture respecified\n"
msgstr ""
-#: ldfile.c:456
+#: ldfile.c:594
msgid "%P%F: cannot represent machine `%s'\n"
msgstr ""
-#: ldlang.c:770
+#: ldlang.c:640
msgid ""
"\n"
"Memory Configuration\n"
"\n"
msgstr ""
-#: ldlang.c:772
+#: ldlang.c:642
msgid "Name"
msgstr ""
-#: ldlang.c:772
+#: ldlang.c:642
msgid "Origin"
msgstr ""
-#: ldlang.c:772
+#: ldlang.c:642
msgid "Length"
msgstr ""
-#: ldlang.c:772
+#: ldlang.c:642
msgid "Attributes"
msgstr ""
-#: ldlang.c:814
+#: ldlang.c:682
msgid ""
"\n"
"Linker script and memory map\n"
"\n"
msgstr ""
-#: ldlang.c:831
+#: ldlang.c:698
msgid "%P%F: Illegal use of `%s' section\n"
msgstr ""
-#: ldlang.c:841
+#: ldlang.c:707
msgid "%P%F: output format %s cannot represent section called %s\n"
msgstr ""
-#: ldlang.c:1003
+#: ldlang.c:867
msgid "%P: %B: warning: ignoring duplicate section `%s'\n"
msgstr ""
-#: ldlang.c:1006
+#: ldlang.c:870
msgid "%P: %B: warning: ignoring duplicate `%s' section symbol `%s'\n"
msgstr ""
-#: ldlang.c:1020
+#: ldlang.c:884
msgid "%P: %B: warning: duplicate section `%s' has different size\n"
msgstr ""
-#: ldlang.c:1068
+#: ldlang.c:936
msgid "%P%F: Failed to create hash table\n"
msgstr ""
-#: ldlang.c:1483
+#: ldlang.c:1351
msgid "%B: file not recognized: %E\n"
msgstr ""
-#: ldlang.c:1484
+#: ldlang.c:1352
msgid "%B: matching formats:"
msgstr ""
-#: ldlang.c:1491
+#: ldlang.c:1359
msgid "%F%B: file not recognized: %E\n"
msgstr ""
-#: ldlang.c:1547
+#: ldlang.c:1418
msgid "%F%B: member %B in archive is not an object\n"
msgstr ""
-#: ldlang.c:1558 ldlang.c:1572
+#: ldlang.c:1429 ldlang.c:1443
msgid "%F%B: could not read symbols: %E\n"
msgstr ""
-#: ldlang.c:1833
+#: ldlang.c:1698
msgid ""
"%P: warning: could not find any targets that match endianness requirement\n"
msgstr ""
-#: ldlang.c:1846
+#: ldlang.c:1711
msgid "%P%F: target %s not found\n"
msgstr ""
-#: ldlang.c:1848
+#: ldlang.c:1713
msgid "%P%F: cannot open output file %s: %E\n"
msgstr ""
-#: ldlang.c:1858
+#: ldlang.c:1723
msgid "%P%F:%s: can not make object file: %E\n"
msgstr ""
-#: ldlang.c:1862
+#: ldlang.c:1727
msgid "%P%F:%s: can not set architecture: %E\n"
msgstr ""
-#: ldlang.c:1866
+#: ldlang.c:1731
msgid "%P%F: can not create link hash table: %E\n"
msgstr ""
-#: ldlang.c:2168
+#: ldlang.c:2069
msgid " load address 0x%V"
msgstr ""
-#: ldlang.c:2298
+#: ldlang.c:2204
msgid "%W (size before relaxing)\n"
msgstr ""
-#: ldlang.c:2380
+#: ldlang.c:2288
#, c-format
msgid "Address of section %s set to "
msgstr ""
-#: ldlang.c:2534
+#: ldlang.c:2443
#, c-format
msgid "Fail with %d\n"
msgstr ""
-#: ldlang.c:2776
+#: ldlang.c:2683
msgid "%X%P: section %s [%V -> %V] overlaps section %s [%V -> %V]\n"
msgstr ""
-#: ldlang.c:2805
+#: ldlang.c:2711
msgid "%X%P: address 0x%v of %B section %s is not within region %s\n"
msgstr ""
-#: ldlang.c:2813
+#: ldlang.c:2719
msgid "%X%P: region %s is full (%B section %s)\n"
msgstr ""
-#: ldlang.c:2863
+#: ldlang.c:2770
msgid "%P%X: Internal error on COFF shared library section %s\n"
msgstr ""
-#: ldlang.c:2905
-msgid "%P: warning: no memory region specified for section `%s'\n"
+#: ldlang.c:2826
+msgid "%P%F: error: no memory region specified for loadable section `%s'\n"
msgstr ""
-#: ldlang.c:2920
-msgid "%P: warning: changing start of section %s by %u bytes\n"
+#: ldlang.c:2830
+msgid "%P: warning: no memory region specified for loadable section `%s'\n"
msgstr ""
-#: ldlang.c:2934
-msgid "%F%S: non constant address expression for section %s\n"
+#: ldlang.c:2846
+msgid "%P: warning: changing start of section %s by %u bytes\n"
msgstr ""
-#: ldlang.c:2998
-msgid "%X%P: use an absolute load address or a load memory region, not both\n"
+#: ldlang.c:2859
+#, c-format
+msgid "%F%S: non constant address expression for section %s\n"
msgstr ""
-#: ldlang.c:3113
+#: ldlang.c:3036
msgid "%P%F: can't relax section: %E\n"
msgstr ""
-#: ldlang.c:3272
+#: ldlang.c:3232
msgid "%F%P: invalid data statement\n"
msgstr ""
-#: ldlang.c:3309
+#: ldlang.c:3269
msgid "%F%P: invalid reloc statement\n"
msgstr ""
-#: ldlang.c:3447
+#: ldlang.c:3408
msgid "%P%F:%s: can't set start address\n"
msgstr ""
-#: ldlang.c:3460 ldlang.c:3477
+#: ldlang.c:3421 ldlang.c:3439
msgid "%P%F: can't set start address\n"
msgstr ""
-#: ldlang.c:3472
+#: ldlang.c:3433
msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
msgstr ""
-#: ldlang.c:3482
+#: ldlang.c:3444
msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
msgstr ""
-#: ldlang.c:3524
+#: ldlang.c:3488
msgid ""
-"%P: warning: %s architecture of input file `%B' is incompatible with %s "
-"output\n"
+"%P%F: Relocatable linking with relocations from format %s (%B) to format %s "
+"(%B) is not supported\n"
msgstr ""
-#: ldlang.c:3537
+#: ldlang.c:3497
msgid ""
-"%P%F: Relocatable linking with relocations from format %s (%B) to format %s "
-"(%B) is not supported\n"
+"%P: warning: %s architecture of input file `%B' is incompatible with %s "
+"output\n"
msgstr ""
-#: ldlang.c:3557
+#: ldlang.c:3518
msgid "%E%X: failed to merge target specific data of file %B\n"
msgstr ""
-#: ldlang.c:3646
+#: ldlang.c:3604
msgid ""
"\n"
"Allocating common symbols\n"
msgstr ""
-#: ldlang.c:3647
+#: ldlang.c:3605
msgid ""
"Common symbol size file\n"
"\n"
@@ -686,847 +719,888 @@ msgstr ""
#. This message happens when using the
#. svr3.ifile linker script, so I have
#. disabled it.
-#: ldlang.c:3729
+#: ldlang.c:3681
msgid "%P: no [COMMON] command, defaulting to .bss\n"
msgstr ""
-#: ldlang.c:3788
+#: ldlang.c:3737
msgid "%P%F: invalid syntax in flags\n"
msgstr ""
-#: ldlang.c:4389
+#: ldlang.c:4325
msgid "%P%Fmultiple STARTUP files\n"
msgstr ""
-#: ldlang.c:4657
+#: ldlang.c:4368
+msgid "%X%P:%S: section has both a load address and a load region\n"
+msgstr ""
+
+#: ldlang.c:4608
msgid "%F%P: bfd_record_phdr failed: %E\n"
msgstr ""
-#: ldlang.c:4676
+#: ldlang.c:4627
msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
msgstr ""
-#: ldlang.c:5002
+#: ldlang.c:4919
msgid "%X%P: unknown language `%s' in version information\n"
msgstr ""
-#: ldlang.c:5054
+#: ldlang.c:4969
msgid ""
"%X%P: anonymous version tag cannot be combined with other version tags\n"
msgstr ""
-#: ldlang.c:5061
+#: ldlang.c:4977
msgid "%X%P: duplicate version tag `%s'\n"
msgstr ""
-#: ldlang.c:5074 ldlang.c:5087
+#: ldlang.c:4990 ldlang.c:5003
msgid "%X%P: duplicate expression `%s' in version information\n"
msgstr ""
-#: ldlang.c:5129
+#: ldlang.c:5043
msgid "%X%P: unable to find version dependency `%s'\n"
msgstr ""
-#: ldlang.c:5151
+#: ldlang.c:5065
msgid "%X%P: unable to read .exports section contents\n"
msgstr ""
-#: ldmain.c:195
+#: ldmain.c:247
msgid "%X%P: can't set BFD default target to `%s': %E\n"
msgstr ""
-#: ldmain.c:284
+#: ldmain.c:349
msgid "%P%F: -r and --mpc860c0 may not be used together\n"
msgstr ""
-#: ldmain.c:286
+#: ldmain.c:351
msgid "%P%F: --relax and -r may not be used together\n"
msgstr ""
-#: ldmain.c:288
+#: ldmain.c:353
msgid "%P%F: -r and -shared may not be used together\n"
msgstr ""
-#: ldmain.c:294
+#: ldmain.c:359
msgid "%P%F: -F may not be used without -shared\n"
msgstr ""
-#: ldmain.c:296
+#: ldmain.c:361
msgid "%P%F: -f may not be used without -shared\n"
msgstr ""
-#: ldmain.c:335
+#: ldmain.c:403
msgid "using external linker script:"
msgstr ""
-#: ldmain.c:337
+#: ldmain.c:405
msgid "using internal linker script:"
msgstr ""
-#: ldmain.c:371
+#: ldmain.c:439
msgid "%P%F: no input files\n"
msgstr ""
-#: ldmain.c:376
+#: ldmain.c:443
msgid "%P: mode %s\n"
msgstr ""
-#: ldmain.c:393
+#: ldmain.c:459
msgid "%P%F: cannot open map file %s: %E\n"
msgstr ""
-#: ldmain.c:440
+#: ldmain.c:489
msgid "%P: link errors found, deleting executable `%s'\n"
msgstr ""
-#: ldmain.c:451
+#: ldmain.c:498
msgid "%F%B: final close failed: %E\n"
msgstr ""
-#: ldmain.c:475
+#: ldmain.c:524
msgid "%X%P: unable to open for source of copy `%s'\n"
msgstr ""
-#: ldmain.c:477
+#: ldmain.c:527
msgid "%X%P: unable to open for destination of copy `%s'\n"
msgstr ""
-#: ldmain.c:483
+#: ldmain.c:534
msgid "%P: Error writing file `%s'\n"
msgstr ""
-#: ldmain.c:489 pe-dll.c:1442
+#: ldmain.c:539 pe-dll.c:1443
#, c-format
msgid "%P: Error closing file `%s'\n"
msgstr ""
-#: ldmain.c:506
+#: ldmain.c:555
#, c-format
msgid "%s: total time in link: %ld.%06ld\n"
msgstr ""
-#: ldmain.c:509
+#: ldmain.c:558
#, c-format
msgid "%s: data size %ld\n"
msgstr ""
-#: ldmain.c:550
+#: ldmain.c:596
msgid "%P%F: missing argument to -m\n"
msgstr ""
-#: ldmain.c:678 ldmain.c:699 ldmain.c:730
+#: ldmain.c:741 ldmain.c:759 ldmain.c:789
msgid "%P%F: bfd_hash_table_init failed: %E\n"
msgstr ""
-#: ldmain.c:683 ldmain.c:702
+#: ldmain.c:745 ldmain.c:763
msgid "%P%F: bfd_hash_lookup failed: %E\n"
msgstr ""
-#: ldmain.c:717
+#: ldmain.c:777
msgid "%X%P: error: duplicate retain-symbols-file\n"
msgstr ""
-#: ldmain.c:761
+#: ldmain.c:819
msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
msgstr ""
-#: ldmain.c:766
+#: ldmain.c:824
msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
msgstr ""
-#: ldmain.c:842
+#: ldmain.c:899
msgid ""
"Archive member included because of file (symbol)\n"
"\n"
msgstr ""
-#: ldmain.c:913
+#: ldmain.c:969
msgid "%X%C: multiple definition of `%T'\n"
msgstr ""
-#: ldmain.c:916
+#: ldmain.c:972
msgid "%D: first defined here\n"
msgstr ""
-#: ldmain.c:920
+#: ldmain.c:976
msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
msgstr ""
-#: ldmain.c:951
+#: ldmain.c:1006
msgid "%B: warning: definition of `%T' overriding common\n"
msgstr ""
-#: ldmain.c:954
+#: ldmain.c:1009
msgid "%B: warning: common is here\n"
msgstr ""
-#: ldmain.c:961
+#: ldmain.c:1016
msgid "%B: warning: common of `%T' overridden by definition\n"
msgstr ""
-#: ldmain.c:964
+#: ldmain.c:1019
msgid "%B: warning: defined here\n"
msgstr ""
-#: ldmain.c:971
+#: ldmain.c:1026
msgid "%B: warning: common of `%T' overridden by larger common\n"
msgstr ""
-#: ldmain.c:974
+#: ldmain.c:1029
msgid "%B: warning: larger common is here\n"
msgstr ""
-#: ldmain.c:978
+#: ldmain.c:1033
msgid "%B: warning: common of `%T' overriding smaller common\n"
msgstr ""
-#: ldmain.c:981
+#: ldmain.c:1036
msgid "%B: warning: smaller common is here\n"
msgstr ""
-#: ldmain.c:985
+#: ldmain.c:1040
msgid "%B: warning: multiple common of `%T'\n"
msgstr ""
-#: ldmain.c:987
+#: ldmain.c:1042
msgid "%B: warning: previous common is here\n"
msgstr ""
-#: ldmain.c:1008 ldmain.c:1047
+#: ldmain.c:1062 ldmain.c:1100
msgid "%P: warning: global constructor %s used\n"
msgstr ""
-#: ldmain.c:1057
+#: ldmain.c:1110
msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
msgstr ""
-#: ldmain.c:1241
+#: ldmain.c:1287 ldmisc.c:533
msgid "%F%P: bfd_hash_table_init failed: %E\n"
msgstr ""
-#: ldmain.c:1248
+#: ldmain.c:1294 ldmisc.c:540
msgid "%F%P: bfd_hash_lookup failed: %E\n"
msgstr ""
-#: ldmain.c:1268
+#: ldmain.c:1314
msgid "%C: undefined reference to `%T'\n"
msgstr ""
-#: ldmain.c:1274
+#: ldmain.c:1320
msgid "%D: more undefined references to `%T' follow\n"
msgstr ""
-#: ldmain.c:1281
+#: ldmain.c:1327
msgid "%B: undefined reference to `%T'\n"
msgstr ""
-#: ldmain.c:1287
+#: ldmain.c:1333
msgid "%B: more undefined references to `%T' follow\n"
msgstr ""
-#: ldmain.c:1307 ldmain.c:1328 ldmain.c:1347
+#: ldmain.c:1364 ldmain.c:1392 ldmain.c:1410
msgid "%P%X: generated"
msgstr ""
-#: ldmain.c:1310
+#: ldmain.c:1371
+msgid " additional relocation overflows omitted from the output\n"
+msgstr ""
+
+#: ldmain.c:1375
msgid " relocation truncated to fit: %s %T"
msgstr ""
-#: ldmain.c:1331
+#: ldmain.c:1395
#, c-format
msgid "dangerous relocation: %s\n"
msgstr ""
-#: ldmain.c:1350
+#: ldmain.c:1413
msgid " reloc refers to symbol `%T' which is not being output\n"
msgstr ""
-#: ldmisc.c:179
+#: ldmisc.c:147
msgid "no symbol"
msgstr ""
-#: ldmisc.c:243
+#: ldmisc.c:211
#, c-format
msgid "built in linker script:%u"
msgstr ""
-#: ldmisc.c:293 ldmisc.c:297
+#: ldmisc.c:260 ldmisc.c:264
msgid "%B%F: could not read symbols\n"
msgstr ""
-#. We use abfd->filename in this initial line,
-#. in case filename is a .h file or something
-#. similarly unhelpful.
-#: ldmisc.c:333
-msgid "%B: In function `%T':\n"
+#: ldmisc.c:291
+msgid ": In function `%T':\n"
msgstr ""
-#: ldmisc.c:442
+#: ldmisc.c:438
msgid "%F%P: internal error %s %d\n"
msgstr ""
-#: ldmisc.c:492
+#: ldmisc.c:484
msgid "%P: internal error: aborting at %s line %d in %s\n"
msgstr ""
-#: ldmisc.c:495
+#: ldmisc.c:487
msgid "%P: internal error: aborting at %s line %d\n"
msgstr ""
-#: ldmisc.c:497
+#: ldmisc.c:489
msgid "%P%F: please report this bug\n"
msgstr ""
#. 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 ""
-#: ldver.c:42
+#: ldver.c:43
msgid "Copyright 2002 Free Software Foundation, Inc.\n"
msgstr ""
-#: 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"
msgstr ""
-#: ldver.c:52
+#: ldver.c:53
msgid " Supported emulations:\n"
msgstr ""
-#: ldwrite.c:59 ldwrite.c:195
+#: ldwrite.c:54 ldwrite.c:190
msgid "%P%F: bfd_new_link_order failed\n"
msgstr ""
-#: ldwrite.c:321
+#: ldwrite.c:310
msgid "%F%P: clone section failed: %E\n"
msgstr ""
-#: ldwrite.c:360
+#: ldwrite.c:348
#, c-format
msgid "%8x something else\n"
msgstr ""
-#: ldwrite.c:543
+#: ldwrite.c:525
msgid "%F%P: final link failed: %E\n"
msgstr ""
-#: lexsup.c:175 lexsup.c:270
+#: lexsup.c:179 lexsup.c:284
msgid "KEYWORD"
msgstr ""
-#: lexsup.c:175
+#: lexsup.c:179
msgid "Shared library control for HP/UX compatibility"
msgstr ""
-#: lexsup.c:178
+#: lexsup.c:182
msgid "ARCH"
msgstr ""
-#: lexsup.c:178
+#: lexsup.c:182
msgid "Set architecture"
msgstr ""
-#: lexsup.c:180 lexsup.c:337
+#: lexsup.c:184 lexsup.c:357
msgid "TARGET"
msgstr ""
-#: lexsup.c:180
+#: lexsup.c:184
msgid "Specify target for following input files"
msgstr ""
-#: lexsup.c:182 lexsup.c:223 lexsup.c:235 lexsup.c:244 lexsup.c:315
-#: lexsup.c:344 lexsup.c:384
+#: lexsup.c:186 lexsup.c:229 lexsup.c:241 lexsup.c:254 lexsup.c:329
+#: lexsup.c:364 lexsup.c:408
msgid "FILE"
msgstr ""
-#: lexsup.c:182
+#: lexsup.c:186
msgid "Read MRI format linker script"
msgstr ""
-#: lexsup.c:184
+#: lexsup.c:188
msgid "Force common symbols to be defined"
msgstr ""
-#: lexsup.c:188 lexsup.c:374 lexsup.c:376 lexsup.c:378
+#: lexsup.c:192 lexsup.c:398 lexsup.c:400 lexsup.c:402
msgid "ADDRESS"
msgstr ""
-#: lexsup.c:188
+#: lexsup.c:192
msgid "Set start address"
msgstr ""
-#: lexsup.c:190
+#: lexsup.c:194
msgid "Export all dynamic symbols"
msgstr ""
-#: lexsup.c:192
+#: lexsup.c:196
msgid "Link big-endian objects"
msgstr ""
-#: lexsup.c:194
+#: lexsup.c:198
msgid "Link little-endian objects"
msgstr ""
-#: lexsup.c:196 lexsup.c:199
+#: lexsup.c:200 lexsup.c:203
msgid "SHLIB"
msgstr ""
-#: lexsup.c:196
+#: lexsup.c:200
msgid "Auxiliary filter for shared object symbol table"
msgstr ""
-#: lexsup.c:199
+#: lexsup.c:203
msgid "Filter for shared object symbol table"
msgstr ""
-#: lexsup.c:201
+#: lexsup.c:205
msgid "Ignored"
msgstr ""
-#: lexsup.c:203
+#: lexsup.c:207
msgid "SIZE"
msgstr ""
-#: lexsup.c:203
+#: lexsup.c:207
msgid "Small data size (if no size, same as --shared)"
msgstr ""
-#: lexsup.c:206
+#: lexsup.c:210
msgid "FILENAME"
msgstr ""
-#: lexsup.c:206
+#: lexsup.c:210
msgid "Set internal name of shared library"
msgstr ""
-#: lexsup.c:208
+#: lexsup.c:212
msgid "PROGRAM"
msgstr ""
-#: lexsup.c:208
+#: lexsup.c:212
msgid "Set PROGRAM as the dynamic linker to use"
msgstr ""
-#: lexsup.c:210
+#: lexsup.c:214
msgid "LIBNAME"
msgstr ""
-#: lexsup.c:210
+#: lexsup.c:214
msgid "Search for library LIBNAME"
msgstr ""
-#: lexsup.c:212
+#: lexsup.c:216
msgid "DIRECTORY"
msgstr ""
-#: lexsup.c:212
+#: lexsup.c:216
msgid "Add DIRECTORY to library search path"
msgstr ""
-#: lexsup.c:214
+#: lexsup.c:218
msgid "EMULATION"
msgstr ""
-#: lexsup.c:214
+#: lexsup.c:218
msgid "Set emulation"
msgstr ""
-#: lexsup.c:216
+#: lexsup.c:220
msgid "Print map file on standard output"
msgstr ""
-#: lexsup.c:218
+#: lexsup.c:222
msgid "Do not page align data"
msgstr ""
-#: lexsup.c:220
+#: lexsup.c:224
msgid "Do not page align data, do not make text readonly"
msgstr ""
-#: lexsup.c:223
+#: lexsup.c:227
+msgid "Page align data, make text readonly"
+msgstr ""
+
+#: lexsup.c:229
msgid "Set output file name"
msgstr ""
-#: lexsup.c:225
+#: lexsup.c:231
msgid "Optimize output file"
msgstr ""
-#: lexsup.c:227
+#: lexsup.c:233
msgid "Ignored for SVR4 compatibility"
msgstr ""
-#: lexsup.c:231
-msgid "Generate relocateable output"
+#: lexsup.c:237
+msgid "Generate relocatable output"
msgstr ""
-#: lexsup.c:235
+#: lexsup.c:241
msgid "Just link symbols (if directory, same as --rpath)"
msgstr ""
-#: lexsup.c:238
+#: lexsup.c:244
msgid "Strip all symbols"
msgstr ""
-#: lexsup.c:240
+#: lexsup.c:246
msgid "Strip debugging symbols"
msgstr ""
-#: lexsup.c:242
+#: lexsup.c:248
+msgid "Strip symbols in discarded sections"
+msgstr ""
+
+#: lexsup.c:250
+msgid "Do not strip symbols in discarded sections"
+msgstr ""
+
+#: lexsup.c:252
msgid "Trace file opens"
msgstr ""
-#: lexsup.c:244
+#: lexsup.c:254
msgid "Read linker script"
msgstr ""
-#: lexsup.c:246 lexsup.c:262 lexsup.c:301 lexsup.c:313 lexsup.c:368
-#: lexsup.c:387 lexsup.c:407
+#: lexsup.c:256 lexsup.c:272 lexsup.c:315 lexsup.c:327 lexsup.c:392
+#: lexsup.c:411 lexsup.c:431
msgid "SYMBOL"
msgstr ""
-#: lexsup.c:246
+#: lexsup.c:256
msgid "Start with undefined reference to SYMBOL"
msgstr ""
-#: lexsup.c:248
+#: lexsup.c:258
msgid "[=SECTION]"
msgstr ""
-#: lexsup.c:248
+#: lexsup.c:258
msgid "Don't merge input [SECTION | orphan] sections"
msgstr ""
-#: lexsup.c:250
+#: lexsup.c:260
msgid "Build global constructor/destructor tables"
msgstr ""
-#: lexsup.c:252
+#: lexsup.c:262
msgid "Print version information"
msgstr ""
-#: lexsup.c:254
+#: lexsup.c:264
msgid "Print version and emulation information"
msgstr ""
-#: lexsup.c:256
+#: lexsup.c:266
msgid "Discard all local symbols"
msgstr ""
-#: lexsup.c:258
+#: lexsup.c:268
msgid "Discard temporary local symbols (default)"
msgstr ""
-#: lexsup.c:260
+#: lexsup.c:270
msgid "Don't discard any local symbols"
msgstr ""
-#: lexsup.c:262
+#: lexsup.c:272
msgid "Trace mentions of SYMBOL"
msgstr ""
-#: lexsup.c:264 lexsup.c:346 lexsup.c:348
+#: lexsup.c:274 lexsup.c:366 lexsup.c:368
msgid "PATH"
msgstr ""
-#: lexsup.c:264
+#: lexsup.c:274
msgid "Default search path for Solaris compatibility"
msgstr ""
-#: lexsup.c:266
+#: lexsup.c:276
msgid "Start a group"
msgstr ""
-#: lexsup.c:268
+#: lexsup.c:278
msgid "End a group"
msgstr ""
-#: lexsup.c:270
+#: lexsup.c:280
+msgid "Accept input files whose architecture cannot be determined"
+msgstr ""
+
+#: lexsup.c:282
+msgid "Reject input files whose architecture is unknown"
+msgstr ""
+
+#: lexsup.c:284
msgid "Ignored for SunOS compatibility"
msgstr ""
-#: lexsup.c:272
+#: lexsup.c:286
msgid "Link against shared libraries"
msgstr ""
-#: lexsup.c:278
+#: lexsup.c:292
msgid "Do not link against shared libraries"
msgstr ""
-#: lexsup.c:286
+#: lexsup.c:300
msgid "Bind global references locally"
msgstr ""
-#: lexsup.c:288
+#: lexsup.c:302
msgid "Check section addresses for overlaps (default)"
msgstr ""
-#: lexsup.c:290
+#: lexsup.c:304
msgid "Do not check section addresses for overlaps"
msgstr ""
-#: lexsup.c:293
+#: lexsup.c:307
msgid "Output cross reference table"
msgstr ""
-#: lexsup.c:295
+#: lexsup.c:309
msgid "SYMBOL=EXPRESSION"
msgstr ""
-#: lexsup.c:295
+#: lexsup.c:309
msgid "Define a symbol"
msgstr ""
-#: lexsup.c:297
+#: lexsup.c:311
msgid "[=STYLE]"
msgstr ""
-#: lexsup.c:297
+#: lexsup.c:311
msgid "Demangle symbol names [using STYLE]"
msgstr ""
-#: lexsup.c:299
+#: lexsup.c:313
msgid "Generate embedded relocs"
msgstr ""
-#: lexsup.c:301
+#: lexsup.c:315
msgid "Call SYMBOL at unload-time"
msgstr ""
-#: lexsup.c:303
+#: lexsup.c:317
msgid "Force generation of file with .exe suffix"
msgstr ""
-#: lexsup.c:305
+#: lexsup.c:319
msgid "Remove unused sections (on some targets)"
msgstr ""
-#: lexsup.c:308
+#: lexsup.c:322
msgid "Don't remove unused sections (default)"
msgstr ""
-#: lexsup.c:311
+#: lexsup.c:325
msgid "Print option help"
msgstr ""
-#: lexsup.c:313
+#: lexsup.c:327
msgid "Call SYMBOL at load-time"
msgstr ""
-#: lexsup.c:315
+#: lexsup.c:329
msgid "Write a map file"
msgstr ""
-#: lexsup.c:317
+#: lexsup.c:331
msgid "Do not define Common storage"
msgstr ""
-#: lexsup.c:319
+#: lexsup.c:333
msgid "Do not demangle symbol names"
msgstr ""
-#: lexsup.c:321
+#: lexsup.c:335
msgid "Use less memory and more disk I/O"
msgstr ""
-#: lexsup.c:323
+#: lexsup.c:337
msgid "Allow no undefined symbols"
msgstr ""
-#: lexsup.c:325
-msgid "Allow undefined symbols in shared objects"
+#: lexsup.c:339
+msgid "Allow undefined symbols in shared objects (the default)"
msgstr ""
-#: lexsup.c:327
+#: lexsup.c:341
+msgid "Do not allow undefined symbols in shared objects"
+msgstr ""
+
+#: lexsup.c:343
+msgid "Allow multiple definitions"
+msgstr ""
+
+#: lexsup.c:345
+msgid "Disallow undefined version"
+msgstr ""
+
+#: lexsup.c:347
msgid "Don't warn about mismatched input files"
msgstr ""
-#: lexsup.c:329
+#: lexsup.c:349
msgid "Turn off --whole-archive"
msgstr ""
-#: lexsup.c:331
+#: lexsup.c:351
msgid "Create an output file even if errors occur"
msgstr ""
-#: lexsup.c:335
+#: lexsup.c:355
msgid ""
"Only use library directories specified on\n"
"\t\t\t\tthe command line"
msgstr ""
-#: lexsup.c:337
+#: lexsup.c:357
msgid "Specify target of output file"
msgstr ""
-#: lexsup.c:339
+#: lexsup.c:359
msgid "Ignored for Linux compatibility"
msgstr ""
-#: lexsup.c:341
+#: lexsup.c:361
msgid "Relax branches on certain targets"
msgstr ""
-#: lexsup.c:344
+#: lexsup.c:364
msgid "Keep only symbols listed in FILE"
msgstr ""
-#: lexsup.c:346
+#: lexsup.c:366
msgid "Set runtime shared library search path"
msgstr ""
-#: lexsup.c:348
+#: lexsup.c:368
msgid "Set link time shared library search path"
msgstr ""
-#: lexsup.c:350
+#: lexsup.c:370
msgid "Create a shared library"
msgstr ""
-#: lexsup.c:354
+#: lexsup.c:374
+msgid "Create a position independent executable"
+msgstr ""
+
+#: lexsup.c:378
msgid "Sort common symbols by size"
msgstr ""
-#: lexsup.c:358
+#: lexsup.c:382
msgid "COUNT"
msgstr ""
-#: lexsup.c:358
+#: lexsup.c:382
msgid "How many tags to reserve in .dynamic section"
msgstr ""
-#: lexsup.c:360
+#: lexsup.c:384
msgid "[=SIZE]"
msgstr ""
-#: lexsup.c:360
+#: lexsup.c:384
msgid "Split output sections every SIZE octets"
msgstr ""
-#: lexsup.c:362
+#: lexsup.c:386
msgid "[=COUNT]"
msgstr ""
-#: lexsup.c:362
+#: lexsup.c:386
msgid "Split output sections every COUNT relocs"
msgstr ""
-#: lexsup.c:364
+#: lexsup.c:388
msgid "Print memory usage statistics"
msgstr ""
-#: lexsup.c:366
+#: lexsup.c:390
msgid "Display target specific options"
msgstr ""
-#: lexsup.c:368
+#: lexsup.c:392
msgid "Do task level linking"
msgstr ""
-#: lexsup.c:370
+#: lexsup.c:394
msgid "Use same format as native linker"
msgstr ""
-#: lexsup.c:372
+#: lexsup.c:396
msgid "SECTION=ADDRESS"
msgstr ""
-#: lexsup.c:372
+#: lexsup.c:396
msgid "Set address of named section"
msgstr ""
-#: lexsup.c:374
+#: lexsup.c:398
msgid "Set address of .bss section"
msgstr ""
-#: lexsup.c:376
+#: lexsup.c:400
msgid "Set address of .data section"
msgstr ""
-#: lexsup.c:378
+#: lexsup.c:402
msgid "Set address of .text section"
msgstr ""
-#: lexsup.c:380
+#: lexsup.c:404
msgid "Output lots of information during link"
msgstr ""
-#: lexsup.c:384
+#: lexsup.c:408
msgid "Read version information script"
msgstr ""
-#: lexsup.c:387
+#: lexsup.c:411
msgid ""
"Take export symbols list from .exports, using\n"
"\t\t\t\tSYMBOL as the version."
msgstr ""
-#: lexsup.c:390
+#: lexsup.c:414
msgid "Warn about duplicate common symbols"
msgstr ""
-#: lexsup.c:392
+#: lexsup.c:416
msgid "Warn if global constructors/destructors are seen"
msgstr ""
-#: lexsup.c:395
+#: lexsup.c:419
msgid "Warn if the multiple GP values are used"
msgstr ""
-#: lexsup.c:397
+#: lexsup.c:421
msgid "Warn only once per undefined symbol"
msgstr ""
-#: lexsup.c:399
+#: lexsup.c:423
msgid "Warn if start of section changes due to alignment"
msgstr ""
-#: lexsup.c:402
+#: lexsup.c:426
msgid "Treat warnings as errors"
msgstr ""
-#: lexsup.c:405
+#: lexsup.c:429
msgid "Include all objects from following archives"
msgstr ""
-#: lexsup.c:407
+#: lexsup.c:431
msgid "Use wrapper functions for SYMBOL"
msgstr ""
-#: lexsup.c:409
+#: lexsup.c:433
msgid "[=WORDS]"
msgstr ""
-#: lexsup.c:409
+#: lexsup.c:433
msgid ""
"Modify problematic branches in last WORDS (1-10,\n"
"\t\t\t\tdefault 5) words of a page"
msgstr ""
-#: lexsup.c:575
+#: lexsup.c:602
msgid "%P: unrecognized option '%s'\n"
msgstr ""
-#: lexsup.c:577
+#: lexsup.c:604
msgid "%P%F: use the --help option for usage information\n"
msgstr ""
-#: lexsup.c:596
+#: lexsup.c:622
msgid "%P%F: unrecognized -a option `%s'\n"
msgstr ""
-#: lexsup.c:609
+#: lexsup.c:635
msgid "%P%F: unrecognized -assert option `%s'\n"
msgstr ""
-#: lexsup.c:652
+#: lexsup.c:678
msgid "%F%P: unknown demangling style `%s'"
msgstr ""
-#: lexsup.c:712
+#: lexsup.c:737
msgid "%P%F: invalid number `%s'\n"
msgstr ""
@@ -1538,74 +1612,78 @@ 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:810
+#: lexsup.c:849
msgid "%P%F: bad -rpath option\n"
msgstr ""
-#: lexsup.c:908
+#: lexsup.c:953
msgid "%P%F: -shared not supported\n"
msgstr ""
-#: lexsup.c:940
+#: lexsup.c:962
+msgid "%P%F: -pie not supported\n"
+msgstr ""
+
+#: lexsup.c:994
msgid "%P%F: invalid argument to option \"--section-start\"\n"
msgstr ""
-#: lexsup.c:946
+#: lexsup.c:1000
msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
msgstr ""
-#: lexsup.c:1095
+#: lexsup.c:1158
msgid "%P%F: may not nest groups (--help for usage)\n"
msgstr ""
-#: lexsup.c:1102
+#: lexsup.c:1165
msgid "%P%F: group ended before it began (--help for usage)\n"
msgstr ""
-#: lexsup.c:1116
+#: lexsup.c:1179
msgid "%P%F: invalid argument to option \"mpc860c0\"\n"
msgstr ""
-#: lexsup.c:1171
+#: lexsup.c:1234
msgid "%P%F: invalid hex number `%s'\n"
msgstr ""
-#: lexsup.c:1183
+#: lexsup.c:1246
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr ""
-#: lexsup.c:1185
+#: lexsup.c:1248
msgid "Options:\n"
msgstr ""
#. Note: Various tools (such as libtool) depend upon the
#. format of the listings below - do not change them.
-#: lexsup.c:1268
+#: lexsup.c:1331
#, c-format
msgid "%s: supported targets:"
msgstr ""
-#: lexsup.c:1276
+#: lexsup.c:1339
#, c-format
msgid "%s: supported emulations: "
msgstr ""
-#: lexsup.c:1281
+#: lexsup.c:1344
#, c-format
msgid "%s: emulation specific options:\n"
msgstr ""
-#: lexsup.c:1285
+#: lexsup.c:1348
#, c-format
msgid "Report bugs to %s\n"
msgstr ""
-#: mri.c:334
+#: mri.c:307
msgid "%P%F: unknown format type %s\n"
msgstr ""
-#: pe-dll.c:316
+#: pe-dll.c:301
#, c-format
msgid "%XUnsupported PEI architecture: %s\n"
msgstr ""
@@ -1620,46 +1698,52 @@ msgstr ""
msgid "Warning, duplicate EXPORT: %s\n"
msgstr ""
-#: pe-dll.c:721
+#: pe-dll.c:723
#, c-format
msgid "%XCannot export %s: symbol not defined\n"
msgstr ""
-#: pe-dll.c:727
+#: pe-dll.c:729
#, c-format
msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n"
msgstr ""
-#: pe-dll.c:734
+#: pe-dll.c:736
#, c-format
msgid "%XCannot export %s: symbol not found\n"
msgstr ""
-#: pe-dll.c:849
+#: pe-dll.c:848
#, c-format
msgid "%XError, ordinal used twice: %d (%s vs %s)\n"
msgstr ""
-#: pe-dll.c:1160
+#: pe-dll.c:1165
#, c-format
msgid "%XError: %d-bit reloc in dll\n"
msgstr ""
-#: pe-dll.c:1295
+#: pe-dll.c:1296
#, c-format
msgid "%s: Can't open output def file %s\n"
msgstr ""
-#: pe-dll.c:1438
+#: pe-dll.c:1439
msgid "; no contents available\n"
msgstr ""
-#: pe-dll.c:2107
+#: 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 ""
+
+#: pe-dll.c:2233
#, c-format
msgid "%XCan't open .lib file: %s\n"
msgstr ""
-#: pe-dll.c:2112
+#: pe-dll.c:2238
#, c-format
msgid "Creating library file: %s\n"
msgstr ""
diff --git a/gnu/usr.bin/binutils/ld/po/sv.gmo b/gnu/usr.bin/binutils/ld/po/sv.gmo
new file mode 100644
index 00000000000..f7038a8a951
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/po/sv.gmo
Binary files differ
diff --git a/gnu/usr.bin/binutils/ld/po/sv.po b/gnu/usr.bin/binutils/ld/po/sv.po
new file mode 100644
index 00000000000..4c17a25584c
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/po/sv.po
@@ -0,0 +1,1815 @@
+# Swedish messages for ld.
+# Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+# Christian Rose <menthos@menthos.com>, 2001, 2002, 2004.
+#
+msgid ""
+msgstr ""
+"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: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: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:121
+#, c-format
+msgid "Errors encountered processing file %s"
+msgstr "Fel inträffade vid bearbetning av filen %s"
+
+#: 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: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: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: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:302
+msgid " --file-alignment <size> Set file alignment\n"
+msgstr " --file-alignment <storlek> Ställ in filjustering\n"
+
+#: 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: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: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: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: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: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: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: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:311
+msgid " --section-alignment <size> Set section alignment\n"
+msgstr " --section-alignment <storlek> Ställ in sektionsjustering\n"
+
+#: 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: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: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: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: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: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: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: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: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: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:323
+msgid " --kill-at Remove @nn from exported symbols\n"
+msgstr " --kill-at Ta bort @nn från exporterade symboler\n"
+
+#: emultempl/pe.em:324
+msgid " --out-implib <file> Generate import library\n"
+msgstr " --out-implib <fil> Generera importbibliotek\n"
+
+#: 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:326
+msgid " --warn-duplicate-exports Warn about duplicate exports.\n"
+msgstr " --warn-duplicate-exports Varna för dubbla exporter.\n"
+
+#: emultempl/pe.em:327
+msgid ""
+" --compat-implib Create backward compatible import libs;\n"
+" create __imp_<SYMBOL> as well.\n"
+msgstr ""
+" --compat-implib Skapa bakåtkompatibla importbibliotek;\n"
+" och skapa även __imp_<SYMBOL>.\n"
+
+#: emultempl/pe.em:329
+msgid ""
+" --enable-auto-image-base Automatically choose image base for DLLs\n"
+" unless user specifies one\n"
+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: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:332
+msgid ""
+" --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:335
+msgid ""
+" --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: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: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"
+msgstr ""
+" --enable-extra-pe-debug Använd utförlig felsökningsutdata vid\n"
+" bygge av eller länkning till DLL:er\n"
+" (särskilt automatisk import)\n"
+
+#: 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:448
+msgid "%P%F: invalid subsystem type %s\n"
+msgstr "%P%F: ogiltig typ av undersystem %s\n"
+
+#: 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: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:494
+#, c-format
+msgid "%s: Can't open base file %s\n"
+msgstr "%s: Kan inte öppna basfilen %s\n"
+
+#: emultempl/pe.em:707
+msgid "%P: warning, file alignment > section alignment.\n"
+msgstr "%P: varning, filjusteringen > sektionsjusteringen.\n"
+
+#: 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: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: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: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: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: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:1188
+#, c-format
+msgid "Errors encountered processing file %s\n"
+msgstr "Fel uppstod vid behandling av filen %s\n"
+
+#: 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: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: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:159
+msgid "%X%P: cref_hash_lookup failed: %E\n"
+msgstr "%X%P: cref_hash_lookup misslyckades: %E\n"
+
+#: ldcref.c:225
+msgid ""
+"\n"
+"Cross Reference Table\n"
+"\n"
+msgstr ""
+"\n"
+"Korsreferenstabell\n"
+"\n"
+
+#: ldcref.c:226
+msgid "Symbol"
+msgstr "Symbol"
+
+#: ldcref.c:234
+msgid "File\n"
+msgstr "Fil\n"
+
+#: ldcref.c:238
+msgid "No symbols\n"
+msgstr "Inga symboler\n"
+
+#: ldcref.c:384
+msgid "%P: symbol `%T' missing from main hash table\n"
+msgstr "%P: symbolen \"%T\" saknas från hastabellen\n"
+
+#: ldcref.c:448
+msgid "%B%F: could not read symbols; %E\n"
+msgstr "%B%F: kunde inte läsa symboler; %E\n"
+
+#: 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: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"
+
+#. We found a reloc for the symbol. The symbol is defined
+#. 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: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:84
+msgid "%P%X: Different relocs used in set %s\n"
+msgstr "%P%X: Olika omlokaliseringar använda i gruppen %s\n"
+
+#: 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: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: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:337
+msgid ""
+"\n"
+"Set Symbol\n"
+"\n"
+msgstr ""
+"\n"
+"Grupp Symbol\n"
+"\n"
+
+#: ldemul.c:247
+#, c-format
+msgid "%S SYSLIB ignored\n"
+msgstr "%S SYSLIB ignorerades\n"
+
+#: ldemul.c:254
+#, c-format
+msgid "%S HLL ignored\n"
+msgstr "%S HLL ignorerades\n"
+
+#: ldemul.c:275
+msgid "%P: unrecognised emulation mode: %s\n"
+msgstr "%P: okänt emuleringsläge: %s\n"
+
+#: ldemul.c:276
+msgid "Supported emulations: "
+msgstr "Emuleringar som stöds: "
+
+#: ldemul.c:320
+msgid " no emulation specific options.\n"
+msgstr " inga emuleringsspecifika flaggor.\n"
+
+#: ldexp.c:148
+msgid "%F%P: %s uses undefined section %s\n"
+msgstr "%F%P: %s använder odefinierad sektion %s\n"
+
+#: 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:355
+#, c-format
+msgid "%F%S %% by zero\n"
+msgstr "%F%S %% med noll\n"
+
+#: ldexp.c:362
+#, c-format
+msgid "%F%S / by zero\n"
+msgstr "%F%S / med noll\n"
+
+#: 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: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: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:687
+#, c-format
+msgid "%F%S invalid assignment to location counter\n"
+msgstr "%F%S ogiltig tilldelning till platsräknare\n"
+
+#: 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: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:727
+msgid "%P%F:%s: hash creation failed\n"
+msgstr "%P%F:%s: skapande av hash misslyckades\n"
+
+#: 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:1089
+#, c-format
+msgid "%F%S non constant expression for %s\n"
+msgstr "%F%S ickekonstant uttryck för %s\n"
+
+#: ldfile.c:144
+#, c-format
+msgid "attempt to open %s failed\n"
+msgstr "försök att öppna %s misslyckades\n"
+
+#: ldfile.c:146
+#, c-format
+msgid "attempt to open %s succeeded\n"
+msgstr "försök att öppna %s lyckades\n"
+
+#: ldfile.c:152
+msgid "%F%P: invalid BFD target `%s'\n"
+msgstr "%F%P: ogiltigt BFD-mål \"%s\"\n"
+
+#: 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: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:380
+msgid "%F%P: cannot open %s: %E\n"
+msgstr "%F%P: kan inte öppna %s: %E\n"
+
+#: 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:430 ldfile.c:446
+#, c-format
+msgid "cannot find script file %s\n"
+msgstr "kan inte hitta skriptfilen %s\n"
+
+#: ldfile.c:432 ldfile.c:448
+#, c-format
+msgid "opened script file %s\n"
+msgstr "öppnade skriptfilen %s\n"
+
+#: 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:529
+msgid "%P%F: unknown architecture: %s\n"
+msgstr "%P%F: okänd arkitektur: %s\n"
+
+#: ldfile.c:543
+msgid "%P%F: target architecture respecified\n"
+msgstr "%P%F: målarkitekturen specifierades om\n"
+
+#: ldfile.c:594
+msgid "%P%F: cannot represent machine `%s'\n"
+msgstr "%P%F: kan inte representera maskinen \"%s\"\n"
+
+#: ldlang.c:640
+msgid ""
+"\n"
+"Memory Configuration\n"
+"\n"
+msgstr ""
+"\n"
+"Minneskonfiguration\n"
+"\n"
+
+#: ldlang.c:642
+msgid "Name"
+msgstr "Namn"
+
+#: ldlang.c:642
+msgid "Origin"
+msgstr "Början"
+
+#: ldlang.c:642
+msgid "Length"
+msgstr "Längd"
+
+#: ldlang.c:642
+msgid "Attributes"
+msgstr "Attribut"
+
+#: ldlang.c:682
+msgid ""
+"\n"
+"Linker script and memory map\n"
+"\n"
+msgstr ""
+"\n"
+"Länkskript och minnestabell\n"
+"\n"
+
+#: 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: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:867
+msgid "%P: %B: warning: ignoring duplicate section `%s'\n"
+msgstr "%P: %B: varning: ignorerar dubbel sektion \"%s\"\n"
+
+#: 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: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:936
+msgid "%P%F: Failed to create hash table\n"
+msgstr "%P%F: Misslyckades med att skapa hashtabell\n"
+
+#: ldlang.c:1351
+msgid "%B: file not recognized: %E\n"
+msgstr "%B: filen inte igenkänd: %E\n"
+
+#: ldlang.c:1352
+msgid "%B: matching formats:"
+msgstr "%B: matchande format:"
+
+#: ldlang.c:1359
+msgid "%F%B: file not recognized: %E\n"
+msgstr "%F%B: filen inte igenkänd: %E\n"
+
+#: 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: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: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:1711
+msgid "%P%F: target %s not found\n"
+msgstr "%P%F: målet %s hittades inte\n"
+
+#: 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:1723
+msgid "%P%F:%s: can not make object file: %E\n"
+msgstr "%P%F:%s: kan inte skapa objektfilen: %E\n"
+
+#: 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: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:2069
+msgid " load address 0x%V"
+msgstr " inläsningsadress 0x%V"
+
+#: ldlang.c:2204
+msgid "%W (size before relaxing)\n"
+msgstr "%W (storlek innan avslappning)\n"
+
+#: ldlang.c:2288
+#, c-format
+msgid "Address of section %s set to "
+msgstr "Adressen på sektionen %s ställd till "
+
+#: ldlang.c:2443
+#, c-format
+msgid "Fail with %d\n"
+msgstr "Misslyckas med %d\n"
+
+#: 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: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: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: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: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: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: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:3036
+msgid "%P%F: can't relax section: %E\n"
+msgstr "%P%F: kan inte slappna av sektion: %E\n"
+
+#: ldlang.c:3232
+msgid "%F%P: invalid data statement\n"
+msgstr "%F%P: ogiltig datasats\n"
+
+#: ldlang.c:3269
+msgid "%F%P: invalid reloc statement\n"
+msgstr "%F%P: ogiltig omlokaliseringssats\n"
+
+#: 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: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: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: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: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: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: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:3604
+msgid ""
+"\n"
+"Allocating common symbols\n"
+msgstr ""
+"\n"
+"Allokerar gemensamma symboler\n"
+
+#: ldlang.c:3605
+msgid ""
+"Common symbol size file\n"
+"\n"
+msgstr ""
+"Gemensam symbol storlek fil\n"
+"\n"
+
+#. This message happens when using the
+#. svr3.ifile linker script, so I have
+#. disabled it.
+#: ldlang.c:3681
+msgid "%P: no [COMMON] command, defaulting to .bss\n"
+msgstr "%P: inget [COMMON]-kommando, använder standardalternativet .bss\n"
+
+#: ldlang.c:3737
+msgid "%P%F: invalid syntax in flags\n"
+msgstr "%P%F: ogiltig syntax i flaggor\n"
+
+#: ldlang.c:4325
+msgid "%P%Fmultiple STARTUP files\n"
+msgstr "%P%Fflera samtidiga STARTUP-filer\n"
+
+#: 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:4608
+msgid "%F%P: bfd_record_phdr failed: %E\n"
+msgstr "%F%P: bfd_record_phdr misslyckades: %E\n"
+
+#: 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: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: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:4977
+msgid "%X%P: duplicate version tag `%s'\n"
+msgstr "%X%P: dubbel versionstagg \"%s\"\n"
+
+#: 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:5043
+msgid "%X%P: unable to find version dependency `%s'\n"
+msgstr "%X%P: kan inte hitta versionsberoende \"%s\"\n"
+
+#: 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: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: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: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: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: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: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:403
+msgid "using external linker script:"
+msgstr "använder externt länkskript:"
+
+#: ldmain.c:405
+msgid "using internal linker script:"
+msgstr "använder internt länkskript:"
+
+#: ldmain.c:439
+msgid "%P%F: no input files\n"
+msgstr "%P%F: inga indatafiler\n"
+
+#: ldmain.c:443
+msgid "%P: mode %s\n"
+msgstr "%P: läge %s\n"
+
+#: 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: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:498
+msgid "%F%B: final close failed: %E\n"
+msgstr "%F%B: avslutande stängning misslyckades: %E\n"
+
+#: 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: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:534
+msgid "%P: Error writing file `%s'\n"
+msgstr "%P: Fel vid skrivning av filen \"%s\"\n"
+
+#: 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:555
+#, c-format
+msgid "%s: total time in link: %ld.%06ld\n"
+msgstr "%s: total tid i länkning: %ld.%06ld\n"
+
+#: ldmain.c:558
+#, c-format
+msgid "%s: data size %ld\n"
+msgstr "%s: datastorlek %ld\n"
+
+#: ldmain.c:596
+msgid "%P%F: missing argument to -m\n"
+msgstr "%P%F: argument saknas till -m\n"
+
+#: 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:745 ldmain.c:763
+msgid "%P%F: bfd_hash_lookup failed: %E\n"
+msgstr "%P%F: bfd_hash_lookup misslyckades: %E\n"
+
+#: ldmain.c:777
+msgid "%X%P: error: duplicate retain-symbols-file\n"
+msgstr "%X%P: fel: dubbel retain-symbols-file\n"
+
+#: 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:824
+msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
+msgstr "%P: \"-retain-symbols-file\" åsidosätter \"-s\" och \"-S\"\n"
+
+#: ldmain.c:899
+msgid ""
+"Archive member included because of file (symbol)\n"
+"\n"
+msgstr ""
+"Arkivmedlem inkluderad på grund av fil (symbol)\n"
+"\n"
+
+#: ldmain.c:969
+msgid "%X%C: multiple definition of `%T'\n"
+msgstr "%X%C: flera defintioner av \"%T\"\n"
+
+#: ldmain.c:972
+msgid "%D: first defined here\n"
+msgstr "%D: först definierad här\n"
+
+#: 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:1006
+msgid "%B: warning: definition of `%T' overriding common\n"
+msgstr "%B: varning: definitioner av \"%T\" åsidosätter gemensam\n"
+
+#: ldmain.c:1009
+msgid "%B: warning: common is here\n"
+msgstr "%B: varning: gemensam är här\n"
+
+#: 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:1019
+msgid "%B: warning: defined here\n"
+msgstr "%B: varning: definierad här\n"
+
+#: 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:1029
+msgid "%B: warning: larger common is here\n"
+msgstr "%B: varning: större gemensam är här\n"
+
+#: 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:1036
+msgid "%B: warning: smaller common is here\n"
+msgstr "%B: varning: mindre gemensam är här\n"
+
+#: ldmain.c:1040
+msgid "%B: warning: multiple common of `%T'\n"
+msgstr "%B: varning: flera gemensamma i \"%T\"\n"
+
+#: ldmain.c:1042
+msgid "%B: warning: previous common is here\n"
+msgstr "%B: varning: föregående gemensam är här\n"
+
+#: 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: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: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:1294 ldmisc.c:540
+msgid "%F%P: bfd_hash_lookup failed: %E\n"
+msgstr "%F%P: bfd_hash_lookup misslyckades: %E\n"
+
+#: ldmain.c:1314
+msgid "%C: undefined reference to `%T'\n"
+msgstr "%C: odefinierad referens till \"%T\"\n"
+
+#: ldmain.c:1320
+msgid "%D: more undefined references to `%T' follow\n"
+msgstr "%D: flera odefinierade referenser till \"%T\" följer\n"
+
+#: ldmain.c:1327
+msgid "%B: undefined reference to `%T'\n"
+msgstr "%B: odefinierad referens till \"%T\"\n"
+
+#: ldmain.c:1333
+msgid "%B: more undefined references to `%T' follow\n"
+msgstr "%B: flera odefinierade referenser till \"%T\" följer\n"
+
+#: ldmain.c:1364 ldmain.c:1392 ldmain.c:1410
+msgid "%P%X: generated"
+msgstr "%P%X: genererad"
+
+#: 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:1395
+#, c-format
+msgid "dangerous relocation: %s\n"
+msgstr "farlig omlokalisering: %s\n"
+
+#: 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:147
+msgid "no symbol"
+msgstr "ingen symbol"
+
+#: ldmisc.c:211
+#, c-format
+msgid "built in linker script:%u"
+msgstr "inbyggt länkskript:%u"
+
+#: ldmisc.c:260 ldmisc.c:264
+msgid "%B%F: could not read symbols\n"
+msgstr "%B%F: kunde inte läsa symboler\n"
+
+#: ldmisc.c:291
+msgid ": In function `%T':\n"
+msgstr ": I funktionen \"%T\":\n"
+
+#: ldmisc.c:438
+msgid "%F%P: internal error %s %d\n"
+msgstr "%F%P: internt fel %s %d\n"
+
+#: 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:487
+msgid "%P: internal error: aborting at %s line %d\n"
+msgstr "%P: internt fel: avbryter vid %s rad %d\n"
+
+#: 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:39
+#, c-format
+msgid "GNU ld version %s\n"
+msgstr "GNU ld version %s\n"
+
+#: ldver.c:43
+msgid "Copyright 2002 Free Software Foundation, Inc.\n"
+msgstr "Copyright 2002 Free Software Foundation, Inc.\n"
+
+#: 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"
+msgstr ""
+"Detta program är fri programvara. Du kan vidaredistribuera det under\n"
+"villkoren i GNU General Public License. Detta program har ingen som\n"
+"helst garanti.\n"
+
+#: ldver.c:53
+msgid " Supported emulations:\n"
+msgstr " Emuleringar som stöds:\n"
+
+#: 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:310
+msgid "%F%P: clone section failed: %E\n"
+msgstr "%F%P: klonsektion misslyckades: %E\n"
+
+#: ldwrite.c:348
+#, c-format
+msgid "%8x something else\n"
+msgstr "%8x någonting annat\n"
+
+#: ldwrite.c:525
+msgid "%F%P: final link failed: %E\n"
+msgstr "%F%P: avslutande länkning misslyckades: %E\n"
+
+#: lexsup.c:179 lexsup.c:284
+msgid "KEYWORD"
+msgstr "NYCKELORD"
+
+#: lexsup.c:179
+msgid "Shared library control for HP/UX compatibility"
+msgstr "Styrning av delade bibliotek för kompatibilitet med HP/UX"
+
+#: lexsup.c:182
+msgid "ARCH"
+msgstr "ARK"
+
+#: lexsup.c:182
+msgid "Set architecture"
+msgstr "Ställ in arkitektur"
+
+#: lexsup.c:184 lexsup.c:357
+msgid "TARGET"
+msgstr "MÅL"
+
+#: lexsup.c:184
+msgid "Specify target for following input files"
+msgstr "Ange mål för följande indatafiler"
+
+#: 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:186
+msgid "Read MRI format linker script"
+msgstr "Läs länkskript i MRI-format"
+
+#: lexsup.c:188
+msgid "Force common symbols to be defined"
+msgstr "Tvinga gemensamma symboler att vara definierade"
+
+#: lexsup.c:192 lexsup.c:398 lexsup.c:400 lexsup.c:402
+msgid "ADDRESS"
+msgstr "ADRESS"
+
+#: lexsup.c:192
+msgid "Set start address"
+msgstr "Ställ in startadress"
+
+#: lexsup.c:194
+msgid "Export all dynamic symbols"
+msgstr "Exportera alla dynamiska symboler"
+
+#: lexsup.c:196
+msgid "Link big-endian objects"
+msgstr "Länka objekt som är big-endian"
+
+#: lexsup.c:198
+msgid "Link little-endian objects"
+msgstr "Länka objekt som är little-endian"
+
+#: lexsup.c:200 lexsup.c:203
+msgid "SHLIB"
+msgstr "DELBIBL"
+
+#: lexsup.c:200
+msgid "Auxiliary filter for shared object symbol table"
+msgstr "Yttre filter för symboltabell över delade objekt"
+
+#: lexsup.c:203
+msgid "Filter for shared object symbol table"
+msgstr "Filter för symboltabell över delade objekt"
+
+#: lexsup.c:205
+msgid "Ignored"
+msgstr "Ignorerad"
+
+#: lexsup.c:207
+msgid "SIZE"
+msgstr "STORLEK"
+
+#: lexsup.c:207
+msgid "Small data size (if no size, same as --shared)"
+msgstr "Liten datastorlek (om ingen storlek, samma som --shared)"
+
+#: lexsup.c:210
+msgid "FILENAME"
+msgstr "FILNAMN"
+
+#: lexsup.c:210
+msgid "Set internal name of shared library"
+msgstr "Ställ in internt namn på delat bibliotek"
+
+#: lexsup.c:212
+msgid "PROGRAM"
+msgstr "PROGRAM"
+
+#: 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:214
+msgid "LIBNAME"
+msgstr "BIBLNAMN"
+
+#: lexsup.c:214
+msgid "Search for library LIBNAME"
+msgstr "Sök efter biblioteket BIBLNAMN"
+
+#: lexsup.c:216
+msgid "DIRECTORY"
+msgstr "KATALOG"
+
+#: lexsup.c:216
+msgid "Add DIRECTORY to library search path"
+msgstr "Lägg till KATALOG till bibliotekssökvägen"
+
+#: lexsup.c:218
+msgid "EMULATION"
+msgstr "EMULERING"
+
+#: lexsup.c:218
+msgid "Set emulation"
+msgstr "Ställ in emulering"
+
+#: lexsup.c:220
+msgid "Print map file on standard output"
+msgstr "Visa tabellfil på standard ut"
+
+#: lexsup.c:222
+msgid "Do not page align data"
+msgstr "Justera inte data efter jämna sidor"
+
+#: 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: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:231
+msgid "Optimize output file"
+msgstr "Optimera utdatafil"
+
+#: lexsup.c:233
+msgid "Ignored for SVR4 compatibility"
+msgstr "Ignorerad för kompatibilitet med SVR4"
+
+#: lexsup.c:237
+msgid "Generate relocatable output"
+msgstr "Generera omlokaliseringsbar utdata"
+
+#: lexsup.c:241
+msgid "Just link symbols (if directory, same as --rpath)"
+msgstr "Länka bara symboler (om katalog, samma som --rpath)"
+
+#: lexsup.c:244
+msgid "Strip all symbols"
+msgstr "Ta bort alla symboler"
+
+#: lexsup.c:246
+msgid "Strip debugging symbols"
+msgstr "Ta bort felsökningssymboler"
+
+#: 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:254
+msgid "Read linker script"
+msgstr "Läs länkskript"
+
+#: 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:256
+msgid "Start with undefined reference to SYMBOL"
+msgstr "Börja med odefinierad referens till SYMBOL"
+
+#: lexsup.c:258
+msgid "[=SECTION]"
+msgstr "[=SEKTION]"
+
+#: lexsup.c:258
+msgid "Don't merge input [SECTION | orphan] sections"
+msgstr "Slå inte samman [SEKTION | föräldralösa] sektioner"
+
+#: lexsup.c:260
+msgid "Build global constructor/destructor tables"
+msgstr "Bygg globala konstruktors-/destruktorstabeller"
+
+#: lexsup.c:262
+msgid "Print version information"
+msgstr "Visa versionsinformation"
+
+#: lexsup.c:264
+msgid "Print version and emulation information"
+msgstr "Visa versions- och emuleringsinformation"
+
+#: lexsup.c:266
+msgid "Discard all local symbols"
+msgstr "Kasta alla lokala symboler"
+
+#: lexsup.c:268
+msgid "Discard temporary local symbols (default)"
+msgstr "Kasta temporära lokala symboler (standard)"
+
+#: lexsup.c:270
+msgid "Don't discard any local symbols"
+msgstr "Kasta inte några lokala symboler"
+
+#: lexsup.c:272
+msgid "Trace mentions of SYMBOL"
+msgstr "Spåra omnämningar av SYMBOL"
+
+#: lexsup.c:274 lexsup.c:366 lexsup.c:368
+msgid "PATH"
+msgstr "SÖKVÄG"
+
+#: lexsup.c:274
+msgid "Default search path for Solaris compatibility"
+msgstr "Standardsökväg för Solaris-kompatibilitet"
+
+#: lexsup.c:276
+msgid "Start a group"
+msgstr "Starta en grupp"
+
+#: lexsup.c:278
+msgid "End a group"
+msgstr "Sluta en grupp"
+
+#: 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:286
+msgid "Link against shared libraries"
+msgstr "Länka mot delade bibliotek"
+
+#: lexsup.c:292
+msgid "Do not link against shared libraries"
+msgstr "Länka inte mot delade bibliotek"
+
+#: lexsup.c:300
+msgid "Bind global references locally"
+msgstr "Bind globala referenser lokalt"
+
+#: lexsup.c:302
+msgid "Check section addresses for overlaps (default)"
+msgstr "Kontrollera sektionsadresser för överlappningar (standard)"
+
+#: lexsup.c:304
+msgid "Do not check section addresses for overlaps"
+msgstr "Kontrollera inte sektionsadresser för överlappningar"
+
+#: lexsup.c:307
+msgid "Output cross reference table"
+msgstr "Skapa korsreferenstabell"
+
+#: lexsup.c:309
+msgid "SYMBOL=EXPRESSION"
+msgstr "SYMBOL=UTTRYCK"
+
+#: lexsup.c:309
+msgid "Define a symbol"
+msgstr "Definiera en symbol"
+
+#: lexsup.c:311
+msgid "[=STYLE]"
+msgstr "[=STIL]"
+
+#: lexsup.c:311
+msgid "Demangle symbol names [using STYLE]"
+msgstr "Avkoda symbolnamn [använd STIL]"
+
+#: lexsup.c:313
+msgid "Generate embedded relocs"
+msgstr "Generera inbäddade omlokaliseringar"
+
+#: lexsup.c:315
+msgid "Call SYMBOL at unload-time"
+msgstr "Anropa SYMBOL vid urladdning"
+
+#: lexsup.c:317
+msgid "Force generation of file with .exe suffix"
+msgstr "Tvinga generering av fil med ändelsen .exe"
+
+#: lexsup.c:319
+msgid "Remove unused sections (on some targets)"
+msgstr "Ta bort oanvända sektioner (på vissa mål)"
+
+#: lexsup.c:322
+msgid "Don't remove unused sections (default)"
+msgstr "Ta inte bort oanvända sektioner (standard)"
+
+#: lexsup.c:325
+msgid "Print option help"
+msgstr "Visa hjälp om flaggor"
+
+#: lexsup.c:327
+msgid "Call SYMBOL at load-time"
+msgstr "Anropa SYMBOL vid inläsning"
+
+#: lexsup.c:329
+msgid "Write a map file"
+msgstr "Skriv en tabellfil"
+
+#: lexsup.c:331
+msgid "Do not define Common storage"
+msgstr "Definiera inte gemensam lagring"
+
+#: lexsup.c:333
+msgid "Do not demangle symbol names"
+msgstr "Avkoda inte symbolnamn"
+
+#: lexsup.c:335
+msgid "Use less memory and more disk I/O"
+msgstr "Använd mindre minne och mer disk-I/O"
+
+#: lexsup.c:337
+msgid "Allow no undefined symbols"
+msgstr "Tillåt inga odefinierade symboler"
+
+#: 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:343
+msgid "Allow multiple definitions"
+msgstr "Tillåt flera defintioner"
+
+#: 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:349
+msgid "Turn off --whole-archive"
+msgstr "Slå av ---whole-archive"
+
+#: lexsup.c:351
+msgid "Create an output file even if errors occur"
+msgstr "Skapa en utdatafil även om fel förekommer"
+
+#: lexsup.c:355
+msgid ""
+"Only use library directories specified on\n"
+"\t\t\t\tthe command line"
+msgstr ""
+"Använd endast bibliotekskataloger som anges\n"
+"\t\t\t\tpå kommandoraden"
+
+#: lexsup.c:357
+msgid "Specify target of output file"
+msgstr "Ange mål för utdatafil"
+
+#: lexsup.c:359
+msgid "Ignored for Linux compatibility"
+msgstr "Ignorerad för kompatibilitet med Linux"
+
+#: lexsup.c:361
+msgid "Relax branches on certain targets"
+msgstr "Slappna av greningar på vissa mål"
+
+#: lexsup.c:364
+msgid "Keep only symbols listed in FILE"
+msgstr "Behåll endast symboler angivna i FIL"
+
+#: lexsup.c:366
+msgid "Set runtime shared library search path"
+msgstr "Ställ in körtidssökväg för delade bibliotek"
+
+#: 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:370
+msgid "Create a shared library"
+msgstr "Skapa ett delat bibliotek"
+
+#: 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:382
+msgid "COUNT"
+msgstr "ANTAL"
+
+#: 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:384
+msgid "[=SIZE]"
+msgstr "[=STORLEK]"
+
+#: lexsup.c:384
+msgid "Split output sections every SIZE octets"
+msgstr "Dela utdatasektioner var STORLEK oktett"
+
+#: lexsup.c:386
+msgid "[=COUNT]"
+msgstr "[=ANTAL]"
+
+#: lexsup.c:386
+msgid "Split output sections every COUNT relocs"
+msgstr "Dela utdatasektioner var ANTAL omlokalisering"
+
+#: lexsup.c:388
+msgid "Print memory usage statistics"
+msgstr "Visa statistik över minnesanvändning"
+
+#: lexsup.c:390
+msgid "Display target specific options"
+msgstr "Visa målspecifika flaggor"
+
+#: lexsup.c:392
+msgid "Do task level linking"
+msgstr "Utför länkning på uppgiftsnivå"
+
+#: lexsup.c:394
+msgid "Use same format as native linker"
+msgstr "Använd samma format som inhemska länkaren"
+
+#: lexsup.c:396
+msgid "SECTION=ADDRESS"
+msgstr "SEKTION=ADRESS"
+
+#: lexsup.c:396
+msgid "Set address of named section"
+msgstr "Ställ in adress på namngiven sektion"
+
+#: lexsup.c:398
+msgid "Set address of .bss section"
+msgstr "Ställ in adress på .bss-sektion"
+
+#: lexsup.c:400
+msgid "Set address of .data section"
+msgstr "Ställ in adress på .data-sektion"
+
+#: lexsup.c:402
+msgid "Set address of .text section"
+msgstr "Ställ in adress på .text-sektion"
+
+#: lexsup.c:404
+msgid "Output lots of information during link"
+msgstr "Visa mycket information under länkning"
+
+#: lexsup.c:408
+msgid "Read version information script"
+msgstr "Läs skript med versionsinformation"
+
+#: lexsup.c:411
+msgid ""
+"Take export symbols list from .exports, using\n"
+"\t\t\t\tSYMBOL as the version."
+msgstr ""
+"Plocka lista med exportsymboler från .exports och\n"
+"\t\t\t\tanvänd SYMBOL som version."
+
+#: lexsup.c:414
+msgid "Warn about duplicate common symbols"
+msgstr "Varna för dubbla gemensamma symboler"
+
+#: lexsup.c:416
+msgid "Warn if global constructors/destructors are seen"
+msgstr "Varna om globala konstruktorer/destruktorer hittas"
+
+#: lexsup.c:419
+msgid "Warn if the multiple GP values are used"
+msgstr "Varna om flera GP-värden används"
+
+#: lexsup.c:421
+msgid "Warn only once per undefined symbol"
+msgstr "Varna endast en gång per odefinierad symbol"
+
+#: 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:426
+msgid "Treat warnings as errors"
+msgstr "Behandla varningar som fel"
+
+#: lexsup.c:429
+msgid "Include all objects from following archives"
+msgstr "Inkludera alla objekt från följande arkiv"
+
+#: lexsup.c:431
+msgid "Use wrapper functions for SYMBOL"
+msgstr "Använd inkapslingsfunktioner för SYMBOL"
+
+#: lexsup.c:433
+msgid "[=WORDS]"
+msgstr "[=ORD]"
+
+#: lexsup.c:433
+msgid ""
+"Modify problematic branches in last WORDS (1-10,\n"
+"\t\t\t\tdefault 5) words of a page"
+msgstr ""
+"Ändra problematiska greningar i sista ORD (1-10,\n"
+"\t\t\t\tstandardvärde 5) orden på en sida"
+
+#: lexsup.c:602
+msgid "%P: unrecognized option '%s'\n"
+msgstr "%P: okänd flagga \"%s\"\n"
+
+#: 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:622
+msgid "%P%F: unrecognized -a option `%s'\n"
+msgstr "%P%F: okänd -a-flagga \"%s\"\n"
+
+#: lexsup.c:635
+msgid "%P%F: unrecognized -assert option `%s'\n"
+msgstr "%P%F: okänd -assert-flagga \"%s\"\n"
+
+#: lexsup.c:678
+msgid "%F%P: unknown demangling style `%s'"
+msgstr "%F%P: okänd avkodningsstil \"%s\""
+
+#: lexsup.c:737
+msgid "%P%F: invalid number `%s'\n"
+msgstr "%P%F: ogiltigt tal \"%s\"\n"
+
+#. 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
+#. but it cannot parse the text after the -r so it refuses to
+#. increment the optind counter. Detect this case and issue
+#. 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
+msgid "%P%F: bad -rpath option\n"
+msgstr "%P%F: okänd -rpath-flagga\n"
+
+#: lexsup.c:953
+msgid "%P%F: -shared not supported\n"
+msgstr "%P%F: -shared stöds inte\n"
+
+#: 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:1000
+msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
+msgstr "%P%F: argument saknas till flaggan \"--section-start\"\n"
+
+#: 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: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:1179
+msgid "%P%F: invalid argument to option \"mpc860c0\"\n"
+msgstr "%P%F: ogiltigt argument till flaggan \"mpc860c0\"\n"
+
+#: lexsup.c:1234
+msgid "%P%F: invalid hex number `%s'\n"
+msgstr "%P%F: ogiltigt hexadecimalt tal \"%s\"\n"
+
+#: lexsup.c:1246
+#, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr "Användning: %s [flaggor] fil...\n"
+
+#: 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:1331
+#, c-format
+msgid "%s: supported targets:"
+msgstr "%s: mål som stöds:"
+
+#: lexsup.c:1339
+#, c-format
+msgid "%s: supported emulations: "
+msgstr "%s: emuleringar som stöds: "
+
+#: lexsup.c:1344
+#, c-format
+msgid "%s: emulation specific options:\n"
+msgstr "%s: emuleringsspecifika flaggor:\n"
+
+#: 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:307
+msgid "%P%F: unknown format type %s\n"
+msgstr "%P%F: okänd formattyp %s\n"
+
+#: pe-dll.c:301
+#, c-format
+msgid "%XUnsupported PEI architecture: %s\n"
+msgstr "%XPEI-arkitekturen stöds inte: %s\n"
+
+#: 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:657
+#, c-format
+msgid "Warning, duplicate EXPORT: %s\n"
+msgstr "Varning, dubbel EXPORT: %s\n"
+
+#: 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: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:736
+#, c-format
+msgid "%XCannot export %s: symbol not found\n"
+msgstr "%XKan inte exportera %s: symbolen hittades inte\n"
+
+#: 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:1165
+#, c-format
+msgid "%XError: %d-bit reloc in dll\n"
+msgstr "%XFel: %d-bitars omlokalisering i dll\n"
+
+#: 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:1439
+msgid "; no contents available\n"
+msgstr "; inget innehåll är tillgängligt\n"
+
+#: 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: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"
+
+#~ msgid " unless user specifies one\n"
+#~ msgstr " såvida användaren inte anger en\n"
+
+#~ msgid " --dll-search-prefix=<string> When linking dynamically to a dll witout an\n"
+#~ msgstr " --dll-search-prefix=<sträng> Använd hellre <sträng><basnamn>.dll\n"
+
+#~ msgid " importlib, use <string><basename>.dll \n"
+#~ msgstr " än lib<basnamn>.dll vid dynamisk\n"
+
+#~ msgid " in preference to lib<basename>.dll \n"
+#~ msgstr ""
+#~ " länkning till en dll utan ett\n"
+#~ " importbibliotek.\n"
+
+#~ msgid "Archive member included"
+#~ msgstr "Inkluderade arkivmedlem"
+
+#~ msgid "Don't merge orphan sections with the same name"
+#~ msgstr "Slå inte samman föräldralösa sektioner med samma namn"
diff --git a/gnu/usr.bin/binutils/ld/po/tr.gmo b/gnu/usr.bin/binutils/ld/po/tr.gmo
new file mode 100644
index 00000000000..a8b981bb3f1
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/po/tr.gmo
Binary files differ
diff --git a/gnu/usr.bin/binutils/ld/po/tr.po b/gnu/usr.bin/binutils/ld/po/tr.po
new file mode 100644
index 00000000000..1582d206e4a
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/po/tr.po
@@ -0,0 +1,1768 @@
+# translation of ld-2.14rel030712.tr.po to Turkish
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# Deniz Akkus Kanca <deniz@arayan.com>, 2001,2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ld 2.14rel030712\n"
+"POT-Creation-Date: 2003-07-11 13:58+0930\n"
+"PO-Revision-Date: 2003-08-17 15:19+0300\n"
+"Last-Translator: Deniz Akkus Kanca <deniz@arayan.com>\n"
+"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.0\n"
+
+#: emultempl/armcoff.em:72
+msgid " --support-old-code Support interworking with old code\n"
+msgstr " --support-old-code Eski yazılım ile beraber çalışmayı destekler\n"
+
+#: emultempl/armcoff.em:73
+msgid " --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n"
+msgstr " --thumb-entry=<sem> Giriş noktasını Thumb sembolü <sem> olarak atar\n"
+
+#: emultempl/armcoff.em:121
+#, c-format
+msgid "Errors encountered processing file %s"
+msgstr "%s dosyası işlenirken hata oluştu"
+
+#: emultempl/armcoff.em:188 emultempl/pe.em:1396
+msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
+msgstr "%P: uyarı: '--thumb-entry %s', '-e %s' seçeneğini etkisizleştiriyor\n"
+
+#: emultempl/armcoff.em:193 emultempl/pe.em:1401
+msgid "%P: warning: connot find thumb start symbol %s\n"
+msgstr "%P: uyarı: thumb başlangıç sembolü %s bulunamadı\n"
+
+#: emultempl/pe.em:300
+msgid " --base_file <basefile> Generate a base file for relocatable DLLs\n"
+msgstr ""
+" --base_file <temeldosya> Yerdeğiştirebilen DLL'ler için temeldosya\n"
+" oluÅŸturur.\n"
+
+#: emultempl/pe.em:301
+msgid " --dll Set image base to the default for DLLs\n"
+msgstr ""
+" --dll DLL'ler için görüntü temelini öntanımlıya\n"
+" ayarlar.\n"
+
+#: emultempl/pe.em:302
+msgid " --file-alignment <size> Set file alignment\n"
+msgstr " --file-alignment <boyut> Dosya hizalamasını ayarlar\n"
+
+#: emultempl/pe.em:303
+msgid " --heap <size> Set initial size of the heap\n"
+msgstr " --heap <boy> Yığının ilk boyunu ayarlar.\n"
+
+#: emultempl/pe.em:304
+msgid " --image-base <address> Set start address of the executable\n"
+msgstr " --image-base <adres> Uygulamanın başlangıç adresini ayarlar\n"
+
+#: emultempl/pe.em:305
+msgid " --major-image-version <number> Set version number of the executable\n"
+msgstr " --major-image-version <numara> Uygulamanın sürüm numarasını ayarlar\n"
+
+#: emultempl/pe.em:306
+msgid " --major-os-version <number> Set minimum required OS version\n"
+msgstr " --major-os-version <numara> OS için en alt gerekli sürümü belirler\n"
+
+#: emultempl/pe.em:307
+msgid " --major-subsystem-version <number> Set minimum required OS subsystem version\n"
+msgstr ""
+" --major-subsystem-version <numara> OS alt sistem sürümü için en küçük gerekli\n"
+" sürüm sayısını belirler\n"
+
+#: emultempl/pe.em:308
+msgid " --minor-image-version <number> Set revision number of the executable\n"
+msgstr " --minor-image-version <numara> Uygulamanın değişim sayısını ayarlar\n"
+
+#: emultempl/pe.em:309
+msgid " --minor-os-version <number> Set minimum required OS revision\n"
+msgstr " --minor-os-version <numara> Gerekli en alt OS deÄŸiÅŸimini belirler\n"
+
+#: emultempl/pe.em:310
+msgid " --minor-subsystem-version <number> Set minimum required OS subsystem revision\n"
+msgstr ""
+" --minor-subsystem-version <numara> Gerekli en alt OS alt sistem deÄŸiÅŸim\n"
+" sayısını belirler\n"
+
+#: emultempl/pe.em:311
+msgid " --section-alignment <size> Set section alignment\n"
+msgstr " --section-alignment <boy> Bölüm hizalamasını ayarlar\n"
+
+#: emultempl/pe.em:312
+msgid " --stack <size> Set size of the initial stack\n"
+msgstr " --stack <boy> Yığıtın ilk boyunu belirler\n"
+
+#: emultempl/pe.em:313
+msgid " --subsystem <name>[:<version>] Set required OS subsystem [& version]\n"
+msgstr " --subsystem <isim>[:<sürüm>] Gerekli OS, altsistem ve sürümü belirler\n"
+
+#: emultempl/pe.em:314
+msgid " --support-old-code Support interworking with old code\n"
+msgstr " --support-old-code Eski kod ile beraber çalışmayı destekler\n"
+
+#: emultempl/pe.em:315
+msgid " --thumb-entry=<symbol> Set the entry point to be Thumb <symbol>\n"
+msgstr " --thumb-entry=<sembol> Giriş noktasını Thumb <sembol> olarak atar\n"
+
+#: emultempl/pe.em:317
+msgid " --add-stdcall-alias Export symbols with and without @nn\n"
+msgstr " --add-stdcall-alias Sembolleri @nn ile ve @nn'siz ihraç eder\n"
+
+#: emultempl/pe.em:318
+msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n"
+msgstr " --disable-stdcall-fixup _sym'i _sym@nn'e baÄŸlamaz\n"
+
+#: emultempl/pe.em:319
+msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n"
+msgstr " --enable-stdcall-fixup _sym'i _sym@nn'e uyarı vermeksizin bağlar\n"
+
+#: emultempl/pe.em:320
+msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"
+msgstr " --exclude-symbols sem,sem,... Sembolleri otomatik ihraçtan ayrı tutar\n"
+
+#: emultempl/pe.em:321
+msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n"
+msgstr " --exclude-libs lib,lib,... Kitaplıkları otomatik ihraçtan ayrı tutar\n"
+
+#: emultempl/pe.em:322
+msgid " --export-all-symbols Automatically export all globals to DLL\n"
+msgstr " --export-all-symbols Bütün evrenselleri DLL'e ihraç eder\n"
+
+#: emultempl/pe.em:323
+msgid " --kill-at Remove @nn from exported symbols\n"
+msgstr " --kill-at İhraç edilen sembollerden @nn'i çıkarır\n"
+
+#: emultempl/pe.em:324
+msgid " --out-implib <file> Generate import library\n"
+msgstr " --out-implib <dosya> İthal kitaplığı oluşturur\n"
+
+#: emultempl/pe.em:325
+msgid " --output-def <file> Generate a .DEF file for the built DLL\n"
+msgstr ""
+" --output-def <dosya> Oluşturulmuş DLL için .DEF dosyası\n"
+" oluÅŸturur\n"
+
+#: emultempl/pe.em:326
+msgid " --warn-duplicate-exports Warn about duplicate exports.\n"
+msgstr " --warn-duplicate-exports Birden fazla ihraçlarda uyarı verir\n"
+
+#: emultempl/pe.em:327
+msgid ""
+" --compat-implib Create backward compatible import libs;\n"
+" create __imp_<SYMBOL> as well.\n"
+msgstr ""
+" --compat-implib Geçmişe uyumlu ithal kitaplığı ve\n"
+" __imp_<SEMBOL> oluÅŸturur.\n"
+
+#: emultempl/pe.em:329
+msgid ""
+" --enable-auto-image-base Automatically choose image base for DLLs\n"
+" unless user specifies one\n"
+msgstr ""
+" --enable-auto-image-base Kullanıcılar bir görüntü temeli seçmezse\n"
+" DLL'ler için otomatik görüntü temeli seçer\n"
+
+#: emultempl/pe.em:331
+msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n"
+msgstr ""
+" --disable-auto-image-base Görüntü temelini otomatik olarak seçmez\n"
+" (öntanımlı).\n"
+
+#: emultempl/pe.em:332
+msgid ""
+" --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=<dizge> Bir dll'e ithal kitaplığı olmaksızın\n"
+" dinamik bağlanma esnasında\n"
+" lib<temeladı>.dll yerine\n"
+" <dizge><temeladı>.dll'i tercih eder\n"
+
+#: emultempl/pe.em:335
+msgid ""
+" --enable-auto-import Do sophistcated linking of _sym to\n"
+" __imp_sym for DATA references\n"
+msgstr ""
+" --enable-auto-import VERİ (DATA) başvuruları için _sym'in\n"
+" __imp_sym'e ileri düzey bağlamasını yapar\n"
+
+#: emultempl/pe.em:337
+msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n"
+msgstr " --disable-auto-image-base Görüntü temelini otomatik olarak seçmez\n"
+
+#: 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 Çalışma zamanında çözümlenen sanal \n"
+" yerdeÄŸiÅŸimler ekleyerek otomatik ithal \n"
+" sınırlamalarını aşar.\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 Otomatik ithal edilen VERİ (DATA) için\n"
+" çalışma zamanı sanal yerdeğişim eklemez.\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"
+msgstr ""
+" --enable-extra-pe-debug DLL'leri oluÅŸturur veya DLL'lere\n"
+" bağlanırken detaylı hata ayıklama\n"
+" çıktısını etkinleştirir. (özellikle\n"
+" otomatik ithallerde)\n"
+
+#: emultempl/pe.em:412
+msgid "%P: warning: bad version number in -subsystem option\n"
+msgstr "%P: uyarı: -subsystem seçeneğinde hatalı sürüm sayısı\n"
+
+#: emultempl/pe.em:448
+msgid "%P%F: invalid subsystem type %s\n"
+msgstr "%P%F: geçersiz altsistem türü %s\n"
+
+#: emultempl/pe.em:460
+msgid "%P%F: invalid hex number for PE parameter '%s'\n"
+msgstr "%P%F: PE parametresi '%s' için geçersiz onaltılık sayı\n"
+
+#: emultempl/pe.em:477
+msgid "%P%F: strange hex info for PE parameter '%s'\n"
+msgstr "%P%F: PE parametresi '%s' için garip onaltılık bilgi\n"
+
+#: emultempl/pe.em:494
+#, c-format
+msgid "%s: Can't open base file %s\n"
+msgstr "%s: %s temel dosyası açılamadı\n"
+
+#: emultempl/pe.em:707
+msgid "%P: warning, file alignment > section alignment.\n"
+msgstr "%P: uyarı, dosya hizalaması > bölüm hizalaması.\n"
+
+#: emultempl/pe.em:794 emultempl/pe.em:821
+#, c-format
+msgid "Warning: resolving %s by linking to %s\n"
+msgstr "Uyarı: %s %s'yi bağlayarak çözümleniyor\n"
+
+#: emultempl/pe.em:799 emultempl/pe.em:826
+msgid "Use --enable-stdcall-fixup to disable these warnings\n"
+msgstr "Bu uyarıları etkisizleşirmek için --enable-stdcall-fixup kullanın\n"
+
+#: emultempl/pe.em:800 emultempl/pe.em:827
+msgid "Use --disable-stdcall-fixup to disable these fixups\n"
+msgstr "Bu düzeltmeleri etkisizleştirmek için --disable-stdcall-fixup kullanın\n"
+
+#: emultempl/pe.em:846
+#, c-format
+msgid "%C: Cannot get section contents - auto-import exception\n"
+msgstr "%C: Bölüm içerikleri alınamadı - otomatik ithal hatası\n"
+
+#: emultempl/pe.em:883
+#, c-format
+msgid "Info: resolving %s by linking to %s (auto-import)\n"
+msgstr "Bilgi: %s %s'yi bağlayarak çözümleniyor (oto-ithal)\n"
+
+#: emultempl/pe.em:954
+msgid "%F%P: PE operations on non PE file.\n"
+msgstr "%F%P: PE dosyası olmayan dosya üzerinde PE işlemleri.\n"
+
+#: emultempl/pe.em:1188
+#, c-format
+msgid "Errors encountered processing file %s\n"
+msgstr "%s dosyası işlenirken hata oluştu\n"
+
+#: emultempl/pe.em:1211
+#, c-format
+msgid "Errors encountered processing file %s for interworking"
+msgstr "%s dosyası beraber çalışma için işlenirken hata oluştu"
+
+#: 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 başarısız: %E\n"
+
+#: ldcref.c:153
+msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n"
+msgstr "%X%P: cref tablosunda bfd_hash_table_init başarısız: %E\n"
+
+#: ldcref.c:159
+msgid "%X%P: cref_hash_lookup failed: %E\n"
+msgstr "%X%P: cref_hash_lookup başarısız: %E\n"
+
+#: ldcref.c:225
+msgid ""
+"\n"
+"Cross Reference Table\n"
+"\n"
+msgstr ""
+"\n"
+"Çapraz Başvuru Tablosu\n"
+"\n"
+
+#: ldcref.c:226
+msgid "Symbol"
+msgstr "Sembol"
+
+#: ldcref.c:234
+msgid "File\n"
+msgstr "Dosya\n"
+
+#: ldcref.c:238
+msgid "No symbols\n"
+msgstr "Sembol yok\n"
+
+#: ldcref.c:384
+msgid "%P: symbol `%T' missing from main hash table\n"
+msgstr "%P: `%T' sembolü ana hash tablosunda yok\n"
+
+#: ldcref.c:448
+msgid "%B%F: could not read symbols; %E\n"
+msgstr "%B%F: semboller okunamadı; %E\n"
+
+#: ldcref.c:452 ldmain.c:1187 ldmain.c:1191
+msgid "%B%F: could not read symbols: %E\n"
+msgstr "%B%F: semboller okunamadı: %E\n"
+
+#: ldcref.c:517 ldcref.c:524 ldmain.c:1234 ldmain.c:1241
+msgid "%B%F: could not read relocs: %E\n"
+msgstr "%B%F: yer değişimleri okunamadı: %E\n"
+
+#. We found a reloc for the symbol. The symbol is defined
+#. 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:543
+msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n"
+msgstr "%1$X%2$C: %5$s içinde %3$s'den `%4$T'e yasak çapraz başvuru\n"
+
+#: ldctor.c:84
+msgid "%P%X: Different relocs used in set %s\n"
+msgstr "%P%X: %s kümesinde farklı yerdeğişimler kullanılmış\n"
+
+#: ldctor.c:102
+msgid "%P%X: Different object file formats composing set %s\n"
+msgstr "%P%X: %s kümesi farklı nesne dosyası biçemleri içeriyor\n"
+
+#: ldctor.c:281 ldctor.c:295
+msgid "%P%X: %s does not support reloc %s for set %s\n"
+msgstr "%1$P%2$X: %3$s %5$s %4$s yerdeÄŸiÅŸimlerini desteklemiyor\n"
+
+#: ldctor.c:316
+msgid "%P%X: Unsupported size %d for set %s\n"
+msgstr "%1$P%2$X: %4$s kümesi için desteklenmeyen boy %3$d\n"
+
+#: ldctor.c:337
+msgid ""
+"\n"
+"Set Symbol\n"
+"\n"
+msgstr ""
+"\n"
+"Küme Sembol\n"
+"\n"
+
+#: ldemul.c:247
+#, c-format
+msgid "%S SYSLIB ignored\n"
+msgstr "%S SYSLIB yoksayıldı\n"
+
+#: ldemul.c:254
+#, c-format
+msgid "%S HLL ignored\n"
+msgstr "%S HLL yoksayıldı\n"
+
+#: ldemul.c:275
+msgid "%P: unrecognised emulation mode: %s\n"
+msgstr "%P: bilinmeyen öykünüm kipi: %s\n"
+
+#: ldemul.c:276
+msgid "Supported emulations: "
+msgstr "Desteklenen öykünümler: "
+
+#: ldemul.c:320
+msgid " no emulation specific options.\n"
+msgstr " öykünüme özel seçenek yok.\n"
+
+#: ldexp.c:148
+msgid "%F%P: %s uses undefined section %s\n"
+msgstr "%F%P: %s tanımsız %s bölümünü kullanıyor\n"
+
+#: ldexp.c:150
+msgid "%F%P: %s forward reference of section %s\n"
+msgstr "%F%P: %s %s bölümüne ileriye başvuru\n"
+
+#: ldexp.c:355
+#, c-format
+msgid "%F%S %% by zero\n"
+msgstr "%F%S %% sıfırla\n"
+
+#: ldexp.c:362
+#, c-format
+msgid "%F%S / by zero\n"
+msgstr "%F%S sıfırla bölme\n"
+
+#: ldexp.c:533
+#, c-format
+msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
+msgstr "%X%S: ifadede çözümlenemeyen `%s' sembolüne başvuru var\n"
+
+#: ldexp.c:553
+#, c-format
+msgid "%F%S: undefined symbol `%s' referenced in expression\n"
+msgstr "%F%S: ifadede tanımlanmamış `%s' sembolüne başvuru var\n"
+
+#: ldexp.c:677
+#, c-format
+msgid "%F%S can not PROVIDE assignment to location counter\n"
+msgstr "%F%S yer sayacına atama YAPILAMAZ\n"
+
+#: ldexp.c:687
+#, c-format
+msgid "%F%S invalid assignment to location counter\n"
+msgstr "%F%S yer sayacına hatalı atama\n"
+
+#: ldexp.c:691
+#, c-format
+msgid "%F%S assignment to location counter invalid outside of SECTION\n"
+msgstr "%F%S yer sayacına atama BÖLÜM'ün dışında geçersiz\n"
+
+#: ldexp.c:700
+msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
+msgstr "%F%S yer sayacı geri gidemez (%V'den %V'e)\n"
+
+#: ldexp.c:727
+msgid "%P%F:%s: hash creation failed\n"
+msgstr "%P%F:%s: hash oluşturulması başarısız\n"
+
+#: ldexp.c:1003 ldexp.c:1035
+#, c-format
+msgid "%F%S nonconstant expression for %s\n"
+msgstr "%F%S %s için sabit olmayan ifade\n"
+
+#: ldexp.c:1089
+#, c-format
+msgid "%F%S non constant expression for %s\n"
+msgstr "%F%S %s için sabit olmayan ifade\n"
+
+#: ldfile.c:144
+#, c-format
+msgid "attempt to open %s failed\n"
+msgstr "%s açılamadı\n"
+
+#: ldfile.c:146
+#, c-format
+msgid "attempt to open %s succeeded\n"
+msgstr "%s açılabildi\n"
+
+#: ldfile.c:152
+msgid "%F%P: invalid BFD target `%s'\n"
+msgstr "%F%P: hatalı BFD hedefi `%s'\n"
+
+#: ldfile.c:258 ldfile.c:275
+msgid "%P: skipping incompatible %s when searching for %s\n"
+msgstr "%1$P: %3$s için arama yapılırken uyumsuz %2$s atlandı\n"
+
+#: ldfile.c:377
+msgid "%F%P: cannot open %s for %s: %E\n"
+msgstr "%1$F%2$P: %4$s için %3$s açılamadı: %5$E\n"
+
+#: ldfile.c:380
+msgid "%F%P: cannot open %s: %E\n"
+msgstr "%F%P: %s açılamadı: %E\n"
+
+#: ldfile.c:410
+msgid "%F%P: cannot find %s inside %s\n"
+msgstr "%F%P: %s, %s içinde bulunamadı\n"
+
+#: ldfile.c:413
+msgid "%F%P: cannot find %s\n"
+msgstr "%F%P: %s bulunamadı\n"
+
+#: ldfile.c:430 ldfile.c:446
+#, c-format
+msgid "cannot find script file %s\n"
+msgstr "%s betik dosyası bulunamadı\n"
+
+#: ldfile.c:432 ldfile.c:448
+#, c-format
+msgid "opened script file %s\n"
+msgstr "%s betik dosyası açıldı\n"
+
+#: ldfile.c:492
+msgid "%P%F: cannot open linker script file %s: %E\n"
+msgstr "%P%F: %s bağlayıcı betik dosyası açılamadı: %E\n"
+
+#: ldfile.c:529
+msgid "%P%F: unknown architecture: %s\n"
+msgstr "%P%F: bilinmeyen platform: %s\n"
+
+#: ldfile.c:543
+msgid "%P%F: target architecture respecified\n"
+msgstr "%P%F: hedef platform yeniden belirtilmiÅŸ\n"
+
+#: ldfile.c:594
+msgid "%P%F: cannot represent machine `%s'\n"
+msgstr "%P%F: `%s' makinası gösterilemiyor\n"
+
+#: ldlang.c:640
+msgid ""
+"\n"
+"Memory Configuration\n"
+"\n"
+msgstr ""
+"\n"
+"Bellek Ayarları\n"
+"\n"
+
+#: ldlang.c:642
+msgid "Name"
+msgstr "Ä°sim"
+
+#: ldlang.c:642
+msgid "Origin"
+msgstr "Orijin"
+
+#: ldlang.c:642
+msgid "Length"
+msgstr "Uzunluk"
+
+#: ldlang.c:642
+msgid "Attributes"
+msgstr "Özellikler"
+
+#: ldlang.c:682
+msgid ""
+"\n"
+"Linker script and memory map\n"
+"\n"
+msgstr ""
+"\n"
+"Bağlayıcı betiği ve bellek eşlemesi\n"
+"\n"
+
+#: ldlang.c:698
+msgid "%P%F: Illegal use of `%s' section\n"
+msgstr "%P%F: `%s' bölümünün geçersiz kullanımı\n"
+
+#: ldlang.c:707
+msgid "%P%F: output format %s cannot represent section called %s\n"
+msgstr "%P%F: %s çıktı biçemi %s adındaki bölümü temsil edemez\n"
+
+#: ldlang.c:867
+msgid "%P: %B: warning: ignoring duplicate section `%s'\n"
+msgstr "%P: %B: uyarı: birden fazla tekrar edilmiş `%s' bölümü yoksayıldı\n"
+
+#: ldlang.c:870
+msgid "%P: %B: warning: ignoring duplicate `%s' section symbol `%s'\n"
+msgstr "%P: %B: uyarı: birden fazla tekrar edilmiş `%s' bölümü `%s' sembolü yoksayıldı\n"
+
+#: ldlang.c:884
+msgid "%P: %B: warning: duplicate section `%s' has different size\n"
+msgstr "%P: %B: uyarı: birden fazla tekrar edilmiş `%s' bölümünün boyutu farklı\n"
+
+#: ldlang.c:936
+msgid "%P%F: Failed to create hash table\n"
+msgstr "%P%F: Hash tablosu oluşturulamadı\n"
+
+#: ldlang.c:1351
+msgid "%B: file not recognized: %E\n"
+msgstr "%B: Bilinmeyen dosya: %E\n"
+
+#: ldlang.c:1352
+msgid "%B: matching formats:"
+msgstr "%B: eşleşen biçemler:"
+
+#: ldlang.c:1359
+msgid "%F%B: file not recognized: %E\n"
+msgstr "%F%B: bilinmeyen dosya: %E\n"
+
+#: ldlang.c:1418
+msgid "%F%B: member %B in archive is not an object\n"
+msgstr "%F%B: arÅŸivdeki %B nesnesi nesne deÄŸil\n"
+
+#: ldlang.c:1429 ldlang.c:1443
+msgid "%F%B: could not read symbols: %E\n"
+msgstr "%F%B: semboller okunamadı: %E\n"
+
+#: ldlang.c:1698
+msgid "%P: warning: could not find any targets that match endianness requirement\n"
+msgstr "%P: uyarı: küçük/büyük sonlu gerekliliğini karşılayan hedef bulunamadı\n"
+
+#: ldlang.c:1711
+msgid "%P%F: target %s not found\n"
+msgstr "%P%F: %s hedefi bulunamadı\n"
+
+#: ldlang.c:1713
+msgid "%P%F: cannot open output file %s: %E\n"
+msgstr "%P%F: %s çıktı dosyası açılamadı: %E\n"
+
+#: ldlang.c:1723
+msgid "%P%F:%s: can not make object file: %E\n"
+msgstr "%P%F:%s: nesne dosyası oluşturulamadı: %E\n"
+
+#: ldlang.c:1727
+msgid "%P%F:%s: can not set architecture: %E\n"
+msgstr "%P%F:%s: platform türü atanamadı: %E\n"
+
+#: ldlang.c:1731
+msgid "%P%F: can not create link hash table: %E\n"
+msgstr "%P%F: bağ hash tablosu oluşturulamadı: %E\n"
+
+#: ldlang.c:2069
+msgid " load address 0x%V"
+msgstr " yükleme adresi 0x%V"
+
+#: ldlang.c:2204
+msgid "%W (size before relaxing)\n"
+msgstr "%W (gevşetmeden önceki boyut)\n"
+
+#: ldlang.c:2288
+#, c-format
+msgid "Address of section %s set to "
+msgstr "%s bölümünün adresi atanmış"
+
+#: ldlang.c:2443
+#, c-format
+msgid "Fail with %d\n"
+msgstr "%d hatası verildi\n"
+
+#: ldlang.c:2683
+msgid "%X%P: section %s [%V -> %V] overlaps section %s [%V -> %V]\n"
+msgstr "%X%P: %s bölümü [%V -> %V] %s bölümü [%V -> %V] ile örtüşüyor\n"
+
+#: ldlang.c:2711
+msgid "%X%P: address 0x%v of %B section %s is not within region %s\n"
+msgstr "%1$X%2$P: %5$s %4$B bölümünde 0x%3$v adresi %6$s kapsamı içinde değil\n"
+
+#: ldlang.c:2719
+msgid "%X%P: region %s is full (%B section %s)\n"
+msgstr "%X%P: %s bölümü dolu (%B %s bölümü)\n"
+
+#: ldlang.c:2770
+msgid "%P%X: Internal error on COFF shared library section %s\n"
+msgstr "%P%X: %s COFF paylaşımlı kitaplık bölümünde iç hata\n"
+
+#: ldlang.c:2826
+msgid "%P%F: error: no memory region specified for loadable section `%s'\n"
+msgstr "%P%F: hata: `%s' yüklenebilir bölümü için bellek bölümü belirtilmemiş\n"
+
+#: ldlang.c:2830
+msgid "%P: warning: no memory region specified for loadable section `%s'\n"
+msgstr "%P: uyarı: `%s' yüklenebilir bölümü için bellek bölümü belirtilmemiş\n"
+
+#: ldlang.c:2846
+msgid "%P: warning: changing start of section %s by %u bytes\n"
+msgstr "%P: uyarı: %s bölümünün başlangıcı %u bayt değiştirildi\n"
+
+#: ldlang.c:2859
+#, c-format
+msgid "%F%S: non constant address expression for section %s\n"
+msgstr "%F%S: %s bölümü için sabit olmayan adres açılımı\n"
+
+#: ldlang.c:3036
+msgid "%P%F: can't relax section: %E\n"
+msgstr "%P%F: bölüm gevşetilemedi: %E\n"
+
+#: ldlang.c:3232
+msgid "%F%P: invalid data statement\n"
+msgstr "%F%P: geçersiz veri deyimi\n"
+
+#: ldlang.c:3269
+msgid "%F%P: invalid reloc statement\n"
+msgstr "%F%P: geçersiz yerdeğişim deyimi\n"
+
+#: ldlang.c:3408
+msgid "%P%F:%s: can't set start address\n"
+msgstr "%P%F:%s: başlangıç adresi atanamadı\n"
+
+#: ldlang.c:3421 ldlang.c:3439
+msgid "%P%F: can't set start address\n"
+msgstr "%P%F: başlangıç adresi atanamadı\n"
+
+#: ldlang.c:3433
+msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
+msgstr "%P: uyarı: giriş sembolü %s bulunamadı; öntanımlı %V kullanılıyor\n"
+
+#: ldlang.c:3444
+msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
+msgstr "%P: uyarı: giriş sembolü %s bulunamadı; başlangıç adresi atanmıyor\n"
+
+#: 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: %s (%B) biçeminden yerdeğişimlerle %s (%B) biçemine yerdeğiştirebilen bağlanma desteklenmiyor\n"
+
+#: ldlang.c:3497
+msgid "%P: warning: %s architecture of input file `%B' is incompatible with %s output\n"
+msgstr "%1$P: uyarı: `%3$B' girdi dosyasının platformu %2$s, %4$s çıktısıyla uyumlu değil\n"
+
+#: ldlang.c:3518
+msgid "%E%X: failed to merge target specific data of file %B\n"
+msgstr "%E%X: %B dosyasındaki hedefe özel veri birleştirilemedi\n"
+
+#: ldlang.c:3604
+msgid ""
+"\n"
+"Allocating common symbols\n"
+msgstr ""
+"\n"
+"Ortak sembollere bellek ayrılıyor\n"
+
+#: ldlang.c:3605
+msgid ""
+"Common symbol size file\n"
+"\n"
+msgstr ""
+"Ortak sembol boy dosya\n"
+"\n"
+
+#. This message happens when using the
+#. svr3.ifile linker script, so I have
+#. disabled it.
+#: ldlang.c:3681
+msgid "%P: no [COMMON] command, defaulting to .bss\n"
+msgstr "%P: [ORTAK] komutu yok, öntanımlı .bss kullanılıyor\n"
+
+#: ldlang.c:3737
+msgid "%P%F: invalid syntax in flags\n"
+msgstr "%P%F: bayraklarda geçersiz sözdizimi\n"
+
+#: ldlang.c:4325
+msgid "%P%Fmultiple STARTUP files\n"
+msgstr "%P%Fbirden fazla BAŞLANGIÇ dosyası\n"
+
+#: ldlang.c:4368
+msgid "%X%P:%S: section has both a load address and a load region\n"
+msgstr "%X%P:%S: bölümün hem bir yükleme adresi, hem de bir yükleme bölgesi var\n"
+
+#: ldlang.c:4608
+msgid "%F%P: bfd_record_phdr failed: %E\n"
+msgstr "%F%P: bfd_record_phdr başarısız: %E\n"
+
+#: ldlang.c:4627
+msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
+msgstr "%X%P: `%s' bölümü var olmayan phdr `%s'a atanmış\n"
+
+#: ldlang.c:4919
+msgid "%X%P: unknown language `%s' in version information\n"
+msgstr "%X%P: sürüm bilgisinde bilinmeyen `%s' dili\n"
+
+#: ldlang.c:4969
+msgid "%X%P: anonymous version tag cannot be combined with other version tags\n"
+msgstr "%X%P: anonim sürüm etiketi diğer sürüm etiketleri ile birleştirilemez\n"
+
+#: ldlang.c:4977
+msgid "%X%P: duplicate version tag `%s'\n"
+msgstr "%X%P: birden fazla sürüm etiketi `%s'\n"
+
+#: ldlang.c:4990 ldlang.c:5003
+msgid "%X%P: duplicate expression `%s' in version information\n"
+msgstr "%X%P: sürüm bilgisinde birden fazla `%s' ifadesi\n"
+
+#: ldlang.c:5043
+msgid "%X%P: unable to find version dependency `%s'\n"
+msgstr "%X%P: sürüm bağımlılığı `%s' karşılanamadı\n"
+
+#: ldlang.c:5065
+msgid "%X%P: unable to read .exports section contents\n"
+msgstr "%X%P: .exports bölümünün içeriği okunamadı\n"
+
+#: ldmain.c:247
+msgid "%X%P: can't set BFD default target to `%s': %E\n"
+msgstr "%X%P: BFD öntanımlı hedefi `%s' olarak atanamadı: %E\n"
+
+#: ldmain.c:349
+msgid "%P%F: -r and --mpc860c0 may not be used together\n"
+msgstr "%P%F: -r ve --mpc860c0 beraber kullanılamaz\n"
+
+#: ldmain.c:351
+msgid "%P%F: --relax and -r may not be used together\n"
+msgstr "%P%F: --relax ve -r beraber kullanılamaz\n"
+
+#: ldmain.c:353
+msgid "%P%F: -r and -shared may not be used together\n"
+msgstr "%P%F: -r ve -shared beraber kullanılamaz\n"
+
+#: ldmain.c:359
+msgid "%P%F: -F may not be used without -shared\n"
+msgstr "%P%F: -F, -shared olmaksızın kullanılamaz\n"
+
+#: ldmain.c:361
+msgid "%P%F: -f may not be used without -shared\n"
+msgstr "%P%F: -f, -shared olmaksızın kullanılamaz\n"
+
+#: ldmain.c:403
+msgid "using external linker script:"
+msgstr "dış bağlayıcı betiği kullanılıyor:"
+
+#: ldmain.c:405
+msgid "using internal linker script:"
+msgstr "iç bağlayıcı betiği kullanılıyor:"
+
+#: ldmain.c:439
+msgid "%P%F: no input files\n"
+msgstr "%P%F: girdi dosyası yok\n"
+
+#: ldmain.c:443
+msgid "%P: mode %s\n"
+msgstr "%P: %s kipi\n"
+
+#: ldmain.c:459
+msgid "%P%F: cannot open map file %s: %E\n"
+msgstr "%P%F: Eşleme dosyası %s açılamadı: %E\n"
+
+#: ldmain.c:489
+msgid "%P: link errors found, deleting executable `%s'\n"
+msgstr "%P: bağlama hataları bulundu, `%s' uygulaması siliniyor\n"
+
+#: ldmain.c:498
+msgid "%F%B: final close failed: %E\n"
+msgstr "%F%B: son kapatma başarısız: %E\n"
+
+#: ldmain.c:524
+msgid "%X%P: unable to open for source of copy `%s'\n"
+msgstr "%X%P: `%s' kopyasının kaynağı açılamadı\n"
+
+#: ldmain.c:527
+msgid "%X%P: unable to open for destination of copy `%s'\n"
+msgstr "%X%P: `%s' kopyası için hedef açılamadı\n"
+
+#: ldmain.c:534
+msgid "%P: Error writing file `%s'\n"
+msgstr "%P: `%s' dosyası yazılırken hata oluştu\n"
+
+#: ldmain.c:539 pe-dll.c:1443
+#, c-format
+msgid "%P: Error closing file `%s'\n"
+msgstr "%P: `%s' dosyası kapatılırken hata oluştu\n"
+
+#: ldmain.c:555
+#, c-format
+msgid "%s: total time in link: %ld.%06ld\n"
+msgstr "%s: Bağlanmada geçen toplam süre: %ld.%06ld\n"
+
+#: ldmain.c:558
+#, c-format
+msgid "%s: data size %ld\n"
+msgstr "%s: veri boyu %ld\n"
+
+#: ldmain.c:596
+msgid "%P%F: missing argument to -m\n"
+msgstr "%P%F: -m için argüman eksik\n"
+
+#: 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 başarısız: %E\n"
+
+#: ldmain.c:745 ldmain.c:763
+msgid "%P%F: bfd_hash_lookup failed: %E\n"
+msgstr "%P%F: bfd_hash_lookup başarısız: %E\n"
+
+#: ldmain.c:777
+msgid "%X%P: error: duplicate retain-symbols-file\n"
+msgstr "%X%P: hata: duplicate retain-symbols-file\n"
+
+#: ldmain.c:819
+msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
+msgstr "%P%F: yerleştirme için bfd_hash_lookup başarısız: %E\n"
+
+#: ldmain.c:824
+msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
+msgstr "%P: `-retain-symbols-file' seçeneği `-s' and `-S' seçeneklerinin yerine geçer\n"
+
+#: ldmain.c:899
+msgid ""
+"Archive member included because of file (symbol)\n"
+"\n"
+msgstr ""
+"Arşiv üyesi dosya yüzünden (sembol) içerildi\n"
+"\n"
+
+#: ldmain.c:969
+msgid "%X%C: multiple definition of `%T'\n"
+msgstr "%X%C: `%T' için birden fazla tanım\n"
+
+#: ldmain.c:972
+msgid "%D: first defined here\n"
+msgstr "%D: ilk burada tanımlanmış\n"
+
+#: ldmain.c:976
+msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
+msgstr "%P: Gevşetme etkisizleştirildi: çoklu tanımlarla beraber çalışmaz\n"
+
+#: ldmain.c:1006
+msgid "%B: warning: definition of `%T' overriding common\n"
+msgstr "%B: uyarı: `%T' tanımı genelin yerine geçiyor\n"
+
+#: ldmain.c:1009
+msgid "%B: warning: common is here\n"
+msgstr "%B: uyarı: genel burada\n"
+
+#: ldmain.c:1016
+msgid "%B: warning: common of `%T' overridden by definition\n"
+msgstr "%B: uyarı: tanım, `%T'nin genelinin yerine geçti\n"
+
+#: ldmain.c:1019
+msgid "%B: warning: defined here\n"
+msgstr "%B: uyarı: burada tanımlanmış\n"
+
+#: ldmain.c:1026
+msgid "%B: warning: common of `%T' overridden by larger common\n"
+msgstr "%B: uyarı: Daha büyük genel, `%T'nin genelinin yerine geçti\n"
+
+#: ldmain.c:1029
+msgid "%B: warning: larger common is here\n"
+msgstr "%B: uyarı: daha büyük genel burada\n"
+
+#: ldmain.c:1033
+msgid "%B: warning: common of `%T' overriding smaller common\n"
+msgstr "%B: uyarı: `%T'nin geneli daha küçük genelin yerine geçti\n"
+
+#: ldmain.c:1036
+msgid "%B: warning: smaller common is here\n"
+msgstr "%B: uyarı: daha küçük genel burada\n"
+
+#: ldmain.c:1040
+msgid "%B: warning: multiple common of `%T'\n"
+msgstr "%B: uyarı: `%T'nin birden fazla geneli var\n"
+
+#: ldmain.c:1042
+msgid "%B: warning: previous common is here\n"
+msgstr "%B: uyarı: bir önceki genel burada\n"
+
+#: ldmain.c:1062 ldmain.c:1100
+msgid "%P: warning: global constructor %s used\n"
+msgstr "%P: uyarı: evrensel kurucu %s kullanıldı\n"
+
+#: ldmain.c:1110
+msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
+msgstr "%P%F: BFD arkayüz hatası: BFD_RELOC_CTOR desteklenmiyor\n"
+
+#: ldmain.c:1287 ldmisc.c:533
+msgid "%F%P: bfd_hash_table_init failed: %E\n"
+msgstr "%F%P: bfd_hash_table_init başarısız: %E\n"
+
+#: ldmain.c:1294 ldmisc.c:540
+msgid "%F%P: bfd_hash_lookup failed: %E\n"
+msgstr "%F%P: bfd_hash_lookup başarısız: %E\n"
+
+#: ldmain.c:1314
+msgid "%C: undefined reference to `%T'\n"
+msgstr "%C: `%T'ye tanımsız başvuru\n"
+
+#: ldmain.c:1320
+msgid "%D: more undefined references to `%T' follow\n"
+msgstr "%D: `%T'ye başka tanımsız başvurular aşağıda\n"
+
+#: ldmain.c:1327
+msgid "%B: undefined reference to `%T'\n"
+msgstr "%B: `%T'ye tanımsız başvuru\n"
+
+#: ldmain.c:1333
+msgid "%B: more undefined references to `%T' follow\n"
+msgstr "%B: `%T'ye başka tanımsız başvurular aşağıda\n"
+
+#: ldmain.c:1364 ldmain.c:1392 ldmain.c:1410
+msgid "%P%X: generated"
+msgstr "%P%X: oluÅŸturuldu"
+
+#: ldmain.c:1371
+msgid " additional relocation overflows omitted from the output\n"
+msgstr " ek yerdeğişim taşmaları çıktıya gönderilmedi\n"
+
+#: ldmain.c:1375
+msgid " relocation truncated to fit: %s %T"
+msgstr " yer değişim sığması için budandı: %s %T"
+
+#: ldmain.c:1395
+#, c-format
+msgid "dangerous relocation: %s\n"
+msgstr "tehlikeli yerdeÄŸiÅŸim: %s\n"
+
+#: ldmain.c:1413
+msgid " reloc refers to symbol `%T' which is not being output\n"
+msgstr " yer değişim, çıktılanmayan `%T' sembolüne referans veriyor\n"
+
+#: ldmisc.c:147
+msgid "no symbol"
+msgstr "sembol yok"
+
+#: ldmisc.c:211
+#, c-format
+msgid "built in linker script:%u"
+msgstr "yerleşik bağlayıcı betiği:%u"
+
+#: ldmisc.c:260 ldmisc.c:264
+msgid "%B%F: could not read symbols\n"
+msgstr "%B%F: semboller okunamadı\n"
+
+#: ldmisc.c:291
+msgid ": In function `%T':\n"
+msgstr ": `%T' Ä°ÅŸlevinde:\n"
+
+#: ldmisc.c:438
+msgid "%F%P: internal error %s %d\n"
+msgstr "%F%P: iç hata %s %d\n"
+
+#: ldmisc.c:484
+msgid "%P: internal error: aborting at %s line %d in %s\n"
+msgstr "%1$P: iç hata: %4$s içinde %3$d satırı %2$s'da durduruldu\n"
+
+#: ldmisc.c:487
+msgid "%P: internal error: aborting at %s line %d\n"
+msgstr "%P: iç hata: %s'da, %d satırında durduruldu\n"
+
+#: ldmisc.c:489
+msgid "%P%F: please report this bug\n"
+msgstr "%P%F: lütfen bu yazılım hatasını bildirin\n"
+
+#. Output for noisy == 2 is intended to follow the GNU standards.
+#: ldver.c:39
+#, c-format
+msgid "GNU ld version %s\n"
+msgstr "GNU ld sürüm %s\n"
+
+#: ldver.c:43
+msgid "Copyright 2002 Free Software Foundation, Inc.\n"
+msgstr "Telif Hakkı 2002 Free Software Foundation, Inc.\n"
+
+#: 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"
+msgstr ""
+"Bu, bir serbest yazılımdır; GNU Genel Kamu Lisansı koşulları altında değişiklik\n"
+"yapabilir ve/veya yeniden dağıtabilirsiniz. \n"
+"Bu yazılımın herhangi bir garantisi yoktur.\n"
+
+#: ldver.c:53
+msgid " Supported emulations:\n"
+msgstr " Desteklenen öykünümler:\n"
+
+#: ldwrite.c:54 ldwrite.c:190
+msgid "%P%F: bfd_new_link_order failed\n"
+msgstr "%P%F: bfd_new_link_order başarısız\n"
+
+#: ldwrite.c:310
+msgid "%F%P: clone section failed: %E\n"
+msgstr "%F%P: bölümü çoğaltmak başarısız : %E\n"
+
+#: ldwrite.c:348
+#, c-format
+msgid "%8x something else\n"
+msgstr "%8x baÅŸka bir ÅŸey\n"
+
+#: ldwrite.c:525
+msgid "%F%P: final link failed: %E\n"
+msgstr "%F%P: son bağlama başarısız: %E\n"
+
+#: lexsup.c:179 lexsup.c:284
+msgid "KEYWORD"
+msgstr "ANAHTARSÖZ"
+
+#: lexsup.c:179
+msgid "Shared library control for HP/UX compatibility"
+msgstr "HP/UX uyumluluğu için paylaşımlı kitaplık kontrolü"
+
+#: lexsup.c:182
+msgid "ARCH"
+msgstr "PLATFORM"
+
+#: lexsup.c:182
+msgid "Set architecture"
+msgstr "Platformu belirler"
+
+#: lexsup.c:184 lexsup.c:357
+msgid "TARGET"
+msgstr "HEDEF"
+
+#: lexsup.c:184
+msgid "Specify target for following input files"
+msgstr "Aşağıdaki girdi dosyaları için hedef belirler"
+
+#: lexsup.c:186 lexsup.c:229 lexsup.c:241 lexsup.c:254 lexsup.c:329
+#: lexsup.c:364 lexsup.c:408
+msgid "FILE"
+msgstr "DOSYA"
+
+#: lexsup.c:186
+msgid "Read MRI format linker script"
+msgstr "MRI biçeminde bağlayıcı betiği okur"
+
+#: lexsup.c:188
+msgid "Force common symbols to be defined"
+msgstr "genel sembollerin tanımlı olmasını şart koşar"
+
+#: lexsup.c:192 lexsup.c:398 lexsup.c:400 lexsup.c:402
+msgid "ADDRESS"
+msgstr "ADRES"
+
+#: lexsup.c:192
+msgid "Set start address"
+msgstr "Başlangıç adresini atar"
+
+#: lexsup.c:194
+msgid "Export all dynamic symbols"
+msgstr "Bütün dinamik sembolleri ihraç eder"
+
+#: lexsup.c:196
+msgid "Link big-endian objects"
+msgstr "Büyük sonlu nesneleri bağlar"
+
+#: lexsup.c:198
+msgid "Link little-endian objects"
+msgstr "Küçük-sonlu nesneleri bağlar"
+
+#: lexsup.c:200 lexsup.c:203
+msgid "SHLIB"
+msgstr "SHLIB"
+
+#: lexsup.c:200
+msgid "Auxiliary filter for shared object symbol table"
+msgstr "Paylaşımlı nesne sembol tablosu için ikincil filtre"
+
+#: lexsup.c:203
+msgid "Filter for shared object symbol table"
+msgstr "Paylaşımlı nesne sembol tablosu için filtre"
+
+#: lexsup.c:205
+msgid "Ignored"
+msgstr "Gözardı edilmiş"
+
+#: lexsup.c:207
+msgid "SIZE"
+msgstr "BOYUT"
+
+#: lexsup.c:207
+msgid "Small data size (if no size, same as --shared)"
+msgstr "Küçük veri boyu (eğer boy belirtilmemişse, --shared ile aynı)"
+
+#: lexsup.c:210
+msgid "FILENAME"
+msgstr "DOSYAÄ°SMÄ°"
+
+#: lexsup.c:210
+msgid "Set internal name of shared library"
+msgstr "Paylaşımlı kitaplığın iç adını belirler"
+
+#: lexsup.c:212
+msgid "PROGRAM"
+msgstr "YAZILIM"
+
+#: lexsup.c:212
+msgid "Set PROGRAM as the dynamic linker to use"
+msgstr "YAZILIM'ı kullanılacak dinamik bağlayıcı olarak atar"
+
+#: lexsup.c:214
+msgid "LIBNAME"
+msgstr "KÄ°TAPLIKADI"
+
+#: lexsup.c:214
+msgid "Search for library LIBNAME"
+msgstr "KİTAPLIKADI kitaplığını arar"
+
+#: lexsup.c:216
+msgid "DIRECTORY"
+msgstr "DÄ°ZÄ°N"
+
+#: lexsup.c:216
+msgid "Add DIRECTORY to library search path"
+msgstr "DİZİN'i kitaplık arama yoluna ekler"
+
+#: lexsup.c:218
+msgid "EMULATION"
+msgstr "ÖYKÜNÜM"
+
+#: lexsup.c:218
+msgid "Set emulation"
+msgstr "Öykünümü belirler"
+
+#: lexsup.c:220
+msgid "Print map file on standard output"
+msgstr "Eşleme dosyasını standart çıktıya yazdırır"
+
+#: lexsup.c:222
+msgid "Do not page align data"
+msgstr "Veriyi sayfaya hizalamaz"
+
+#: lexsup.c:224
+msgid "Do not page align data, do not make text readonly"
+msgstr "Veriyi sayfaya hizalamaz, metni saltokunur yapmaz"
+
+#: lexsup.c:227
+msgid "Page align data, make text readonly"
+msgstr "Veriyi sayfaya hizalar, metni saltokunur yapar"
+
+#: lexsup.c:229
+msgid "Set output file name"
+msgstr "Çıktı dosyası adını belirler"
+
+#: lexsup.c:231
+msgid "Optimize output file"
+msgstr "Çıktı dosyasını eniyiler"
+
+#: lexsup.c:233
+msgid "Ignored for SVR4 compatibility"
+msgstr "SVR4 uyumluluğu için yoksayıldı"
+
+#: lexsup.c:237
+msgid "Generate relocatable output"
+msgstr "Yerdeğişimli çıktı oluşturur"
+
+#: lexsup.c:241
+msgid "Just link symbols (if directory, same as --rpath)"
+msgstr "Yalnız sembolleri bağlar (eğer dizin ise, --rpath ile aynı)"
+
+#: lexsup.c:244
+msgid "Strip all symbols"
+msgstr "Bütün sembolleri soyar"
+
+#: lexsup.c:246
+msgid "Strip debugging symbols"
+msgstr "Hata ayıklama sembollerini soyar"
+
+#: lexsup.c:248
+msgid "Strip symbols in discarded sections"
+msgstr "Atılan bölümlerdeki sembolleri soyar"
+
+#: lexsup.c:250
+msgid "Do not strip symbols in discarded sections"
+msgstr "Atılan bölümlerdeki sembolleri soymaz"
+
+#: lexsup.c:252
+msgid "Trace file opens"
+msgstr "İzleme dosyası açılır"
+
+#: lexsup.c:254
+msgid "Read linker script"
+msgstr "BaÄŸlama betiÄŸi okunur"
+
+#: lexsup.c:256 lexsup.c:272 lexsup.c:315 lexsup.c:327 lexsup.c:392
+#: lexsup.c:411 lexsup.c:431
+msgid "SYMBOL"
+msgstr "SEMBOL"
+
+#: lexsup.c:256
+msgid "Start with undefined reference to SYMBOL"
+msgstr "SEMBOL'e tanımsız başvuru ile başlıyor"
+
+#: lexsup.c:258
+msgid "[=SECTION]"
+msgstr "[=BÖLÜM]"
+
+#: lexsup.c:258
+msgid "Don't merge input [SECTION | orphan] sections"
+msgstr "Girdide [BÖLÜM | öksüz] bölümlerini katıştırmaz"
+
+#: lexsup.c:260
+msgid "Build global constructor/destructor tables"
+msgstr "Evrensel kurucu/serbestleştirici tabloları hazırlar"
+
+#: lexsup.c:262
+msgid "Print version information"
+msgstr "Sürüm bilgisini gösterir"
+
+#: lexsup.c:264
+msgid "Print version and emulation information"
+msgstr "Sürüm ve öykünüm bilgisini gösterir"
+
+#: lexsup.c:266
+msgid "Discard all local symbols"
+msgstr "Bütün yerel sembolleri siler"
+
+#: lexsup.c:268
+msgid "Discard temporary local symbols (default)"
+msgstr "Geçici yerel sembolleri siler (öntanımlı)"
+
+#: lexsup.c:270
+msgid "Don't discard any local symbols"
+msgstr "Hiçbir yerel sembolü silmez"
+
+#: lexsup.c:272
+msgid "Trace mentions of SYMBOL"
+msgstr "SEMBOL'ün geçtiği yerleri takip eder"
+
+#: lexsup.c:274 lexsup.c:366 lexsup.c:368
+msgid "PATH"
+msgstr "YOL"
+
+#: lexsup.c:274
+msgid "Default search path for Solaris compatibility"
+msgstr "Solaris uyumluluğu için öntanımlı arama yolu"
+
+#: lexsup.c:276
+msgid "Start a group"
+msgstr "Grup başlatır"
+
+#: lexsup.c:278
+msgid "End a group"
+msgstr "Grup sonlandırır"
+
+#: lexsup.c:280
+msgid "Accept input files whose architecture cannot be determined"
+msgstr "Mimarisi belirlenemeyen girdi dosyalarını kabul eder"
+
+#: lexsup.c:282
+msgid "Reject input files whose architecture is unknown"
+msgstr "Mimarisi belirlenemeyen girdi dosyalarını reddeder"
+
+#: lexsup.c:284
+msgid "Ignored for SunOS compatibility"
+msgstr "SunOS uyumluluğu için yoksayıldı"
+
+#: lexsup.c:286
+msgid "Link against shared libraries"
+msgstr "Paylaşımlı kitaplıklara bağlanır"
+
+#: lexsup.c:292
+msgid "Do not link against shared libraries"
+msgstr "Paylaşımlı kitaplıklara bağlanmaz"
+
+#: lexsup.c:300
+msgid "Bind global references locally"
+msgstr "Evrensel başvuruları yerel bağlar"
+
+#: lexsup.c:302
+msgid "Check section addresses for overlaps (default)"
+msgstr "(öntanımlı) Bölüm adreslerini örtüşme için kontrol eder"
+
+#: lexsup.c:304
+msgid "Do not check section addresses for overlaps"
+msgstr "Bölüm adreslerini örtüşme için kontrol etmez"
+
+#: lexsup.c:307
+msgid "Output cross reference table"
+msgstr "Çapraz başvuru tablosunu çıktılar"
+
+#: lexsup.c:309
+msgid "SYMBOL=EXPRESSION"
+msgstr "SEMBOL=Ä°FADE"
+
+#: lexsup.c:309
+msgid "Define a symbol"
+msgstr "Sembol tanımlar"
+
+#: lexsup.c:311
+msgid "[=STYLE]"
+msgstr "[=TARZ]"
+
+#: lexsup.c:311
+msgid "Demangle symbol names [using STYLE]"
+msgstr "[TARZ kullanarak] sembol isimlerini düzeltir"
+
+#: lexsup.c:313
+msgid "Generate embedded relocs"
+msgstr "Gömülü yerdeğişimler oluşturur"
+
+#: lexsup.c:315
+msgid "Call SYMBOL at unload-time"
+msgstr "Boşaltma zamanında SEMBOL'ü çağırır"
+
+#: lexsup.c:317
+msgid "Force generation of file with .exe suffix"
+msgstr "Dosyanın .exe soneki ile oluşturulmasını sağlar"
+
+#: lexsup.c:319
+msgid "Remove unused sections (on some targets)"
+msgstr "(Bazı hedeflerde) kullanılmayan bölümleri siler"
+
+#: lexsup.c:322
+msgid "Don't remove unused sections (default)"
+msgstr "(öntanımlı) Kullanılmayan bölümleri silmez"
+
+#: lexsup.c:325
+msgid "Print option help"
+msgstr "Seçenek yardımını gösterir"
+
+#: lexsup.c:327
+msgid "Call SYMBOL at load-time"
+msgstr "Yükleme sırasında SEMBOL'ü çağırır"
+
+#: lexsup.c:329
+msgid "Write a map file"
+msgstr "Eşleme dosyası yazdırır"
+
+#: lexsup.c:331
+msgid "Do not define Common storage"
+msgstr "Ortak depo'yu tanımlamaz"
+
+#: lexsup.c:333
+msgid "Do not demangle symbol names"
+msgstr "Sembol isimlerini düzeltmez"
+
+#: lexsup.c:335
+msgid "Use less memory and more disk I/O"
+msgstr "Daha az bellek ve daha fazla disk I/O kullanır"
+
+#: lexsup.c:337
+msgid "Allow no undefined symbols"
+msgstr "Tanımsız sembollere izin vermez"
+
+#: lexsup.c:339
+msgid "Allow undefined symbols in shared objects (the default)"
+msgstr "Paylaşımlı nesnelerde tanımsız sembollere izin verir (öntanımlı)"
+
+#: lexsup.c:341
+msgid "Do not allow undefined symbols in shared objects"
+msgstr "Paylaşımlı nesnelerde tanımsız sembollere izin vermez"
+
+#: lexsup.c:343
+msgid "Allow multiple definitions"
+msgstr "Birden fazla tanıma izin verir"
+
+#: lexsup.c:345
+msgid "Disallow undefined version"
+msgstr "Tanımsız sürüme izin vermez"
+
+#: lexsup.c:347
+msgid "Don't warn about mismatched input files"
+msgstr "Eşleşmeyen girdi dosyaları hakkında uyarmaz"
+
+#: lexsup.c:349
+msgid "Turn off --whole-archive"
+msgstr "--whole-archive seçeneğini etkisizleştirir"
+
+#: lexsup.c:351
+msgid "Create an output file even if errors occur"
+msgstr "Hatalar oluşsa bile bir çıktı dosyası oluşturur"
+
+#: lexsup.c:355
+msgid ""
+"Only use library directories specified on\n"
+"\t\t\t\tthe command line"
+msgstr ""
+"Yalnızca komut satırında belirtilen\n"
+"\t\t\t\tkitaplık dizinlerini kullanır"
+
+#: lexsup.c:357
+msgid "Specify target of output file"
+msgstr "Çıktı dosyasının hedefini belirler"
+
+#: lexsup.c:359
+msgid "Ignored for Linux compatibility"
+msgstr "Linux uyumluluğu için yoksayıldı"
+
+#: lexsup.c:361
+msgid "Relax branches on certain targets"
+msgstr "Bazı hedeflerde dalları gevşetir"
+
+#: lexsup.c:364
+msgid "Keep only symbols listed in FILE"
+msgstr "Yalnızca DOSYA'da belirtilen sembolleri tutar"
+
+#: lexsup.c:366
+msgid "Set runtime shared library search path"
+msgstr "Çalışma zamanı paylaşımlı kitaplık arama yolunu belirler"
+
+#: lexsup.c:368
+msgid "Set link time shared library search path"
+msgstr "Bağlama zamanı paylaşımlı kitaplık arama yolunu belirler"
+
+#: lexsup.c:370
+msgid "Create a shared library"
+msgstr "Paylaşımlı kitaplık oluşturur"
+
+#: lexsup.c:374
+msgid "Create a position independent executable"
+msgstr "Yerden bağımsız uygulama oluşturur"
+
+#: lexsup.c:378
+msgid "Sort common symbols by size"
+msgstr "Ortak sembolleri boyuta göre sıralar"
+
+#: lexsup.c:382
+msgid "COUNT"
+msgstr "SAYI"
+
+#: lexsup.c:382
+msgid "How many tags to reserve in .dynamic section"
+msgstr "Bir .dynamic bölümde tutulacak etiket sayısı"
+
+#: lexsup.c:384
+msgid "[=SIZE]"
+msgstr "[=BOYUT]"
+
+#: lexsup.c:384
+msgid "Split output sections every SIZE octets"
+msgstr "Her BOYUT sekizliğinde çıktı bölümlerini ayırır"
+
+#: lexsup.c:386
+msgid "[=COUNT]"
+msgstr "[=SAYI]"
+
+#: lexsup.c:386
+msgid "Split output sections every COUNT relocs"
+msgstr "Her SAYI yerdeğişiminde çıktı bölümlerini ayırır"
+
+#: lexsup.c:388
+msgid "Print memory usage statistics"
+msgstr "Bellek kullanım istatistiklerini gösterir"
+
+#: lexsup.c:390
+msgid "Display target specific options"
+msgstr "Hedefe özel seçenekleri gösterir"
+
+#: lexsup.c:392
+msgid "Do task level linking"
+msgstr "Görev seviyesinde bağlama yapar"
+
+#: lexsup.c:394
+msgid "Use same format as native linker"
+msgstr "Yerel bağlayıcı ile aynı biçemi kullanır"
+
+#: lexsup.c:396
+msgid "SECTION=ADDRESS"
+msgstr "BÖLÜM=ADRES"
+
+#: lexsup.c:396
+msgid "Set address of named section"
+msgstr "İsimli bölümün adresini belirler"
+
+#: lexsup.c:398
+msgid "Set address of .bss section"
+msgstr ".bss bölümünün adresini belirler"
+
+#: lexsup.c:400
+msgid "Set address of .data section"
+msgstr ".data bölümünün adresini belirler"
+
+#: lexsup.c:402
+msgid "Set address of .text section"
+msgstr ".text bölümünün adresini belirler"
+
+#: lexsup.c:404
+msgid "Output lots of information during link"
+msgstr "Bağlama esnasında ek bilgi gösterir"
+
+#: lexsup.c:408
+msgid "Read version information script"
+msgstr "Sürüm bilgisi betiğini okur"
+
+#: lexsup.c:411
+msgid ""
+"Take export symbols list from .exports, using\n"
+"\t\t\t\tSYMBOL as the version."
+msgstr ""
+"İhraç sembolleri listesini .exports'dan alır, sürüm olarak\n"
+"\t\t\t\tSEMBOL değerini kullanır."
+
+#: lexsup.c:414
+msgid "Warn about duplicate common symbols"
+msgstr "Tekrarlanmış ortak semboller hakkında uyarı verir"
+
+#: lexsup.c:416
+msgid "Warn if global constructors/destructors are seen"
+msgstr "Evrensel kurucu/serbestleştiriciler bulunursa uyarı verir"
+
+#: lexsup.c:419
+msgid "Warn if the multiple GP values are used"
+msgstr "Çoklu GP değerleri kullanılırsa uyarı verir"
+
+#: lexsup.c:421
+msgid "Warn only once per undefined symbol"
+msgstr "Her tanımsız sembol için bir defa uyarı verir"
+
+#: lexsup.c:423
+msgid "Warn if start of section changes due to alignment"
+msgstr "Hizalama sebebi ile bölüm başlangıcı değişirse uyarı verir"
+
+#: lexsup.c:426
+msgid "Treat warnings as errors"
+msgstr "Uyarıları hata olarak işler"
+
+#: lexsup.c:429
+msgid "Include all objects from following archives"
+msgstr "Aşağıdaki arşivlerdeki tüm nesneleri içerir"
+
+#: lexsup.c:431
+msgid "Use wrapper functions for SYMBOL"
+msgstr "SEMBOL için sarmalama işlevleri kullanır"
+
+#: lexsup.c:433
+msgid "[=WORDS]"
+msgstr "[=SÖZCÜKLER]"
+
+#: lexsup.c:433
+msgid ""
+"Modify problematic branches in last WORDS (1-10,\n"
+"\t\t\t\tdefault 5) words of a page"
+msgstr ""
+"Bir sayfanın son SÖZCÜKLER sözcüklerindeki (1-10,\n"
+"\t\t\t\töntanımlı 5) problemli dalları değiştirir"
+
+#: lexsup.c:602
+msgid "%P: unrecognized option '%s'\n"
+msgstr "%P: bilinmeyen `%s' seçeneği\n"
+
+#: lexsup.c:604
+msgid "%P%F: use the --help option for usage information\n"
+msgstr "%P%F: kullanım bilgisi için --help seçeneğini kullanın\n"
+
+#: lexsup.c:622
+msgid "%P%F: unrecognized -a option `%s'\n"
+msgstr "%P%F: bilinmeyen -a seçeneği `%s'\n"
+
+#: lexsup.c:635
+msgid "%P%F: unrecognized -assert option `%s'\n"
+msgstr "%P%F: bilinmeyen -assert seçeneği `%s'\n"
+
+#: lexsup.c:678
+msgid "%F%P: unknown demangling style `%s'"
+msgstr "%F%P: bilinmeyen düzeltme tarzı `%s'"
+
+#: lexsup.c:737
+msgid "%P%F: invalid number `%s'\n"
+msgstr "%P%F: geçersiz sayı `%s'\n"
+
+#. 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
+#. but it cannot parse the text after the -r so it refuses to
+#. increment the optind counter. Detect this case and issue
+#. 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
+msgid "%P%F: bad -rpath option\n"
+msgstr "%P%F: hatalı -rpath seçeneği\n"
+
+#: lexsup.c:953
+msgid "%P%F: -shared not supported\n"
+msgstr "%P%F: -shared desteklenmiyor\n"
+
+#: lexsup.c:962
+msgid "%P%F: -pie not supported\n"
+msgstr "%P%F: -pie desteklenmiyor\n"
+
+#: lexsup.c:994
+msgid "%P%F: invalid argument to option \"--section-start\"\n"
+msgstr "%P%F: \"--section-start\" seçeneğine geçersiz argüman verilmiş\n"
+
+#: lexsup.c:1000
+msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
+msgstr "%P%F: \"--section-start\" seçeneğine eksik argüman(lar) verilmiş\n"
+
+#: lexsup.c:1158
+msgid "%P%F: may not nest groups (--help for usage)\n"
+msgstr "%P%F: gruplar yuvalanamaz (yardım için --help)\n"
+
+#: lexsup.c:1165
+msgid "%P%F: group ended before it began (--help for usage)\n"
+msgstr "%P%F: grup başlamadan bitti (yardım için --help)\n"
+
+#: lexsup.c:1179
+msgid "%P%F: invalid argument to option \"mpc860c0\"\n"
+msgstr "%P%F: \"mpc860c0\" seçeneğine geçersiz argüman\n"
+
+#: lexsup.c:1234
+msgid "%P%F: invalid hex number `%s'\n"
+msgstr "%P%F: geçersiz onaltılık sayı `%s'\n"
+
+#: lexsup.c:1246
+#, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr "Kullanımı: %s [seçenekler] DOSYA...\n"
+
+#: lexsup.c:1248
+msgid "Options:\n"
+msgstr "Seçenekler:\n"
+
+#. Note: Various tools (such as libtool) depend upon the
+#. format of the listings below - do not change them.
+#: lexsup.c:1331
+#, c-format
+msgid "%s: supported targets:"
+msgstr "%s: desteklenen hedefler:"
+
+#: lexsup.c:1339
+#, c-format
+msgid "%s: supported emulations: "
+msgstr "%s: desteklenen öykünümler: "
+
+#: lexsup.c:1344
+#, c-format
+msgid "%s: emulation specific options:\n"
+msgstr "%s: öykünüme özel seçenekler:\n"
+
+#: lexsup.c:1348
+#, c-format
+msgid "Report bugs to %s\n"
+msgstr ""
+"Yazılım hatalarını %s adresine,\n"
+"çeviri hatalarını <gnu-tr-u12a@lists.sourceforge.net> adresine gönderin\n"
+
+#: mri.c:307
+msgid "%P%F: unknown format type %s\n"
+msgstr "%P%F: bilinmeyen biçem türü %s\n"
+
+#: pe-dll.c:301
+#, c-format
+msgid "%XUnsupported PEI architecture: %s\n"
+msgstr "%XDesteklenmeyen PEI platformu: %s\n"
+
+#: pe-dll.c:650
+#, c-format
+msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
+msgstr "%XHata, %s (%d yerine %d) onlukları ile tekrarlanmış İHRAÇ\n"
+
+#: pe-dll.c:657
+#, c-format
+msgid "Warning, duplicate EXPORT: %s\n"
+msgstr "Uyarı, tekrarlanmış İHRAÇ: %s\n"
+
+#: pe-dll.c:723
+#, c-format
+msgid "%XCannot export %s: symbol not defined\n"
+msgstr "%X%s ihraç edilemedi: sembol tanımsız\n"
+
+#: pe-dll.c:729
+#, c-format
+msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n"
+msgstr "%X%s ihraç edilemedi: sembol hatalı türde (%d yerine %d)\n"
+
+#: pe-dll.c:736
+#, c-format
+msgid "%XCannot export %s: symbol not found\n"
+msgstr "%X%s ihraç edilemedi: sembol bulunamadı\n"
+
+#: pe-dll.c:848
+#, c-format
+msgid "%XError, ordinal used twice: %d (%s vs %s)\n"
+msgstr "%XHata, %d (%s yerine %s) onluğu iki defa kullanılmış\n"
+
+#: pe-dll.c:1165
+#, c-format
+msgid "%XError: %d-bit reloc in dll\n"
+msgstr "%XHata: dll'de %d-bitlik yerdeÄŸiÅŸim\n"
+
+#: pe-dll.c:1296
+#, c-format
+msgid "%s: Can't open output def file %s\n"
+msgstr "%s: %s tanım dosyası açılamadı\n"
+
+#: pe-dll.c:1439
+msgid "; no contents available\n"
+msgstr "; içerik yok\n"
+
+#: 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: '%T' değişkeni oto-ithal edilemez. Lütfen ld için dökümantasyonu okuyun.\n"
+" detay için --enable-auto-import kullanın.\n"
+
+#: pe-dll.c:2233
+#, c-format
+msgid "%XCan't open .lib file: %s\n"
+msgstr "%X.lib dosyası açılamadı: %s\n"
+
+#: pe-dll.c:2238
+#, c-format
+msgid "Creating library file: %s\n"
+msgstr "Kitaplık dosyası oluşturuluyor: %s\n"
diff --git a/gnu/usr.bin/binutils/ld/scripttempl/elf32msp430.sc b/gnu/usr.bin/binutils/ld/scripttempl/elf32msp430.sc
index c3e78d32e6a..5754d662dcf 100644
--- a/gnu/usr.bin/binutils/ld/scripttempl/elf32msp430.sc
+++ b/gnu/usr.bin/binutils/ld/scripttempl/elf32msp430.sc
@@ -1,3 +1,23 @@
+#!/bin/sh
+
+HEAP_SECTION_MSP430=" "
+HEAP_MEMORY_MSP430=" "
+
+if test ${GOT_HEAP_MSP-0} -ne 0
+then
+HEAP_SECTION_MSP430=".heap ${RELOCATING-0} :
+ {
+ ${RELOCATING+ PROVIDE (__heap_data_start = .) ; }
+ *(.heap*)
+ ${RELOCATING+ PROVIDE (_heap_data_end = .) ; }
+ ${RELOCATING+. = ALIGN(2);}
+ ${RELOCATING+ PROVIDE (__heap_bottom = .) ; }
+ ${RELOCATING+ PROVIDE (__heap_top = ${HEAP_START} + ${HEAP_LENGTH}) ; }
+ } ${RELOCATING+ > heap}"
+HEAP_MEMORY_MSP430="heap(rwx) : ORIGIN = $HEAP_START, LENGTH = $HEAP_LENGTH"
+fi
+
+
cat <<EOF
OUTPUT_FORMAT("${OUTPUT_FORMAT}","${OUTPUT_FORMAT}","${OUTPUT_FORMAT}")
OUTPUT_ARCH(${ARCH})
@@ -10,6 +30,7 @@ MEMORY
bootloader(rx) : ORIGIN = 0x0c00, LENGTH = 1K
infomem(rx) : ORIGIN = 0x1000, LENGTH = 256
infomemnobits(rx) : ORIGIN = 0x1000, LENGTH = 256
+ ${HEAP_MEMORY_MSP430}
}
SECTIONS
@@ -115,7 +136,7 @@ SECTIONS
*(.fini0) /* Infinite loop after program termination. */
*(.fini)
- ${RELOCATING+ _etext = . ; }
+ _etext = .;
} ${RELOCATING+ > text}
.data ${RELOCATING-0} : ${RELOCATING+AT (ADDR (.text) + SIZEOF (.text))}
@@ -179,6 +200,7 @@ SECTIONS
${RELOCATING+ _vectors_end = . ; }
} ${RELOCATING+ > vectors}
+ ${HEAP_SECTION_MSP430}
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
@@ -219,5 +241,6 @@ SECTIONS
PROVIDE (__data_end_rom = _etext + SIZEOF (.data)) ;
PROVIDE (__noinit_start_rom = _etext + SIZEOF (.data)) ;
PROVIDE (__noinit_end_rom = _etext + SIZEOF (.data) + SIZEOF (.noinit)) ;
+ PROVIDE (__subdevice_has_heap = ${GOT_HEAP_MSP-0}) ;
}
EOF
diff --git a/gnu/usr.bin/binutils/ld/scripttempl/elfm68hc11.sc b/gnu/usr.bin/binutils/ld/scripttempl/elfm68hc11.sc
index 0883b971b69..f4977f67ac4 100644
--- a/gnu/usr.bin/binutils/ld/scripttempl/elfm68hc11.sc
+++ b/gnu/usr.bin/binutils/ld/scripttempl/elfm68hc11.sc
@@ -28,15 +28,7 @@ CTOR=".ctors ${CONSTRUCTING-0} :
{
${CONSTRUCTING+ PROVIDE (__CTOR_LIST__ = .); }
${CONSTRUCTING+${CTOR_START}}
- *(.ctors)
- /* We don't want to include the .ctor section from
- from the crtend.o file until after the sorted ctors.
- The .ctor section from the crtend file contains the
- end of ctors marker and it must be last
-
- KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
- KEEP (*(SORT(.ctors.*)))
- KEEP (*(.ctors)) */
+ KEEP (*(.ctors))
${CONSTRUCTING+${CTOR_END}}
${CONSTRUCTING+ PROVIDE(__CTOR_END__ = .); }
@@ -45,12 +37,7 @@ CTOR=".ctors ${CONSTRUCTING-0} :
DTOR=" .dtors ${CONSTRUCTING-0} :
{
${CONSTRUCTING+ PROVIDE(__DTOR_LIST__ = .); }
- *(.dtors)
- /*
- KEEP (*crtbegin.o(.dtors))
- KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
- KEEP (*(SORT(.dtors.*)))
- KEEP (*(.dtors)) */
+ KEEP (*(.dtors))
${CONSTRUCTING+ PROVIDE(__DTOR_END__ = .); }
} ${RELOCATING+ > ${TEXT_MEMORY}}"
@@ -326,6 +313,8 @@ SECTIONS
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
${RELOCATING+*(.gnu.linkonce.t.*)}
+ ${RELOCATING+*(.tramp)}
+ ${RELOCATING+*(.tramp.*)}
${RELOCATING+${FINISH_CODE}}
@@ -339,6 +328,11 @@ SECTIONS
KEEP (*(.eh_frame))
} ${RELOCATING+ > ${TEXT_MEMORY}}
+ .gcc_except_table ${RELOCATING-0} :
+ {
+ *(.gcc_except_table)
+ } ${RELOCATING+ > ${TEXT_MEMORY}}
+
.rodata ${RELOCATING-0} :
{
*(.rodata)
diff --git a/gnu/usr.bin/binutils/ld/scripttempl/elfm68hc12.sc b/gnu/usr.bin/binutils/ld/scripttempl/elfm68hc12.sc
index d9a41fd7434..2fa7186c26f 100644
--- a/gnu/usr.bin/binutils/ld/scripttempl/elfm68hc12.sc
+++ b/gnu/usr.bin/binutils/ld/scripttempl/elfm68hc12.sc
@@ -28,15 +28,7 @@ CTOR=".ctors ${CONSTRUCTING-0} :
{
${CONSTRUCTING+ PROVIDE (__CTOR_LIST__ = .); }
${CONSTRUCTING+${CTOR_START}}
- *(.ctors)
- /* We don't want to include the .ctor section from
- from the crtend.o file until after the sorted ctors.
- The .ctor section from the crtend file contains the
- end of ctors marker and it must be last
-
- KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
- KEEP (*(SORT(.ctors.*)))
- KEEP (*(.ctors)) */
+ KEEP (*(.ctors))
${CONSTRUCTING+${CTOR_END}}
${CONSTRUCTING+ PROVIDE(__CTOR_END__ = .); }
@@ -45,12 +37,7 @@ CTOR=".ctors ${CONSTRUCTING-0} :
DTOR=" .dtors ${CONSTRUCTING-0} :
{
${CONSTRUCTING+ PROVIDE(__DTOR_LIST__ = .); }
- *(.dtors)
- /*
- KEEP (*crtbegin.o(.dtors))
- KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
- KEEP (*(SORT(.dtors.*)))
- KEEP (*(.dtors)) */
+ KEEP (*(.dtors))
${CONSTRUCTING+ PROVIDE(__DTOR_END__ = .); }
} ${RELOCATING+ > ${TEXT_MEMORY}}"
@@ -100,6 +87,7 @@ MEMORY
page0 (rwx) : ORIGIN = 0x0, LENGTH = 256
text (rx) : ORIGIN = ${ROM_START_ADDR}, LENGTH = ${ROM_SIZE}
data : ORIGIN = ${RAM_START_ADDR}, LENGTH = ${RAM_SIZE}
+ eeprom : ORIGIN = ${EEPROM_START_ADDR}, LENGTH = ${EEPROM_SIZE}
}
/* Setup the stack on the top of the data memory bank. */
@@ -324,6 +312,8 @@ SECTIONS
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
${RELOCATING+*(.gnu.linkonce.t.*)}
+ ${RELOCATING+*(.tramp)}
+ ${RELOCATING+*(.tramp.*)}
${RELOCATING+${FINISH_CODE}}
@@ -337,6 +327,11 @@ SECTIONS
KEEP (*(.eh_frame))
} ${RELOCATING+ > ${TEXT_MEMORY}}
+ .gcc_except_table ${RELOCATING-0} :
+ {
+ *(.gcc_except_table)
+ } ${RELOCATING+ > ${TEXT_MEMORY}}
+
.rodata ${RELOCATING-0} :
{
*(.rodata)
diff --git a/gnu/usr.bin/binutils/ld/scripttempl/h8300sx.sc b/gnu/usr.bin/binutils/ld/scripttempl/h8300sx.sc
new file mode 100644
index 00000000000..d3807c0d0cd
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/scripttempl/h8300sx.sc
@@ -0,0 +1,97 @@
+TORS=".tors :
+ {
+ ___ctors = . ;
+ *(.ctors)
+ ___ctors_end = . ;
+ ___dtors = . ;
+ *(.dtors)
+ ___dtors_end = . ;
+ } > ram"
+
+cat <<EOF
+OUTPUT_FORMAT("${OUTPUT_FORMAT}")
+OUTPUT_ARCH(h8300sx)
+ENTRY("_start")
+
+/* The memory size is 256KB to coincide with the simulator.
+ Don't change either without considering the other. */
+
+MEMORY
+{
+ /* 0xc4 is a magic entry. We should have the linker just
+ skip over it one day... */
+ vectors : o = 0x0000, l = 0xc4
+ magicvectors : o = 0xc4, l = 0x3c
+ /* We still only use 256k as the main ram size. */
+ ram : o = 0x0100, l = 0x3fefc
+ /* The stack starts at the top of main ram. */
+ topram : o = 0x3fffc, l = 0x4
+ /* This holds variables in the "tiny" sections. */
+ tiny : o = 0xff8000, l = 0x7f00
+ /* At the very top of the address space is the 8-bit area. */
+ eight : o = 0xffff00, l = 0x100
+}
+
+SECTIONS
+{
+.vectors :
+ {
+ /* Use something like this to place a specific
+ function's address into the vector table.
+
+ LONG (ABSOLUTE (_foobar)). */
+
+ *(.vectors)
+ } ${RELOCATING+ > vectors}
+
+.text :
+ {
+ *(.rodata)
+ *(.text)
+ *(.strings)
+ ${RELOCATING+ _etext = . ; }
+ } ${RELOCATING+ > ram}
+
+${CONSTRUCTING+${TORS}}
+
+.data :
+ {
+ *(.data)
+ ${RELOCATING+ _edata = . ; }
+ } ${RELOCATING+ > ram}
+
+.bss :
+ {
+ ${RELOCATING+ _bss_start = . ;}
+ *(.bss)
+ *(COMMON)
+ ${RELOCATING+ _end = . ; }
+ } ${RELOCATING+ >ram}
+
+.stack :
+ {
+ ${RELOCATING+ _stack = . ; }
+ *(.stack)
+ } ${RELOCATING+ > topram}
+
+.tiny :
+ {
+ *(.tiny)
+ } ${RELOCATING+ > tiny}
+
+.eight :
+ {
+ *(.eight)
+ } ${RELOCATING+ > eight}
+
+.stab 0 ${RELOCATING+(NOLOAD)} :
+ {
+ [ .stab ]
+ }
+
+.stabstr 0 ${RELOCATING+(NOLOAD)} :
+ {
+ [ .stabstr ]
+ }
+}
+EOF
diff --git a/gnu/usr.bin/binutils/ld/scripttempl/h8300sxn.sc b/gnu/usr.bin/binutils/ld/scripttempl/h8300sxn.sc
new file mode 100644
index 00000000000..0b1bcf1196f
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/scripttempl/h8300sxn.sc
@@ -0,0 +1,87 @@
+TORS=".tors :
+ {
+ ___ctors = . ;
+ *(.ctors)
+ ___ctors_end = . ;
+ ___dtors = . ;
+ *(.dtors)
+ ___dtors_end = . ;
+ } > ram"
+
+cat <<EOF
+OUTPUT_FORMAT("${OUTPUT_FORMAT}")
+OUTPUT_ARCH(h8300sxn)
+ENTRY("_start")
+
+MEMORY
+{
+ /* 0xc4 is a magic entry. We should have the linker just
+ skip over it one day... */
+ vectors : o = 0x0000, l = 0xc4
+ magicvectors : o = 0xc4, l = 0x3c
+ ram : o = 0x0100, l = 0xfdfc
+ /* The stack starts at the top of main ram. */
+ topram : o = 0xfefc, l = 0x4
+ /* At the very top of the address space is the 8-bit area. */
+ eight : o = 0xff00, l = 0x100
+}
+
+SECTIONS
+{
+.vectors :
+ {
+ /* Use something like this to place a specific
+ function's address into the vector table.
+
+ SHORT (ABSOLUTE (_foobar)). */
+
+ *(.vectors)
+ } ${RELOCATING+ > vectors}
+
+.text :
+ {
+ *(.rodata)
+ *(.text)
+ *(.strings)
+ ${RELOCATING+ _etext = . ; }
+ } ${RELOCATING+ > ram}
+
+${CONSTRUCTING+${TORS}}
+
+.data :
+ {
+ *(.data)
+ *(.tiny)
+ ${RELOCATING+ _edata = . ; }
+ } ${RELOCATING+ > ram}
+
+.bss :
+ {
+ ${RELOCATING+ _bss_start = . ;}
+ *(.bss)
+ *(COMMON)
+ ${RELOCATING+ _end = . ; }
+ } ${RELOCATING+ >ram}
+
+.stack :
+ {
+ ${RELOCATING+ _stack = . ; }
+ *(.stack)
+ } ${RELOCATING+ > topram}
+
+.eight :
+ {
+ *(.eight)
+ } ${RELOCATING+ > eight}
+
+.stab 0 ${RELOCATING+(NOLOAD)} :
+ {
+ [ .stab ]
+ }
+
+.stabstr 0 ${RELOCATING+(NOLOAD)} :
+ {
+ [ .stabstr ]
+ }
+}
+EOF
diff --git a/gnu/usr.bin/binutils/ld/scripttempl/i860coff.sc b/gnu/usr.bin/binutils/ld/scripttempl/i860coff.sc
new file mode 100644
index 00000000000..f268c6f9060
--- /dev/null
+++ b/gnu/usr.bin/binutils/ld/scripttempl/i860coff.sc
@@ -0,0 +1,42 @@
+cat <<EOF
+OUTPUT_FORMAT("${OUTPUT_FORMAT}")
+${LIB_SEARCH_DIRS}
+PROVIDE (__stack = 0);
+SECTIONS
+{
+ .text ${RELOCATING+ 0x1000000} : {
+ *(.text)
+ ${CONSTRUCTING+ . = ALIGN(4);}
+ ${RELOCATING+ etext = .;}
+ ${CONSTRUCTING+ __CTOR_LIST__ = .;}
+ ${CONSTRUCTING+ LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)}
+ ${CONSTRUCTING+ *(.ctors)}
+ ${CONSTRUCTING+ LONG(0)}
+ ${CONSTRUCTING+ __CTOR_END__ = .;}
+ ${CONSTRUCTING+ __DTOR_LIST__ = .;}
+ ${CONSTRUCTING+ LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)}
+ ${CONSTRUCTING+ *(.dtors)}
+ ${CONSTRUCTING+ LONG(0)}
+ ${CONSTRUCTING+ __DTOR_END__ = .;}
+ }
+ .data : {
+ *(.data)
+ ${RELOCATING+ edata = .};
+ }
+ .bss : {
+ ${RELOCATING+ __bss_start = .};
+ *(.bss)
+ *(COMMON)
+ ${RELOCATING+ end = ALIGN(0x8)};
+ ${RELOCATING+ _end = ALIGN(0x8)};
+ }
+ .stab 0 ${RELOCATING+(NOLOAD)} :
+ {
+ [ .stab ]
+ }
+ .stabstr 0 ${RELOCATING+(NOLOAD)} :
+ {
+ [ .stabstr ]
+ }
+}
+EOF
diff --git a/gnu/usr.bin/binutils/ld/scripttempl/mmo.sc b/gnu/usr.bin/binutils/ld/scripttempl/mmo.sc
index b93953db53a..643b349539e 100644
--- a/gnu/usr.bin/binutils/ld/scripttempl/mmo.sc
+++ b/gnu/usr.bin/binutils/ld/scripttempl/mmo.sc
@@ -55,7 +55,7 @@ SECTIONS
${RELOCATING+ PROVIDE(_etext = .);}
${RELOCATING+ PROVIDE(__etext = .);}
}
- ${RELOCATING+Main = DEFINED (Main) ? Main : (DEFINED (_start) ? _start : . - SIZEOF (.text));}
+ ${RELOCATING+Main = DEFINED (Main) ? Main : (DEFINED (_start) ? _start : ADDR (.text));}
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }