3 * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Exclude
4 shared libraries in loop looking for .eh_frame sections.
5 Similarly for build-id loop.
9 * emultempl/avrelf.em: Add include of elf/avr.h.
10 (avr_finish): New function.
11 (LDEMUL_FINISH): Added.
15 * ldexp.c (update_definedness): Return false if script symbol is
16 redefining a strong symbol in an object.
17 (exp_fold_tree_1 <etree_assign>): Set up for reporting a multiple
18 definition error, but for now leave disabled.
22 * ldexp.c (exp_fold_tree_1 <etree_provide>): Test linker_def.
26 * ldexp.c (exp_fold_tree_1 <etree_provide>): Leave bfd_link_hash_common
31 * ldexp.c (update_definedness): Correct logic setting by_object.
35 * ldexp.c (struct definedness_hash_entry, definedness_table)
36 (definedness_newfunc, symbol_defined, update_definedness): Move
38 * ldlang.h (struct lang_definedness_hash_entry): ..here,..
39 * ldlang.c (lang_definedness_table, lang_definedness_newfunc)
40 (lang_symbol_defined, lang_update_definedness): ..and here.
41 * ldexp.c (ldexp_init, ldexp_finish): New functions, extracted from..
42 * ldlang.c (lang_init, lang_finish): ..here.
43 * ldexp.h (ldexp_init, ldexp_finish): Declare.
44 * ldlang.h (lang_symbol_defined, lang_update_definedness): Delete.
45 * ldmain.c (main): Call ldexp_init and ldexp_finish.
49 * ldmisc.c: #include "coff-bfd.h"
53 * configure.tgt: Add Visium support.
54 * Makefile.am (ALL_EMULATION_SOURCES): Add eelf32visium.c.
55 (eelf32visium.c): New rule.
56 * Makefile.in: Regenerate.
57 * emulparams/elf32visium.sh: New file.
58 * scripttempl/visium.sc: Likewise.
62 * emulparams/elf_i386.sh (TINY_READONLY_SECTION): New.
63 * emulparams/elf_x86_64.sh (TINY_READONLY_SECTION): Add .plt.got.
67 * configure: Regenerated.
71 * ld.texinfo: Correct --plt-align documentation.
72 * emultempl/ppc64elf.em (plt_stub_align): Delete. Use and set
73 params.plt_stub_align instead.
77 * emulparams/elf_x86_64.sh (BNDPLT): Set to yes for x86_64.
78 * emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Handle
79 "-z bndplt" if BNDPLT is yes.
80 (gld${EMULATION_NAME}_list_options): Add "-z bndplt" entry.
81 * ld.texinfo: Add description for bndplt.
85 * avrtiny.sc: Apply avr.sc fixes.
89 * emultempl/spu_icache.o_c: Regenerate.
90 * emultempl/spu_ovl.o_c: Regenerate.
94 * testsuite/ld-avr/relax-02.d: Update to check size of symbols has
96 * testsuite/ld-avr/relax-03.d: Likewise.
100 * testsuite/ld-avr/relax-02.d: New file.
101 * testsuite/ld-avr/relax-02.s: New file.
102 * testsuite/ld-avr/relax-03.d: New file.
103 * testsuite/ld-avr/relax-03.s: New file.
107 * po/bg.po: Updated Bulgarian translation.
111 * emultempl/aarch64elf.em: Add command-line option for erratum 835769.
115 Implement --print-sysroot in ld.
116 * ldlex.h (enum option_values): Add entry OPTION_PRINT_SYSROOT.
117 * lexsup.c (ld_options): Add entry for --print-sysroot.
118 (parse_args) <OPTION_PRINT_SYSROOT>: Print sysroot and exit early.
123 * emultempl/ppc64elf.em (gld${EMULATION_NAME}_finish): Don't attempt
124 to access ELF header e_flags when not ppc64 ELF output.
128 * configure: Regenerate.
132 * ldlex.l (INPUTLIST): New start condition.
133 (comment pattern, ",", "(", ")", "AS_NEEDED")
134 ({FILENAMECHAR1}{FILENAMECHAR}*, "-l"{FILENAMECHAR}+)
135 (quoted string pattern, whitespace pattern): Add INPUTLIST to
136 valid start conditions.
137 (<INPUTLIST>"="{FILENAMECHAR1}{FILENAMECHAR}*): New NAME rule.
138 (ldlex_inputlist): New start-condition-setter function.
139 * ldgram.y (input_list1): Rename from input_list. All recursive
141 (input_list): New wrapper rule for input_list1, setting
142 INPUTLIST lexer state for the duration of parsing input_list1.
143 * ldlang.c (lang_add_input_file): If the first character in the
144 filename is '=', prepend the sysroot and force the context of that
145 input file to non-sysroot.
146 * ld.texinfo (Options): When mentioning "=" and sysroot, mention
147 that --sysroot controls it, not only through the configuration.
148 (input files in linker scripts): When mentioning
149 behavior of first character "/" on scripts within sysroot, also
150 mention that effect can be forced by prefixing with "=" and
155 * NEWS: Add marker for 2.25.
159 * ldlang.c (lang_add_section): Set up map_head.s and map_tail.s when
164 * emultempl/nds32elf.em (nds32_elf_after_open): Do not keep
166 (nds32_elf_after_allocation): Move all optimizations into
167 nds32_elf_relax_section.
172 * ldmain.c (get_emulation): Add support for -mips32r6 and -mips64r6.
176 * configure.tgt: Add mips*-img-elf* target triple.
180 * emultempl/pe.em (write_build_id, setup_build_id): Change pe/coff
181 build-id section name from '.build-id' to '.buildid'.
182 * emultempl/pep.em (write_build_id, setup_build_id): Ditto.
186 * emulparams/armelf_fbsd.sh (TEXT_START_ADDR): Increase alignment to
187 64kB boundary like in armelf_linux.sh.
191 * emultempl/ppc64elf.em (gld${EMULATION_NAME}_after_allocation): Call
192 bfd_elf_discard_info after generating glink .eh_frame. Delete
193 redundant test on ppc64_elf_setup_section_lists status.
197 * emultempl/armelf.em (OPTION_STUBGROUP_SIZE): Fix formatting.
198 (OPTION_NO_MERGE_EXIDX_ENTRIES, OPTION_LONG_PLT): Likewise.
202 * configure.tgt: Default armeb-*-eabi* to big endian.
206 * emultempl/pep.em: Add --high-entropy-va switch.
207 * ld.texinfo: Document the --high-entropy-va switch.
211 * scripttempl/DWARF.sc: Add copyright notice.
212 * scripttempl/aix.sc: Likewise.
213 * scripttempl/alpha.sc: Likewise.
214 * scripttempl/alphavms.sc: Likewise.
215 * scripttempl/aout.sc: Likewise.
216 * scripttempl/armaout.sc: Likewise.
217 * scripttempl/armbpabi.sc: Likewise.
218 * scripttempl/armcoff.sc: Likewise.
219 * scripttempl/avr.sc: Likewise.
220 * scripttempl/avrtiny.sc: Likewise.
221 * scripttempl/crisaout.sc: Likewise.
222 * scripttempl/delta68.sc: Likewise.
223 * scripttempl/dlx.sc: Likewise.
224 * scripttempl/elf.sc: Likewise.
225 * scripttempl/elf32cr16.sc: Likewise.
226 * scripttempl/elf32cr16c.sc: Likewise.
227 * scripttempl/elf32crx.sc: Likewise.
228 * scripttempl/elf32msp430.sc: Likewise.
229 * scripttempl/elf32msp430_3.sc: Likewise.
230 * scripttempl/elf32sh-symbian.sc: Likewise.
231 * scripttempl/elf32xc16x.sc: Likewise.
232 * scripttempl/elf32xc16xl.sc: Likewise.
233 * scripttempl/elf32xc16xs.sc: Likewise.
234 * scripttempl/elf64hppa.sc: Likewise.
235 * scripttempl/elf_chaos.sc: Likewise.
236 * scripttempl/elfd10v.sc: Likewise.
237 * scripttempl/elfd30v.sc: Likewise.
238 * scripttempl/elfi370.sc: Likewise.
239 * scripttempl/elfm68hc11.sc: Likewise.
240 * scripttempl/elfm68hc12.sc: Likewise.
241 * scripttempl/elfmicroblaze.sc: Likewise.
242 * scripttempl/elfxgate.sc: Likewise.
243 * scripttempl/elfxtensa.sc: Likewise.
244 * scripttempl/epiphany_4x4.sc: Likewise.
245 * scripttempl/epocpe.sc: Likewise.
246 * scripttempl/h8300.sc: Likewise.
247 * scripttempl/h8300h.sc: Likewise.
248 * scripttempl/h8300hn.sc: Likewise.
249 * scripttempl/h8300s.sc: Likewise.
250 * scripttempl/h8300sn.sc: Likewise.
251 * scripttempl/h8300sx.sc: Likewise.
252 * scripttempl/h8300sxn.sc: Likewise.
253 * scripttempl/h8500.sc: Likewise.
254 * scripttempl/h8500b.sc: Likewise.
255 * scripttempl/h8500c.sc: Likewise.
256 * scripttempl/h8500m.sc: Likewise.
257 * scripttempl/h8500s.sc: Likewise.
258 * scripttempl/hppaelf.sc: Likewise.
259 * scripttempl/i386beos.sc: Likewise.
260 * scripttempl/i386coff.sc: Likewise.
261 * scripttempl/i386go32.sc: Likewise.
262 * scripttempl/i386msdos.sc: Likewise.
263 * scripttempl/i860coff.sc: Likewise.
264 * scripttempl/i960.sc: Likewise.
265 * scripttempl/ia64vms.sc: Likewise.
266 * scripttempl/ip2k.sc: Likewise.
267 * scripttempl/iq2000.sc: Likewise.
268 * scripttempl/m68kaux.sc: Likewise.
269 * scripttempl/m68kcoff.sc: Likewise.
270 * scripttempl/m88kbcs.sc: Likewise.
271 * scripttempl/mcorepe.sc: Likewise.
272 * scripttempl/mep.sc: Likewise.
273 * scripttempl/mips.sc: Likewise.
274 * scripttempl/mipsbsd.sc: Likewise.
275 * scripttempl/mmo.sc: Likewise.
276 * scripttempl/moxie.sc: Likewise.
277 * scripttempl/nds32elf.sc: Likewise.
278 * scripttempl/nw.sc: Likewise.
279 * scripttempl/pe.sc: Likewise.
280 * scripttempl/pep.sc: Likewise.
281 * scripttempl/pj.sc: Likewise.
282 * scripttempl/ppcpe.sc: Likewise.
283 * scripttempl/psos.sc: Likewise.
284 * scripttempl/riscix.sc: Likewise.
285 * scripttempl/sh.sc: Likewise.
286 * scripttempl/sparccoff.sc: Likewise.
287 * scripttempl/st2000.sc: Likewise.
288 * scripttempl/tic30aout.sc: Likewise.
289 * scripttempl/tic30coff.sc: Likewise.
290 * scripttempl/tic4xcoff.sc: Likewise.
291 * scripttempl/tic54xcoff.sc: Likewise.
292 * scripttempl/tic80coff.sc: Likewise.
293 * scripttempl/v850.sc: Likewise.
294 * scripttempl/v850_rh850.sc: Likewise.
295 * scripttempl/vanilla.sc: Likewise.
296 * scripttempl/w65.sc: Likewise.
297 * scripttempl/xstormy16.sc: Likewise.
298 * scripttempl/z80.sc: Likewise.
299 * scripttempl/z8000.sc: Likewise.
303 * configure: Regenerate.
307 * ld.texinfo (--as-needed): Clarify that references from libraries
308 must be from needed libraries.
312 * emultempl/aarch64elf.em (gld${EMULATION_NAME}_after_allocation):
313 Handle error status from bfd_elf_discard_info.
314 * emultempl/armelf.em: Likewise.
315 * emultempl/elf32.em: Likewise.
316 * emultempl/hppaelf.em: Likewise.
317 * emultempl/metagelf.em: Likewise.
318 * emultempl/nios2elf.em: Likewise.
319 * emultempl/ppc64elf.em: Likewise.
320 * emultempl/tic6xdsbt.em: Likewise.
321 * emultempl/vms.em: Likewise.
326 * ldlang.c (map_head_is_link_order): Rename from
327 stripped_excluded_sections.
328 (lang_clear_os_map): New function, extracted from..
329 (strip_excluded_output_sections): ..here.
330 * ldlang.h (lang_clear_os_map): Declare.
331 * ldwrite.c (ldwrite): Call lang_clear_os_map.
332 * emultempl/sh64elf.em (sh64_elf_${EMULATION_NAME}_after_allocation):
337 * configure.ac: Move AC_PROG_CC and other macros earlier. Delete
338 plugin checks now done in config/plugins.m4.
339 * config.in: Regenerate.
340 * configure: Regenerate.
344 * plugin.c (is_ir_dummy_bfd): Test BFD_PLUGIN flag rather than
349 * pe-dll.c (autofilter_entry_type autofilter_symbollist_i386): Add
354 * ldlang.c (open_input_bfds): Don't use bfd_elf_get_dyn_lib_class.
358 * ldlang.h (struct lang_input_statement_flags): Don't make "reload"
359 field conditional on ENABLE_PLUGINS.
360 * ldlang.c (open_input_bfds): Expand plugin_should_reload.
361 * plugin.h (plugin_should_reload): Delete.
362 * plugin.c (plugin_should_reload): Delete.
366 * ldmain.c (notice): Update args.
367 * plugin.c (plugin_notice): Likewise. Follow warning sym link.
368 Handle new indirect symbol.
372 * plugin.c (plugin_load_plugins): Set link_info.lto_plugin_active.
376 * ldlang.h (struct lang_input_statement_flags): Add pushed
378 * ldlex.h (enum option_values): Add OPTION_PUSH_STATE and
380 * lexsup.c (ld_options): Add entries for --push-state and
382 (parse_args): Handle OPTION_PUSH_STATE and OPTION_POP_STATE.
383 * ld.texinfo: Document --push-state and --pop-state.
388 * plugin.c (plugin_opt_plugin_arg): Drop --pass-through.
392 * Makefile.in: Regenerate.
396 * emulparams/elf32bmip.sh: Add .MIPS.abiflags.
397 * emulparams/elf32bmipn32-defs.sh: Likewise.
398 * emulparams/elf64bmip-defs.sh: Likewise.
402 * Makefile.am (ALL_EMULATION_SOURCES): Add moxiebox support.
403 (emoxiebox.c): Build.
404 * configure.tgt (targ_extra_ofiles): Add moxie-*-moxiebox*.
405 * emulparams/moxiebox.sh (TEXT_START_ADDR): New file.
406 * Makefile.in: Rebuilt.
410 * emulparams/elf32or1k_linux.sh (TEXT_START_ADDR): Increase from
411 0x0 to first page boundary at 0x2000.
415 * emultempl/xtensaelf.em (is_inconsistent_linkonce_section):
416 correctly handle missing dot in section name after
417 ".gnu.linkonce.prop.".
421 * scripttempl/avr.sc: Remove KEEP for .data and
422 force .bss VMA to end of .data VMA.
426 * emulparams/armelf_linux.sh (TEXT_START_ADDR): Increase
427 alignment to 64kB boundary.
431 * configure.ac: Update "configure.in" comments.
432 * configure: Regenerate.
436 * configure.ac: Rename from configure.in.
437 * Makefile.in: Regenerate.
438 * config.in: Regenerate.
442 * configure.in: Include bfd/version.m4.
443 (AC_INIT, AM_INIT_AUTOMAKE): Use modern form.
444 (BFD_VERSION): Delete.
445 * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Remove bfd/configure.in.
446 * configure: Regenerate.
447 * Makefile.in: Regenerate.
452 * ldlang.c (load_symbols): Always check flags.reload.
453 (open_input_bfds): Always reload --as-needed shared libraries,
454 not just when rescanning.
455 * ldlang.h (struct lang_input_statement_flags): Update reload comment.
456 * plugin.c (plugin_should_reload): Assume shared library arg.
457 * plugin.h (plugin_should_reload): Update comment.
461 * emultempl/ppc64elf.em (stub_added): Delete.
462 (gld${EMULATION_NAME}_finish): Call ppc64_elf_build_stubs even when
463 none of the usual stubs have been added. Only change entry_section
468 * sysdep.h: Don't include limits.h and sys/param.h. Don't
469 include unistd.h twice.
470 (LD_PATHMAX): Don't define.
471 * ldlang.c (lang_common): Don't use UINT_MAX.
478 * Makefile.am (ALL_EMULATION_SOURCES): Add avrtiny emulation source.
479 (eavrtiny.c): Add rules for avrtiny emulation source.
480 * Makefile.in: Regenerate.
481 * configure.tgt: Add avrtiny to avr target emulations.
482 * scripttempl/avrtiny.sc: New file. Linker script template for
484 * emulparams/avrtiny.sh: New file. Emulation parameters for
489 * lexsup.c (parse_args): Check whether provided SONAME is empty
490 string. If yes, warn and ignore it. Don't overwrite valid SONAME
495 * emultempl/pe.em: Initialise insert_timestamp to true.
496 Add a --no-insert-timestamp command line option.
497 * emultempl/pep.em: Likewise.
498 * ld.texinfo: Document that --insert-timestamp is enabled by
499 default and that it now has an inverse command line option.
500 * NEWS: Mention the new behaviour.
504 * Makefile.am (ALL_EMULATION_SOURCES): Move ei386pep.c from
506 (ALL_64_EMULATION_SOURCES): ... to here.
507 (ALL_EMUL_EXTRA_OFILES): Move pep-dll.o from here...
508 (ALL_64_EMUL_EXTRA_OFILES): New. ... to here.
509 * configure.in (EMUL_EXTRA_OFILES): Include
510 ALL_64_EMUL_EXTRA_OFILES when making a 64-bit enabled build.
511 * Makefile.in: Regenerate.
512 * configure: Regenerate.
516 * configure.tgt (arm*-*-freebsd*): Update targ_extra_emuls.
517 (arm*b-*-freebsd*): Add target.
518 * emulparams/armelfb_fbsd.sh: Added.
519 * emulparams/armelf_fbsd.sh: Updated.
520 * Makefile.am (ALL_EMULATION_SOURCES): Add earmelfb_fbsd.c.
521 * Makefile.in: Regenerate.
525 * scripttempl/elf.sc: Edit out __rela_iplt symbol assignments from
526 .rel sections, and __rel_iplt from .rela sections.
527 * scripttempl/nds32elf.sc: Likewise.
528 * Makefile.am (ends32*.c) Depend on nds32elf.sc.
529 * Makefile.in: Regenerate.
534 * ldlang.c (output_bfd_hash_table_free_fn): Delete.
535 (open_output): Don't set it..
536 * ldmain.c (ld_cleanup): ..or call it.
540 * emultempl/cr16elf.em, * emultempl/elf32.em, * emultempl/genelf.em,
541 * emultempl/m68kcoff.em, * emultempl/m68kelf.em,
542 * emultempl/nds32elf.em, * emultempl/pe.em, * emultempl/pep.em,
543 * ldlang.c, * ldmain.c, * pe-dll.c: Update for bfd.link_next change.
547 * Makefile.am (ALL_EMULATION_SOURCES): Add enios2elf.c, enios2linux.c.
548 * Makefile.in: Regenerate.
552 * ldexp.c (exp_fold_tree_1 <etree_provide>): Make PROVIDEd
553 linker script symbol value override a built-in linker symbol.
557 * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Add dependency on
558 bfd's development.sh.
559 * Makefile.in, configure: Regenerate.
563 * emulparams/elf32bfin.sh: Rename from bfin.sh.
564 * emulparams/elf32bfinfd.sh: Update to suit.
565 * emulparams/msp430.sh: Rename from msp430all.sh. Remove
566 MSP430_NAME and msp430X vars.
567 * emulparams/msp430X.sh: New.
568 * emulparams/score3_elf.sh: Rename from scoreelf.sh. Remove
569 SCORE_NAME and score7_elf ARCH setting.
570 * emulparams/score7_elf.sh: New.
571 * Makefile.am (eelf32bfin.c, eelf32bfinfd.c): Update dependencies.
572 (emsp430.c, emsp430X.c, escore3_elf.c, escore7_elf.c): Likewise.
573 * Makefile.in: Regenerate.
574 * genscripts.sh: Delete customizer_script param.
578 * Makefile.am: Change all rules with ${GENSCRIPTS}
579 invocations to be just dependencies.
580 ($(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES))
581 (run-genscripts): New rules.
582 * Makefile.in: Regenerate.
586 * ld/ldemul.h (extra_map_file_text): New field.
587 (ldemul_extra_map_file_text): Declare.
588 * ld/ldemul.c (ldemul_extra_map_file_text): Define.
589 * ld/ldlang.c (lang_map): Call it.
591 * ld/emultempl/rxelf.em: Add extra_map_file_text hook.
592 * ld/emultempl/aix.em: Add NULL extra_map_file_text hook.
593 * ld/emultempl/armcoff.em: Likewise.
594 * ld/emultempl/beos.em: Likewise.
595 * ld/emultempl/elf32.em: Likewise.
596 * ld/emultempl/generic.em: Likewise.
597 * ld/emultempl/gld960.em: Likewise.
598 * ld/emultempl/gld960c.em: Likewise.
599 * ld/emultempl/linux.em: Likewise.
600 * ld/emultempl/lnk960.em: Likewise.
601 * ld/emultempl/m68kcoff.em: Likewise.
602 * ld/emultempl/pe.em: Likewise.
603 * ld/emultempl/pep.em: Likewise.
604 * ld/emultempl/sunos.em: Likewise.
605 * ld/emultempl/ticoff.em: Likewise.
606 * ld/emultempl/vanilla.em: Likewise.
610 * ldlang.c (base): Move variable to..
611 * mri.c: ..here, and make static.
612 * ldlang.h (base): Delete declaration.
616 * Makefile.am (ALL_EMULATION_SOURCES): Add missing eelf32mbel_linux.c.
617 * Makefile.in: Regenerate.
622 * emulparams/elf32ppccommon.sh (_SDA_BASE_, _SDA2_BASE_): Delete.
623 * emultempl/ppc32elf.em (ppc_before_allocation): Call
624 ppc_elf_maybe_strip_sdata_syms.
625 * ldlang.c (size_input_section): Correct output_offset value
626 for excluded input sections.
630 * configure.tgt: Add /lib to dragonfly NATIVE_LIB_DIRS.
634 * emulparams/nios2linux.sh (OTHER_GOT_SYMBOLS): Wrap _gp in HIDDEN(),
635 and gp in PROVIDE_HIDDEN.
639 * ldlang.c (lang_finish): Don't call bfd_link_hash_table_free here.
640 (output_bfd_hash_table_free_fn): New variable.
641 (open_output): Save the _bfd_link_hash_table_free function for the
642 output_bfd into output_bfd_hash_table_free_fn.
643 * ldmain.c (ld_cleanup): If set, call output_bfd_hash_table_free_fn
645 * ldlang.h (output_bfd_hash_table_free_fn): Declare.
649 * emultempl/metagelf.em: Update bfd target vector naming.
650 * emultempl/nios2elf.em: Likewise.
651 * emultempl/spuelf.em: Likewise.
652 * emultempl/tic6xdsbt.em: Likewise.
656 * Makefile.am: Remove openrisc and or32 support. Add support for or1k.
657 * configure.tgt: Likewise.
658 * emulparams/elf32or1k.sh: New file.
659 * emulparams/elf32or1k_linux.sh: New file.
660 * emulparams/elf32openrisc.sh: Delete.
661 * emulparams/or32.sh: Delete.
662 * emulparams/or32elf.sh: Delete.
663 * scripttempl/or32.sc: Delete.
664 * Makefile.in: Regenerate.
668 * emultempl/alphaelf.em (alpha_after_parse): Enable 2 relax passes.
672 * emultempl/elf32.em: Include safe-ctype.h.
676 * ldbuildid.c (generate_build_id): Add ATTRIBUTE_UNUSED to size arg.
680 * Makefile.am (default-manifest.o): Remove rule.
681 (EMUL_EXTRA_BINARIES): Delete.
682 (ALL_EMUL_EXTRA_BINARIES): Delete.
683 (ld_new_DEPENDENCIES): Remove EMUL_EXTRA_BINARIES.
684 (install-data-local): Remove EMUL_EXTRA_BINARIES.
685 * Makefile.in: Regenerate.
686 * configure.in (all_emul_extra_binaries): Delete.
687 (EMUL_EXTRA_BINARIES): Remove.
688 * configure: Regenerate.
689 * configure.tgt (target_extra_binaries): Delete.
690 * emultempl/default-manifest.rc: Delete.
691 * ld.texinfo: Remove discussion of default manifest.
692 * emulparams/i386pe.sh (DEFAULT_MANIFEST): Delete.
693 * emulparams/i386pep.sh (DEFAULT_MANIFEST): Delete.
697 * emultempl/spuelf.em: Include safe-ctype.h, remove duplicate errno.h.
698 * emultempl/nds32elf.em: Include bfd_stdint.h.
699 * po/POTFILES.in: Regenerate.
703 * emultempl/ppc32elf.em (no_zero_padding, ppc_finish): New functions.
704 (LDEMUL_FINISH): Define.
708 * scripttempl/pe.sc (R_RSRC): Remove default manifest.
709 * scripttempl/pep.sc (R_RSRC): Remove default manifest.
713 * emultempl/elf32.em (id_note_section_size, read_hex, write_build_id):
714 Move code for parsing build-id option and calculating the build-id to...
715 * ldbuildid.c: New file.
716 * ldbuildid.h: New file.
717 * Makefile.am (CFILES, HFILES, OFILES, ld_new_SOURCES): Add new
719 * Makefile.in: Regenerate.
720 * ld.texinfo: Update --build-id description to mention COFF
722 * NEWS: Mention support for COFF build ids.
723 * emultempl/pe.em (gld${EMULATION_NAME}_handle_option):
724 (pecoff_checksum_contents, write_build_id, setup_build_id)
725 (gld_${EMULATION_NAME}_after_open): Handle and implement
727 * emultempl/pep.em: Likewise.
732 * ld.texinfo: Document optional comma following output section
733 command and overlay command.
737 * ldlang.c (lang_size_sections_1 <lang_input_section_enum>): Use
738 current "fill", not "output_section_statement->fill".
743 * emultempl/elf32.em (_after_open): Create a .note.GNU-stack
744 section when performing a relocatable link with -z [no]execstack
750 * ldmain.c (symbol_warning): New function.
751 (warning_callback): Use it. Scan all input files for a reference
756 * ld.texinfo: Document change in handling of --enable-auto-image-base.
757 * emultempl/pe.em (pe_auto_image_base): Set to default base.
758 (gld_${EMULATION_NAME}_list_options): Change usage message to reflect
759 optional --enable-auto-image-base argument.
760 (gld${EMULATION_NAME}_handle_option): Handle optional
761 --enable-auto-image-base argument.
762 (compute_dll_image_base): Eliminate constant. Use pe_auto_image_base.
766 * Makefile.am (default-manifest.o): Use WINDRES_FOR_TARGET.
767 * Makefile.in: Regenerate.
768 * emultempl/default-manifest.rc: Fix typo.
769 * scripttempl/pe.sc (R_RSRC): Fix default-manifest exclusion.
770 (.rsrc): Add SUBALIGN(4). Remove SORT.
771 * scripttempl/pep.sc: Likewise.
775 * Makefile.am: Use host version of windres.
776 * Makefile.in: Regenerate.
781 * ldlang.h (full_name_provided): New input flag.
782 * ldlang.c (new_afile): Don't use lang_input_file_is_search_file_enum
783 for -l:namespec. Instead use lang_input_file_is_l_enum with
784 full_name_provided flag.
785 * ldlfile.c (ldfile_open_file_search): Don't complete lib name if
786 full_name_provided flag is set.
787 * emultempl/elf32.em (gld${EMULATION_NAME}_open_dynamic_archive):
788 Handle full_name_provided libraries. Tidy EXTRA_SHLIB_EXTENSION
789 support. Set DT_NEEDED for -l:namespec as namespec.
790 * emultempl/aix.em (ppc_after_open_output): Handle full_name_provided.
791 * emultempl/linux.em (gld${EMULATION_NAME}_open_dynamic_archive):
792 Don't handle full_name_provided libraries.
793 * emultempl/pe.em (gld${EMULATION_NAME}_open_dynamic_archive): Ditto.
794 * emultempl/pep.em (gld${EMULATION_NAME}_open_dynamic_archive): Ditto.
795 * emultempl/vms.em (gld${EMULATION_NAME}_open_dynamic_archive): Ditto.
799 * Makefile.in: Regenerate.
803 Update copyright years.
807 * Makefile.am (ALL_EMUL_EXTRA_BINARIES): Remove default-manifest.
808 * Makefile.in: Regenerate.
812 * emultempl/armelf.em (OPTION_LONG_PLT): Define.
813 (PARSE_AND_LIST_LONGOPTS): Add long-plt.
814 (PARSE_AND_LIST_OPTIONS): Likewise.
815 (PARSE_AND_LIST_ARGS_CASES): Handle long-plt.
816 * ld.texinfo: Document --long-plt.
820 * emulparams/elf32ppcvxworks.sh: Source plt_unwind.sh and
822 * emultempl/ppc32elf.em (ppc_after_open): Don't compile for
824 (LDEMUL_AFTER_OPEN): Don't set for vxworks.
825 (PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS): Exclude
826 -secure-plt, -bss-plt and -sdata-got when vxworks.
830 * configure.in (all_emul_extra_binaries): New variable. Populated
831 by invoking configure.tgt.
832 (EMUL_EXTRA_BINARIES): New substitution.
833 * configure: Regenerate.
834 * configure.tgt (target_extra_binaries): New variable. Set to
835 default-manifest.o for Cygwin and MinGW targets.
836 * Makefile.am (EMUL_EXTRA_BINARIES): New variable. Initialised
837 by the configure script.
838 (ALL_EMUL_EXTRA_BINARIES): New variable.
839 (default-manifest.o): New rule to build the default manifest.
840 (ld_new_DEPENDENCIES): Add EMUL_EXTRA_BINARIES.
841 (install-data-local): Add EMUL_EXTRA_BINARIES.
842 * Makefile.in: Regenerate.
843 * ld.texinfo: Document default manifest support.
844 * emulparams/i386pe.sh (DEFAULT_MANIFEST): Define.
845 * emulparams/i386pep.sh (DEFAULT_MANIFEST): Define.
846 * emultempl/default-manifest.rc: New file.
847 * scripttempl/pe.sc (R_RSRC): Include DEFAULT_MANIFEST, if defined.
848 * scripttempl/pep.sc (R_RSRC): Likewise.
853 * ldcref.c (cref_sort_array): Compare unmangled names unless
854 demanglng has been requiested.
855 (output_one_cref): Output unmangled name unless demangling has
861 * emulparams/elf_x86_64.sh (TINY_READONLY_SECTION): New.
865 * emultempl/ppc64elf.em (params): Init new field.
866 (ppc_create_output_section_statements): Set params.save_restore_funcs
868 (PARSE_AND_LIST_*): Add support for --save-restore-funcs and
869 --no-save-restore-funcs.
873 * emultemps/ppc64elf.em (params): New static struct replacing
874 various other static vars. Adjust code throughout file.
878 * emultempl/ppc32elf.em (ppc_after_open_output): Really enable
879 ppc476 workaround for ld -r.
883 * emultempl/ppc32elf.em (pagesize): New static var.
884 (ppc_after_open_output): Set params.pagesize_p2 from pagesize.
885 (PARSE_AND_LIST_ARGS_CASES): Adjust to use pagesize.
889 * emulparams/aarch64linux32.sh (LIBPATH_SUFFIX): Change to ilp32.
890 (ELF_INTERPRETER_NAME): Define.
891 * emulparams/aarch64linux32b.sh (ELF_INTERPRETER_NAME): Define.
895 * po/ld.pot: Regenerate.
899 * emultempl/ppc32elf.em (no_tls_get_addr_opt, emit_stub_syms)
900 plt_style): Delete. Adjust all refs to instead use..
901 (params): ..this. New variable.
902 (ppc_after_open_output): New function. Tweak params and pass to
904 (ppc_after_open): Adjust ppc_elf_select_plt_layout call.
905 (ppc_before_allocation): Adjust ppc_elf_tls_setup call. Enable
906 relaxation for ppc476 workaround.
907 (PARSE_AND_LIST_*): Add --{no-,}ppc476-workaround support.
908 (LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS): Define.
912 * ld/ld.texinfo: Change ALIGN_WITH_INPUT documentation.
913 * ld/ldlang.c (lang_size_sections_1): Add dotdelta
914 variable which reflects the VMA change due to alignment
915 requirements. Use dotdelta do change the LMA if
916 ALIGN_WITH_INPUT is requested.
920 * emultempl/mmix-elfnmmo.em (mmix_after_allocation): Fix typo in
921 call to bfd_set_section_vma exposed by recent bfd_set_section_vma
926 * Makefile.am (enios2elf.c, enios2linux.c): Update dependencies.
927 * Makefile.in: Regenerated.
928 * emulparams/nios2elf.sh (EXTRA_EM_FILE): Set.
929 * emulparams/nios2linux.sh (EXTRA_EM_FILE): Set.
930 * emultempl/nios2elf.em: New file.
931 * gen-doc.texi (NIOSII): Set.
932 * ld.texinfo (NIOSII): Set.
936 * Makefile.am: Remove obsolete MSP430 emulations.
937 * configure.tgt: Likewise.
938 * emulparams/msp430all.sh: Likewise.
939 * Makefile.in: Regenerate.
944 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Improve
945 orphaned TLS section handling.
949 * ldlang.c (lang_output_section_find_by_flags): Be careful to
950 test look->bfd_section->flags if available rather than
951 look->flags. Separate SEC_THREAD_LOCAL handling from
952 SEC_READONLY loop, and rewrite.
956 * ldlang.c (asneeded_list_head, asneeded_list_tail): New vars.
957 (lang_init): Initialise them.
958 (lang_print_asneeded): New function.
959 (lang_process): Call lang_print_asneeded.
960 * ldlang.h (struct asneeded_minfo): New.
961 (asneeded_list_tail): Declare.
962 * ldmain.c (add_archive_element): Improve archive map heading.
963 * ldmisc.c (minfo): Stash --as-needed info.
967 * ld.h (struct map_symbol_def): Move to..
969 * ldlang.c (print_assignment): Don't set expld.assign_name to dot.
973 * ld.texinfo (Output Section Discarding): Mention assigning to dot
974 as a way of keeping otherwise empty sections.
975 * ldexp.c (is_dot, is_value, is_sym_value, is_dot_ne_0,
976 is_dot_plus_0, is_align_conditional): New predicates.
977 (exp_fold_tree_1): Set SEC_KEEP when assigning to dot inside an
978 output section, except for some special cases.
979 * scripttempl/elfmicroblaze.sc: Use canonical form to align at
980 end of .heap and .stack.
984 * emulparams/aarch64linuxb.sh (ELF_INTERPRETER_NAME): Define.
988 * emulparams/aarch64linux.sh (ELF_INTERPRETER_NAME): Define.
992 * ldlang.h (struct lang_definedness_hash_entry): Add by_object and
993 by_script. Make iteration a single bit field.
994 (lang_track_definedness, lang_symbol_definition_iteration): Delete.
995 (lang_symbol_defined): Declare.
996 * ldlang.c (lang_statement_iteration): Expand comment a little.
997 (lang_init <lang_definedness_table>): Make it bigger.
998 (lang_track_definedness, lang_symbol_definition): Delete.
999 (lang_definedness_newfunc): Update.
1000 (lang_symbol_defined): New function.
1001 (lang_update_definedness): Create entries here. Do track whether
1002 script definition of symbol is valid, even when also defined in
1004 * ldexp.c (fold_name <DEFINED>): Update.
1005 (fold_name <NAME>): Allow self-assignment for absolute symbols
1006 defined in a linker script.
1011 * ldlang.h (lang_output_section_get): Define.
1012 * ldlang.c (lang_output_section_get): Likewise.
1013 (init_os): Set the output_section userdata to the output
1015 * emultempl/hppaelf.em: Use lang_output_section_get instead of
1016 lang_output_section_find where applicable.
1017 * emultempl/aarch64elf.em: Likewise.
1018 * emultempl/aix.em: Likewise.
1019 * emultempl/armelf.em: Likewise.
1020 * emultempl/m68hc1xelf.em: Likewise.
1021 * emultempl/metagelf.em: Likewise.
1022 * emultempl/mipself.em: Likewise.
1023 * emultempl/ppc64elf.em: Likewise.
1024 * emultempl/spuelf.em: Likewise.
1028 * genscripts.sh (COMPILE_IN): Don't set if already set.
1029 * emulparams/nds32elf.sh: Don't clear EMULATION_LIBPATH, set
1031 * emulparams/nds32elf16m.sh: Likewise.
1032 * emulparams/nds32elf_linux.sh: Likewise.
1033 * emultempl/aix.em: Test COMPILE_IN value is "yes".
1034 * emultempl/armcoff.em: Likewise.
1035 * emultempl/elf32.em: Likewise.
1036 * emultempl/generic.em: Likewise.
1037 * emultempl/gld960.em: Likewise.
1038 * emultempl/gld960c.em: Likewise.
1039 * emultempl/linux.em: Likewise.
1040 * emultempl/lnk960.em: Likewise.
1041 * emultempl/m68kcoff.em: Likewise.
1042 * emultempl/sunos.em: Likewise.
1043 * emultempl/ticoff.em: Likewise.
1048 * genscripts.sh: Don't search directory with LIBPATH_SUFFIX_SKIP
1050 * emulparams/elf32_x86_64.sh (LIBPATH_SUFFIX_SKIP): Set to 64
1051 for elf32_x86_64 emulation.
1052 * emulparams/elf_i386.sh (LIBPATH_SUFFIX_SKIP): Set to 64
1053 for elf_i386 emulation.
1057 * ld.h (fat_section_userdata_type, get_userdata): Move to..
1058 * ldlang.h (input_section_userdata_type, get_userdata): ..here.
1059 * ldlang.c (init_map_userdata): Delete. Fold into..
1060 (sort_def_symbol): ..here. Don't attach input section userdata
1061 to output sections or global bfd sections.
1062 (lang_map): Don't pre-allocate input section userdata.
1063 (init_os): Don't allocate userdata for output sections.
1064 (print_all_symbols): Update.
1068 * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation):
1069 Silence uninitialized warning on ehdr_start_save with older
1074 * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Define
1075 __ehdr_start before size_dynamic_sections and restore afterwards.
1082 * ldlang.c (lang_size_sections): Remove unneeded RELRO base
1083 adjust. Tidy comments.
1084 * ld.texinfo (DATA_SEGMENT_RELRO_END): Correct description.
1088 * emulparams/crislinux.sh (COMMONPAGESIZE): Define.
1095 * ldlang.c (lang_size_sections): Properly align RELRO base.
1099 * ldver.c (ldversion): Update copyright year to 2014.
1101 For older changes see ChangeLog-2013
1103 Copyright (C) 2014 Free Software Foundation, Inc.
1105 Copying and distribution of this file, with or without modification,
1106 are permitted in any medium without royalty provided the copyright
1107 notice and this notice are preserved.
1113 version-control: never