3 (gld*_create_output_section_statements): New function.
4 For -binitfini support.
5 * emultempl/aix.em (gld*_before_parse): Fix comment.
6 * emultempl/aix.em (gld*_parse_args): Fix comment.
10 * configure.tgt (mips*-dec-netbsd*): Delete alias for
12 (sparc64-*-netbsd*): Add elf32_sparc to targ_extra_emuls.
14 * configure.tgt (arm-*-netbsdelf*): Add target.
15 (arm-*-netbsd*): Add armelf and armelf_nbsd to targ_extra_emuls.
16 * emulparams/armelf_nbsd.sh: Added.
17 * Makefile.am: Add rules for earmelf_nbsd.
18 * Makefile.in: Regenerate.
23 * configure.host: Add rules for x86_64-*linux-gnu. Change
24 s390x-linux entry to use gcc to report configuration, replace gcc
25 with $CC in s390-linux
29 * ld.texinfo (VERSION): Fix markup.
33 * Makefile.am (ALL_EMULATIONS): Add m68kelfnbsd.o.
34 (m68kelfnbsd.c): New rule.
35 * Makefile.in: Regenerate.
36 * configure.tgt (m68*-hp-netbsd*): Renamed to ..
37 (m68*-*-netbsd*4k*): .. this.
38 (m68*-*-netbsdelf*): New target.
39 (m68*-*-netbsd*): Also include ELF support.
40 (m68*-*-netbsdaout*): New alias for m68*-*-netbsd*.
41 * emulparams/m68kelfnbsd.sh: New emulation.
45 * ldgram.y (vers_node): Support anonymous version tags.
46 * ldlang.c (lang_register_vers_node): Ensure anonymous version
47 tag is not defined together with non-anonymous versions.
48 * ld.texinfo: Document it.
52 * po/tr.po: New file: Turkish translation.
53 * configure.in (ALL_LINGUAS): Add tr.
54 * configure: Regenerate.
58 * Makefile.am: Add rules for eelf64alpha_nbsd.
59 * Makefile.in: Regenerate.
60 * configure.tgt (alpha*-*-netbsd*): Set
61 targ_emul to elf64alpha_nbsd.
62 * emulparams/elf64alpha_nbsd.sh: Added.
66 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Adjust
67 section_tail when fiddling with section list.
68 (gld${EMULATION_NAME}_list_options): Ensure sentences aren't
69 broken into separate strings to make translation easier.
70 * emultempl/mmo.em (mmo_place_orphan): Adjust section_tail when
71 fiddling with section list.
72 * emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
76 * scripttempl/mmo.sc: Add .debug_ranges to listed sections.
80 * ldmain.c (main): Initialise link_info.eh_frame_hdr.
84 * emultempl/elf32.em (finish): Supply output_bfd
85 to bfd_elf*_discard_info.
86 (OPTION_EH_FRAME_HDR): Define.
87 (longopts): Add --eh-frame-hdr.
88 (parse_args): Handle it.
89 (list_options): Add --eh-frame-hdr to help.
90 * emultempl/hppaelf.em (finish): Supply output_bfd
91 to bfd_elf*_discard_info.
92 * scripttempl/elf.sc (.eh_frame_hdr): Add.
96 * lexsup.c (parse_args): Don't pass shortopts to second call to
97 getopt functions. Restore optind rather than decrementing before
98 second call. Remove errind as it now duplicates last_optind.
102 * emultempl/pe.em (gld_${EMULATION_NAME}_list_options): Fix typo.
107 * Makefile.am: Add support for xstormy16.
108 * configure.tgt: Add support for xstormy16.
109 * Makefile.in: Regenerate.
110 * emulparams/elf32xstormy16.sh: New file.
111 * scripttempl/xstormy16.sc: New file.
115 * Makefile.in (LIB_PATH): Make configurable.
116 (GENSCRIPTS): Set LIB_PATH in environment.
117 * configure.in: Substitute LIB_PATH.
118 * configure: Regenerate.
119 * configure.tgt (*cygwin): Set LIB_PATH for cross build.
120 * configure.host (*cygwin): Add /usr/lib/w32api to NATIVE_LIB_DIRS.
124 * lexsup.c (ld_options): Insert 'PROGRAM' into the text string
125 describing the -N option so that it is easier to translate into
130 * emultempl/pe.em (..._list_options): Replace multiple fprintf
131 statements describing a single option with a single, newline
132 escaped fprintf. This allows better translation into other
135 * ldmain.c (add_archive_element): Combine multiple strings
136 into a single string to permit better translation into other
141 * Makefile.am: Remove eaixppc64.
142 * Makefile.in: Regenerate.
146 * emultempl/aix.em (choose_target): Change default target to
147 OUTPUT_FORMAT for ppcmacos. Add braces to remove compiler
149 (gld*_read_file): Fix typo.
150 (change_symbol_mode): Add prototype.
153 * emulparams/aixppc.sh (SYSCALL_MASK, SYMBOL_MODE_MASK): Delete.
154 * emulparams/aixrs6.sh : Same.
155 * emulparams/ppcmacos.sh : Same.
156 * emulparams/aixppc64.sh : Delete file.
157 * emultempl/aix.em : Formatting changes.
161 * emulparams/criself.sh (NO_SMALL_DATA): Set, to yes.
162 (OTHER_BSS_END_SYMBOLS): Don't refer to .sbss when setting
164 (OTHER_END_SYMBOLS): Fix formatting.
165 * emulparams/crislinux.sh (NO_SMALL_DATA): Set, to yes.
166 (OTHER_END_SYMBOLS): Fix formatting.
170 * ldexp.c (exp_print_token): Correct "table" entry for RSHIFT.
174 * configure.tgt : Remove eaixppc64 emulations.
175 * Makefile.in : Remove eaixppc64.c
176 * ldemul.c (ldemul_choose_target): New parameters argc, argv.
177 (ldemul_default_target): Same.
178 * emultempl/gld960.em (gld960_choose_target): Same.
179 * emultempl/gld960c.em (gld960_choose_target): Same.
180 * scripttempl/aix.sc: Remove OUTPUT_FORMAT.
181 * emultempl/aix.em (is_syscall): syscall_mask now a variable.
182 * emultempl/aix.em (gld*_read_file): symbol_mode_mask now a variable.
183 * emultempl/aix.em (gld*_parse_args): Handle -b32 -b64 emulation.
184 * emultempl/aix.em (choose_target): New function. Handle emulation of
189 * emulparams/elf_i386.sh (NO_SMALL_DATA): Set to yes.
190 * emulparams/elf_i386_be.sh (NO_SMALL_DATA): Likewise.
191 * emulparams/elf_i386_chaos.sh (NO_SMALL_DATA): Likewise.
192 * emulparams/elf_i386_ldso.sh (NO_SMALL_DATA): Likewise.
193 * emulparams/elf_x86_64.sh (NO_SMALL_DATA): Likewise.
194 * emulparams/m68kelf.sh (NO_SMALL_DATA): Likewise.
195 * emulparams/elf32_sparc.sh (NO_SMALL_DATA): Likewise.
196 * emulparams/elf64_sparc.sh (NO_SMALL_DATA): Likewise.
198 * scripttempl/elf.sc (SBSS): New. Define if ${NO_SMALL_DATA}
201 (REL_SDATA): Likewise.
202 (REL_SBSS): Likewise.
203 (REL_SDATA2): Likewise.
204 (REL_SBSS2): Likewise.
205 (SBSS2): Define if ${NO_SMALL_DATA} is not empty.
210 * scripttempl/elfm68hc11.sc (CTOR, DTOR): Put constructor and
212 * scripttempl/elfm68hc12.sc (CTOR, DTOR): Likewise.
216 * Makefile.in: Regenerated with automake based on automake
221 * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Define.
222 (config.status): Delete rule.
223 Add extra dependencies to cover sourced emulparams files.
224 * Makefile.in: Regenerate.
226 * scripttempl/elf.sc: Order <section>, <section>.* and
227 corresponding linkonce sections as seen in input files.
228 Formatting fixes. Zero vma of all sections if not relocating.
229 (STACK): Define and insert if STACK_ADDR defined.
230 (OTHER_RELOCATING_SECTIONS): Delete.
231 (OTHER_END_SYMBOLS): Define.
232 (OTHER_READONLY_SECTIONS): Always insert, not just when relocating.
233 (OTHER_READWRITE_SECTIONS): Likewise.
234 (OTHER_GOT_SECTIONS): Likewise.
235 (OTHER_SDATA_SECTIONS): Likewise.
236 (OTHER_BSS_SECTIONS): Likewise.
237 * scripttempl/elfi370.sc (OTHER_READONLY_SECTIONS): Likewise.
238 (OTHER_READWRITE_SECTIONS): Likewise.
239 * scripttempl/nw.sc (OTHER_READONLY_SECTIONS): Likewise.
240 (OTHER_READWRITE_SECTIONS): Likewise.
242 * emulparams/armelf.sh (OTHER_RELOCATING_SECTIONS): Delete.
243 (STACK_ADDR): Define.
244 * emulparams/armelf_oabi.sh: As for armelf.sh.
245 * emulparams/elf32mcore.sh: As for armelf.sh.
246 * emulparams/h8300elf.sh: As for armelf.sh.
247 * emulparams/mn10200.sh: As for armelf.sh.
248 * emulparams/shelf.sh: As for armelf.sh.
250 * emulparams/elf32fr30.sh (OTHER_RELOCATING_SECTIONS): Delete.
251 (OTHER_END_SYMBOLS): Define.
252 * emulparams/m32relf.sh: As for elf32fr30.sh.
253 * emulparams/h8300helf.sh: As for elf32fr30.sh.
254 * emulparams/h8300self.sh: As for elf32fr30.sh.
256 * emulparams/criself.sh (OTHER_READONLY_SECTIONS): Protect symbol
257 defines with RELOCATING test.
258 (OTHER_SDATA_SECTIONS): Likewise.
259 (OTHER_RELOCATING_SECTIONS): Delete, replacing with..
260 (OTHER_END_SYMBOLS): ..this.
261 * emulparams/crislinux.sh: As for criself.sh.
263 * emulparams/elf32bmipn32.sh (OTHER_SDATA_SECTIONS): Zero vma
265 (OTHER_RELOCATING_SECTIONS): Delete, replacing with..
266 (OTHER_SECTIONS): ..this. Zero vma if not relocating. Order
267 normal and linkonce sections as seen in input files.
268 * emulparams/elf32bmip.sh (DATA_ADDR): Don't define if EMBEDDED.
269 (TEXT_DYNAMIC): Likewise.
270 (INITIAL_READONLY_SECTIONS): Zero vma if not relocating.
271 (OTHER_SDATA_SECTIONS): Likewise.
272 * emulparams/elf32ppc.sh (OTHER_READWRITE_SECTIONS): Likewise.
273 * emulparams/shlelf_linux.sh (OTHER_READWRITE_SECTIONS): Likewise.
274 * emulparams/elf64alpha.sh (OTHER_READONLY_SECTIONS): Likewise.
275 * emulparams/hppalinux.sh (OTHER_READONLY_SECTIONS): Likewise.
276 * emulparams/elf64_aix.sh (OTHER_GOT_SECTIONS): Likewise.
277 (OTHER_PLT_RELOC_SECTIONS): Likewise.
278 (OTHER_READONLY_SECTIONS): Likewise. Order normal and linkonce
279 sections as seen in input files.
280 * emulparams/elf64_ia64.sh: As for emulparams/elf64_aix.sh.
281 * emulparams/hppa64linux.sh (OTHER_READONLY_SECTIONS): Zero vma
283 (OTHER_READWRITE_SECTIONS, OTHER_BSS_SECTIONS): Likewise.
284 (OTHER_BSS_END_SYMBOLS): Merge from elf64hppa.sh.
285 * emulparams/elf64mmix.sh (OTHER_RELOCATING_SECTIONS): Delete.
286 (OTHER_SECTIONS): Instead, use this..
287 (OTHER_END_SYMBOLS): ..and this.
289 * emulparams/elf32b4300.sh: Source elf32bmip.sh, remove duplicates.
290 * emulparams/elf32bsmip.sh: Likewise.
291 * emulparams/elf32btsmip.sh: Likewise.
292 * emulparams/elf32ebmip.sh: Likewise.
293 * emulparams/elf32lmip.sh: Likewise.
294 * emulparams/elf32elmip.sh: Source elf32lmip.sh, remove duplicates.
295 * emulparams/elf32lsmip.sh: Likewise.
296 * emulparams/elf32ltsmip.sh: Source elf32btsmip.sh, remove duplicates.
297 * emulparams/elf32l4300.sh: Source elf32b4300.sh, remove duplicates.
298 * emulparams/elf64bmip.sh: Source elf32bmipn32.sh, remove duplicates.
299 * emulparams/elf64btsmip.sh: Likewise.
300 * emulparams/elf64ltsmip.sh: Source elf64btsmip.sh, remove duplicates.
301 * emulparams/elf32lppc.sh: Source elf32ppc.sh, remove duplicates.
302 * emulparams/elf32ppclinux.sh: Likewise.
303 * emulparams/elf32ppcsim.sh: Likewise.
304 * emulparams/elf32lppcsim.sh: Source elf32lppc.sh, remove duplicates.
305 * emulparams/elf64hppa.sh: Source hppa64linux.sh, remove duplicates.
306 * emulparams/h8300helf.sh: Source h8300elf.sh, remove duplicates.
307 * emulparams/h8300self.sh: Likewise.
308 * emulparams/mn10300.sh: Source mn10200.sh, remove duplicates.
309 * emulparams/sh.sh: Comment.
310 * emulparams/shl.sh: Source sh.sh, remove duplicates.
311 * emulparams/shlelf.sh: Source shelf.sh, remove duplicates.
312 * emulparams/shelf_linux.sh: Source shlelf_linux.sh, remove duplicates.
317 * ldlang.c (map_input_to_output_sections): Replace "break"
318 accidentally removed with 2001-08-03 change.
319 (lang_gc_sections_1): Likewise.
323 * ldlang.c (walk_wild_section): Move sec == NULL case out of loop.
327 * emultempl/elf32.em (gld${EMULATION_NAME}_finish): Use NULL instead
328 of false when calling lang_size_sections.
329 * emultempl/hppaelf.em (hppaelf_layout_sections_again): Likewise.
333 * emultempl/elf32.em (gld${EMULATION_NAME}_finish): Only emit this
334 function when LDEMUL_FINISH isn't set to the same name. Don't
335 call ${LDEMUL_FINISH}.
336 (ld_${EMULATION_NAME}_emulation): Call $LDEMUL_FINISH if defined.
337 * emultempl/armelf.em (arm_elf_finish): Call
338 gld${EMULATION_NAME}_finish.
339 * emultempl/hppaelf.em (hppaelf_finish): Rename to
340 gld${EMULATION_NAME}_finish. Call bfd_elf32_discard_info and
341 hppaelf_layout_sections_again if necessary.
342 (need_laying_out): New var.
343 (hppaelf_layaout_sections_again): Rename to
344 hppaelf_layout_sections_again. Clear need_laying_out.
345 (PARSE_AND_LIST_OPTIONS): Format text.
349 * emultempl/armelf.em (arm_elf_finish): Renamed from
350 gld${EMULATION_NAME}_finish.
351 (LDEMUL_FINISH): Set to arm_elf_finish.
355 * emultempl/elf32.em (gld${EMULATION_NAME}_finish): New.
356 (struct ld_emulation_xfer_struct): Use it.
360 * emulparams/elf64hppa.sh (OTHER_BSS_END_SYMBOLS): Add
361 additional symbols referenced by newer crt0.o files from HP.
365 * emulparams/armelf.sh (DATA_START_SYMBOLS): New symbol.
369 * Makefile.am (GENSCRIPTS): Quote ${exec_prefix}.
370 * Makefile.in: Regenerate.
374 * ld.texinfo: Use @command for commands, @option for options.
375 * Makefile.am (POD2MAN): Use 'GNU Development Tools' for
377 * Makefile.in: Rebuild.
381 * configure.tgt (mips*el-*-netbsd*, mips*-*-netbsd*):
382 Add support for targets.
386 * configure.in (ALL_LINGUAS): Add "fr" and "sv"
387 * configure: Regernate.
388 * po/fr.po: New file.
389 * po/sv.po: New file.
393 * configure.tgt (sh-*-linux): Set targ_emul, targ_extra_emuls
394 as little endian default and to support big endian.
398 * ld.texinfo (Options): Document new option, -nostdlib.
399 * lexsup.c (OPTION_NOSTDLIB): New definition.
400 (ld_options): Add entry for "nostdlib".
401 (parse_args): Handle OPTIONS_NOSTDLIB.
402 * ldfile.c (ldfile_add_library_path): Don't add directories
403 to the search path if they weren't specified on the command line
404 and -nostdlib was specified.
405 * ld.h (ld_config_type): New member only_cmd_line_lib_dirs.
409 * lexsup.c (parse_args): Prevent infinite parsing loop when
410 "-rpath.a" is specified on the command line.
411 Replace calls to fprintf with calls to einfo.
415 * ld.texinfo: A historical requirement that MEMORY and SECTIONS
416 appear only once across all the linker scripts involved in a link
417 invocation no longer applies. Make the documentation reflect
422 * configure.tgt: Supports sh3/sh4/sh3eb/sh4eb-unknown-linux-gnu
424 (sh-*-linux*): Added targ_extra_libpath.
428 * ldlang.c (lang_size_sections): Keep a valid output_offset field
429 for padding statements.
433 * configure.tgt (mmix-*-*): New target.
434 * Makefile.am (ALL_EMULATIONS): Add eelf64mmix.o and emmo.o.
435 Add dependencies to match.
436 * emulparams/mmo.sh, emulparams/elf64mmix.sh, emultempl/mmo.em,
437 emultempl/mmix-elfnmmo.em, emultempl/mmixelf.em,
438 scripttempl/mmo.sc: New files.
439 * gen-doc.texi: @set MMIX.
441 [MMIX] Add MMIX node.
442 * Makefile.in: Regenerate.
446 * ldlang.c: Fix a comment typo.
450 * configure.host: Move alpha*-*-linux-gnu* entry to generic
451 entries, and match *-*-linux*.
455 * ldgram.y (mri_script_command): Surround processing of INCLUDE
456 with ldlex_script, ldlex_popstate.
457 (ifile_p1): Likewise.
458 * ldlex.l (EOF): Don't BEGIN(SCRIPT). Restore lineno from the
460 (lex_push_file): Save current lineno to lineno_stack. Set lineno
461 to 1. Don't BEGIN(SCRIPT).
462 (lex_redirect): Similarly.
463 * ldmain.c (main): Set yydebug non-zero if YYDEBUG.
467 * scripttempl/armcoff.sc: Define __EH_FRAME_BEGIN__ and
468 __EH_FRAME_END__ and accept eh frames into data section.
469 Add ctor and dtor sections.
473 * pe-dll.c (autofilter_objectlist): Add gcrt0.o.
474 (auto-export): Fix indentation.
478 * pe-dll.c (autofilter_objectlist): Add startup objects
480 (auto-export): Constify char * p.
481 Extract file basename and use strcmp rather than ststr
486 * ldmain.c (get_emulation): Improve comment about the handling
491 * po/POTFILES.in: Regenerate.
495 * emultempl/elf32.em (gld*_list_options): Remove extra '\t' from
496 -z nocopyreloc and -z nocombreloc usage strings.
500 * emultempl/elf32.em (gld*_list_options): Include -z nocopyreloc
505 * scripttempl/armaout.sc: Place .bss section after end of aligned
506 data section to match behaviour of aout code in constructrion of
511 * pe-dll.c (autofilter_entry_type autofilter_liblist: Add
512 startup files for mingw32 dlls to list.
516 * emultempl/elf32.em: Fix shell 'if' usage for portability.
520 * configure.tgt (targ): Add arm9e-*-elf.
524 * genscripts.sh: Fix a typo in the last change.
528 * emultempl/elf32.em (gld_*_list_options): Include -z combreloc and
529 -z nocombreloc in usage.
533 * genscripts.sh: Include a comment at the top of each generated
534 script, explaining its purpose.
538 * emultempl/elf32.em (parse_args): Handle -z nocopyreloc.
539 * NEWS: Mention -z nocopyreloc.
540 * ld.texinfo (Options): Describe nocopyreloc.
544 * configure: Regenerate.
548 * ldver.h (ld_program_version): Remove declaration.
549 * lexsup.c (parse_args): Move printing of copyright message..
550 * ldver.c (ldversion): .. to here.
551 Use BFD_VERSION_STRING in place of BFD_VERSION.
552 (ld_program_version): Remove.
553 * Makefile.am (Makefile): Depend on bfd/configure.in.
555 * Makefile.in: Regenerate.
559 * Makefile.am: Update dependencies with "make dep-am".
560 * Makefile.in: Regenerate.
564 * ldlang.c (lang_common): Conditionally inhibit Common allocation.
565 * lexsup.c: Add --no-define-common commandline option.
566 * ldgram.y: Add INHIBIT_COMMON_ALLOCATION script command.
568 * ld.h: Add command_line.inhibit_common_definition.
569 * ldmain.c (main): Initialize.
570 * ld.texinfo: Document.
574 * ldlang.c (section_already_linked): Remove assignment to kept_section.
578 * ldmisc.c (USE_STDARG): Remove.
579 (info_msg): Define using VPARAMS, VA_OPEN, VA_FIXEDARG, VA_CLOSE.
584 * ldmisc.h: Remove #ifdef ANSI_PROTOTYPES and non-ansi
585 declarations. Update copyright.
589 * pe-dll.c: Remove obsoleted declaration of
590 pe_get_data_import_dll_name.
591 (pe_create_import_fixup): Fix thinko.
593 * ld.texinfo(enable-auto-import): Clarify the explanation.
597 * pe-dll.c (pe_create_import_fixup): Revert previous patch.
598 * emultemp/pe.em (pe_data_import_dll): Move definition outside of
599 DLL_SUPPORT controlled code.
603 * emultempl/pe.em(pe_data_import_dll): Make static.
604 (pe_get_data_import_dll_name): New accessor function.
605 * pe-dll.c(pe_create_import_fixup): call
606 pe_get_data_import_dll_name() from pe.em, instead of
607 directly accessing pe_data_import_dll variable from pe.em.
611 * deffilep.y: Include "safe-ctype.h" instead of <ctype.h>.
612 (def_file_add_directive): Use ISSPACE instead of isspace.
613 (def_lex): Use ISDIGIT/ISXDIGIT/ISALPHA/ISALNUM instead of
614 isdigit/isxdigit/isalpha/isalnum.
615 * emultempl/aix.em: Include "safe-ctype.h" instead of <ctype.h>.
616 (gld${EMULATION_NAME}_read_file): Use ISSPACE instead of isspace.
617 * emultempl/elf32.em: Include "safe-ctype.h" instead of <ctype.h>.
618 (gld${EMULATION_NAME}_place_orphan): Use ISALNUM instead of
620 * emultempl/gld960c.em: Include "safe-ctype.h" instead of <ctype.h>.
621 (gld960_set_output_arch): Use ISUPPER/TOLOWER instead of
623 * emultempl/sunos.em: Include "safe-ctype.h" instead of <ctype.h>.
624 (gld${EMULATION_NAME}_search_dir): Use ISDIGIT instead of isdigit.
625 * ldctor.c: Include "safe-ctype.h" instead of <ctype.h>.
626 (ctor_prio): Use ISDIGIT instead of isdigit.
627 * ldfile.c: Include "safe-ctype.h" instead of <ctype.h>.
628 (ldfile_open_file_search): Use ISALPHA instead of isalpha.
629 (ldfile_add_arch): Use ISUPPER/TOLOWER instead of
631 * ldlang.c: Include "safe-ctype.h" instead of <ctype.h>.
632 (stricpy): Use TOLOWER instead of isupper/tolower.
633 (lang_leave_overlay_section): Use ISALNUM instead of isalnum.
634 * ldlex.l: Include "safe-ctype.h" instead of <ctype.h>.
635 (lex_warn_invalid): Use ISPRINT instead of isprint.
636 * ldmain.c: Include "safe-ctype.h" instead of <ctype.h>.
637 (main): For gettext, also set the LC_CTYPE locate facet.
638 (add_keepsyms_file): Use ISSPACE instead of isspace.
639 * lexsup.c: Include "safe-ctype.h" instead of <ctype.h>.
640 (is_num, parse_args): Use ISDIGIT instead of isdigit.
641 * mpw-elfmips.c: Include "safe-ctype.h" instead of <ctype.h>.
642 (gldelf32ebmip_place_orphan): Use ISALNUM instead of isalnum.
643 * mpw-eppcmac.c: Include "safe-ctype.h" instead of <ctype.h>.
644 (gldppcmacos_read_file): Use ISSPACE instead of isspace.
645 * pe-dll.c: Include "safe-ctype.h" instead of <ctype.h>.
646 (quoteput): Use ISSPACE instead of isspace.
647 (pe_dll_generate_implib, pe_process_import_defs): Use ISALNUM
652 * deffilep.y (def_stash_module): Constify "name" param.
654 * pe-dll.c: Replace CONST with const throughout.
655 (quick_symbol): Constify "n1", "n2", "n3" params.
656 (make_singleton_name_thunk): Constify "import" param. Make
657 "buffer_len" a size_t.
658 (make_import_fixup_entry): Constify "name", "fixup_name",
659 "dll_symname" params.
660 (pe_get16): Cast args of bfd_seek. Replace bfd_read with bfd_bread.
661 (pe_get32): Likewise.
662 (pe_implied_import_dll): Likewise.
664 * emultempl/beos.em (sort_by_file_name): Constify "ra", "rb".
665 (sort_by_section_name): Likewise.
667 * emultempl/pe.em: Move defines for arm_epoc_pe before bfd.h included.
668 (make_import_fixup): Cast printf arg, rel->address to long rather
670 (gld_${EMULATION_NAME}_after_open): Don't compare NULL against int.
674 * ldmain.c (main): Rename BufferSize to ld_bufsz because HPUX
675 defines BufferSize. Increase buffer size by one.
679 * pe-dll.c (pe_walk_relocs_of_symbol): Fix memory leak.
683 * configure.tgt: Add arm-openbsd target.
687 * Makefile.am (ALL_EMULATIONS): Move eelf64ppc.o and
689 (ALL_64_EMULATIONS): Here.
690 * Makefile.in: Regenerated.
694 * emultempl/pe.em(make_import_fixup): change signature to
695 take asection as well as arelec; we need this for proper
696 error reporting. Only call pe_create_import_fixup() if
697 there is no attempt to add a constant addend to the reloc;
698 otherwise, report error condition.
699 * pe-dll.c(pe_walk_relocs_of_symbol): change signature,
700 since final argument is a pointer to make_import_fixup().
701 Change call to cb() to match make_import_fixup() signature.
702 (make_import_fixup_mark): make buffer_len unsigned.
703 * pe-dll.h: change signature of pe_walk_relocs_of_symbol.
707 * ld.texinfo: add verbose documentation for auto-import
708 direct-addressing workaround, to compliment the terse
713 * scripttempl/v850.sc: Add gcc_except_table sections.
717 * emulparams/h8300helf.sh: Move stack to a much higher memory address.
718 * emulparams/h8300self.sh: Similarly.
722 * ld.texinfo (Options, --stack): Correct default value for stack
727 * emultempl/aix.em : Handle import file XMC_XO and syscall symbols.
731 * emultempl/beos.em: Declare prototypes for comparions functions,
736 * emultempl/aix.em: Add missing prototype.
737 * emultempl/lnk960.em: Likewise.
738 * emultempl/vanilla.em: Likewise.
739 * emultempl/armcoff.em: Likewise.
740 * emultempl/armelf_oabi.em: Likewise.
741 * emultempl/beos.em: Likewise.
742 * emultempl/gld960c.em: Likewise.
743 * emultempl/gld960.em: Likewise.
745 * emulparams/elf64alpha.sh (PARSE_AND_LIST_PROLOGUE): Add parameter
746 for prototype declaration.
751 * ldmain.c (get_emulation): Add support for -mips32 and -mips64.
755 * emultempl/pe.em: Add missing prototypes.
756 (gld_${EMULATION_NAME}_after_open): Remove extra args to
757 pe_find_data_imports.
758 (pr_sym): Add unused attribute.
762 * configure.tgt (i[3456]86-*-rtems*, m68*-*-rtems*): Change
763 default from coff to elf.
767 * emulparams/h8300helf.sh: Resync with h8300elf.sh. Update
769 * emulparams/h8300self.sh: Similarly.
773 * Makefile.am (ALL_EMULATIONS): Add eh8300elf.o, eh8300elf.o and
775 (eh8300elf.c, eh8300helf.c, eh8300self.c): New targets.
776 * configure.tgt (h8300-*-elf*): New case.
777 * emulparams/h8300elf.sh, emulparams/h8300helf.sh: New files.
778 * emulparams/h8300self.sh: New file.
779 * Makefile.in: Regenerated.
783 * ldmain.c (main): Rename BSIZE to BufferSize to avoid collision
789 * Makefile.am (ALL_EMULATIONS): Add eelf64ppc.o and eelf64lppc.o.
790 (eelf64ppc.c, eelf64lppc.c): Add make targets.
792 * Makefile.in: Regenerate.
793 * configure.tgt: Add powerpc64 support. Move pdp11, pjl, pj
794 entries to correct alphabetical position.
795 * emulparams/elf64ppc.sh: New.
796 * emulparams/elf64lppc.sh: New.
800 * ldmain.c (main): Declare BSIZE as static.
804 * emultempl/elf32.em (place_orphan): Place orphan .rel* sections
805 into .rel.dyn resp. .rela.dyn if combreloc.
806 (get_script): If .x linker script is equal to .xn, only put it
807 once into the binary.
808 Add .xc and .xsc scripts.
809 (parse_args): Handle -z combreloc and -z nocombreloc.
810 * scripttempl/elf.sc (.rela.sbss): Fix a typo.
811 For .xc and .xsc scripts put all .rel* or .rela* input sections
812 but .rel*.plt and PLT-like sections into .rel.dyn resp. .rela.dyn.
813 * genscripts.sh (GENERATE_COMBRELOC_SCRIPT): Set if SCRIPT_NAME
815 Strip trailing whitespace from script.
816 Generate .xc and .xsc scripts if requested.
817 * ldmain.c (main): Initialize link_info.combreloc and
818 link_info.spare_dynamic_tags.
819 * lexsup.c (OPTION_SPARE_DYNAMIC_TAGS): Define.
820 (ld_options): Add --spare-dynamic-tags option.
821 (parse_args): Likewise.
822 * ld.texinfo: Document -z combreloc and -z nocombreloc.
823 * ldint.texinfo: Document .xc and .xsc linker scripts.
824 * NEWS: Add notes about -z combreloc and SHF_MERGE.
828 * emulparams/elf32fr30.sh: Add a newline.
832 * deffilep.y: Add missing prototypes.
833 * pe-dll.c: Likewise.
837 * ldlang.c (insert_pad): Fix typos in last patch.
839 * ldlang.c: When traversing lang_statement_union_type lists,
840 consistently use "header.next" rather than "next".
841 * mpw-eppcmac.c: Likewise.
842 * emultempl/beos.em: Likewise.
843 * emultempl/hppaelf.em: Likewise.
844 * emultempl/pe.em: Likewise.
845 * ldlang.h (union lang_statement_union): Remove "next" field.
847 * ldlang.c (insert_pad): Use offsetof macro.
848 (lang_size_sections): Always neuter padding statements.
849 * emultempl/hppaelf.em (hppaelf_delete_padding_statements): Delete.
851 * pe-dll.c (pe_dll_fill_sections): Correct type of "relax" param
852 passed to lang_size_sections.
853 (pe_exe_fill_sections): Likewise.
854 * emultempl/pe.em (output_prev_sec_find): Copied from elf32.em.
855 (gld_${EMULATION_NAME}_place_orphan): Merge from elf32.em.
859 * emultempl/aix.em: Formatting fixes.
863 * ldlang.c (insert_pad): Make use of an existing pad statement if
864 available. Move code calculating alignment, adjusting section
865 alignment power, and adjusting dot to ..
866 (size_input_section): .. here. Remove unused relax param.
867 (lang_size_sections): Change boolean `relax' param to boolean *.
868 Adjust call to size_input_section. Make use of insert_pad to
869 place pad after the assignment statement. If relaxing, zap
871 (reset_memory_regions): Reset output_bfd section sizes too.
872 (relax_again): Move to..
873 (lang_process): ..here. Adjust call to lang_size_sections, and
874 remove duplicated code.
875 * ldlang.h (lang_size_sections): Change `relax' param to boolean *.
879 * ld.texinfo: Document that fill values now use the four least
881 * emulparams/elf32fr30.sh (NOP): Update.
882 * emulparams/elf32mcore.sh: Likewise.
883 * emulparams/elf64_s390.sh: Likewise.
884 * emulparams/elf_i386.sh: Likewise.
885 * emulparams/elf_i386_be.sh: Likewise.
886 * emulparams/elf_i386_chaos.sh: Likewise.
887 * emulparams/elf_i386_ldso.sh: Likewise.
888 * emulparams/elf_s390.sh: Likewise.
889 * emulparams/elf_x86_64.sh: Likewise.
890 * emulparams/i386moss.sh: Likewise.
891 * emulparams/i386nw.sh: Likewise.
892 * emulparams/m68kelf.sh: Likewise.
893 * scripttempl/elf.sc: Update NOP comment.
894 * scripttempl/elfi370.sc: Likewise.
895 * scripttempl/elfm68hc11.sc: Likewise.
896 * scripttempl/elfm68hc12.sc: Likewise.
897 * scripttempl/nw.sc: Likewise.
901 * ldgram.y (saved_script_handle): Initialize to NULL.
902 * ldmain.c (main): Change check on saved_script_handle.
906 * emultempl/elf32.em: Formatting fixes.
907 (output_prev_sec_find): Test for bfd_ind_section too; do so by
908 looking at sec->owner.
909 (output_rel_find): Move function inside LDEMUL_PLACE_ORPHAN test.
910 (gld${EMULATION_NAME}_place_orphan): Add a few comments. Remove
911 unused code, and reorganize orphan section placement code.
913 * ldlang.c (wild_doit): Rename to lang_add_section.
914 * ldlang.h: Here too.
915 * mpw-elfmips.c: And here.
916 * emultempl/beos.em: And here.
917 * emultempl/elf32.em: And here.
918 * emultempl/hppaelf.em: And here.
919 * emultempl/pe.em: And here.
923 * emultempl/needrelax.em: New file.
924 * emulparams/elf64_ia64.sh (EXTRA_EM_FILE): Reference it.
925 * Makefile.am (eelf64_ia64.c): Depend on it.
926 * Makefile.in: Rebuild.
930 * emultempl/elf32.em: For SEC_EXCLUDE sections, ensure that
931 output_section is set non-NULL.
933 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Return
934 `true' for SEC_EXCLUDE sections so that the generic code doesn't
935 needlessly create an output_section_statement. Treat a correctly
936 named output_section_statement with NULL bfd_section as compatible.
940 * emultempl/generic.em: Support EXTRA_EM_FILE.
941 (ld_${EMULATION_NAME}_emulation): Support emulation parameters
942 LDEMUL_BEFORE_PARSE, LDEMUL_SYSLIB, LDEMUL_HLL,
943 LDEMUL_AFTER_PARSE, LDEMUL_AFTER_OPEN, LDEMUL_AFTER_ALLOCATION,
944 LDEMUL_SET_OUTPUT_ARCH, LDEMUL_CHOOSE_TARGET,
945 LDEMUL_BEFORE_ALLOCATION, LDEMUL_GET_SCRIPT, LDEMUL_FINISH,
946 LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS,
947 LDEMUL_OPEN_DYNAMIC_ARCHIVE, LDEMUL_PLACE_ORPHAN,
948 LDEMUL_SET_SYMBOLS, LDEMUL_PARSE_ARGS, LDEMUL_UNRECOGNIZED_FILE,
949 LDEMUL_LIST_OPTIONS, LDEMUL_RECOGNIZED_FILE,
950 LDEMUL_FIND_POTENTIAL_LIBRARIES.
954 * scripttempl/elf.sc, scripttempl/elfd30v.sc,
955 scripttempl/elfm68hc11.sc, scripttempl/elfm68hc12.sc,
956 scripttempl/v850.sc: Keep .jcr data.
962 * ldgram.y (had_script): Change name to saved_script_handle.
963 Change type to file handle.
964 * ld.h (had_script): Rename and retype.
965 * ldfile.c (ldfile_open_command_file): Save the file handle
966 used in saved_script_handle.
967 * lexsup.c (parse_args): Do not allow -c option to alter
969 * ldmain.c (main): Print out the linker script used if
970 --verbose is given. Check saved_script_handle to obtain the
971 external linker script used, or if NULL, dump the builtin
973 * ld.texinfo: Document that --verbose now dumps the linker
974 script used, regardless of whether it was an internal or an
979 * configure.in: Add -Wstrict-prototypes and -Wmissing-prototypes
981 * configure: Regenerate.
985 * emultempl/elf32.em (output_prev_sec_find): Add missing prototype.
987 * scripttempl/elf.sc: Move non-text .dynamic section before
988 .plt/.got/.sdata* group.
989 (OTHER_GOT_SECTIONS): Move to immediately after .got.
990 (OTHER_SDATA_SECTIONS): Add.
991 * emulparams/criself.sh: Use OTHER_SDATA_SECTIONS rather than
993 * emulparams/crislinux.sh: Likewise.
994 * emulparams/elf32b4300.sh: Likewise.
995 * emulparams/elf32bmip.sh: Likewise.
996 * emulparams/elf32bmipn32.sh: Likewise.
997 * emulparams/elf32bsmip.sh: Likewise.
998 * emulparams/elf32btsmip.sh: Likewise.
999 * emulparams/elf32ebmip.sh: Likewise.
1000 * emulparams/elf32elmip.sh: Likewise.
1001 * emulparams/elf32l4300.sh: Likewise.
1002 * emulparams/elf32lmip.sh: Likewise.
1003 * emulparams/elf32lsmip.sh: Likewise.
1004 * emulparams/elf32ltsmip.sh: Likewise.
1005 * emulparams/elf64bmip.sh: Likewise.
1006 * emulparams/elf64btsmip.sh: Likewise.
1007 * emulparams/elf64ltsmip.sh: Likewise.
1011 * genscripts.sh: Source the emulparams script before each output
1012 script is generated so that variables like `RELOCATING' may affect
1013 variables defined in the emulparams script.
1017 * emultempl/aix.em: ldexp.h,ldlang.h,ldfile.h,ldemul.h go in this
1020 * emultempl/beos.em (sort_sections): Modify for 2001-08-03 change,
1021 ie. iterate over wild_statement.section_list.
1022 (gld${EMULATION_NAME}_place_orphan): Likewise.
1026 * scripttempl/elfm68hc12.sc (FINISH_CODE, FINISH_RELOC): New to handle
1027 .fini[0-4] sections used by _exit
1028 (CTOR, DTOR): Export ctor/dtor symbols; move them to ROM.
1029 (*.text,*.data,*.bss): Take into account .text.*, .data.*, .bss.*.
1030 * scripttempl/elfm68hc11.sc: Likewise.
1034 * emultempl/beos.em (init): Add the missing initialization.
1038 * ld.texinfo (Input Section Basics): Clarify ordering of output
1040 * ldlang.c (callback_t): Add wildcard_list param.
1041 (walk_wild_section): Remove "section" param. Rewrite for
1042 lang_wild_statement_type change. Remove unique_section_p test.
1043 (walk_wild_file): Remove "section" param.
1044 (walk_wild): Remove "section" and "file" params.
1045 (lang_gc_wild): Likewise.
1046 (wild): Likewise. Modify for lang_wild_statement_type change.
1047 (wild_sort): Likewise. Add "sec" param.
1048 (gc_section_callback): Likewise.
1049 (output_section_callback): Likewise. Do unique_section_p test.
1050 (map_input_to_output_sections): Modify call to wild.
1051 (lang_gc_sections_1): Likewise.
1052 (print_wild_statement): Modify for lang_wild_statement_type
1054 (lang_add_wild): Replace filename, filenames_sorted param with
1055 filespec. Replace section_name, sections_sorted,
1056 exclude_filename_list with section_list.
1057 * ldlang.h (lang_add_wild): Here too.
1058 (lang_wild_statement_type): Replace section_name, sections_sorted,
1059 and exclude_filename_list with section_list.
1060 * ldgram.y (current_file): Delete.
1061 (%union): Add wildcard_list.
1062 (file_NAME_list): Set type to wildcard_list. Build a linked list
1063 rather than calling lang_add_wild for each entry.
1064 (input_section_spec_no_keep): Call lang_add_wild here instead.
1065 * ld.h (struct wildcard_list): Declare.
1066 * mri.c (mri_draw_tree): Modify to suit new lang_add_wild.
1070 * ldmain.c (main): initialize link_info.pei386_auto_import
1071 * pe-dll.c: new tables for auto-export filtering
1072 (auto_export): change API, pass abfd for contextual filtering.
1073 Loop thru tables of excluded symbols instead of comparing
1078 * pe-dll.c: new variable pe_dll_enable_extra_debug. New
1079 static variable current_sec (static struct sec *). Add
1080 forward declaration for add_bfd_to_link.
1081 (process_def_file): Don't export undefined symbols. Do not
1082 export symbols starting with "_imp__". Call auto_export()
1084 (pe_walk_relocs_of_symbol): New function.
1085 (generate_reloc): add optional extra debugging
1086 (pe_dll_generate_def_file): eliminate extraneous initial blank
1088 (make_one): enlarge symtab to make room for __nm__ symbols
1089 (DATA auto-import support).
1090 (make_singleton_name_thunk): New function.
1091 (make_import_fixup_mark): New function.
1092 (make_import_fixup_entry): New function.
1093 (pe_create_import_fixup): New function.
1094 (add_bfd_to_link): Specify that 'name' argument is a CONST
1096 * pe-dll.h: declare new variable pe_dll_extra_pe_debug;
1097 declare new functions pe_walk_relocs_of_symbol and
1098 pe_create_import_fixup.
1099 * emultempl/pe.em: add new options --enable-auto-import,
1100 --disable-auto-import, and --enable-extra-pe-debug.
1101 (make_import_fixup): New function.
1102 (pe_find_data_imports): New function.
1103 (pr_sym): New function.
1104 (gld_${EMULATION_NAME}_after_open): Add optional extra pe
1105 debugging. Call pe_find_data_imports. Mark .idata as DATA, not
1110 * ld.texinfo: add additional documentation for
1111 --export-all-symbols. Document --out-implib,
1112 --enable-auto-image-base, --disable-auto-image-base,
1113 --dll-search-prefix, --enable-auto-import, and
1114 --disable-auto-import.
1115 * ldint.texinfo: Add detailed documentation on auto-import
1120 * ld.texinfo (Simple Assignments): Fix computation in SECTIONS
1125 * Makefile.am: Update dependencies with "make dep-am".
1126 * Makefile.in: Regenerate
1130 * ldcref.c (check_section_sym_xref): New function.
1131 (check_nocrossrefs): Call it.
1132 (check_nocrossref): Interate over h->refs here instead of..
1133 (check_refs): ..here. Pass in the symbol name, section, and bfd
1134 rather than hash_entry pointers.
1135 (struct check_refs_info): Keep symbol name rather than hash entry.
1137 (check_reloc_refs): Tweak for above changes in check_refs_info.
1138 Only report references to section syms when symname is NULL to
1139 prevent duplicate messages for the same reloc.
1143 * ldexp.c (exp_print_tree): Use stderr if config.map_file is not
1144 available. Do not print NULL trees.
1145 (exp_print_token): Print unknown tokens with values > 126 as
1146 decimal values not ASCII characters.
1148 * ldlang.c (lang_leave_overlay): If a region is specified assign
1149 it to all sections inside the overlay unless they have been
1150 assigned to the own, non-default, memory region.
1152 * README: Add header for consistency with other README files.
1156 * emultempl/elf32.em (output_prev_sec_find): Never return
1157 bfd_abs_section_ptr, bfd_com_section_ptr nor
1158 bfd_und_section_ptr.
1162 * Makefile.am (em32relf.c): Change dependency from generic.em to
1164 * Makefile.in: Regenerate.
1168 * configure.tgt (i386-*-netbsdelf*): New target.
1169 (i386-*-netbsd*): Set targ_extra_emuls to `elf_i386'
1173 * emultempl/elf32.em (output_prev_sec_find): New.
1174 (place_orphan): Use it.
1178 * ldmain.c (main): Fix typos in the last change.
1182 * ldmain.c (main): Disallow -F and -f without -shared.
1186 * emultempl/pe.em (after_open): Check for the output_bfd not
1187 having any coff_data structure allocated to it.
1191 * emultempl/elf32.em: Do not assuming that contents of the buffer
1192 returned from basename function will remain unchanged accross other
1197 * scripttempl/elf.sc (DYNAMIC_PAD): Revert the change made on
1198 2001-07-03. It creates dynamic entries even for static binaries.
1202 * scripttempl/elf.sc (DYNAMIC_PAD): New variable.
1203 (DYNAMIC): Use it to reserve few dynamic entries for
1208 * emulparams/hppa64linux.sh: New file.
1209 * configure.tgt: hppa*64*-*-linux* uses hppa64linux.sh
1210 * Makefile.am (ALL_64_EMULATIONS): Add ehppa64linux.o
1211 (ehppa64linux.c): Add rule to make it.
1213 * Makefile.in: Regenerate.
1217 * ld.texinfo (Options, -r): Mention restrictions when using
1218 different object formats.
1222 * ldlang.c (lang_check): Emit fatal error if relocatable link
1223 between different object flavours with relocations in input.
1227 * ld.texinfo (-E, --export-dynamic): Mention --version-script.
1228 (--version-script): Mention the language support.
1232 * ldlang.c (lang_check): Revert the change mode on 2001-06-15.
1236 * Makefile.am (ld.1): Remove the prefix `$(srcdir)/'.
1237 (diststuff): Add $(MANS).
1238 * Makefile.in: Regenerated.
1244 * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation):
1245 Update for API change in bfd_elf${ELFSIZE}_size_dynamic_sections.
1246 * mpw-elfmips.c (gldelf32ebmip_before_allocation): Ditto.
1247 * ld.h (args_type): Remove member export_dynamic. All users
1248 changed to use struct bfd_link_info member.
1250 * Makefile.am (ecriself.c, ed10velf.c, ei386moss.c): Depend on
1251 $(srcdir)/emultempl/elf32.em, not $(srcdir)/emultempl/generic.em.
1252 * Makefile.in: Regenerate.
1256 * ldlang.c (init_os): Add the newline to the einfo call.
1257 (lang_check): Likewise.
1258 (lang_do_version_exports_section): Likewise.
1262 * lexsup.c (parse_args); Save optind to report unrecognized
1267 * ldlang.c (lang_check): Emit fatal error if relocatable link
1268 between different object flavours.
1270 * lexsup.c (parse_args) <case OPTION_EXPORT_DYNAMIC, case 'E'>:
1271 Set new link_info member export_dynamic.
1272 * ldmain.c (main): Initialize new link_info member export_dynamic.
1276 * ldlang.c (walk_wild): Only call walk_wild_file if
1277 lookup_name returns something.
1278 (lookup_name): If load_symbols fails, return NULL.
1279 (load_symbols): Change to a boolean function.
1280 (open_input_bfds): If load_symbols fails then do not make the
1285 * ldlang.c (record_bfd_errors): Remove.
1287 * emultempl/aix.em: Fix copyright dates.
1291 * elf_x86_64.sh (NONPAGED_TEXT_START_ADDR): Increase.
1292 (TEXT_START_ADDR): Likewise.
1296 * configure.host: Set HOSTING_CRT0/HOSTING_LIBS correctly for s/390.
1300 * emultempl/pe.em (init): Reduce default stack reserve to 0x200000.
1304 * ldlang.c (open_input_bfds): Don't change the bfd error
1305 handler whilst loading symbols.
1309 * configure.tgt: Remove i370-mvs architecture, it is not currently
1314 * emulparams/ppcmacos.sh: Add SYSCALL_MASK and SYMBOL_MODE_MASK
1315 like emulparams/aixppc.sh.
1319 * emultempl/beos.em (gld${EMULATION_NAME}_before_parse): Move
1320 setting of output_filename after bfd_scan_arch.
1321 * emultempl/pe.em: Likewise.
1325 * emulparams/aixrs6.sh: Add SYSCALL_MASK and SYMBOL_MODE_MASK
1326 like emulparams/aixppc.sh.
1328 * emultempl/aix.em (sc): Use ${srcdir}/emultempl/ostring.sed
1329 instead of ${srcdir}/emultempl/stringify.sed.
1333 * emulparams/elf64_aix.sh: Change settings to match IBM linker
1338 * configure.host: Replace linuxoldld with linux*oldld.
1339 * configure.tgt: Likewise.
1343 * emultempl/stringify.sed: Removed again.
1347 * emultempl/aix.em (OUTPUT_ARCH): Defined.
1348 (gld${EMULATION_NAME}_before_parse): Initialize
1349 ldfile_output_architecture, ldfile_output_machine and
1350 ldfile_output_machine_name from ${OUTPUT_ARCH} if possible.
1351 * emultempl/beos.em: Likewise.
1352 * emultempl/elf32.em: Likewise.
1353 * emultempl/linux.em: Likewise.
1354 * emultempl/mipsecoff.em: Likewise.
1355 * emultempl/pe.em: Likewise.
1356 * emultempl/sunos.em: Likewise.
1360 * emultempl/aix.em : (gld${EMULATION_NAME}_read_file)
1361 udate import file format.
1362 (change_symbol_mode) New, same
1363 (is_syscall) New, same
1364 * emulparams/aixppc.sh : add SYSCALL_MASK and SYMBOL_MODE_MASK
1365 * emulparams/aixppc64.sh : same
1366 * emulparams/aixrs6.sh : same
1367 * emulparams/ppcmacos.sh : same
1368 * emultempl/aix.em : use strtoull to parse options
1369 * Makefile.am : add eaixppc64 emulation for xcoff64
1370 * Makefile.in : same
1371 * configure.tgt : same
1373 * scripttempl/aix.sc : default text section offset to 0x10000000
1374 default data section offset to 0x20000000
1375 add .sv3264 and .sv64 pseudo sections
1376 loader and debug sections use the currect section offset.
1378 * emultempl/aix.em : Add xcoff64 support
1379 Add -binitfini support
1380 (gld${EMULATION_NAME}_before_parse) -binitfini
1381 (gld${EMULATION_NAME}_parse_args) same
1382 (gld${EMULATION_NAME}_before_allocation) format change for special
1385 * emulparams/aixppc64.sh : New file for xcoff64 support
1389 * emultempl/elf32.em (ELF_INTERPRETER_SET_DEFAULT): Use this new
1390 variable to avoid non-portable shell construct.
1394 * ldmain.c (get_emulation): Add -mips5 command line argument.
1398 * emulparams/elf_i386_ldso.sh: New, copied from elf_i386.sh.
1399 (ELF_INTERPRETER_NAME): Define it.
1400 * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Use
1402 * configure.tgt (targ_emul, targ_extra_emuls)
1403 [i[3456]86-*-solaris2*, i[3456]86-*-solaris*]: Use elf_i386_ldso
1404 as primary, elf_i386 as extra.
1405 * Makefile.am (ALL_EMULATIONS): Added eelf_i386_ldso.o.
1406 (eelf_i386_ldso.c): New rule.
1407 * Makefile.in: Rebuilt.
1411 * lexsup.c (ld_options): Allow -I to be an alias for
1412 --dynamic-linker. This is for Solaris compatability.
1413 * ld.texinfo: Document that -I can be used.
1418 * ldlang.c (wild_doit): Use linker_has_input to reliably determine
1419 whether an input section is the first one assigned to an output
1421 Assorted formatting fixes.
1425 * Makefile.am (ld.dvi): Search bfd/doc for texinfo files.
1426 * Makefile.in: Ditto.
1430 * emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Put
1431 .gnu.linkonce.ia64unw{,i} sections into corresponding .IA_64.unwind*
1433 * emulparams/elf64_aix.sh (OTHER_READONLY_SECTIONS): Likewise.
1437 * ldlang.c (lang_process): Call bfd_merge_sections.
1441 * ldgram.y: Fix typo.
1445 * emultempl/elf32.em: Include "libiberty.h".
1446 (gld${EMULATION_NAME}_vercheck): Call basename () to get the
1447 basename of the bfd filename.
1448 (gld${EMULATION_NAME}_stat_needed): Likewise.
1449 (gld${EMULATION_NAME}_try_needed): Likewise.
1450 (gld${EMULATION_NAME}_open_dynamic_archive): Likewise.
1454 * emultempl/pe.em: Include <ctype.h>.
1458 * emulparams/elf32openrisc.sh: New file.
1460 * Makefile.am: Add OpenRISC target.
1461 * Makefile.in: Regenerated.
1463 * configure.tgt: Add openrisc-*-* mapping.
1467 * emultempl/aix.em: Replace buystring with xstrdup.
1468 * emultempl/beos.em: Replace buystring with xstrdup.
1472 * ldfile.c: Include "libiberty.h".
1473 * ldlex.l: Likewise.
1475 * ldmisc.c (buystring): Removed.
1476 * ldmisc.h: Likewise.
1478 * ldfile.c: Replace buystring with xstrdup.
1479 * ldlang.c: Likewise.
1480 * ldlex.l: Likewise.
1481 * ldmain.c: Likewise.
1482 * ldmisc.c: Likewise.
1483 * lexsup.c: Likewise.
1484 * mpw-eppcmac.c: Likewise.
1488 * emulparms/elf_x86_64.sh (MAXPAGESIZE): Fix value.
1492 * ldlang.c (load_symbols): Give emulation a chance
1493 to process unrecognized file before fatal error is
1494 reported, not after.
1498 * configure.tgt: Add arm-vxworks target.
1499 * scripttempl/armcoff.sc: Support .text or .data as a section name
1505 * ld.texinfo: Document --fatal-warnings.
1508 * ldmisc.c (vfinfo): Set flag to inhibit making executable if
1509 warnings have been turned into errors.
1510 * lexsup.c (OPTION_WARN_FATAL): Define.
1511 (ld_options): Entry for --fatal-warnings.
1512 (parse_args): Handle OPTION_WARN_FATAL.
1513 * ld.h (ld_config_type): Add fatal_warnings field.
1517 * ldmain.c (main): Default to discard_sec_merge.
1518 * lexsup.c (OPTION_DISCARD_NONE): Define.
1519 (ld_options): Add --discard-none.
1520 (parse_args): Handle OPTION_DISCARD_NONE.
1521 * ldlang.c (wild_doit): SEC_MERGE should be set in the output
1522 section only if SEC_MERGE and SEC_STRINGS flags and entsize of
1523 all its input sections match.
1527 * Makefile.am (ALL_EMULATIONS): Add eelf32ltsmip.o.
1528 (ALL_64_EMULATIONS): Add eelf64btsmip.o and eelf64ltsmip.o.
1529 (eelf32ltsmip.c): New target.
1530 (eelf64btsmip.c): Likewise.
1531 (eelf64ltsmip.c): Likewise.
1532 * Makefile.in: Regenerated.
1534 * configure.tgt (mips*el-*-linux-gnu): Uses traditional MIPS
1536 (mips*-*-linux-gnu*): Likewise.
1538 * emulparams/elf32ltsmip.sh: New. Traditional little endian
1540 * emulparams/elf64btsmip.sh: New. Traditional 64bit big endian
1542 * emulparams/elf64ltsmip.sh: New. Traditional 64bit little
1547 * emulparams/criself.sh (EXECUTABLE_SYMBOLS): Cannot provide
1548 correct value of __Stext here.
1549 (TEXT_START_SYMBOLS): Define; always define __Stext, to start of
1552 * emulparams/crislinux.sh: Remove FIXME.
1556 * emulparams/hppalinux.sh (MAXPAGESIZE): Set to 64k.
1557 (TEXT_START_ADDR, TARGET_PAGE_SIZE): Likewise.
1561 * configure.tgt (cris-*-*): Change default emulation to criself.
1562 (cris-*-*aout*): New rule.
1566 * emulparams/hppalinux.sh (MAXPAGESIZE): Set to 0x4000.
1567 (TEXT_START_ADDR, TARGET_PAGE_SIZE): Ditto.
1571 * ld.texinfo (Overview): Fix syntax in texi code.
1575 * ld.texinfo: Put @c man indications to generate the ld man page.
1576 When generating man, define all the variables. Define SEEALSO
1577 and SYNOPSIS. Re-organize some lines to avoid the cross references.
1578 * Makefile.am (MANCONF, TEXI2POD, POD2MAN): New variables.
1579 (ld.1): Generate from ld.texinfo.
1580 * Makefile.in: Regenerate.
1584 * scripttempl/i386go32.sc: Support the GCC flags '-ffunction-sections'
1585 and '-fdata-sections'. Set the VMA of STABS sections to zero.
1589 * emultmpl/elf32.em (gld${EMULATION_NAME}_search_needed): If NAME
1590 is an absolute path look only for this file and not along the path.
1594 * emultempl/elf32.em (OPTION_GROUP): New macro.
1595 Add new option Bgroup to longopts.
1596 (gld*_parse_args): Handle GROUP_OPTION and recognize -z defs.
1597 (gld*_list_options): Add -Bgroup and -z defs.
1598 * ld.1: Document -Bgroup and -z defs.
1599 * ld.texinfo: Likewise.
1603 * scripttempl/elfd10v.sc (.rodata,.rodata1,.data1,.sdata): Deal
1604 with sections created by -fdata-sections.
1605 (.dynbss,.bss): Ditto.
1609 * emultempl/m68kelf.em (m68k_elf_after_allocation): Call
1610 after_allocation_default, not gld..._before_allocation.
1614 * configure.in (BFD_VERSION): New.
1615 (AM_INIT_AUTOMAKE): Use $BFD_VERSION.
1616 * configure: Regenerate.
1617 * Makefile.am: Run "make dep-am"
1618 * Makefile.in: Regenerate.
1622 * emulparams/elf64_aix.sh: Add additional read-only sections;
1623 uncomment lines which are now required.
1627 * ldlang.c (open_input_bfds): Set the bfd error handler so
1628 that problems can be caught whilst loading symbols.
1629 (record_bfd_errors): New function: Report BFD errors and mark
1630 the executable output as being invalid.
1634 * configure.host: Add configuration for ia64-*-aix*.
1635 * Makefile.am (ALL_64_EMULATIONS): Add emulation for ia64-*-aix*.
1636 Add dependencies for eelf64_aix.c.
1637 * Makefile.in: Regenerate.
1638 * configure.tgt: Add ia64-*-aix* mapping.
1639 * emulparams/elf64_aix.sh: Add settings for elf64 on aix5.
1643 * ldfile.c (ldfile_open_file): Set entry->search_dirs_flag to
1644 false if we found the file.
1648 * configure.tgt: Add FreeBSD/Alpha, FreeBSD/x86-64, FreeBSD/ia64,
1649 FreeBSD/PowerPC, FreeBSD/arm, and FreeBSD/sparc64 entries.
1653 * Makefile.am: Add PDP-11 target.
1654 * configure.tgt: Likewise.
1655 * emulparams/pdp11.sh: New file.
1659 * configure.host: Add a generic FreeBSD configuration entry such that
1660 all [modern] FreeBSD systems on all platforms will look the same.
1664 * configure.tgt: Remove mention of earmelf_linux26.
1668 * emulparams/elf64_ia64.sh (OTHER_GOT_SYMBOLS): Remove.
1672 * ldexp.h (node_type): Add etree_provided.
1673 * ldexp.c (exp_fold_tree): Handle etree_provided. Set the node
1674 type to etree_provided if defined by PROVIDE. Allow updating
1676 (exp_print_tree): Handle etree_provided.
1677 * mpw-elfmips.c (gldelf32ebmip_find_exp_assignment): Handle
1682 * emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Add
1683 .IA_64.unwind.* pattern to unwind table section and
1684 .IA_64.unwind_info* pattern to unwind info section.
1688 * Makefile.am: Add linux target for S/390.
1689 * Makefile.in: Likewise.
1690 * configure.host: Likewise.
1691 * configure.tgt: Likewise.
1692 * emulparams/elf64_s390.sh: New file.
1693 * emulparams/elf_s390.sh: New file.
1697 * configure.tgt (sparc64-*-linux-gnu*): Add elf32_sparc into
1699 (sparc-*-linux-gnu*): Add elf64_sparc into targ_extra_libpath.
1703 * Makefile.am: Remove mention of earmelf_linux26.
1704 * Makefile.in: Regenerate.
1708 * emulparams/armelf_linux.sh (TEXT_START_ADDR): Set to 0x8000.
1709 * emulparams/armelf_linux26.sh: Delete.
1710 * configure.tgt: Remove mention of armelf_linux26 emulation.
1714 * ld.1: Replace occurances of -oformat with --oformat.
1718 * ldlang.c (lang_leave_overlay): Don't set lma_region when
1719 load_base is specified.
1723 * emultempl/elf32.em: Correct spelling in comments and listed
1728 * ldlang.c (lang_leave_overlay): Only set lma_region from the
1729 default for the first section of a group of overlay sections.
1733 * Makefile.am (GENSCRIPTS): Pass exec_prefix.
1734 * Makefile.in: Regenerate.
1735 * genscripts.sh: Use exec_prefix parameter to specify tool lib.
1736 Check for null tool_dir.
1740 * emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Add IA_64.unwind
1741 and IA_64.unwind.info.
1745 * ldlang.c (lang_check): Merge the private data only if the
1746 input file has contents.
1750 * emulparams/hppalinux.sh (OUTPUT_FORMAT): Set to elf32-hppa-linux.
1752 * emultempl/hppaelf.em (hppaelf_after_parse): New function,
1753 enabling search for libmilli. On a relocatable link, make .text
1755 (LDEMUL_AFTER_PARSE): Define.
1756 (hppaelf_finish): Correct spelling of relocatable in comments.
1758 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
1759 rummage through the script for sections on the unique list.
1760 Correct length of strncmp for ".note".
1761 (gld${EMULATION_NAME}_check_needed): Rearrange function.
1763 * ldlang.c (unique_section_list): New var.
1764 (unique_section_p): New function.
1765 (walk_wild_section): Don't match sections on unique_section_list.
1766 (lang_add_unique): New function.
1767 Correct spelling of relocatable in comments.
1769 * ldlang.h (struct unique_sections): Declare.
1770 (unique_section_list): Declare.
1771 (unique_section_p): Declare.
1772 (lang_add_unique): Declare.
1774 * lexsup.c (ld_options): Allow --unique to take an optional arg.
1775 (parse_args [OPTION_UNIQUE]): Call lang_add_unique.
1777 * ld.texinfo (--unique): Update.
1781 * lexsup.c (parse_args): Remove spurious white space.
1785 * lexsup.c (parse_args): Update copyright date.
1789 * configure.host: Set HOSTING_LIBS appropriately for ix86-cygwin.
1793 * scripttempl/h8300.sc: Fix formatting. Fix a comment typo.
1794 * scripttempl/h8300h.sc: Fix formatting.
1795 * scripttempl/h8300s.sc: Likewise.
1796 * scripttempl/h8500.sc: Likewise.
1797 * scripttempl/h8500b.sc: Likewise.
1798 * scripttempl/h8500c.sc: Likewise.
1799 * scripttempl/h8500m.sc: Likewise.
1800 * scripttempl/h8500s.sc: Likewise.
1804 * emultempl/elf32.em: Only perform Linux ld hints processing when
1809 * ld.texinfo (Bug Reporting): Update email address for reports.
1813 * lexsup.c (parse_args): Set opterr to 0 and detect unparsed long
1814 options by checking for a return value of '?' not -1.
1818 * lexsup.c (struct ld_option): Add new enum value:
1820 (ld_options[]): Change -omagic, -output and -oformat options
1821 to be EXACTLY_TWO_DASHES.
1822 (OUTPUT_COUNT): Use ARRAY_SIZE.
1823 (parse_args): Change parameter 'argc' to unsigned.
1824 Place EXACTLY_TWO_DASHES options into new really_longopts
1826 If getopt_long_only fails, try calling getopt_long using the
1827 really_longopts array.
1828 (help): Print a double dash for both EXACTLY_TWO_DASHES and
1831 * ldlex.h: Fix prototype of parse_args.
1833 * ld.texinfo: Document that long options starting with 'o'
1834 must be preceeded by two dashes. Change example of a single
1835 dashed long option from -oformat to -trace-symbol.
1839 * emultempl/pe.em (OPTION_NO_DEFAULT_EXCLUDES): Define.
1840 (longopts[]): New --no-default-excludes option.
1841 (gld_${EMULATION_NAME}_list_options): Document.
1842 (gld_${EMULATION_NAME}_parse_args): Handle.
1846 * ldlang.c (new_stat): Revert the last beautification with "innocent"
1847 whitespace, it breaks the K&R C preprocessor.
1851 * ld.texinfo: Add notes about --whole-archive and gcc.
1855 * lexsup.c (OPTION_ALLOW_SHLIB_UNDEFINED): Define.
1856 (ld_options): Entry for --allow-shlib-undefined.
1857 (parse_args): Handle OPTION_ALLOW_SHLIB_UNDEFINED.
1858 * ldmain.c (main): Initialize link_info.allow_shlib_undefined
1860 * ld.texinfo: Document new command line switch.
1864 * emulparams/elf32ppc.sh (OTHER_READWRITE_SECTIONS):
1865 .fixup is actually read/write.
1866 * emulparams/elf32lppc.sh (OTHER_READWRITE_SECTIONS): Likewise.
1867 * emulparams/elf32ppcsim.sh (OTHER_READWRITE_SECTIONS): Likewise.
1868 * emulparams/elf32lppcsim.sh (OTHER_READWRITE_SECTIONS): Likewise.
1872 * NEWS: Add note about x86_64 architecture.
1876 * scripttempl/i386go32.sc: Use PROVIDE with _etext, _edata, _end.
1877 Set DWARF2 sections to a VMA of zero.
1881 * configure.tgt (arm-*-rtems*, a29k-*rtems*, h8300-*-rtems*):
1883 (sparc*-*-rtemself*, sparc*-*-rtemsaout*): New targets.
1884 (sparc*-*-rtems*): Switched from a.out to ELF.
1888 * Makefile.am (ALL_EMULATIONS): Add eelf_x86_64.o
1889 (eelf_x86_64.c): New.
1890 * Makefile.in: Regenerate.
1891 * configure.tgt: Add support for x86_64-*-linux-gnu*.
1892 * emulparams/elf_x86_64.sh: New.
1896 * emulparams/crislinux.sh (ENTRY): Change back to _start.
1897 (TEXT_START_SYMBOLS): Remove conditional setting of __start.
1899 * scripttempl/crisaout.sc: Change all RELOCATING not related to
1900 merging non-a.out sections into CONSTRUCTING.
1904 * ld.1 (COPYING): Mention that the GNU Free Documentation
1905 License is present in the sources, but not the output, and
1906 also available from the GNU website.
1907 (GNU Free Documentation License): Comment out this section.
1911 * emulparams/elf64alpha.sh (ENTRY): Remove leading underscore as ELF
1916 * ld.1: Remove old date so it does not give the impression the manpage
1921 * configure.tgt (xscale-coff): Add target.
1922 (xscale-elf): Add target.
1926 * ldmain.c (main): Remove redundant init of config.make_executable
1931 * emulparams/elf64alpha.sh (MAXPAGESIZE): Typo -- 64k, not 1M.
1935 * scripttempl/h8300.sc: Fix formatting.
1936 * scripttempl/h8300h.sc: Likewise.
1937 * scripttempl/h8300s.sc: Likewise.
1941 * scripttempl/elf32avr.sc: Fix bug in .eeprom segment.
1945 * emultempl/pe.em: Define ___start_SECNAME and ___stop_SECNAME
1946 around orphan sections whose names can be represented in C.
1950 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): New local
1951 hold_sdata. If SEC_SMALL_DATA set, set place to hold_sdata.
1955 * ld.texinfo: Add GNU Free Documentation License.
1956 * ldint.texinfo: Add GNU Free Documentation License.
1957 * ld.1: Add GNU Free Documentation License.
1961 * ldlex.l (yy_create_string_buffer): Init yy_is_our_buffer,
1962 yy_is_interactive, yy_at_bol, and yy_fill_buffer.
1964 * Makefile.am (DISTCLEANFILES): Add stringify.sed.
1965 Move 2000-11-02 Makefile.in changes to this file.
1966 * Makefile.in: Regenerate.
1970 * scripttempl/h8300.sc: Use ${CONSTRUCTING...} to enclose
1971 constructors and destructors.
1972 * scripttempl/h8300h.sc: Ditto.
1973 * scripttempl/h8300s.sc: Ditto.
1974 * scripttempl/h8500.sc: Ditto.
1975 * scripttempl/h8500b.sc: Ditto.
1976 * scripttempl/h8500c.sc: Ditto.
1977 * scripttempl/h8500m.sc: Ditto.
1978 * scripttempl/h8500s.sc: Ditto.
1979 * scripttempl/v850.sc: Ditto.
1980 * scripttempl/w65.sc: Ditto.
1981 * scripttempl/z8000.sc: Ditto.
1985 * Makefile.in (e_i386_chaos.c): New rule.
1986 (ALL_EMULATIONS): Added e_i386_chaos.o.
1987 * emulparams/elf_i386_chaos.sh: New file.
1988 * configure.tgt: Recognise i[3456]86-chaosdev-storm-chaos.
1992 * emulparams/elf64_sparc.sh (TEXT_START_ADDR,
1993 NONPAGED_TEXT_START_ADDR): Set to 4GB for Solaris targets.
1994 Fix sed invocation, so that it coped with '/' in Solaris 64bit
1995 library path suffix.
2000 * scripttempl/crisaout.sc (.text, .data): Pad, with ALIGN (32),
2001 for consecutive sections.
2005 * lexsup.c: New option OPTION_TARGET_HELP. Prints all target specific
2007 * ld.texinfo: Added notes about this new option.
2011 * emultempl/pe.em (_after_open): Add tests of return values from
2012 bfd functions. Emit appropriate error messages if necessary.
2016 * emultempl/pe.em (_after_open): Delete 'is2' and 'nsyms'
2017 local variables - they are not used, but leave in the call to
2018 bfd_canonicalize_symtab.
2019 (_open_dynamic_archive): Add #ifdef DLL_SUPPORT around use of
2020 pe_dll_search_prefix.
2024 * emultempl/pe.em (pe_dll_search_prefix): New variable,
2025 (longopts): New --dll-search-prefix option.
2026 (gld_${EMULATION_NAME}_list_options): Document.
2027 (gld_${EMULATION_NAME}_parse_args): Handle.
2028 (gld_${EMULATION_NAME}_open_dynamic_archive): When linking
2029 dynamically, search for a dll named '<prefix><basename>.dll'
2030 in preference to 'lib<basename>.dll' if --dll-search-prefix
2035 * ldlang.c (section_already_linked): Set kept_section instead of
2040 * deffile.h: Fix formatting.
2041 * lexsup.c: Likewise.
2046 * pe-dll.c (make_one): Do not generate code thunk for DATA
2048 (process_def_file): deduce DATA flag for auto-export sumbols.
2052 * ld.h: Fix formatting.
2053 * ldcref.c: Likewise.
2054 * ldctor.h: Likewise.
2055 * ldemul.c: Likewise.
2056 * ldemul.h: Likewise.
2057 * ldexp.c: Likewise.
2058 * ldexp.h: Likewise.
2059 * ldfile.c: Likewise.
2060 * ldfile.h: Likewise.
2061 * ldlang.c: Likewise.
2062 * ldlang.h: Likewise.
2063 * ldmain.c: Likewise.
2064 * pe-dll.c: Likewise.
2066 * pe-dll.c: Revert some formatting fixes.
2070 * pe-dll.c: Fix formatting.
2074 * ldlang.c: Fix formatting.
2078 * pe-dll.c (fill_edata): initialize entire block
2079 (make_one): fill in correct section.
2083 * ldexp.c: Fix formatting.
2087 * emultempl/pe.em (gld_*_after_open): detect case where there two
2088 import libraries for same dll; rename one to ensure proper link
2091 * pe-dll.c (process_def_file): compare ordinals to -1, not 0; fix
2093 (generate_edata): fix typo
2097 * scripttempl/crisaout.sc (ENTRY): Now __start.
2098 (.text): Add default setting for __start.
2099 Remove CONSTRUCTORS handling.
2100 (/DISCARD/): Add .gnu.warning.*.
2101 * emulparams/crislinux.sh (ENTRY): Now __start.
2102 (TEXT_START_SYMBOLS): New; provide __Stext and __start default.
2103 * emulparams/criself.sh (OUTPUT_FORMAT): Now elf32-us-cris.
2104 (ENTRY): Now __start.
2105 (INITIAL_READONLY_SECTIONS): Add KEEP for .startup.
2106 (EXECUTABLE_SYMBOLS): Add default setting for __start.
2110 * deffile.h: Fix formatting.
2112 * ldcref.c: Likewise.
2113 * ldctor.c: Likewise.
2114 * ldctor.h: Likewise.
2115 * ldemul.c: Likewise.
2116 * ldemul.h: Likewise.
2117 * ldexp.c: Likewise.
2118 * ldexp.h: Likewise.
2119 * ldfile.c: Likewise.
2120 * ldfile.h: Likewise.
2121 * ldlang.c: Likewise.
2122 * ldlang.h: Likewise.
2123 * lexsup.c: Likewise.
2125 * pe-dll.c: Likewise.
2129 * pe-dll.c (process_def_file): Uninitialized data wasn't
2130 exported with --export-all-symbols switch.
2134 * pe-dll.c (fill_edata): rearrange the data so that ordinals and
2135 noname work properly.
2139 * ld.texinfo (HPPA ELF32): New section.
2141 * emultempl/hppaelf.em (group_size): New.
2142 (hppaelf_finish): Pass group_size to elf32_hppa_size_stubs.
2143 (PARSE_AND_LIST_PROLOGUE): Add OPTION_STUBGROUP_SIZE.
2144 (PARSE_AND_LIST_LONGOPTS): Add --stub-group-size. Duplicate
2145 options to prevent abbreviations matching.
2146 (PARSE_AND_LIST_OPTIONS): Describe the above. Reformat.
2147 (PARSE_AND_LIST_ARGS_CASES): Handle it.
2151 * emultempl/m68kelf.em: Conditionalise the embedded relocs feature
2152 on the m68*-*-elf target. Make it support COFF input objects.
2156 * ldmain.c: Fix formatting.
2157 * ldmisc.c: Likewise.
2158 * ldver.c: Likewise.
2159 * ldwrite.c: Likewise.
2163 * ldwrite.c (clone_section): Silence gcc warnings.
2167 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Handle
2168 out of memory failure.
2170 * ldwrite.c (ldwrite): Remove unnecessary einfo arg.
2171 (clone_section): Handle out of memory failures. Rename var to
2172 avoid c++ reserved word.
2176 * emultempl/hppaelf.em (hppaelf_add_stub_section): Rename
2177 stub_name param to stub_sec_name.
2178 (hppaelf_finish): Modify call to elf32_hppa_size_stubs.
2182 * emultempl/m68kelf.em: New file.
2183 * emulparams/m68kelf.sh (EXTRA_EM_FILE): Use it.
2184 * Makefile.am (em68kelf.c): Add dependency on m68kelf.em.
2185 * Makefile.in: Regenerate.
2189 * emulparams/hppalinux.sh (DATA_START_SYMBOLS): Provide $global$
2194 * ldmain.c (multiple_definition): Disable relaxation if
2195 multiple symbol definitions are encountered - otherwise the
2196 linker could abort with an assertion failure.
2200 * mri.c: Fix formatting.
2204 * configure.in (AC_ISC_POSIX): Put after AC_CANONICAL_SYSTEM.
2205 * configure: Rebuild.
2209 * Makefile.am (lexsup.o): Also depend on $(INCDIR)/demangle.h.
2210 * Makefile.in: Rebuild.
2214 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Fix
2215 broken list handling. Create __start_SECNAME and __stop_SECNAME
2216 when no place-holder. Add some comments. Test both SEC_CODE and
2217 SEC_READONLY for hold_text to prevent .rodata orphan poisoning.
2218 Handle case where no output section statement created.
2222 * configure.tgt (sh-*-linux*): Added.
2223 * Makefile.am: Added eshelf_linux and eshlelf_linux.
2224 * Makefile.in: Rebuilt.
2225 * emulparams/shelf_linux.sh: New file.
2226 * emulparams/shlelf_linux.sh: New file.
2230 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
2231 try shuffling sections when the orphan happens to be the place
2232 holder. Keep count of unique section names generated so we speed
2233 the search for a new name.
2237 * configure: Rebuilt with new libtool.m4.
2241 * Makefile.in: Regenerate.
2242 * aclocal.m4: Regenerate.
2243 * configure: Regenerate.
2244 * config.in: Regenerate.
2245 * po/ld.pot: Regenerate.
2247 * ldint.texinfo: Remove CVS revision marker - it foils local
2250 * emultempl/ticoff.em: Remove extraneous comma.
2254 * emultempl/hppaelf.em (hppaelf_add_stub_section): Add SEC_RELOC
2255 to stub section flags.
2256 (hppa_for_each_input_file_wrapper): New.
2257 (hppa_lang_for_each_input_file): New.
2258 (lang_for_each_input_file): Define to call above.
2259 (multi_subspace): New.
2260 (hppaelf_finish): Pass multi_subspace to elf32_hppa_size_stubs.
2261 (PARSE_AND_LIST_PROLOGUE): Define.
2262 (PARSE_AND_LIST_LONGOPTS): Define.
2263 (PARSE_AND_LIST_OPTIONS): Define.
2264 (PARSE_AND_LIST_ARGS_CASES): Define.
2265 (hppaelf_finish): Call elf32_hppa_set_gp.
2266 (hppaelf_set_output_arch): Remove.
2267 (LDEMUL_SET_OUTPUT_ARCH): Remove.
2269 * emulparams/hppalinux.sh (ELFSIZE): Define.
2271 (OTHER_READONLY_SECTIONS): Define.
2273 (GENERATE_SHLIB_SCRIPT): Define.
2275 * ldlang.c: Add missing prototypes, and tidy others. Change CONST
2276 to const throughout. Change `void *' to `PTR' throughout.
2277 (lang_memory_default): Function is local to file, add `static'.
2279 * Makefile.am (ehppaelf.c): Depend on emultempl/elf32.em.
2280 (ehppalinux.c): Likewise.
2281 (earmelf.c): Likewise.
2282 (earmelf_linux.c): Likewise.
2283 (earmelf_linux26.c): Likewise.
2284 * Makefile.in: Regenerate.
2286 * ld.h (ld_config_type): Add unique_orphan_sections.
2287 * lexsup.c (OPTION_UNIQUE): Define.
2288 (ld_options): Add "--unique".
2289 (parse_args): Handle it.
2290 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
2291 search for an existing output section if unique_orphan_sections is
2292 set. Make use of bfd_get_unique_section_name rather than
2293 duplicating code here.
2294 * ld.texinfo: Describe --unique.
2296 * lexsup.c (ld_options): Make split-by-reloc arg optional. Add
2297 optional arg to split-by-file.
2298 (parse_args): Handle them.
2299 * ld.texinfo: Update description of these options.
2300 * ldwrite.c (clone_section): Pass in the section name. Replace
2301 local code with bfd_get_unique_section_name.
2302 (split_sections): Tidy code and comments. Use a list traversal
2303 more appropriate to the list construction. Handle cooked section
2304 sizes. Split when split_by_reloc reached rather than exceeded.
2305 Track section size and split when split_by_file reached. Fix
2306 link_order_tail (even though it's not used).
2307 (ldwrite): Modify condition for calling split_sections to suit
2308 changed split_by_reloc and split_by_file.
2309 * ldmain.c (main): Init config.split_by_reloc and
2310 config.split_by_file to -1.
2311 * ld.h (ld_config_type): Change split_by_reloc to unsigned.
2312 Change split_by_file to bfd_size_type.
2316 * configure.in: Increase version number to 2.10.91.
2317 * NEWS: Mention new ability to support removal of duplicate DWARF2
2319 * configure: Regenerate.
2320 * aclocal.m4: Regenerate.
2321 * config.in: Regenerate.
2325 * scripttempl/elf.sc: Add .gnu.linkonce.wi.* to .debug_info
2327 * scripttempl/elf32avr.sc: Ditto.
2328 * scripttempl/elfd10v.sc: Ditto.
2329 * scripttempl/elfd30v.sc: Ditto.
2330 * scripttempl/elfi370.sc: Ditto.
2331 * scripttempl/elfm68hc11.sc: Ditto.
2332 * scripttempl/elfm68hc12.sc: Ditto.
2333 * scripttempl/elfi386beos.sc: Ditto.
2334 * scripttempl/v850.sc: Ditto.
2338 * acinclude.m4: Include libtool and gettext macros from the
2340 * aclocal.m4, configure: Rebuilt.
2344 * ldlang.c (open_output): When choosing the target for a
2345 particular endianness, do nothing if the target is not
2350 * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Don't
2351 check -rpath nor LD_RUN_PATH for cross link.
2352 * ld.texinfo: Document the change.
2356 * NEWS: Mention support for CRIS.
2360 * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Get
2361 the current runpath list from bfd_elf_get_runpath_list ()
2366 * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Search
2367 the DT_RPATH/DT_RUNPATH entries for DT_NEEDED after
2368 LD_LIBRARY_PATH for native linker. Display the needed DSO if
2369 trace_file_tries is non-zero.
2370 (gld${EMULATION_NAME}_try_needed): Report the needed DSO found
2371 if trace_file_tries is non-zero.
2373 * ld.texinfo: Document the usage of DT_RPATH/DT_RUNPATH.
2378 * NEWS: Mention i860 support.
2382 * scripttempl/elf.sc: Fix last change to use correct comment
2387 * scripttempl/elf.sc: Add a comment giving the correspondence
2388 between sections, per-datum sections, and linkonce sections. Make
2389 the comment true even for .bss, .sdata, .sdata2, .sbss, and
2394 * emulparams/elf32_i860.sh: New file.
2395 * configure.tgt: Recognize new target i860-stardent-{sysv4*|elf*}.
2396 * Makefile.am (ALL_EMULATIONS): Add eelf32_i860.o.
2397 (eelf32_i860.c): New rule.
2398 * Makefile.in: Regenerate.
2402 * emulparams/mipspe.sh (ENTRY): Add definition.
2406 * emultempl/elf32.em (_after_close): Refer to -rpath not --rpath
2411 * scripttempl/elfm68hc11.sc: Define __bss_size symbol to indicate
2412 the final size of .bss section.
2413 * scripttempl/elfm68hc12.sc: Likewise.
2417 * emultempl/elf32.em (gld_${EMULATION_NAME}_parse_args): Rename to
2418 gld${EMULATION_NAME}_parse_args for consistency. Combine
2419 lastoptind and prevoptind vars, and keep track of last optind.
2420 (gld_${EMULATION_NAME}_list_options): Rename to
2421 gld${EMULATION_NAME}_list_options.
2425 * configure.tgt: Select targ_emul=elf_i386 for Unixware 7
2426 (i586-sco-sysv5uw7.1.0).
2430 * emulparams/elf64alpha.sh (PARSE_AND_LIST_ARGS): Removed.
2431 (PARSE_AND_LIST_PROLOGUE): New.
2432 (PARSE_AND_LIST_LONGOPTS): Likewise.
2433 (PARSE_AND_LIST_OPTIONS): Likewise.
2434 (PARSE_AND_LIST_ARGS_CASES): Likewise.
2435 (PARSE_AND_LIST_EPILOGUE): Likewise.
2439 * emultempl/armelf.em: Elide functions common to elf32.em,
2440 ie. most of the file.
2441 (arm_elf_after_open): New. Do arm specific things then call
2442 gld${EMULATION_NAME}_after_open.
2443 (arm_elf_before_allocation): New. Call
2444 gld${EMULATION_NAME}_before_allocation then do arm specifics.
2445 (PARSE_AND_LIST_PROLOGUE): Define.
2446 (PARSE_AND_LIST_SHORTOPTS): Define.
2447 (PARSE_AND_LIST_LONGOPTS): Define.
2448 (PARSE_AND_LIST_OPTIONS): Define.
2449 (PARSE_AND_LIST_ARGS_CASES): Define.
2450 (LDEMUL_AFTER_OPEN): Define.
2451 (LDEMUL_BEFORE_ALLOCATION): Define.
2452 (LDEMUL_BEFORE_PARSE): Define.
2453 (LDEMUL_FINISH): Define.
2455 * emultempl/hppaelf.em: Similarly zap most of this file.
2456 (hppaelf_add_stub_section): Prototype.
2457 (hppaelf_layaout_sections_again): Prototype.
2458 (hook_in_stub): Prototype.
2459 (LDEMUL_SET_OUTPUT_ARCH): Define.
2460 (LDEMUL_FINISH): Define.
2461 (LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS): Define.
2463 * emulparams/armelf.sh (TEMPLATE_NAME): Use elf32.
2464 (EXTRA_EM_FILE): New.
2465 * emulparams/armelf_linux.sh: Likewise.
2466 * emulparams/armelf_linux26.sh: Likewise.
2467 * emulparams/hppalinux.sh: Likewise.
2468 * emulparams/hppaelf.sh: Likewise.
2471 * emultempl/elf32.em: Fix formatting.
2472 (EXTRA_EM_FILE): Source it.
2473 (LDEMUL_BEFORE_PARSE, LDEMUL_SYSLIB, LDEMUL_HLL,
2474 LDEMUL_AFTER_PARSE, LDEMUL_AFTER_OPEN, LDEMUL_AFTER_ALLOCATION,
2475 LDEMUL_SET_OUTPUT_ARCH, LDEMUL_CHOOSE_TARGET,
2476 LDEMUL_BEFORE_ALLOCATION, LDEMUL_GET_SCRIPT, LDEMUL_FINISH,
2477 LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS,
2478 LDEMUL_OPEN_DYNAMIC_ARCHIVE, LDEMUL_PLACE_ORPHAN,
2479 LDEMUL_SET_SYMBOLS, LDEMUL_PARSE_ARGS, LDEMUL_UNRECOGNIZED_FILE,
2480 LDEMUL_LIST_OPTIONS, LDEMUL_RECOGNIZED_FILE,
2481 LDEMUL_FIND_POTENTIAL_LIBRARIES): New shell vars. Add code to
2482 allow functions in this file to be overridden.
2483 (PARSE_AND_LIST_SHORTOPTS): Handle it.
2485 * emultempl/m68kcoff.em: Include ldfile.h before ldemul.h.
2487 * emultempl/elf32.em: Reorganize file.
2491 * emulparams/elf64alpha.sh: Implement "-taso" emulation
2492 specific option to fit 64-bit executable in the lower
2493 31-bit address range. This is done by changing start
2494 address of .interp (the very first section of executable)
2495 and then setting EF_ALPHA_32BIT elf header flag.
2499 * emultempl/m68kcoff.em: New file.
2500 * emulparams/m68kcoff.sh (TEMPLATE_NAME): Use m68kcoff template.
2501 * Makefile.am (em68kcoff.c): Depend on m68kcoff.em rather than
2503 * Makefile.in: Regenerate.
2507 * emultempl/elf32.em (longopts): Duplicate "disable-new-dtags"
2508 and "disable-new-dtags" to stop getopt from treating -d/-e as
2509 abbreviations for these options.
2513 * ld.texinfo: Add documentation for --disable-new-dtags and
2516 * ldmain.c (main): Initialize link_info.new_dtags to false.
2518 * emultempl/elf32.em (gld_${EMULATION_NAME}_parse_args): Add
2519 --disable-new-dtags and --enable-new-dtags.
2520 (gld_${EMULATION_NAME}_list_options): Likewise.
2524 * lexsup.c: Add optional style to demangle switch
2525 * ld.texinfo: Document optional style to demangle switch.
2529 * Makefile.am (ALL_EMULATIONS): Add ecrisaout.o, ecriself.o,
2531 (ecrisaout.c, ecriself.c, ecrislinux.c): New rules.
2532 Regenerate dependencies.
2533 * Makefile.in: Rebuild.
2534 * configure.tgt (cris-*-*): New target.
2535 * emulparams/crisaout.sh, emulparams/criself.sh,
2536 emulparams/crislinux.sh, scripttempl/crisaout.sc: New files.
2537 * po/POTFILES.in, po/ld.pot: Regenerate.
2541 * emultempl/elf32.em (gld_${EMULATION_NAME}_list_options):
2542 Print out ignored -z options.
2546 * emulparams/elf32mcore.sh (PARSE_AND_LIST_ARGS): Removed.
2547 (PARSE_AND_LIST_PROLOGUE): New.
2548 (PARSE_AND_LIST_LONGOPTS): Likewise.
2549 (PARSE_AND_LIST_OPTIONS): Likewise.
2550 (PARSE_AND_LIST_ARGS_CASES): Likewise.
2552 * ldmain.c (main): Clear link_info.flags and link_info.flags_1.
2554 * lexsup.c (ld_options): Comment out 'z'.
2555 (parse_args): Likewise.
2557 * emultempl/elf32.em: Include "elf/common.h".
2558 (gld_${EMULATION_NAME}_parse_args): Defined. Handle some -z
2560 (gld_${EMULATION_NAME}_list_options): Likewise.
2562 * ld.texinfo: Add documentation for the recognized -z options.
2566 * emultempl/elf32.em (gld${EMULATION_NAME}_try_needed): Call
2567 bfd_elf_set_dt_needed_soname ().
2571 * pe-dll.c (pe_dll_id_target): check object target name also
2575 * scripttempl/elf.sc (.init): Only do ${INIT_START} and
2576 ${INIT_END} if relocating.
2577 (.fini): Likewise ${FINI_START} and ${FINI_END}.
2581 * emultempl/pe.em (gld_*_open_dynamic_archive): New search
2582 order for dynamic library '-lfoo' on pei386: libfoo.dll.a,
2583 foo.dll.a, libfoo.a, libfoo.dll, foo.dll. This fixes compatibility
2584 errors introduced by the old dynamic lib search order.
2588 * pe-dll.c (process_def_file): auto-export data items also
2589 (pe_process_import_defs): also see if _imp_ form needed
2593 * pe-dll.c (make_one): fix a typo in the __imp_ name decoration
2594 for dll import libraries
2598 * scripttempl/i386go32.sc: Support the g++ attribute init_priority in
2599 gcc 2.95.2 and later.
2603 * ldfile.c (ldfile_try_open_bfd): Output '\n' after an error
2608 * ldemul.h (struct lang_input_statement_struct): Remove forward
2610 (struct search_dirs): Likewise.
2611 * ldfile.h (struct lang_input_statement_struct): Likewise.
2612 Protect file from multiple inclusion.
2613 * ldlang.h (LANG_FOR_EACH_INPUT_STATEMENT): Move file_chain
2614 declaration from macro to file scope.
2616 * ldemul.c: ldexp.h,ldlang.h,ldfile.h,ldemul.h go in this order.
2617 * ldgram.y: Likewise here.
2618 * ldlang.c: And here.
2619 * ldmain.c: And here.
2620 * mpw-elfmips.c: And here.
2621 * mpw-eppcmac.c: And here.
2622 * emultempl/aix.em: And here.
2623 * emultempl/armcoff.em: And here.
2624 * emultempl/armelf.em: And here.
2625 * emultempl/armelf_oabi.em: And here.
2626 * emultempl/beos.em: And here.
2627 * emultempl/elf32.em: And here.
2628 * emultempl/hppaelf.em: And here.
2629 * emultempl/linux.em: And here.
2630 * emultempl/lnk960.em: And here.
2631 * emultempl/pe.em: And here.
2632 * emultempl/sunos.em: And here.
2633 * mpw-esh.c: And here. Include ldexp.h and ldlang.h too.
2634 * mpw-idtmips.c: Ditto.
2635 * emultempl/generic.em: Ditto.
2636 * emultempl/gld960.em: Ditto.
2637 * emultempl/gld960c.em: Ditto.
2638 * emultempl/mipsecoff.em: Ditto.
2639 * emultempl/ticoff.em: Ditto.
2640 * emultempl/vanilla.em: Ditto.
2642 * pe-dll.c: Include ldfile.h
2643 * ldver.c: Include ldexp.h, ldlang.h, ldfile.h
2645 * mpw-elfmips.c: (gldelf32ebmip_before_allocation): Add missing
2646 arguments to bfd_elf32_size_dynamic_sections call.
2647 (gldelf32ebmip_place_orphan): Add missing arguments to
2648 lang_leave_output_section_statement call.
2652 * emultempl/pe.em (pe_enable_stdcall_fixup): Protect with
2654 (strhash): Likewise.
2655 (compute_dll_image_base): Likewise.
2656 (pe_undef_found_sym): Likewise.
2657 (pe_undef_cdecl_match): Likewise.
2658 (gld_${EMULATION_NAME}_open_dynamic_archive): Mark the
2659 argument "arch" with ATTRIBUTE_UNUSED.
2663 * configure.tgt: Remove extraneous hppa*-*-linux-gnu*.
2666 * ldwrite.c (SSIZE): Remove to cure macro redefinition warning.
2670 Changes to create multiple linker stubs, positioned immediately
2671 before the section where they are required.
2672 * emultempl/hppaelf.em: Include elf32-hppa.h.
2673 (stub_sec, file_chain): Delete.
2674 (hppaelf_create_output_section_statements): Don't make a stub
2676 (hook_stub_info): New struct.
2677 (hook_in_stub): New function.
2678 (hppaelf_add_stub_section): New function.
2679 (hppaelf_finish): Do nothing for relocateable links. Modify the
2680 call to elf32_hppa_size_stubs. Move code for updating section
2682 (hppaelf_layaout_sections_again): ..to here, a new function.
2684 * emultempl/hppaelf.em (hppaelf_delete_padding_statements): Fix
2685 broken list handling. Pass in a pointer to the list.
2686 (hppaelf_finish): Update call to hppaelf_delete_padding_statements
2688 (hppaelf_before_parse): Prototype.
2689 (hppaelf_set_output_arch): Prototype.
2690 (hppaelf_create_output_section_statements): Prototype.
2691 (hppaelf_delete_padding_statements): Prototype.
2692 (hppaelf_finish): Prototype.
2695 * emultempl/hppaelf.em: Include ctype.h.
2696 (struct orphan_save): New.
2697 (gld${EMULATION_NAME}_place_orphan): New.
2698 (output_rel_find): New.
2699 (hppaelf_get_script): Update from elf32.em.
2700 (ld_hppaelf_emulation): Rename to ld_${EMULATION_NAME}_emulation.
2701 Change emulation_name field to "${EMULATION_NAME}". Add
2702 gld${EMULATION_NAME}_place_orphan.
2704 * Makefile.am (ALL_EMULATIONS): Reinstate ehppaelf.o, add
2705 ehppalinux.o, sort it. Regenerate dependencies.
2706 (ehppalinux.c): Depend on hppaelf.em
2707 * Makefile.in: Regenerate.
2709 * configure.tgt: targ_emul=hppalinux for hppa*linux
2711 * emulparams/hppalinux.sh: New.
2712 * emulparams/hppaelf.sh (TARGET_PAGE_SIZE): Write in hex.
2716 * lexsup.c (parse_args): Copy section name.
2720 * emultempl/pe.em: institute the following search order for
2721 dynamic libraries on pei386: libfoo.dll.a, foo.dll.a (import
2722 libs), libfoo.dll, foo.dll (link direct to dll). Fall back to
2723 static lib (libfoo.a) if none of the above are found.
2727 * emultempl/pe.em (pe_enable_auto_image_base): New variable.
2728 (longopts): New --{enable,disable}-auto-image-base options.
2729 (gld_${EMULATION_NAME}_list_options): Document.
2730 (gld_${EMULATION_NAME}_parse): Handle.
2731 (strhash): New static function.
2732 (compute_dll_image_base): New static function.
2733 (gld_${EMULATION_NAME}_set_symbols): Use.
2741 * configure.tgt: Add traditional mips (mips*-*-sysv4*) target.
2742 * emulparams/elf32btsmip.sh: New file.
2743 * Makefile.am: Add traditional mips target.
2744 * Makefile.in: Rebuild.
2748 * Makefile.am (EXTRA_ld_new_SOURCES): Set to deffilep.y for
2749 automake to use YLWRAP.
2750 * Makefile.in: Rebuild.
2754 * Makefile.am (DEP): Fix 2000-06-22. grep after running dep.sed
2755 (CLEANFILES): Add DEPA.
2756 * Makefile.in: Regenerate.
2758 2000-06-30 Timothy Wall <twall@ppc>
2760 * scripttempl/tic54xcoff.sc: PAGE N is not implemented, so encode
2761 the page in the upper octet of the address.
2765 * emulparams/avrmega161.sh (ARCH): Change to avr:5.
2769 * NEWS: arm-elf does --gc-sections too.
2773 * Makefile.am (DEP): grep for leading `/' in DEP1, and fail if we
2775 * Makefile.in: Regenerate.
2779 * Makefile.am: Rebuild dependency.
2780 * Makefile.in: Rebuild.
2784 * Makefile.am: Rebuild dependency.
2785 * Makefile.in: Rebuild.
2789 * scripttempl/tic54xcoff.sc: New.
2790 * ldlang.c (wild_doit): Propagate SEC_BLOCK flag.
2791 * gen-doc.texi: Add flag for TI COFF.
2792 * ld.texinfo: Add documentation for TI COFF handling switches.
2793 * emultempl/ticoff.em: New. TI COFF handling.
2794 * configure.tgt: Add tic54x target.
2795 * Makefile.am: Add tic54x target.
2796 * Makefile.in: Ditto.
2800 * ldmain.c (set_scripts_dir): Correct pointer comparison when
2801 checking for backslashes.
2805 * NEWS: Move entries not in 2.10 above "Changes in version 2.10".
2809 * NEWS: Update list of targets supporting --gc-sections.
2811 * scripttempl/elf.sc: KEEP .eh_frame contents.
2812 * scripttempl/elfd30v.sc: Same here.
2816 * Makefile.am (ALL_EMULATIONS): Added new emulation for m68hc12
2818 * Makefile.in: Rebuild.
2819 * configure.tgt: Recognize m68hc12 and m68hc11.
2820 * scripttempl/elfm68hc12.sc: New file.
2821 * emulparams/m68hc12elfb: New emulation.
2822 * emulparams/m68hc12elf: New emulation.
2823 * emulparams/m68hc11elfb.sh: New file. User configurable emulation
2824 (includes a memory.x script to define the ROM and RAM banks).
2825 * scripttempl/elfm68hc11.sc, emulparams/m68hc11elf.sh:
2826 New configuration files for support of Motorola 68hc11
2830 * ldmain.c (main): Only change SEC_READONLY for final link.
2834 * configure: Regenerate.
2838 * configure.in (VERSION): Update to show this is the CVS mainline.
2842 * emultempl/mipsecoff.em (gld{EMULATION_NAME}_after_open): Require all
2843 input objects to be ECOFF.
2844 (check_sections): einfo takes %B, not %P, to print a BFD name.
2848 * ldgram.y (vers_defns): Handle 'extern "C++" { ... }' in
2851 * ldlex.l (V_IDENTIFIER): Accept `::' in symbols.
2855 * emulparams/avr1200.sh (STACK): Define as 0.
2856 * emulparams/avr23xx.sh (STACK): Define as last internal SRAM address.
2857 * emulparams/avr4433.sh (STACK): Likewise.
2858 * emulparams/avr44x4.sh (STACK): Likewise.
2859 * emulparams/avr85xx.sh (STACK): Likewise.
2860 * emulparams/avrmega103.sh (STACK): Likewise.
2861 * emulparams/avrmega161.sh (STACK): Likewise.
2862 * emulparams/avrmega603.sh (STACK): Likewise.
2863 * scripttempl/elf32avr.sc (__data_start): Define for gcrt1.
2864 (__stack): Define from ${STACK} for main().
2868 * Makefile.am: Update dependencies with "make dep-am"
2869 * Makefile.in: Regenerate.
2873 * ldmain.c: Include filenames.h.
2874 (set_scripts_dir): Support backslashes in program name.
2878 * ldmain.c (main): When deciding if ".text" section should be
2879 read-only, don't forget to reset SEC_READONLY because it
2880 could be already set.
2884 * ld.1: Add documentation for new command line option:
2885 --section-start <sectionname>=<sectionorg>
2886 This is a generic version of -Ttext etc. which accepts
2887 any section name as a parameter instead of just text/data/
2889 * ld.texinfo: More docs.
2891 * lexsup.c: (parse_args): Recognize new command line option.
2892 (ld_options): Add new option.
2896 * lexsup.c (parse_args): `i' == `r', not `q'.
2900 * configure.tgt (hppa*64*-*-*): Enable PA64 target.
2905 Add support for '-q' == '--emit-relocs' switch.
2906 * ldmain.c (main): Default to false.
2907 * lexsup.c (parse_args): Turn on emitrelocations flag if set.
2908 * NEWS: Describe the emitrelocations switch.
2909 * ld.texinfo: Describe the emitrelocations switch.
2913 * emultempl/pe.em (_open_dynamic_archive): New function: Search
2914 the library path for "foo.dll" and "libfoo.dll" dynamic libraries
2915 before searching for 'libfoo.a' in response to a '-Bdynamic -lfoo'
2920 * lexsup.c (parse_args): Update the year in the copyright notice.
2924 * ld.h (gettext, dgettext, dcgettext, textdomain, bindtextdomain):
2925 Replace defines with those from intl/libgettext.h to quieten gcc
2930 * ldlang.c (open_input_bfds): Don't load the same file within
2931 a group again if the whole archive has been loaded already.
2936 * lexsup.c (set_section_start): Use bfd_scan_vma rather than
2941 * configure.host (ia64-*-linux-gnu*): Change gcc to ${CC}.
2943 * configure.host: Added HOSTING_CRT0, HOSTING_LIBS for
2944 host "ia64-*-linux-gnu*".
2948 * ld.h: Correctly check GCC version.
2952 * Makefile.am: Add PA64 support. Add missing dependencies for
2954 * Makefile.in: Rebuilt.
2955 * configure.tgt: Add PA64 support (currently disabled).
2959 * emultempl/elf32.em (gld${EMULATION_NAME}_place_section): Delete.
2960 (output_rel_find): New function.
2961 (hold_section, hold_use): Delete.
2962 (hold_text, hold_rodata, hold_data, hold_bss, hold_rel,
2963 hold_interp): Make local to place_orphan.
2964 (gld${EMULATION_NAME}_place_orphan): Use lang_output_section_find
2965 rather than place_section to find possible previous use of orphan.
2966 Similarly find the place-holder output sections. Use returned
2967 value from lang_enter_output_section_statement rather than calling
2968 lang_output_section_statement_lookup.
2969 * emultempl/armelf.em: Same here.
2970 * emultempl/pe.em: Similar to above, but no need for output_rel_find.
2972 * ldlang.c (lang_enter_output_section_statement): Return output
2974 * ldlang.h (lang_enter_output_section_statement): Change
2977 * ldlang.h (lang_output_section_statement): Export it.
2978 * ldlang.c (lang_output_section_statement): Ditto.
2982 * ld.texinfo (Output Section Data): Add note that section data
2983 commands cannot appear outside of section directives.
2987 * configure.tgt: Add NetBSD/sparc ELF, and NetBSD/sparc64 support.
2992 * Makefile.am (ALL_64_EMULATIONS): Add eelf64_ia64.o.
2993 (eelf64_ia64.c): New rule.
2994 * Makefile.in: Rebuild.
2995 * configure.tgt (ia64-*-elf*, ia64-*-linux*): New targets.
2996 * emulparams/elf64_ia64.sh: New file.
3000 * scripttempl/elfd30v.sc: Place .gcc_except_table.
3004 * dep-in.sed: Match space at start of file name, not at end.
3008 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Call
3009 lang_leave_output_section_statement () after calling
3010 lang_enter_output_section_statement ().
3011 * emultempl/armelf.em: Likewise.
3015 * emultempl/elf32.em (struct orphan_save): Add section field.
3016 (gld${EMULATION_NAME}_place_orphan): Use above to keep sections in
3017 better order, and place first orphan section as we did before the
3018 2000-04-12 patch. Ignore ~SEC_ALLOC sections when choosing place.
3019 Don't call make_bfd_section here, let wild_doit do the job for us.
3020 Don't build a statement list when we'll only throw it away.
3021 * emultempl/armelf.em: Ditto.
3022 * emultempl/pe.em: Similarly.
3026 * scripttempl/elfppc.sc: Remove.
3027 * emulparams/elf32ppc.sh: Use elf.sc.
3028 * emulparams/elf32lppc.sh: Use elf.sc.
3029 * emulparams/elf32ppclinux.sh: Use elf.sc.
3030 * emulparams/elf32ppcsim.sh: New file.
3031 * emulparams/elf32lppcsim.sh: New file.
3032 * Makefile.am: Update dependencies. Add elf32ppcsim ad elf32lppcsim.
3033 (ALL_EMULATIONS): Add elf32ppcsim ad elf32lppcsim.
3034 * Makefile.in: Regenerate.
3035 * configure.tgt (powerpc-*): Add elf32ppcsim and elf32lppcsim.
3039 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Process
3040 ~SEC_ALLOC sections too. Init start address of debug sections.
3041 * emultempl/armelf.em (gld${EMULATION_NAME}_place_orphan): Ditto.
3042 * emultempl/pe.em (gld${EMULATION_NAME}_place_orphan): Ditto.
3043 Also set all relocateable section start addresses.
3047 * scripttempl/elf.sc: Add support for .sbss2 and .sdata2 sections.
3048 Add new BSS_PLT variable for when .plt need not be contained in
3049 the file. Move _etext so that it is also after .fini, and provide
3050 both etext and _etext with a leading underscore. Mark the start
3055 * emultempl/elf32.em (struct orphan_save): New.
3056 (hold_text, hold_rodata, hold_data, hold_bss, hold_rel,
3057 hold_interp): Make them struct orphan_save.
3058 (gld${EMULATION_NAME}_place_section): Modify for new hold_*.
3059 (gld${EMULATION_NAME}_place_orphan): Add new orphan sections to
3060 the end of the relevant section list. Also add associated section
3061 statements to the end of any previous orphan statements.
3062 * emultempl/armelf.em: Similarly.
3063 * emultempl/pe.em: Similarly.
3067 * ld.texinfo (Simple Example): Remove extraneous paragraph.
3071 * configure.in (WARN_CFLAGS): Set to -W -Wall by default. Add
3072 --enable-build-warnings option.
3073 * Makefile.am (AM_CFLAGS, WARN_CFLAGS): Add definitions.
3074 * Makefile.in, configure: Re-generate.
3078 * po/ld.pot: Regenerate.
3080 * lexsup.c (help): Restore translated part of bug string.
3082 * Makefile.am (MKDEP): Use gcc -MM rather than mkdep.
3083 (DEP): Quote when passing vars to sub-make. Add warning message
3085 (DEP1): Rewrite for "gcc -MM".
3086 (CLEANFILES): Add DEP2.
3087 Update dependencies.
3088 * Makefile.in: Regenerate.
3092 * ld.h: #include "bin-bugs.h"
3093 * lexsup.c (help): Use REPORT_BUGS_TO.
3097 * configure.tgt (avr-*-*): New target support.
3098 * Makefile.am: Likewise.
3099 * scripttempl/elf32avr.sc: New script file.
3100 * emulparams/avr1200.sh: New file.
3101 * emulparams/avr23xx.sh: New file.
3102 * emulparams/avr4433.sh New file.
3103 * emulparams/avr44x4.sh New file.
3104 * emulparams/avr85xx.sh New file.
3105 * emulparams/avrmega103.sh New file.
3106 * emulparams/avrmega161.sh New file.
3107 * emulparams/avrmega603.sh New file.
3108 * Makefile.in: Regenerate.
3112 * Makefile.am (check-DEJAGNU): Also unset LANG.
3113 * Makefile.in: Rebuild.
3117 * ldfile.c (ldfile_try_open_bfd): Don't crash if we see an empty
3122 * emulparams/elf32mcore.sh: Include "getopt.h".
3126 * configure.tgt: Remove *-*-aout, *-*-coff, and *-*-netware.
3130 * emulparams/mipspe.sh: Add SUBSYSTEM and INITIAL_SYMBOL_CHAR.
3131 * emulparams/shpe.sh: Likewise.
3135 * pe-dll.c: Remove unused variables and add ATTRIBUTE_UNUSED
3136 to unused parameters.
3138 * emultempl/pe.em: Add "#ifdef DLL_SUPPORT" around static
3139 functions only used by DLL code.
3140 (_place_orphan): Initialise 'dollar'.
3144 * ldmain.c (undefined_symbol): Take one more arg, fatal, to
3145 indicate if the undefined symbol is a fatal error or not.
3146 Don't delete the output file if "fatal" is false.
3150 * Makefile.am (check-DEJAGNU): Also pass LIBS="$(LIBS)".
3151 Set LC_COLLATE and LC_ALL to null and export them. It is for
3152 sort which expects the C locale.
3153 Add $(LIBS) to all $(HOSTING_LIBS).
3154 * Makefile.in: Rebuild.
3158 * emultempl/{aix.em, armcoff.em, armelf.em, armelf_oabi.em,
3159 beos.em, elf32.em, generic.em, gld960.em, gld960c.em, hppaelf.em,
3160 linux.em, lnk960.em, mipsecoff.em, sunos.em, vanilla.em}
3161 (ld_emulation_xfer_struct): Add missing NULL initialiser for
3162 find_potential_libraries.
3166 * ldgram.y (exclude_name_list): Don't require a comma to separate
3167 list entries; the lexer considers commas to be valid part of a
3168 filename, so in something like `foo, bar' the comma is considered
3169 part of the first filename, `foo,'.
3170 * ld.texinfo: Update section on EXCLUDE_FILE lists.
3174 * configure.host: Added HOSTING_CRT0, HOSTING_LIBS for
3175 host "i[3456]86-*-freebsdelf*".
3179 * scripttempl/i386go32.sc: Move misplaced semicolons.
3183 * Makefile.am (ALL_EMULATIONS): Remove ehppaelf.o.
3184 (ALL_64_EMULATIONS): Remove eelf64hppa.o.
3185 (eelf64hppa.c, ehppaelf.c): Remove targets.
3186 * Makefile.in: Rebuild.
3190 * configure.tgt (targ_extra_ofiles): Enable elf64_sparc on
3191 GNU/Linux/sparc, but keep the default as 32.
3193 * configure.tgt: Enable elf64_sparc on Solaris7+/sparc. And make
3194 it default if sparcv9 or sparc64.
3198 * Makefile.am: Add rules to build emipspe.o and earmpe.o.
3199 * Makefile.in: Regenerate.
3200 * configure.tgt: Add targets for arm-wince, sh-pe and mips-pe.
3202 * ldemul.h (ld_emulation_xfer_struct): Add new field:
3203 find_potential_libraries.
3204 * ldemul.c (ldemul_find_potential_libraries): New function.
3206 * ldfile.c (ldfile_open_file_search): Allow function to be
3208 (ldfile_open_file): Call ldemul_find_potential_libraries.
3209 * ldfile.h: Add prototype for ldfile_open_file_search.
3211 * pe-dll.c: Add support for ARM, MIPS and SH targets.
3213 * emulparams/mipspe.sh: New file. Parameters for mips-pe target.
3214 * emulparams/shpe.sh: New file. Parameters for sh-pe target.
3216 * emultempl/pe.em: Add support for ARM, MIPS and SH DLLs.
3217 (gld_X_find_potential_libraries): New function. Search for
3218 libraries called "*.lib".
3220 * scripttempl/pe.sc: Add .pdata section.
3224 * scripttempl/elfd10v.sc: Remove dynamic linking hooks.
3225 Add and use memory regions.
3229 * emulparams/elf32i370.sh, scripttempl/elfi370.sc: New.
3231 * Makefile.am: Add support for Linux/IBM 370.
3232 * configure.tgt: Likewise.
3234 * Makefile.in: Regenerate.
3238 * ldlang.c (print_input_section, print_data_statement,
3239 print_reloc_statement, print_padding_statement, insert_pad,
3240 size_input_section, lang_check_section_addresses,
3241 lang_size_sections, lang_do_assignments, lang_set_startof,
3242 lang_one_common): Change `opb' to unsigned.
3243 (lang_do_assignments): Also change `size' to unsigned.
3247 * scripttempl/elf.sc: Place OTHER_PLT_RELOC_SECTION.
3251 * mri.c (mri_draw_tree): Add default LMA region argument to call
3252 to lang_leave_output_section_statement.
3253 * ldlang.h: Update prototypes with LMA region arguments.
3254 * ldlang.c (lang_size_sections): Encapsulate region bounds
3255 checking in os_check_region call.
3256 (os_check_region): New function.
3257 (lang_output_section_statement_lookup): Initialize lma_region.
3258 (lang_leave_output_section_statement): Add LMA region argument.
3259 (lang_leave_overlay): Ditto.
3260 * ldgram.y: Handle LMA region syntax.
3261 * ld.texinfo (Output Section Description): Describe LMA region usage.
3262 * emultempl/armelf.em (gld$place_orphan): Add default value for
3263 lma region in call to lang_leave_output_section_statement.
3264 * emultempl/elf32.em (gld$place_orphan): Add default value for
3265 lma region in call to lang_leave_output_section_statement.
3266 * emultempl/pe.em (gld$place_orphan): Add default value for
3267 lma region in call to lang_leave_output_section_statement.
3272 * ldlang.c (lang_check_section_addresses): Use bytes instead of
3273 octets when calculating section end addresses.
3277 * ldlang.c (lang_size_sections): Fix typo in ALIGN_N invocation.
3281 * ldexp.c (fold_name): Make SIZEOF operator return byte count, not
3283 * ldlang.c (print_input_section, print_data_statement,
3284 print_reloc_statement, print_padding_statement): Print target
3285 address values and section sizes as bytes, not octets.
3286 (insert_pad) Calculate padding size in octets, and adjust "dot"
3288 (size_input_section) Always adjust "dot" by bytes, not octets.
3289 (lang_check_section_addresses, lang_do_assignments) Adjust
3290 "dot" by bytes, not octets. Use the larger of the directive size
3291 or octets_per_byte for the number of octets actually allocated in
3293 (lang_set_startof) Make sure STARTOF returns a target address.
3294 (lang_one_common) Record size changes in octets.
3295 (lang_abs_symbol_at_end_of) Section end symbol's value is
3296 recorded in target bytes.
3297 * ld.texinfo: Updated description of BYTE, SHORT, LONG, etc.
3298 to be clear about behavior when an octet is smaller than one byte.
3302 * ldcref.c (output_cref): Don't pass message strings to printf
3306 * ldmisc.c (vfinfo): Same here.
3311 * emultempl/{armcoff.em,armelf.em,armelf_oabi.em,beos.em,
3312 generic.em,gld960.em,gld960c.em,hppaelf.em,linux.em,lnk960.em,
3313 mipsecoff.em,sunos.em,vanilla.em} (ld_emulation_xfer_struct):
3314 Add missing NULL initialisers, and comments.
3318 * ldlang.c (lang_size_sections): Fix typo in comment.
3322 * ldlang.c (lang_size_sections): Also update the current
3323 address of a region if the SEC_NEVER_LOAD bit is not set.
3327 * configure.tgt (arm*-*-conix*): New target.
3331 * ld.texinfo (Options): Remind users to preceed linker command
3332 line switches with -Wl, (or whatever is appropriate) if it is
3333 being invoked by a comnpiler driver program.
3334 Fix description of the behaviour of the -n command line switch.
3338 * ld.h (wildcard_spec): Change exclude_name to exclude_name_list.
3340 * ld.texinfo (EXCLUDE_FILE): Update documentation.
3341 * ldgram.y (wildcard_spec): Support a list of excluded_files.
3342 (exclude_name_list): New.
3343 ldlang.c (walk_wild_section): Support list of excluded files.
3344 (print_wild_statement): Likewise.
3345 (lang_add_wild): Likewise.
3346 * ldlang.h (lang_wild_statement_type): Likewise.
3347 * scripttempl/elf.sc (OTHER_EXCLUDE_FILES): Support.
3351 * pe-dll.c (pe_dll_warn_dup_exports): New variable.
3352 (process_def_file): Use.
3353 (pe_dll_compat_implib): New variable.
3356 * pe-dll.h: Add exports of pe_dll_warn_dup_exports and
3357 pe_dll_compat_implib.
3359 * emultempl/pe.em (longopts): Add warn-duplicate-exports and
3360 compat-implib options.
3361 (gld_${EMULATION_NAME}_list_options): List new options.
3362 (gld_${EMULATION_NAME}_parse_args): Handle.
3364 * pe-dll.c (pe_dll_generate_implib): Use the correct name for output
3367 * deffilep.y (opt_name): Allow "." in name.
3369 For older changes see ChangeLog-9899
3371 Copyright (C) 2000-2001 Free Software Foundation, Inc.
3373 Copying and distribution of this file, with or without modification,
3374 are permitted in any medium without royalty provided the copyright
3375 notice and this notice are preserved.
3381 version-control: never