3 * emulparams/bfin.sh: Define DATA_END_SYMBOLS and END_SYMBOLS.
4 And add a prefix '_' to ENTRY.
5 * scripttempl/elf.sc: Add END_SYMBOLS.
9 * emultempl/xtensaelf.em (elf_xtensa_place_orphan): Delete.
10 (LDEMUL_PLACE_ORPHAN): Delete.
14 * configure.tgt: Add support for RDOS targets.
18 * po/vi.po: New Vietnamese translation.
19 * configure.in (ALL_LINGUAS): Add vi.
20 * configure: Regenerate.
24 * Makefile.am: Run "make dep-am".
25 * Makefile.in: Regenerate.
29 * ldlang.h (lang_output_section_statement_type): Add prev.
30 * ldlang.c (output_statement_newfunc): Set os.prev.
31 (lang_insert_orphan): Likewise.
32 (output_prev_sec_find): Use os.prev.
36 * ld/emulparms/h8300helf.sh (TINY_READONLY_SECTION,
37 TINY_DATA_SECTION, TINY_BSS_SECTION): Define.
38 * ld/emulparms/h8300self.sh: Likewise.
39 * ld/emulparms/h8300sxelf.sh: Likewise.
40 * ld/scripttempl/elf.sc: Add TINY_READONLY_SECTION,
41 TINY_DATA_SECTION, TINY_BSS_SECTION.
46 * ldlang.c (output_statement_newfunc): Revert the change made on
48 (output_prev_sec_find): Likewise.
49 * ldlang.h (lang_statement_list_type): Likewise.
53 Second part of ms1 to mt renaming.
54 * emulparams/elf32mt.sh (ARCH, OUTPUT_FORMAT): Adjust.
58 * scripttempl/elf.sc: Put .gnu.linkonce.d.rel.ro.* sections into
59 .data.rel.ro output section. Fix a pasto for -z nocombreloc
60 .rela.data.rel.ro section content.
64 * Makefile.am (ALL_EMULATIONS): Replace ms1 files with mt files.
65 (eelf32mt.c): Update target name and dependencies.
66 * Makefile.in: Rebuilt.
67 * configure.tgt: Replace ms1 arch with mt arch.
68 * emulparams/elf32mt.sh: Renamed from elf32ms1.sh. Update
73 * scripttempl/armbpabi.sc: Fix typo in comment for .ctors.
74 * scripttempl/elf.sc: Ditto.
75 * scripttempl/elf32sh-symbian.sc: Ditto.
76 * scripttempl/elf_chaos.sc: Ditto.
77 * scripttempl/elfd10v.sc: Ditto.
78 * scripttempl/elfd30v.sc: Ditto.
79 * scripttempl/elfxtensa.sc: Ditto.
80 * scripttempl/iq2000.sc: Ditto.
81 * scripttempl/xstormy16.sc: Ditto.
85 * emultempl/ppc32elf.em (emit_stub_syms): New var.
86 (ppc_after_open): Pass it to ppc_elf_select_plt_layout.
87 (PARSE_AND_LIST_PROLOGUE <OPTION_STUBSYMS>): Define.
88 (PARSE_AND_LIST_LONGOPTS): Add emit-stub-syms.
89 (PARSE_AND_LIST_OPTIONS): Describe emit-stub-syms.
90 (PARSE_AND_LIST_OPTIONS): Handle it.
94 * pe-dll.c (build_filler_bfd): Conform error message to standard.
95 (pe_dll_generate_implib): Use %E in error message.
96 (add_bfd_to_link): Likewise.
97 (pe_implied_import_dll): Likewise.
103 * emultempl/elf32.em (gld${EMULATION_NAME}_find_exp_assignment):
104 Adjust bfd_elf_record_link_assignment call.
106 * ldexp.c (exp_fold_tree_1): Remove call to bfd_hide_symbol.
110 * Makefile.am: Make configdoc.texi writeable before trying
112 * Makefile.in: Refresh.
116 * ldlang.c (lang_output_section_find_by_flags): Add match_type param.
117 Run two passes, first using match_type, second without.
118 * ldlang.h (lang_match_sec_type_func): New typedef.
119 (lang_output_section_find_by_flags): Update prototype.
120 bfd_match_sections_by_type and lang_output_section_find_by_flags.
121 * emultempl/pe.em (place_orphan): Likewise.
125 * ldlang.c (lang_insert_orphan): Skip first assignment to dot
126 in script when looking for place to insert orphan statements.
130 * emulparams/elf64ppc.sh (.tocbss): Use new section alignment scheme.
131 (.got, .toc1, .opd): Likewise.
135 * ldlang.c (lang_size_sections_1): Revert 2005-11-16 functional
136 changes to section alignment.
137 * ldmisc.c (vfinfo): Handle %ld and %lu.
141 * Makefile.am (configdoc.texi): Set top_srcdir in configdoc.texi..
142 * Makefile.in: Regenerated.
143 * ld.texinfo: Include configdoc.texi and ldver.texi in man pages.
144 Add @file documentation.
148 * ldlang.h (lang_input_section_type): Remove "ifile" field.
149 (lang_insert_orphan, lang_add_section): Update prototypes.
150 * ldlang.c (lang_insert_orphan): Remove "file" param.
151 (lang_add_section): Likewise. Update all callers.
152 (wild_sort): Get an input section's bfd via "section->owner".
153 (size_input_section): Access just_syms_flag via bfd usrdata.
154 (lang_place_orphans): Update ldemul_place_orphan call.
155 * ldemul.h (ldemul_place_orphan): Remove input_statement param.
156 (struct ld_emulation_xfer_struct <place_orphan>): Likewise.
157 * ldemul.c (ldemul_place_orphan): Likewise.
158 * ldwrite.c (build_link_order): Access just_syms_flag via bfd usrdata.
159 * emultempl/armelf.em (arm_elf_set_bfd_for_interworking): Likewise.
160 * emultempl/beos.em (sort_by_file_name): Access bfd by section->owner.
161 (sort_sections): Likewise.
162 (place_orphan): Remove "file" param. Adjust lang_add_section call.
163 * emultempl/elf32.em (place_orphan): Remove "file" param. Adjust
164 lang_add_section and lang_insert_orphan calls.
165 * emultempl/hppaelf.em (hppaelf_add_stub_section): Adjust
166 lang_add_section call.
167 (build_section_lists): Access just_syms_flag via bfd usrdata.
168 * emultempl/m68hc1xelf.em (m68hc11elf_add_stub_section): Adjust
169 lang_add_section call.
170 * emultempl/mmo.em (mmo_place_orphan): Remove "file" param. Adjust
171 lang_add_section and lang_insert_orphan calls.
172 * emultempl/pe.em (place_orphan): Likewise. Access bfd via section
174 * emultempl/ppc64elf.em (ppc_add_stub_section): Adjust
175 lang_add_section call.
176 (build_toc_list): Access just_syms_flag via bfd usrdata.
177 (build_section_lists): Likewise.
178 * emultempl/xtensaelf.em (elf_xtensa_place_orphan): Remove "file"
179 param. Adjust place_orphan call.
180 (ld_build_required_section_dependence): Access bfd via section owner.
184 * ldlang.h (lang_output_section_statement_type): Add prev.
185 * ldlang.c (new_afile): Always init header.type.
186 (output_statement_newfunc): Set os.prev.
187 (output_prev_sec_find): Use os.prev.
188 (lang_enter_output_section_statement): Formatting.
189 (lang_final, lang_add_target, lang_add_fill): Likewise.
190 (lang_add_data, lang_add_reloc): Likewise.
191 (lang_add_attribute): Only alloc the header.
195 * ld.texinfo (Forced Output Alignment): Specify that this is an
196 alignment increase, not an override.
197 * ldlang.c (init_os): Set output section alignment here..
198 (lang_add_section): ..rather than here.
199 (lang_size_sections_1): Consolidate alignment code. Warn if section
200 alignment affects start address when explicit address given.
204 * configure: Regenerate after modifying bfd/warning.m4.
208 * ldmain.c (main): Add \n to error message.
212 * ldlang.c (struct output_statement_hash_entry): Don't indirect to os.
213 (output_statement_newfunc): Rewrite.
214 (lang_output_section_find_1): Merge into..
215 (lang_output_section_find): ..here.
216 (lang_output_section_statement_lookup_1): Rewrite to handle
217 multiple sections with the same name.
218 (output_statement_table_init): Commonise error message.
219 (lang_init, open_output): Likewise.
223 * scripttempl/elf.sc: Add .init_array.* and .fini_array.*.
224 * scripttempl/armbpabi.sc: Make init/fini array consistent with
226 * scripttempl/elf32sh-symbian.sc: Ditto.
227 * scripttempl/elfxtensa.sc: Ditto.
231 * ldlang.h (lang_output_section_statement_type): Rearrange. Remove
232 memspec. Make "processed" a bitfield.
233 (lang_data_statement_type, lang_reloc_statement_type): Rename
234 output_vma to output_offset.
235 * ldlang.c (lang_output_section_statement_lookup_1): Init
236 all_input_readonly. Don't init memspec.
237 (init_os): Remove incorrect comment.
238 (print_data_statement, print_reloc_statement): Adjust for
239 lang_data_statement_type and lang_reloc_statement_type change.
240 (lang_size_sections_1, lang_add_reloc): Likewise.
241 * ldwrite.c (build_link_order): Likewise.
245 * lexsup.c (help): Document "@FILE".
249 * Makefile.am: Run "make dep-am".
250 * Makefile.in: Regenerated.
252 * dep-in.sed: Replace " ./" with " ".
256 * Makefile.am: Add support for Z80
257 * Makefile.in: Regenerated
258 * configure.tgt: Add z80-*-coff
259 * emulparams/z80.sh: New file.
260 * emultempl/z80.em: New file.
261 * scripttempl/z80.sc New file.
262 * NEWS: Mention this new support.
266 * po/ld.pot: Regenerate.
270 * ld.texinfo (--reduce-memory-overheads): Fix typo.
275 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Call
276 bfd_match_sections_by_type to match section types.
278 * ldlang.c (init_os): Take the input section. Call
279 bfd_init_private_section_data if the input section isn't NULL.
280 (exp_init_os): Pass NULL to init_os.
281 (map_input_to_output_sections): Likewise.
282 (lang_add_section): Pass the input section to init_os.
286 * emulparams/armelf.sh: Add .ARM.attributes to OTHER_SECTIONS.
291 * emultempl/elf32.em: Include "elf-bfd.h".
292 (gld${EMULATION_NAME}_place_orphan): Check section type and
293 don't use section name for ELF input sections.
295 * ld.texinfo: Document orphan section processing.
297 * ldlang.c (lang_output_section_find_by_flags): Match section
298 types by calling bfd_match_sections_by_type.
302 * ld.texino: Describe double-quoted string syntax for version
304 * ldlang.h (lang_new_vers_pattern): Add literal_p parameter.
305 * ldgram.y (vers_defns): Allow NAME as well as VERS_IDENTIFIER.
306 Adjust calls to lang_new_vers_pattern to pass literal_p argument.
307 * ldlang.c (lang_vers_match): Fix indentation. Do not glob-match
308 version nodes without a pattern.
309 (lang_new_vers_pattern): Add literal_p parameter.
310 (lang_do_version_exports_section): Pass it.
314 * NEWS: Mention @file.
319 * ldcref.c (check_refs): Accept bfd_boolean.
320 (check_local_sym_xref): Pass FALSE to check_refs.
321 (check_nocrossref): Pass TRUE to check_refs.
322 (check_refs_info): Add bfd_boolean.
323 (check_refs): Add bfd_boolean to check_refs_info.
324 (check_reloc_refs): Match relocations with proper symbols.
326 * ldmisc.c (vfinfo): Don't add extra ":\n".
330 * emultempl/pe.em (gld_${EMULATION_NAME}_before_parse): Set
331 default entry symbol to ENTRY here.
332 * scripttempl/pe.sc: Not here.
336 * ldlang.c (lang_startup): Add missing ": " to einfo call.
340 * Makefile.am: Run "make dep-am".
341 * Makefile.in: Regenerated.
342 * aclocal.m4: Likewise.
346 * ldlang.c (output_statement_hash_entry): New type.
347 (output_statement_table): New variable for hash table.
348 (output_statement_newfunc): New function.
349 (output_statement_table_init): Likewise.
350 (output_statement_table_free): Likewise.
351 (lang_init): Call output_statement_table_init.
352 (lang_finish): Renamed to ...
354 (lang_process): Updated.
355 (lang_finish): New function.
356 (lang_output_section_find_1): Use hash table.
357 (lang_output_section_statement_lookup_1): Likewise.
359 * ldlang.h (lang_finish): New.
361 * ldmain.c (main): Call lang_finish.
365 * ldmain.c (main): Use expandargv.
369 * Makefile.am: Bfin support.
370 * Makefile.in: Regenerated.
371 * aclocal.m4: Regenerated.
372 * configure.tgt: Bfin support.
373 * emulparams/bfin.sh: New file.
374 * emultempl/bfin.em: New file.
378 * ld.h: Prevent the inclusion of <libintl.h> from the Solaris
379 version of <locale.h> when ENABLE_NLS is not defined.
383 * ld.texinfo (ALIGN): Document it as forcing output section
386 * ldgram.y (ALIGN): Support it for forcing output section
391 * ldlang.h (lang_output_section_statement_struct): Change type of
392 "processed" to bfd_boolean.
393 * ldexp.c (fold_name): Update references to os->processed.
394 * ldlang.c (lang_output_section_statement_lookup_1): Likewise.
395 (lang_size_sections_1): Likewise.
396 (lang_reset_memory_regions): Likewise.
399 * ldlang.c (lang_size_sections_1): Process addr_tree earlier,
400 so that unused output section statements affect dot.
404 * ld.texinfo: Document -z {no,}execstack, -z {no,}relro
405 and --eh-frame-hdr options.
409 * ldexp.c (fold_name <SIZEOF>): Return 0 for non-existent section.
410 (exp_fold_tree_1): Print assert message only in final stage of
411 linking. Trigger assertion failure if expression cannot be
417 * emultempl/elf32.em (gld${EMULATION_NAME}_load_symbols): Check
418 --just-symbols on DSO.
422 * scripttempl/elf.sc: Remove commented out defines.
426 * emulparams/a29k.sh: Delete.
427 * emulparams/ebmon29k.sh: Delete.
428 * emulparams/sa29200.sh: Delete.
429 * Makefile.am: Remove a29k support.
430 * configure.tgt: Likewise.
431 * ld.texinfo: Likewise.
432 * Makefile.in: Regenerate.
436 * ldgram.y (vers_defns): Don't lose pattern list before
437 extern NAME {}. Handle global, local and extern symbol names.
441 * emultempl/sh64elf.em (sh64_elf_${EMULATION_NAME}_after_allocation):
442 Don't increment rel_count of .cranges here. Set rawsize of .cranges.
446 * pe-dll.c (pe_exe_fill_sections): Call lang_reset_memory_regions
447 before lang_size_sections.
451 * emulparams/hppa64linux.sh (LARGE_SECTIONS): Remove .tbss.
455 * Makefile.am (ALL_EMULATIONS): Add msp430x21xx variants.
456 Add rules to build these emulations.
457 * Makefile.in: Regenerate.
458 * configure.tgt (msp430): Add the new variants to the
459 targ_extra_emuls list.
460 * emulparams/msp430all.sh: Add entries for the msp430x21xx
465 * ld.texinfo: Document PROVIDE_HIDDEN.
467 * ldexp.c (exp_fold_tree_1): Hide a provided symbol if asked.
468 (exp_provide): Add and set hidden.
470 * ldexp.h (etree_type): Add hidden to assign.
472 * ldgram.y (PROVIDE_HIDDEN): New.
473 * ldlex.l (PROVIDE_HIDDEN): Likewise.
475 * scripttempl/elf.sc: Use PROVIDE_HIDDEN on array bound
480 * emulparams/elf_x86_64.sh: Revert last change.
481 * scripttempl/elf.sc (REL_LARGE, LARGE_SECTIONS): Define here.
485 * emulparams/armelf.sh (OTHER_BSS_END_SYMBOLS): Split out from
487 * emulparams/armelf_linux.sh: Likewise.
488 * emulparams/armnto.sh: Likewise.
489 * emulparams/criself.sh: Likewise.
490 * emulparams/elf32mcore.sh: Likewise.
491 * emulparams/criself.sh (OTHER_SYMBOLS): Define.
492 * emulparams/crislinux.sh (OTHER_SYMBOLS): Define.
493 (OTHER_END_SYMBOLS): Don't define.
494 * emulparams/elf32fr30.sh: Likewise.
495 * emulparams/elf64mmix.sh: Likewise.
496 * emulparams/hppa64linux.sh: Likewise.
497 * emulparams/m32relf.sh: Likewise.
498 * emulparams/vxworks.sh: Likewise.
499 * scripttempl/armbpabi.sc (OTHER_BSS_SECTIONS): Delete.
500 (OTHER_BSS_END_SYMBOLS): Add.
501 (OTHER_END_SYMBOLS): Move before current end sym definitions.
502 (OTHER_SYMBOLS): Replace OTHER_END_SYMBOLS near end of script.
503 * scripttempl/elf.sc: Likewise.
504 * scripttempl/elf32sh-symbian.sc: Likewise.
505 * scripttempl/elf_chaos.sc: Likewise.
506 * scripttempl/elfxtensa.sc: Likewise.
507 * scripttempl/iq2000.sc: Likewise.
508 * scripttempl/xstormy16.sc: Likewise.
510 * scripttempl/elf.sc (LBSS, LARGE_SECTIONS): Delete.
511 (REL_LDATA, REL_LBSS, REL_LRODATA): Delete.
512 (REL_LARGE, LARGE_SECTIONS): Add.
513 * emulparams/elf_x86_64.sh (LARGE_SECTIONS): Define as script text.
515 * emulparams/hppa64linux.sh (OTHER_BSS_SECTIONS): Don't define.
516 (LARGE_SECTIONS): Define.
517 * emulparams/hppa64linux.sh (OTHER_BSS_SECTIONS): Don't define.
518 (LARGE_SECTIONS): Define.
522 * ldemul.c (ldemul_do_assignments, do_assignments_default): Delete.
523 * ldemul.h (ldemul_do_assignments, do_assignments_default): Delete.
524 (struct ld_emulation_xfer_struct): Remove do_assignments field.
525 * ldlang.c (lang_do_assignments): Don't call ldemul_do_assignments.
526 * emulparams/elf32ppc.sh (SDATA_START_SYMBOLS): New.
527 (SDATA2_START_SYMBOLS, SBSS_START_SYMBOLS, SBSS_END_SYMBOLS): New.
528 * emultempl/aix.em (ld_*_emulation): Delete do_assignments init.
529 * emultempl/armcoff.em: Likewise.
530 * emultempl/beos.em: Likewise.
531 * emultempl/generic.em: Likewise.
532 * emultempl/gld960.em: Likewise.
533 * emultempl/gld960c.em: Likewise.
534 * emultempl/linux.em: Likewise.
535 * emultempl/lnk960.em: Likewise.
536 * emultempl/m68kcoff.em: Likewise.
537 * emultempl/pe.em: Likewise.
538 * emultempl/sunos.em: Likewise.
539 * emultempl/ticoff.em: Likewise.
540 * emultempl/vanilla.em: Likewise.
541 * emultempl/elf32.em: Likewise.
542 (gld*_provide_bound_symbols): Delete.
543 (gld*_provide_init_fini_syms): Delete.
544 (gld*_before_allocation): Don't call ldemul_do_assignments.
545 * emultempl/ppc32elf.em (ppc_do_assignments): Delete.
546 (LDEMUL_DO_ASSIGNMENTS): Delete.
547 * scripttempl/elf.sc: Provide init/fini syms. Add SBSS_START_SYMBOLS,
548 SBSS_END_SYMBOLS, SDATA2_START_SYMBOLS.
552 * Makefile.am (eelf32m32c.c): Fix dependencies.
553 * Makefile.in: Regenerate.
557 * ldemul.c (ldemul_finish): Call ld_emulation->finish unconditionally.
558 (finish_default): New function.
559 * ldemul.h (finish_default): Declare.
560 * emultempl/aix.em (gld*_before_allocation): Call
561 before_allocation_default rather than strip_excluded_output_sections.
562 (ld_*_emulation): Init finish field to finish_default.
563 * emultempl/armcoff.em: Likewise.
564 * emultempl/beos.em: Likewise.
565 * emultempl/elf32.em: Likewise.
566 * emultempl/generic.em: Likewise.
567 * emultempl/gld960.em: Likewise.
568 * emultempl/gld960c.em: Likewise.
569 * emultempl/hppaelf.em: Likewise.
570 * emultempl/linux.em: Likewise.
571 * emultempl/lnk960.em: Likewise.
572 * emultempl/m68kcoff.em: Likewise.
573 * emultempl/mmo.em: Likewise.
574 * emultempl/pe.em: Likewise.
575 * emultempl/ppc64elf.em: Likewise.
576 * emultempl/sunos.em: Likewise.
577 * emultempl/ticoff.em: Likewise.
578 * emultempl/vanilla.em: Likewise.
582 * ldlang.c (exp_init_os): Handle etree_provide.
583 * emulparams/armelf.sh (OTHER_END_SYMBOLS): Rename from..
584 (OTHER_BSS_END_SYMBOLS): ..this.
585 * emulparams/armelf_linux.sh: Likewise.
586 * emulparams/armnto.sh: Likewise.
587 * emulparams/criself.sh: Likewise.
588 * emulparams/crislinux.sh: Likewise.
589 * emulparams/elf32frv.sh: Likewise.
590 * emulparams/elf32mcore.sh: Likewise.
591 * emulparams/elf32ppc.sh: Likewise.
592 * emulparams/elf32ppclinux.sh: Likewise.
593 * emulparams/hppa64linux.sh: Likewise.
594 * scripttempl/armbpabi.sc: Substitute $OTHER_END_SYMBOLS, not
595 $OTHER_BSS_END_SYMBOLS.
596 * scripttempl/elf32sh-symbian.sc: Likewise.
597 * scripttempl/elf_chaos.sc: Likewise.
598 * scripttempl/iq2000.sc: Likewise.
599 * scripttempl/xstormy16.sc: Likewise.
600 * scripttempl/elf.sc: Likewise. Delete __bss_start comment.
601 * scripttempl/elfxtensa.sc: Likewise.
605 * ldmain.c (main): Allow -shared and -static to be used together.
606 * ld.texinfo (-static): Mention that it is allowed with -shared.
610 * ldlang.c (lang_output_section_statement_lookup_1): Don't cast a
611 unary & address operator, as that breaks GCC's strict aliasing
617 * emulparams/elf_x86_64.sh (LARGE_SECTIONS): New.
619 * scripttempl/elf.sc: Updated for large section support.
623 * configure.tgt: Remove i[3-7]86-*-rtemself*.
624 Remove sparc-*-rtemself*.
628 * ldgram.y (ldgram_want_filename): Remove unused static.
632 * emulparams/elf32m32c.sh (TEMPLATE_NAME): New.
633 (EXTRA_EM_FILE): New.
637 * ldmain.c (main): Reindent.
641 * configure.host (HOSTING_CRT0): Parse output of gcc --help --verbose
642 to determine dynamic linker name.
646 * configure.tgt: Restore alpha ordering to list of arches.
650 * emultempl/elf32.em (gld*_provide_init_fini_syms): Prototype.
651 (gld*_before_allocation): Call ldemul_do_assignments rather than
652 gld*_provide_init_fini_syms directly.
653 * emultempl/ppc32elf.em (gld*_after_allocation): Delete.
654 (ppc_do_assignments): New function.
655 (LDEMUL_AFTER_ALLOCATION): Don't define.
656 (LDEMUL_DO_ASSIGNMENTS): Define.
660 * Makefile.am: Run "make dep-am".
661 (emipsidt.c, emipsidtl.c): Depend on generic.em.
662 * Makefile.in: Regenerate.
666 * ldemul.c (ldemul_do_assignments): New function.
667 (do_assignments_default): New function.
668 * ldemul.h (ldemul_do_assignments): Declare.
669 (do_assignments_default): Declare.
670 (struct ld_emulation_xfer_struct): Add do_assignments.
671 * ldlang.c (lang_do_assignments) Call ldemul_do_assignments.
672 * emultempl/aix.em (ld_*_emulation): Init do_assignments field.
673 * emultempl/armcoff.em: Likewise.
674 * emultempl/beos.em: Likewise.
675 * emultempl/generic.em: Likewise.
676 * emultempl/gld960.em: Likewise.
677 * emultempl/gld960c.em: Likewise.
678 * emultempl/linux.em: Likewise.
679 * emultempl/lnk960.em: Likewise.
680 * emultempl/m68kcoff.em: Likewise.
681 * emultempl/pe.em: Likewise.
682 * emultempl/sunos.em: Likewise.
683 * emultempl/ticoff.em: Likewise.
684 * emultempl/vanilla.em: Likewise.
685 * emultempl/elf32.em: Likewise, to call gld*_provide_init_fini_syms.
686 (gld*_find_exp_assignment): Adjust bfd_elf_record_link_assignment call.
690 Add support for the Renesas M32C and M16C.
691 * Makefile.am (ALL_EMULATIONS): Add eelf32m32c.o.
692 (eelf32m32c.c): New target.
693 * Makefile.in: Regenerated.
694 * configure.tgt: Add case for m32c-*-elf.
695 * emulparams/elf32m32c.sh: New file.
699 * ldlang.c (strip_excluded_output_sections): Don't call
701 * emultempl/elf32.em (gld*_provide_bound_symbols): Move.
702 (gld*_provide_init_fini_syms): Move.
703 (gld*_before_allocation): Call the above from here..
704 (gld*_finish): ..not here. Call _bfd_elf_fix_excluded_sec_syms.
705 * emultempl/hppaelf.em (hppaelf_finish): Likewise.
706 * emultempl/ppc64elf.em (ppc_finish): Likewise.
710 * configure.tgt: Remove sparc*-*-rtemsaout*, i[3-7]86-go32-rtems*,
711 i[3-7]86-*-rtemscoff*, hppa*-*-rtems*, mips*el-*-rtems*,
716 * emultempl/pe.em (gld_${EMULATION_NAME}_before_parse): Enable runtime
717 relocation by default.
718 (compute_dll_image_base): Avoid linking into cygwin dll address space.
722 * ldlang.c (wild_sort): Formatting.
723 (strip_excluded_output_sections): Strip zero size sections here.
724 * emultempl/elf32.em (gld*_strip_empty_sections): Delete.
725 (gld*_finish): Don't call the above.
726 * emultempl/hppaelf.em (hppaelf_finish): Likewise.
727 * emultempl/ppc64elf.em (ppc_finish): Likewise.
731 * Makefile.am (ALL_EMULATIONS): Add eelf32ppcvxworks.o.
732 (eelf32ppcvxworks.o): Add dependencies.
733 * Makefile.in: Regenerate.
734 * configure.tgt: Add entry for powerpc-vxworks.
735 * emulparams/elf32-ppc.c: Mention elf32ppcvxworks.sh in comment.
736 * emulparams/elf32ppcvxworks.sh: New file.
737 * emultempl/ppc32elf.em (bfd_elf32_powerpc_vxworks_vec): Declare.
738 (is_ppc_elf32_vec): New function.
739 (ppc_after_open, ppc_before_allocation,
740 gld${EMULATION_NAME}_after_allocation): Use it.
744 * emulparams/elf32bmip.sh (GENERATE_PIE_SCRIPT): Define as "yes".
745 * emulparams/elf32bmipn32-defs.sh (GENERATE_PIE_SCRIPT): Define as "yes".
749 * emulparams/hppalinux.sh (GENERATE_PIE_SCRIPT): Fix typo in
754 * emulparams/m32relf_linux.sh (GENERATE_PIE_SCRIPT): Set to yes.
758 * emultempl/elf32.em: Enable use of ld.so.conf for *-*-k*bsd-*.
762 * scripttempl/elf.sc (.gcc_except_table): Don't KEEP.
766 * Makefile.am (check-DEJAGNU): Don't search for expect.
767 * Makefile.in: Regenerate.
771 * Makefile.am (EXPECT): Set to expect.
772 (RUNTEST): Likewise, set to runtest.
773 * Makefile.in: Regenerate.
777 * emultempl/armelf.em: Add quotes to avoid a null test
782 * ld.texinfo (Command Line Options): Add @item for --hash-size.
786 * scripttempt/elf.sc (.bss): Align tail in a way that allows
787 empty section pruning.
791 * configure.in (AM_BINUTILS_WARNINGS): Add.
792 (BFD_NEED_DECLARATION) Replace with AC_CHECK_DECLS.
793 * config.in: Regenerate.
794 * configure: Regenerate.
795 * sysdep.h (NEED_DECLARATION_*): Replace with HAVE_DECL_*
800 * ldexp.c (fold_unary <ALIGN_K>): Revert last change.
804 * ld.h (lang_phase_type): Move to..
805 * ldexp.h: ..here. Add lang_mark_phase_enum.
806 (node_type): Remove etree_undef and etree_unspec.
807 (exp_data_seg): Delete.
808 (struct ldexp_control, expld): New.
809 (invalid, exp_mark_used_section): Delete.
810 (exp_fold_tree, exp_get_vma, exp_get_value_int, exp_get_fill,
811 exp_get_abs_int): Update prototypes.
812 * ldexp.c (assigning_to_dot): Delete.
814 (make_abs): Operate directly on expld.result. Update all callers.
815 (new_abs): Likewise. Return void.
816 (new_rel_from_abs): Rename from new_rel_from_section.
817 (new_rel, new_rel_from_abs): Operate on expld.result and return void.
819 (fold_unary): Operate on expld.result and return void. Remove
820 "current_section", "allocation_done", "dot", "dotp" and "mark_used"
821 params. Update all callers.
822 (fold_binary, fold_trinary, fold_name, exp_fold_tree_1): Likewise.
823 (fold_unary <ALIGN_K>): Ensure alignment is absolute.
824 (fold_unary <ABSOLUTE>): Use make_abs.
825 (fold_unary <DATA_SEGMENT_END>): Evaluate mark_phase as for
827 (fold_binary <DATA_SEGMENT_ALIGN, DATA_SEGMENT_RELRO_END, >): Ditto.
828 (fold_binary <'%','/'>): Don't error if marking.
829 (fold_name <SIZEOF_HEADERS>): Don't call bfd_sizeof_headers when
831 (fold_name <NAME>): Remove FIXME; -R is handled correctly. Don't
833 (fold_name <ADDR, LOADADDR, SIZEOF>): Don't set SEC_KEEP.
834 (exp_fold_tree_1): Don't error when marking.
835 (exp_fold_tree_1 <etree_rel>): Evaluate in all phases except first.
836 (exp_fold_tree_1 <etree_assign to dot>): Don't check for NULL
837 current section, instead check for NULL dotp.
838 (exp_fold_tree_1 <etree_provide>): Don't evaluate the assignment
839 source unless the symbol is referenced and undefined.
840 (exp_fold_tree): Remove "allocation_done" and "dot" params. Save
842 (exp_fold_tree_no_dot): Remove "current_section", "allocation_done
843 and "mark_used" params. Save params to expld. Update all callers.
844 (exp_assop): Do without temp var.
845 (exp_print_tree <etree_undef>): Delete code.
846 (exp_get_vma): Remove "allocation_done" param. Correct error return.
847 (exp_get_fill, exp_get_abs_int): Likewise.
848 (exp_get_value_int): Remove "allocation_done" param.
849 (exp_mark_used_section): Delete.
850 * ldgram.y (fill_exp): Update exp_get_fill call.
851 (origin_spec, length_spec): Update exp_get_vma call.
852 * ldlang.c (lang_init): Don't bother clearing lang_statement_iteration.
853 (lang_mark_used_section_1, lang_mark_used_section): Delete.
854 (strip_excluded_output_sections): Call one_lang_size_sections_pass in
855 marking mode. Merge old lang_mark_used_section code. Correct handling
856 of output sections with excluded input sections and data statements.
857 Don't drop non-zero sized sections. Don't zap os->bfd_section.
858 Do set SEC_EXCLUDE when appropriate.
859 (print_output_section_statement): Update for changed ldexp.c
861 (print_assignment, lang_size_sections_1): Likewise.
862 (lang_do_assignments_1, lang_enter_output_section_statement): Likewise.
863 (lang_new_phdr, lang_record_phdrs): Likewise.
864 (lang_size_sections): Likewise.
865 (insert_pad): Use following statement if it is a pad, rather than
867 (lang_size_sections_1 <lang_output_section_statement_enum>): Do
868 process ignored output section to set vma and lma, but don't
869 update dot for these sections. Don't error if marking.
870 (lang_size_sections_1 <lang_assignment_statement_enum>): Don't
871 update dot for ignored sections.
872 (lang_size_sections_1 <lang_data_statement_enum>): Don't mark absolute
873 section with SEC_ALLOC.
874 (one_lang_size_sections_pass): New function.
875 (lang_size_sections): Remove first five params. Set expld.phase on
876 entry and exit. Use one_lang_size_sections_pass.
877 (lang_do_assignments): Remove all params. Update all callers.
878 (lang_reset_memory_regions): Clear os->processed for all output
880 * ldlang.h (lang_do_assignments): Update prototype.
881 (lang_size_sections): Likewise.
882 (one_lang_size_sections_pass): Declare.
883 * pe-dll.c (pe_dll_fill_sections, pe_exe_fill_sections): Update
884 lang_size_sections and lang_do_assignments calls.
885 * emultempl/elf32.em (layout_sections_again): Likewise.
886 * emultempl/ppc64elf.em (ppc_before_allocation): Use
887 one_lang_size_sections_pass.
891 * emulparams/elf32ms1.sh: New.
895 * Makefile.am (eelf32ms1.c): Use tab.
896 * Makefile.in: Regenerate.
902 * configure.tgt: Same.
904 * Makefile.am (ALL_EMULATIONS): Depend on eelf32ms1.o.
905 (eelf32ms1.c): Add eelf32ms1.c rule.
907 * Makefile.in: Regenerate.
911 * emultempl/ppc64elf.em (ppc_before_allocation): Always run
916 * ldexp.c (exp_mark_used_section): Set SEC_KEEP on current
917 section only if the symbol will be defined.
922 * ldexp.c (exp_mark_used_section): Set SEC_KEEP on current
923 section for etree_assign, etree_provide and etree_provided.
924 Call fold_binary on etree_binary.
926 * ldlang.c (lang_mark_used_section_1): Handle load base.
930 * ldmain.c (link_callbacks): Add einfo.
931 (add_archive_element): Use passed info, not link_info.
932 (constructor_callback): Likewise.
933 (reloc_overflow): Don't handle null bfd specially.
934 (reloc_dangerous, unattached_reloc): Likewise.
935 * ldmisc.c (vfinfo <B>): Print "ld generated" for null bfd.
936 (vfinfo <C, D, G>): Handle null bfd. Wrap comments.
940 * ldexp.h (etree_value_type): Use "asection *" in place of
941 "struct lang_output_section_statement_struct *" for "section".
942 (exp_fold_tree): Likewise.
943 (exp_mark_used_section): Likewise.
944 * ldexp.c (new_rel, new_rel_from_section, fold_unary, fold_binary,
945 fold_trinary, fold_name, exp_fold_tree_1, exp_fold_tree,
946 exp_mark_used_section): Likewise for "current_section" param.
947 (make_abs, new_abs, exp_binop, exp_unop, exp_get_vma, exp_get_fill,
948 exp_get_abs_int): Adjust for above changes.
949 * ldlang.c (lang_mark_used_section_1, print_assignment,
950 lang_size_sections_1, lang_do_assignments_1): Likewise.
951 * ldexp.c (fold_name): Init entire result struct.
955 * emulparams/elf32btsmip.sh: Unset DATA_ADDR.
959 * ldlang.c (entry_symbol_default): New file-scope global.
960 (lang_finish): Use it, not a hardwired "start".
961 (lang_default_entry): Set it.
962 * ldlang.h: Declare lang_default_entry.
963 * emultempl/beos.em, emultempl/pe.em: Use lang_default_entry,
964 not lang_add_entry, to override default entry point symbol.
968 * emulparams/elf64alpha.sh (PLT): New.
970 * emultempl/alphaelf.em (disable_relaxation): New.
971 (limit_32bit): Rename from elf64alpha_32bit; update all users.
972 (elf64_alpha_use_secureplt): Declare.
973 (bfd_elf64_alpha_vec, bfd_elf64_alpha_freebsd_vec): Declare.
974 (alpha_after_open): New.
975 (alpha_before_allocation): New.
976 (OPTION_NO_RELAX, OPTION_SECUREPLT, OPTION_NO_SECUREPLT): New.
977 (PARSE_AND_LIST_LONGOPTS): Include them.
978 (PARSE_AND_LIST_OPTIONS): Likewise.
979 (PARSE_AND_LIST_ARGS_CASES): Likewise.
980 (LDEMUL_AFTER_OPEN, LDEMUL_BEFORE_ALLOCATION): New.
981 * scripttempl/elf.sc (TEXT_PLT): New.
986 * configure.host (HOSTING_LIBS): Add libunwind.a if it exists.
990 * emultempl/ppc32elf.em (after_allocation): Don't call
991 ppc_elf_set_sdata_syms when relocatable.
995 * Makefile.am (ld.1): Revert the last 2 changes.
996 (info-recursive): Depend on ld.1.
997 * Makefile.in: Regenerated.
1001 * Makefile.am (ld.1): Depend on "info" instead of
1002 "configdoc.texi ldver.texi".
1003 * Makefile.in: Regenerated.
1007 * Makefile.am (ld.1): Depend on "info".
1008 * Makefile.in: Regenerated.
1012 * Makefile.am: Have 'all' depend on 'info' and 'ld.1'.
1013 * Makefile.in: Regenerate.
1017 * ld-arm/mixed-app.d: Adjust expected disassembly a little.
1021 * Makefile.am (ldver.texi): Don't use $<.
1022 * Makefile.in: Regenerated.
1026 * Makefile.am (AM_MAKEINFOFLAGS, TEXI2DVI): Explicitly include
1027 $(srcdir) before $(BFDDIR)/doc.
1028 * Makefile.in: Regenerated.
1033 * ldexp.c (exp_fold_tree_1): Renamed from exp_fold_tree and
1034 take take a bfd_boolean, mark_used. Ignore assert failure if
1036 (exp_fold_tree) Call exp_fold_tree_1 with mark_used == FALSE.
1037 (exp_fold_tree_no_dot): Updated to take a bfd_boolean,
1038 mark_used and pass down.
1039 (fold_unary): Likewise.
1040 (fold_binary): Likewise.
1041 (fold_trinary): Likewise.
1042 (exp_binop): Add FALSE to call to exp_fold_tree_no_dot.
1043 (exp_trinop): Likewise.
1044 (exp_unop): Likewise.
1045 (exp_nameop): Likewise.
1046 (exp_get_vma): Likewise.
1047 (exp_get_fill): Likewise.
1048 (exp_get_abs_int): Likewise.
1049 (fold_name): Likewise. Set SEC_KEEP in output section flags.
1050 (exp_mark_used_section): New.
1052 * ldexp.h (exp_mark_used_section): New.
1054 * ldlang.c (lang_output_section_statement_lookup_1): Set the
1055 ignored field to FALSE.
1056 (lang_mark_used_section_1): New.
1057 (lang_mark_used_section): Call lang_mark_used_section_1.
1058 (strip_excluded_output_sections): Call lang_mark_used_section
1059 and check for unused sections.
1060 (lang_size_sections_1): Skip an output section if it should
1062 (lang_do_assignments_1): Likewise.
1063 (lang_process): Don't call lang_mark_used_section here.
1065 * ldlang.h (lang_output_section_statement_type): Change
1066 all_input_readonly to bitfield. Add ignored.
1071 * emulparams/armelf_linux.sh (GENERATE_PIE_SCRIPT): Define as "yes".
1072 * emulparams/hppalinux.sh (GENERATE_PIE_SCRIPT): Define as "yes".
1076 * ldlang.c (print_assignment): Do not rely upon a valid result
1077 having a section associated with it.
1081 * ldlang.c (Scan_for_self_assignment): Check an assignment tree to
1082 see if the same value is being used on the rhs as on the lhs.
1083 (print_assignment): Call scan_for_self_assignment and if it
1084 returns true, do no display the result of the computation but
1085 instead just the final value of the symbol on the lhs.
1086 * ld.texinfo: Document this behaviour and provide an example of
1087 when it will happen.
1091 * Makefile.am (AM_MAKEINFOFLAGS): Define.
1093 (ldver.texi): Depend on distributed files instead of built files.
1094 (ld.info): Include $(srcdir) in the rule target. Remove actions.
1095 (ld.dvi): Remove actions.
1096 (MAINTAINERCLEANFILES): Add configdoc.texi.
1097 (CONFIG_STATUS_DEPENDENCIES): Add bfd/configure.in.
1098 (install-data-local): Renamed from install.
1099 (Makefile): Remove explicit dependency.
1100 * acinclude.m4: Remove obsolete code.
1101 * configure.in: Update AC_PREREQ. Remove extra $CONFIG_SHELL.
1102 * Makefile.in, aclocal.m4, config.in, configure: Regenerated.
1106 * scripttempl/elfxtensa.sc: Sync up with elf.sc.
1107 * emulparams/elf32xtensa.sh (PLT, GOT): Define.
1111 * ldgram.y: Add SPECIAL token.
1112 (sect_constraint): Handle SPECIAL.
1113 * ldlang.c (lang_output_section_find_1): Don't match SPECIAL.
1114 (map_input_to_output_sections): Likewise.
1115 * ldlex.l (SPECIAL): Define.
1116 * emulparams/elf32ppc.sh (DATA_GOT, SDATA_GOT, SEPARATE_GOTPLT,
1117 GOT, PLT, GOTPLT): Define.
1118 * emultempl/ppc32elf.em (old_plt, old_got): New static vars.
1119 (ppc_after_open): New function.
1120 (PARSE_AND_LIST_PROLOGUE): Define OPTION_OLD_LPT and OPTION_OLD_GOT.
1121 (PARSE_AND_LIST_LONGOPTS): Add "bss-plt" and "sdata-got".
1122 (PARSE_AND_LIST_OPTIONS): Document them.
1123 (PARSE_AND_LIST_ARGS_CASES): Handle them.
1124 (LDEMUL_AFTER_OPEN): Define.
1125 * scripttempl/elf.sc (PLT): Don't override existing define.
1126 (DATA_GOT, SDATA_GOT): Define and use to enable alternate got
1127 placement rather than using NO_SMALL_DATA. Emit GOTPLT for RELRO_NOW.
1131 * scripttempl/elf.sc (DATA_SEGMENT_RELRO_GOTPLT_END): Delete.
1132 (DATA_SEGMENT_RELRO_END): Use SEPARATE_GOTPLT value.
1133 (GOTPLT): Remove DATA_SEGMENT_RELRO_GOTPLT_END. Place after
1134 DATA_SEGMENT_RELRO_END in script.
1138 * emultempl/elf32.em (gld${EMULATION_NAME}_provide_bound_symbols):
1139 Don't use a removed section.
1143 * ldmain.c (reloc_overflow): Use output_bfd if the symbol
1144 is defined in the ABS section.
1148 * emultempl/elf32.em (gld${EMULATION_NAME}_provide_init_fini_syms):
1149 Put back !link_info.relocatable.
1154 * emultempl/elf32.em (gld${EMULATION_NAME}_provide_init_fini_syms):
1155 Just check link_info.executable.
1159 * Update the address and phone number of the FSF organization in
1160 the GPL notices in the following files:
1161 aclocal.m4, deffile.h, deffilep.y, fdl.texi, ld.h, ldcref.c,
1162 ldctor.c, ldctor.h, ldemul.c, ldexp.c, ldexp.h, ldfile.c,
1163 ldfile.h, 20ldgram.y, ldint.texinfo, ldlang.c, ldlang.h, ldlex.h,
1164 ldlex.l, ldmain.c, ldmain.h, ldmisc.c, ldmisc.h, ldver.c, ldver.h,
1165 ldwrite.c, ldwrite.h, lexsup.c, mri.c, mri.h, pe-dll.c, pe-dll.h,
1166 sysdep.h, emultempl/aix.em, emultempl/alphaelf.em,
1167 emultempl/armcoff.em, emultempl/armelf.em, emultempl/beos.em,
1168 emultempl/crxelf.em, emultempl/elf32.em, emultempl/generic.em,
1169 emultempl/gld960.em, emultempl/gld960c.em, emultempl/hppaelf.em,
1170 emultempl/ia64elf.em, emultempl/irix.em, emultempl/linux.em,
1171 emultempl/lnk960.em, emultempl/m68hc1xelf.em,
1172 emultempl/m68kcoff.em, emultempl/m68kelf.em,
1173 emultempl/mipsecoff.em, emultempl/mmix-elfnmmo.em,
1174 emultempl/mmixelf.em, emultempl/mmo.em, emultempl/needrelax.em,
1175 emultempl/pe.em, emultempl/ppc32elf.em, emultempl/ppc64elf.em,
1176 emultempl/sh64elf.em, emultempl/sunos.em, emultempl/ticoff.em,
1177 emultempl/vanilla.em, emultempl/xtensaelf.em
1181 * scripttempl/elf.sc: Document the usage of __bss_start.
1185 * Makefile.am: Add eelf_i386_vxworks.
1186 * Makefile.in: Regenerate.
1187 * configure.tgt: Make i?86-*-vxworks use targ_emul=elf_i386_vxworks.
1188 * emulparams/elf_i386_vxworks.sh: New file.
1189 * emulparams/vxworks.sh: New file.
1190 * scripttempl/elf.sc: Add DATA_END_SYMBOLS and ETEXT_NAME.
1194 * emultempl/elf32.em (gld${EMULATION_NAME}_provide_bound_symbols):
1195 Call _bfd_elf_provide_section_bound_symbols.
1199 * ldemul.c: Include bfdlink.h.
1200 (ldemul_before_allocation): Assume before_allocation is non-zero.
1201 (before_allocation_default): Call strip_excluded_output_sections.
1202 * ldlang.c (stripped_excluded_sections): New variable.
1203 (lang_add_section): Build input section list for each output
1204 section, attached via map_head and map_tail pointers.
1205 (strip_excluded_output_sections): Make global. Traverse the
1206 input section lists to find which output sections can go. Clear
1207 link_order pointers and set stripped_excluded_sections.
1208 (lang_process): Call strip_excluded_output_sections.
1209 * ldlang.h (strip_excluded_output_sections): Declare.
1210 * ldwrite.c: Update throuhout for link_order_head -> map_head change.
1211 * emultempl/aix.em (before_allocation): Call
1212 strip_excluded_output_sections.
1213 * emultempl/armcoff.em (before_allocation): Likewise.
1214 * emultempl/beos.em (before_allocation): Likewise.
1215 * emultempl/linux.em (before_allocation): Likewise.
1216 * emultempl/pe.em (before_allocation): Likewise.
1217 * emultempl/sunos.em (before_allocation): Likewise.
1218 * emultempl/elf32.em (before_allocation): Likewise. Call
1219 bfd_elf_size_dynsym_hash_dynstr too.
1220 * emultempl/lnk960.em (lnk960_before_allocation): Delete.
1221 (ld_lnk960): Use before_allocation_default.
1225 * emultempl/elf32.em (gld${EMULATION_NAME}_strip_empty_section):
1226 Updated for bfd_section_list_remove change.
1227 * ldlang.c (lang_insert_orphan): Likewise.
1228 (strip_excluded_output_sections): Likewise.
1229 (sort_sections_by_lma): New.
1230 (lang_check_section_addresses): Sort the sections before
1235 * configure.tgt: Add h8300*-*-rtemscoff.
1236 Switch h8300*-*-rtems* to elf.
1240 * ldgram.y (lang_memory_region_type): Make static.
1241 (ldgram_want_filename): Likewise.
1242 * ldemul.c (ld_emulation): Make static.
1243 * ldfile.h (ldfile_find_command_file): Remove extern.
1244 * ldfile.c (ldfile_find_command_file): Make static.
1245 * ldlang.h (unique_section_list): Remove extern declaration.
1246 * ldlang.c (unique_section_list): Make static.
1247 * mri.h (symbol_truncate): Remove extern declaration.
1248 * mri.c (symbol_truncate): Make static.
1249 (order, only_load, address, alias): Likewise.
1250 (alignment, subalignment): Likewise.
1254 * emultempl/elf32.em (gld${EMULATION_NAME}_provide_bound_symbols):
1255 Use the first SEC_ALLOC section which isn't SEC_READONLY or the
1256 last SEC_ALLOC section if such a section doesn't exist.
1260 * configure.host: Add *-*-openbsd support.
1264 * ld.texinfo: Document --use-blx.
1265 * emultempl/armelf.em (use_blx): New variable.
1266 (arm_elf_create_output_section_statements): Communicate value of
1268 (PARSE_AND_LIST_PROLOGUE): Add OPTION_USE_BLX.
1269 (PARSE_AND_LIST_OPTIONS): Add --use-blx option.
1270 (PARSE_AND_LIST_ARGS_CASES): Add OPTION_USE_BLX case.
1274 * Makefile.am (NO_WERROR): Define. Use instead of -Wno-error.
1275 * configure.in: Include ../bfd/warning.m4 contents.
1276 * Makefile.in: Regenerate.
1277 * configure: Regenerate.
1281 * Makefile.am: Run "make dep-am".
1282 (ldgram.o, ldlex.o, deffilep.o): Add -Wno-error to command.
1283 * Makefile.in: Regenerate.
1284 * config.in: Regenerate.
1288 * emultempl/elf32.em (gld${EMULATION_NAME}_stat_needed): Ignore
1289 as_needed libs that were not needed.
1290 (gld${EMULATION_NAME}_check_needed): Likewise.
1294 * emultempl/m68kcoff.em: Include ldexp.h and ldlang.h so that
1295 ldfile.h can use the lang_input_statement type.
1299 * ldlang.c: Formatting.
1300 (walk_wild_consider_section): Remember return value from wildcardp.
1301 (is_simple_wild): Use strcspn instead of 2 strpbrk calls and strlen.
1302 (wild_spec_can_overlap): Use strcspn instead of strpbrk and strlen.
1306 * ld.h (lean_section_userdata_type): Remove.
1307 (fat_section_userdata_type): Remove file field.
1308 (SECTION_USERDATA_SIZE): Remove.
1309 * ldlang.c (init_os): Eliminate initialization of unused
1310 lean_section_userdata_type.
1312 * ldlang.h (callback_t, walk_wild_section_handler_t): New
1314 (struct lang_wild_statement_struct): Add walk_wild_section_handler
1315 and handler_data fields.
1316 * ldlang.c (callback_t): Removed.
1317 (walk_wild_consider_section, walk_wild_section_general,
1318 section_iterator_callback, find_section, is_simple_wild,
1319 match_simple_wild, walk_wild_section_specs1_wild0,
1320 walk_wild_section_specs1_wild1, walk_wild_section_specs2_wild1,
1321 walk_wild_section_specs3_wild2, walk_wild_section_specs4_wild2,
1322 wild_spec_can_overlap, analyze_walk_wild_section_handler): New
1324 (lang_add_wild): Call analyze_walk_wild_section_handler.
1325 (walk_wild_section): Renamed to walk_wild_section_general and
1326 created a wrapper function.
1327 (section_iterator_callback_data): New typedef.
1331 * configure.in: Add a check for <unistd.h> providing a prototype
1332 for getopt() which is compatible with the one in
1333 include/getopt.h. If so then define HAVE_DECL_GETOPT.
1334 * configure: Regenerate.
1335 * config.in (HAVE_DECL_GETOPT): Add.
1336 * ldemul.c: Include config.h
1337 * lexsup.c: Likewise.
1338 * emultempl/elf32.sc: Likewise.
1342 * emultempl/elf32.em (gld${EMULATION_NAME}_layout_sections_again):
1343 New function, extracted from static void gld${EMULATION_NAME}_finish.
1344 (gld${EMULATION_NAME}_strip_empty_sections): Likewise.
1345 (gld${EMULATION_NAME}_provide_init_fini_syms): Likewise.
1346 * emultempl/ppc64elf.em: Revert last change.
1347 (ppc_layout_sections_again): Use
1348 gld${EMULATION_NAME}_layout_sections_again.
1349 (ppc_finish): Don't call gld${EMULATION_NAME}_finish. Instead call
1350 gld${EMULATION_NAME}_strip_empty_sections and
1351 gld${EMULATION_NAME}_provide_init_fini_syms.
1352 * emultempl/hppaelf.em: Similarly.
1356 * emultempl/ppc64elf.em (need_laying_out): Delete. Remove all refs.
1357 (ppc_finish): Don't call bfd_elf_discard_info.
1358 * emultempl/hppaelf.em: Similarly.
1362 * po/fr.po: Updated French translation.
1367 * configure.host: Accept any C library to accompany a GNU Linux
1368 implementation, not just the GNU C library.
1369 * configure.tgt: Likewise.
1370 * emultempl/elf32.em: Likewise.
1374 * emultempl/elf32.em (gld${EMULATION_NAME}_provide_bound_symbols): New
1375 (gld${EMULATION_NAME}_finish): Call
1376 gld${EMULATION_NAME}_provide_bound_symbols to provide
1377 __preinit_array_start, __preinit_array_end, __init_array_start,
1378 __init_array_end, __fini_array_start and __fini_array_end.
1380 * scripttempl/elf.sc: Don't provide __preinit_array_start,
1381 __preinit_array_end, __init_array_start, __init_array_end,
1382 __fini_array_start nor __fini_array_end.
1386 * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Set
1387 SEC_EXCLUDE on .gnu.warning sections.
1391 * scripttempl/elf.sc (SBSS): Don't provide sbss start and end syms.
1395 * emultempl/ppc32elf.em (gld${EMULATION_NAME}_after_allocation): New
1397 (LDEMUL_AFTER_ALLOCATION): Define.
1401 * emultempl/ppc64elf.em (ppc_finish): Rename from
1402 gld${EMULATION_NAME}_finish. Call gld${EMULATION_NAME}_finish.
1403 (LDEMUL_FINISH): Update.
1404 * emultempl/hppaelf.em (hppaelf_finish, LDEMUL_FINISH): Likewise.
1405 * emultempl/m68hc1xelf.em (m68hc11elf_finish, LDEMUL_FINISH): Likewise.
1409 * scripttempl/armbpapi.sc (.rel.dyn): Add .rel.init_array,
1411 (.rela.dyn): Add .rela.init_array, .rela.fini_array.
1412 (SECTIONS): Add .rel.other, .rela.other, .reli.other after PLT relocs.
1416 * emultempl/elf32.em (gld${EMULATION_NAME}_finish): Don't set
1417 bfd_section when removing unused empty output sections for
1418 non-relocatable link.
1422 * ldlang.c (lang_insert_orphan): Use old section_tail rather than
1423 traversing the bfd section list to find pointer to new section.
1427 * scripttempl/elf.sc: When CREATE_SHLIB, put .sdata2 and .sbss2
1428 input sections into .sdata and .sbss output respectively.
1433 * ldlang.c (IGNORE_SECTION): Remove check for zero size.
1434 (lang_check_section_addresses): Ignore zero size sections here.
1438 * emultempl/elf32.em (gld${EMULATION_NAME}_finish): Remove
1439 unused empty output sections for non-relocatable link.
1441 * ld.h (args_type): Remove gc_sections.
1443 * ldlang.c (lang_mark_used_section): New.
1444 (lang_gc_sections): Use link_info.gc_sections instead of
1445 command_line.gc_sections.
1446 * ldmain.c (main): Likewise.
1447 * lexsup.c (parse_args): Likewise.
1448 * ldlang.c (lang_process): Call lang_mark_used_section.
1450 * ldmain.c (main): Initialize link_info.gc_sections to FALSE.
1455 * configure.in (werror): New switch: Add -Werror to the
1456 compiler command line. Enabled by default. Disable via
1458 * configure: Regenerate.
1462 * emulparams/elf32ppclinux.sh (OTHER_READWRITE_SECTION): Delete.
1463 (OTHER_RELRO_SECTIONS): Set this instead.
1467 * NEWS: Add cutoff for changes in 2.16 release.
1471 * configure.tgt (x86_64-elf): Add target.
1475 * po/es.po: Commit new Spanish translation.
1479 * ldexp.c (exp_fold_tree): Ensure return value is initialized.
1480 Tidy etree_assert case.
1484 * po/tr.po: Commit new Turkish translation.
1488 * Makefile.am: Remove references to em68klynx.o and esparclynx.o.
1489 * Makefile.in: Regenerated.
1490 * emulparams/m68klynx.sh, emulparams/sparclynx.sh: Remove.
1494 * po/fr.po: Updated translation.
1498 * po/ld.pot: Regenerate.
1502 * ldmain.c (remove_output): Use unlink_if_ordinary instead of unlink.
1503 * pe-dll.c (pe_dll_generate_implib): Likewise.
1507 * ldfile.c: Remove GNU960 conditional code.
1508 * emultempl/gld960.em: Likewise.
1509 * emultempl/gld960c.em: Likewise.
1510 * emultempl/lnk960.em: Likewise.
1514 * emultempl/lnk960.em (lnk960_before_parse): Remove redundant
1515 empty string from calls to concat.
1519 * emultempl/lnk960.em (lnk960_before_parse): Terminate list of
1520 arguments passed to concat() with a NULL.
1522 * emultempl/m68kcoff.em: Include ldexp.h and ldlang.h because they
1523 define types needed by ldfile.h
1527 * pe-dll.c: Warning fixes.
1528 * emultempl/sunos.em: Likewise.
1532 * ldlang.c (section_already_linked): Don't call
1533 bfd_section_already_linked for dynamic objects.
1537 * ldexp.c: Warning fixes.
1538 * ldwrite.c: Likewise.
1539 * emultempl/elf32.em: Likewise.
1543 * ldlang.c (lang_add_section): Check SEC_TIC54X_BLOCK for TI
1545 (lang_size_sections_1): Check SEC_COFF_SHARED_LIBRARY for COFF
1546 and ECOFF output only.
1550 * config.in: Regenerate.
1551 * configure: Regenerate.
1555 * ldexp.c (assigning_to_dot): New global flag.
1556 (fold_name): If assigning_to_dot is true, object immediately to
1557 an undefined symbol.
1558 (exp_fold_tree): Set and clear assigning_to_dot around the
1559 recursive call to exp_fold_tree to process the right-hand side
1560 of an assignment to the location counter.
1564 * scripttempl/armbpabi.sc: Add dummy name to version block.
1568 * ldexp.c (new_abs): Init new.str.
1572 * configure.in (AC_CHECK_FUNCS): Add glob.
1573 * configure: Regenerated.
1574 * emultempl/elf32.em (<glob.h>): Do not include if HAVE_GLOB is
1576 (gld${EMULATION_NAME}_parse_ld_so_conf_include): Do not use glob
1577 if HAVE_GLOB is not defined.
1581 * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Define
1582 lib_path if NATIVE is yes.
1586 * emultempl/ppc64elf.em (ppc_create_output_section_statements): Make
1587 an error creating fake bfd fatal.
1588 (ppc_before_allocation): Continue on after errors.
1589 (gld${EMULATION_NAME}_finish): Likewise.
1593 * ldlex.l (YY_NO_UNPUT): Define so that the yy_unput function is
1594 not declared. It is not used and its presence causes a compile
1599 * emultempl/elf32.em (gld${EMULATION_NAME}_stat_needed):
1600 If st.st_ino is zero, do not treat the library as a duplicate.
1604 * emultempl/hppaelf.em (hppaelf_create_output_section_statements):
1605 Set BFD_LINKER_CREATED on the stubs bfd.
1606 * emultempl/ppc64elf.em (ppc_create_output_section_statements):
1611 * scripttempl/armbpabi.sc (VERSION): Make special section symbols
1613 (Image$$ER_RO$$Base): Define whenever RELOCATING.
1614 (Image$$ER_RO$$Limit): Likewise.
1615 (SHT$$INIT_ARRAY$$Base): Likewise.
1616 (SHT$$INIT_ARRAY$$Limit): Likeise.
1620 * emultempl/beos.em: Remove #if 0 and #if 1 blocks.
1624 * configure.tgt (mips64*el-*-linux-gnu*): Define targ_extra_libpath
1625 to include o32 and n64 emulations.
1626 (mips64*-*-linux-gnu*): Likewise.
1630 * ldmain.c (warning_callback, warning_find_reloc): Prepend
1631 "warning: " to warning messages.
1635 * emultempl/elf32.em (gld${EMULATION_NAME}_find_exp_assignment): Don't
1636 look up symbol for etree_provide here.
1640 * emulparams/elf32bmip.sh (TEXT_DYNAMIC): Always set.
1645 * ld.texinfo (Source Code Reference): New node describing how to
1646 access linker script defined variables from source code.
1650 * ld.texinfo: Clarify --as-needed operation.
1654 * configure: Regenerate to track ../gettext.m4.
1658 * ldver.c (ldversion): Bump reported copyright date to 2005.
1662 * configure.tgt: Remove obsolete targets m68k-lynxos and
1667 * emultempl/armelf.em (fix_v4bx): New variable.
1668 (arm_elf_create_output_section_statements): Communicate fix_v4bx flag
1670 (PARSE_AND_LIST_PROLOGUE): Add option token OPTION_FIX_V4BX.
1671 (PARSE_AND_LIST_LONGOPTS): Add option --fix-v4bx.
1672 (PARSE_AND_LIST_OPTIONS): Add option --fix-v4bx.
1673 (PARSE_AND_LIST_ARGS_CASES): Add option OPTION_FIX_V4BX.
1674 * NEWS: Mention --fix-v4bx.
1675 * ld.texinfo: Document --fix-v4bx.
1679 * emulparams/armsymbian.sh (OTHER_READONLY_SECTIONS): Define, so
1680 as to include .ARM.exidx$${Base,Limit}.
1681 * ld/scripttempl/armbpabi.sc: Move .plt to end of text segment.
1682 Define IMAGE$$ER_RO$${Base,Limit} and SHT$$INIT_ARRAY$${Base,Limit}.
1683 Put .init_array, .fini_array, etc. into the read-only data
1688 * emultempl/elf32.em (gld${EMULATION_NAME}_try_needed): Formatting.
1689 (gld${EMULATION_NAME}_after_open): Ignore needed libs if they were
1690 only needed by an as-needed lib that didn't get linked.
1694 * ld.texinfo (Output Section Keywords <CONSTRUCTORS>): Correct
1695 __DTOR_LIST__ description.
1699 * ld.texinfo (Location Counter <dot outside sections>): Document
1700 effects of orphan section placement, and ". = ." workaround.
1701 * Makefile.in: Regenerate.
1705 * emulparams/elf32bmip.sh (OTHER_GOT_SECTIONS): Add ". = .;".
1706 * emulparams/elf32bmipn32-defs.sh (OTHER_GOT_SECTIONS): Likewise.
1710 * ldgram.y (AS_NEEDED): New token.
1711 (input_list): Handle AS_NEEDED ( input_list ).
1712 * ldlex.l (AS_NEEDED): Add.
1713 * ld.texinfo: Document AS_NEEDED ().
1714 * NEWS: Mention AS_NEEDED ().
1718 * ldlang.c (lang_reasonable_defaults): Remove.
1719 (lang_process): Don't call lang_reasonable_defaults.
1721 * ldexp.c (exp_assop): Remove #if 0'd code.
1722 (exp_print_tree): Likewise.
1723 * ldlang.c (lang_memory_region_lookup): Likewise.
1724 (open_output): Likewise.
1725 (lang_do_assignments_1): Likewise.
1726 (lang_place_orphans): Likewise.
1727 (lang_enter_output_section_statement): Likewise.
1728 (lang_reasonable_defaults): Likewise.
1729 * ldlang.h (struct lang_input_statement_struct): Likewise.
1730 * mri.c (mri_draw_tree): Likewise.
1731 (mri_load): Likewise.
1732 * pe-dll.c (generate_reloc): Likewise.
1733 (make_import_fixup_entry): Likewise.
1734 (pe_as16): Likewise.
1735 * emultempl/beos.em (set_pe_subsystem): Likewise.
1736 * emultempl/hppaelf.em (hppaelf_after_parse): Likewise.
1737 * emultempl/pe.em: Likewise.
1738 * emultempl/xtensaelf.em (xtensa_colocate_literals): Likewise.
1742 * Makefile.am (ALL_EMULATIONS): Add earmelfb_linux_eabi.o.
1743 (earmelfb_linux_eabi.c): New target.
1744 * Makefile.in: Regenerated.
1745 * configure.tgt (arm*b-*-linux-gnueabi): New target.
1746 * emulparams/armelfb_linux_eabi.sh: New file.
1751 * emultempl/hppaelf.em (hppaelf_create_output_section_statements):
1752 Handle bfd_elf32_hppa_nbsd_vec.
1756 * ldmain.h (ld_sysroot): Change type to a constant string.
1757 * ldmain.c (ld_sysroot): Likewise.
1758 (get_relative_sysroot, get_sysroot): New functions, adding command-line
1759 support for changing the sysroot.
1760 (main): Call the new functions.
1761 * lexsup.c (OPTION_SYSROOT): New.
1762 (ld_options): Add --sysroot.
1763 (parse_args): Add a dummy handler for it.
1764 * ld.texinfo (--sysroot): Document.
1765 * NEWS: Mention the new --sysroot option.
1769 * ldlang.c (section_already_linked): Adjust bfd_link_just_syms call.
1770 (lang_place_orphans): Don't abort on just_syms_flag, instead call
1775 * defilep.y (def_name, def_library): Combine into...
1776 (def_image_name): New function. Strip name to basename,
1781 * configure.in: Be sure to invoke config.sub using the shell.
1782 * configure: Regenerate.
1786 * configure.host: Correct sed patterns for last change.
1791 * ldmisc.c (vfinfo): Add an extra argument: is_warning. Use this
1792 to determine whether config.make_executable should be set to FALSE in
1793 conjunction with config.fatal_warnings.
1794 (info_msg, minfo, lfinof): Pass FALSE as the extra argument.
1795 (einfo): Pass TRUE as the extra argument.
1799 * configure.host (linux targets): Use "${CC} -dumpspecs" instead
1800 of "${CC} --print-file-name=specs" to appease GCC versions >= 4.0.
1801 (ia64-*-aix): Delete - this target is obsolete, and would be
1802 broken by this patch.
1806 * configure.host (sparc*-*-solaris2*): Rename into sparc-*-solaris2*.
1807 (sparc64-sun-solaris2*): New host.
1811 * Makefie.am: Add earmelf_vxworks.
1812 * Makefile.in: Regenerate.
1813 * configure.tgt: Make arm-*-vxworks a separate case.
1814 * emulparams/armelf_vxworks.sh: New function.
1818 * emultempl/ppc64elf.em (no_multi_toc): New var.
1819 (gld${EMULATION_NAME}_finish): Pass to ppc64_elf_setup_section_lists.
1820 (OPTION_NO_MULTI_TOC): Define.
1821 (PARSE_AND_LIST_LONGOPTS): Add --no-multi-toc support.
1822 (PARSE_AND_LIST_OPTIONS, PARSE_AND_LIST_ARGS_CASES): Likewise.
1827 * ldmisc.c (vfinfo): Alter output to conform to the GNU Coding
1828 Standard's specification for parsable error messages.
1832 * Makefile.am: Correct dependency for earmsymbian.c.
1833 * Makefile.in: Regenerate.
1835 For older changes see ChangeLog-2004
1837 Copyright (C) 2005 Free Software Foundation, Inc.
1839 Copying and distribution of this file, with or without modification,
1840 are permitted in any medium without royalty provided the copyright
1841 notice and this notice are preserved.
1847 version-control: never