3 * ldlang.c (insert_pad): Fix typos in last patch.
5 * ldlang.c: When traversing lang_statement_union_type lists,
6 consistently use "header.next" rather than "next".
7 * mpw-eppcmac.c: Likewise.
8 * emultempl/beos.em: Likewise.
9 * emultempl/hppaelf.em: Likewise.
10 * emultempl/pe.em: Likewise.
11 * ldlang.h (union lang_statement_union): Remove "next" field.
13 * ldlang.c (insert_pad): Use offsetof macro.
14 (lang_size_sections): Always neuter padding statements.
15 * emultempl/hppaelf.em (hppaelf_delete_padding_statements): Delete.
17 * pe-dll.c (pe_dll_fill_sections): Correct type of "relax" param
18 passed to lang_size_sections.
19 (pe_exe_fill_sections): Likewise.
20 * emultempl/pe.em (output_prev_sec_find): Copied from elf32.em.
21 (gld_${EMULATION_NAME}_place_orphan): Merge from elf32.em.
25 * emultempl/aix.em: Formatting fixes.
29 * ldlang.c (insert_pad): Make use of an existing pad statement if
30 available. Move code calculating alignment, adjusting section
31 alignment power, and adjusting dot to ..
32 (size_input_section): .. here. Remove unused relax param.
33 (lang_size_sections): Change boolean `relax' param to boolean *.
34 Adjust call to size_input_section. Make use of insert_pad to
35 place pad after the assignment statement. If relaxing, zap
37 (reset_memory_regions): Reset output_bfd section sizes too.
38 (relax_again): Move to..
39 (lang_process): ..here. Adjust call to lang_size_sections, and
40 remove duplicated code.
41 * ldlang.h (lang_size_sections): Change `relax' param to boolean *.
45 * ld.texinfo: Document that fill values now use the four least
47 * emulparams/elf32fr30.sh (NOP): Update.
48 * emulparams/elf32mcore.sh: Likewise.
49 * emulparams/elf64_s390.sh: Likewise.
50 * emulparams/elf_i386.sh: Likewise.
51 * emulparams/elf_i386_be.sh: Likewise.
52 * emulparams/elf_i386_chaos.sh: Likewise.
53 * emulparams/elf_i386_ldso.sh: Likewise.
54 * emulparams/elf_s390.sh: Likewise.
55 * emulparams/elf_x86_64.sh: Likewise.
56 * emulparams/i386moss.sh: Likewise.
57 * emulparams/i386nw.sh: Likewise.
58 * emulparams/m68kelf.sh: Likewise.
59 * scripttempl/elf.sc: Update NOP comment.
60 * scripttempl/elfi370.sc: Likewise.
61 * scripttempl/elfm68hc11.sc: Likewise.
62 * scripttempl/elfm68hc12.sc: Likewise.
63 * scripttempl/nw.sc: Likewise.
67 * ldgram.y (saved_script_handle): Initialize to NULL.
68 * ldmain.c (main): Change check on saved_script_handle.
72 * emultempl/elf32.em: Formatting fixes.
73 (output_prev_sec_find): Test for bfd_ind_section too; do so by
74 looking at sec->owner.
75 (output_rel_find): Move function inside LDEMUL_PLACE_ORPHAN test.
76 (gld${EMULATION_NAME}_place_orphan): Add a few comments. Remove
77 unused code, and reorganize orphan section placement code.
79 * ldlang.c (wild_doit): Rename to lang_add_section.
81 * mpw-elfmips.c: And here.
82 * emultempl/beos.em: And here.
83 * emultempl/elf32.em: And here.
84 * emultempl/hppaelf.em: And here.
85 * emultempl/pe.em: And here.
89 * emultempl/needrelax.em: New file.
90 * emulparams/elf64_ia64.sh (EXTRA_EM_FILE): Reference it.
91 * Makefile.am (eelf64_ia64.c): Depend on it.
92 * Makefile.in: Rebuild.
96 * emultempl/elf32.em: For SEC_EXCLUDE sections, ensure that
97 output_section is set non-NULL.
99 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Return
100 `true' for SEC_EXCLUDE sections so that the generic code doesn't
101 needlessly create an output_section_statement. Treat a correctly
102 named output_section_statement with NULL bfd_section as compatible.
106 * emultempl/generic.em: Support EXTRA_EM_FILE.
107 (ld_${EMULATION_NAME}_emulation): Support emulation parameters
108 LDEMUL_BEFORE_PARSE, LDEMUL_SYSLIB, LDEMUL_HLL,
109 LDEMUL_AFTER_PARSE, LDEMUL_AFTER_OPEN, LDEMUL_AFTER_ALLOCATION,
110 LDEMUL_SET_OUTPUT_ARCH, LDEMUL_CHOOSE_TARGET,
111 LDEMUL_BEFORE_ALLOCATION, LDEMUL_GET_SCRIPT, LDEMUL_FINISH,
112 LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS,
113 LDEMUL_OPEN_DYNAMIC_ARCHIVE, LDEMUL_PLACE_ORPHAN,
114 LDEMUL_SET_SYMBOLS, LDEMUL_PARSE_ARGS, LDEMUL_UNRECOGNIZED_FILE,
115 LDEMUL_LIST_OPTIONS, LDEMUL_RECOGNIZED_FILE,
116 LDEMUL_FIND_POTENTIAL_LIBRARIES.
120 * scripttempl/elf.sc, scripttempl/elfd30v.sc,
121 scripttempl/elfm68hc11.sc, scripttempl/elfm68hc12.sc,
122 scripttempl/v850.sc: Keep .jcr data.
128 * ldgram.y (had_script): Change name to saved_script_handle.
129 Change type to file handle.
130 * ld.h (had_script): Rename and retype.
131 * ldfile.c (ldfile_open_command_file): Save the file handle
132 used in saved_script_handle.
133 * lexsup.c (parse_args): Do not allow -c option to alter
135 * ldmain.c (main): Print out the linker script used if
136 --verbose is given. Check saved_script_handle to obtain the
137 external linker script used, or if NULL, dump the builtin
139 * ld.texinfo: Document that --verbose now dumps the linker
140 script used, regardless of whether it was an internal or an
145 * configure.in: Add -Wstrict-prototypes and -Wmissing-prototypes
147 * configure: Regenerate.
151 * emultempl/elf32.em (output_prev_sec_find): Add missing prototype.
153 * scripttempl/elf.sc: Move non-text .dynamic section before
154 .plt/.got/.sdata* group.
155 (OTHER_GOT_SECTIONS): Move to immediately after .got.
156 (OTHER_SDATA_SECTIONS): Add.
157 * emulparams/criself.sh: Use OTHER_SDATA_SECTIONS rather than
159 * emulparams/crislinux.sh: Likewise.
160 * emulparams/elf32b4300.sh: Likewise.
161 * emulparams/elf32bmip.sh: Likewise.
162 * emulparams/elf32bmipn32.sh: Likewise.
163 * emulparams/elf32bsmip.sh: Likewise.
164 * emulparams/elf32btsmip.sh: Likewise.
165 * emulparams/elf32ebmip.sh: Likewise.
166 * emulparams/elf32elmip.sh: Likewise.
167 * emulparams/elf32l4300.sh: Likewise.
168 * emulparams/elf32lmip.sh: Likewise.
169 * emulparams/elf32lsmip.sh: Likewise.
170 * emulparams/elf32ltsmip.sh: Likewise.
171 * emulparams/elf64bmip.sh: Likewise.
172 * emulparams/elf64btsmip.sh: Likewise.
173 * emulparams/elf64ltsmip.sh: Likewise.
177 * genscripts.sh: Source the emulparams script before each output
178 script is generated so that variables like `RELOCATING' may affect
179 variables defined in the emulparams script.
183 * emultempl/aix.em: ldexp.h,ldlang.h,ldfile.h,ldemul.h go in this
186 * emultempl/beos.em (sort_sections): Modify for 2001-08-03 change,
187 ie. iterate over wild_statement.section_list.
188 (gld${EMULATION_NAME}_place_orphan): Likewise.
192 * scripttempl/elfm68hc12.sc (FINISH_CODE, FINISH_RELOC): New to handle
193 .fini[0-4] sections used by _exit
194 (CTOR, DTOR): Export ctor/dtor symbols; move them to ROM.
195 (*.text,*.data,*.bss): Take into account .text.*, .data.*, .bss.*.
196 * scripttempl/elfm68hc11.sc: Likewise.
200 * emultempl/beos.em (init): Add the missing initialization.
204 * ld.texinfo (Input Section Basics): Clarify ordering of output
206 * ldlang.c (callback_t): Add wildcard_list param.
207 (walk_wild_section): Remove "section" param. Rewrite for
208 lang_wild_statement_type change. Remove unique_section_p test.
209 (walk_wild_file): Remove "section" param.
210 (walk_wild): Remove "section" and "file" params.
211 (lang_gc_wild): Likewise.
212 (wild): Likewise. Modify for lang_wild_statement_type change.
213 (wild_sort): Likewise. Add "sec" param.
214 (gc_section_callback): Likewise.
215 (output_section_callback): Likewise. Do unique_section_p test.
216 (map_input_to_output_sections): Modify call to wild.
217 (lang_gc_sections_1): Likewise.
218 (print_wild_statement): Modify for lang_wild_statement_type
220 (lang_add_wild): Replace filename, filenames_sorted param with
221 filespec. Replace section_name, sections_sorted,
222 exclude_filename_list with section_list.
223 * ldlang.h (lang_add_wild): Here too.
224 (lang_wild_statement_type): Replace section_name, sections_sorted,
225 and exclude_filename_list with section_list.
226 * ldgram.y (current_file): Delete.
227 (%union): Add wildcard_list.
228 (file_NAME_list): Set type to wildcard_list. Build a linked list
229 rather than calling lang_add_wild for each entry.
230 (input_section_spec_no_keep): Call lang_add_wild here instead.
231 * ld.h (struct wildcard_list): Declare.
232 * mri.c (mri_draw_tree): Modify to suit new lang_add_wild.
236 * ldmain.c (main): initialize link_info.pei386_auto_import
237 * pe-dll.c: new tables for auto-export filtering
238 (auto_export): change API, pass abfd for contextual filtering.
239 Loop thru tables of excluded symbols instead of comparing
244 * pe-dll.c: new variable pe_dll_enable_extra_debug. New
245 static variable current_sec (static struct sec *). Add
246 forward declaration for add_bfd_to_link.
247 (process_def_file): Don't export undefined symbols. Do not
248 export symbols starting with "_imp__". Call auto_export()
250 (pe_walk_relocs_of_symbol): New function.
251 (generate_reloc): add optional extra debugging
252 (pe_dll_generate_def_file): eliminate extraneous initial blank
254 (make_one): enlarge symtab to make room for __nm__ symbols
255 (DATA auto-import support).
256 (make_singleton_name_thunk): New function.
257 (make_import_fixup_mark): New function.
258 (make_import_fixup_entry): New function.
259 (pe_create_import_fixup): New function.
260 (add_bfd_to_link): Specify that 'name' argument is a CONST
262 * pe-dll.h: declare new variable pe_dll_extra_pe_debug;
263 declare new functions pe_walk_relocs_of_symbol and
264 pe_create_import_fixup.
265 * emultempl/pe.em: add new options --enable-auto-import,
266 --disable-auto-import, and --enable-extra-pe-debug.
267 (make_import_fixup): New function.
268 (pe_find_data_imports): New function.
269 (pr_sym): New function.
270 (gld_${EMULATION_NAME}_after_open): Add optional extra pe
271 debugging. Call pe_find_data_imports. Mark .idata as DATA, not
276 * ld.texinfo: add additional documentation for
277 --export-all-symbols. Document --out-implib,
278 --enable-auto-image-base, --disable-auto-image-base,
279 --dll-search-prefix, --enable-auto-import, and
280 --disable-auto-import.
281 * ldint.texinfo: Add detailed documentation on auto-import
286 * ld.texinfo (Simple Assignments): Fix computation in SECTIONS
291 * Makefile.am: Update dependencies with "make dep-am".
292 * Makefile.in: Regenerate
296 * ldcref.c (check_section_sym_xref): New function.
297 (check_nocrossrefs): Call it.
298 (check_nocrossref): Interate over h->refs here instead of..
299 (check_refs): ..here. Pass in the symbol name, section, and bfd
300 rather than hash_entry pointers.
301 (struct check_refs_info): Keep symbol name rather than hash entry.
303 (check_reloc_refs): Tweak for above changes in check_refs_info.
304 Only report references to section syms when symname is NULL to
305 prevent duplicate messages for the same reloc.
309 * ldexp.c (exp_print_tree): Use stderr if config.map_file is not
310 available. Do not print NULL trees.
311 (exp_print_token): Print unknown tokens with values > 126 as
312 decimal values not ASCII characters.
314 * ldlang.c (lang_leave_overlay): If a region is specified assign
315 it to all sections inside the overlay unless they have been
316 assigned to the own, non-default, memory region.
318 * README: Add header for consistency with other README files.
322 * emultempl/elf32.em (output_prev_sec_find): Never return
323 bfd_abs_section_ptr, bfd_com_section_ptr nor
328 * Makefile.am (em32relf.c): Change dependency from generic.em to
330 * Makefile.in: Regenerate.
334 * configure.tgt (i386-*-netbsdelf*): New target.
335 (i386-*-netbsd*): Set targ_extra_emuls to `elf_i386'
339 * emultempl/elf32.em (output_prev_sec_find): New.
340 (place_orphan): Use it.
344 * ldmain.c (main): Fix typos in the last change.
348 * ldmain.c (main): Disallow -F and -f without -shared.
352 * emultempl/pe.em (after_open): Check for the output_bfd not
353 having any coff_data structure allocated to it.
357 * emultempl/elf32.em: Do not assuming that contents of the buffer
358 returned from basename function will remain unchanged accross other
363 * scripttempl/elf.sc (DYNAMIC_PAD): Revert the change made on
364 2001-07-03. It creates dynamic entries even for static binaries.
368 * scripttempl/elf.sc (DYNAMIC_PAD): New variable.
369 (DYNAMIC): Use it to reserve few dynamic entries for
374 * emulparams/hppa64linux.sh: New file.
375 * configure.tgt: hppa*64*-*-linux* uses hppa64linux.sh
376 * Makefile.am (ALL_64_EMULATIONS): Add ehppa64linux.o
377 (ehppa64linux.c): Add rule to make it.
379 * Makefile.in: Regenerate.
383 * ld.texinfo (Options, -r): Mention restrictions when using
384 different object formats.
388 * ldlang.c (lang_check): Emit fatal error if relocatable link
389 between different object flavours with relocations in input.
393 * ld.texinfo (-E, --export-dynamic): Mention --version-script.
394 (--version-script): Mention the language support.
398 * ldlang.c (lang_check): Revert the change mode on 2001-06-15.
402 * Makefile.am (ld.1): Remove the prefix `$(srcdir)/'.
403 (diststuff): Add $(MANS).
404 * Makefile.in: Regenerated.
410 * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation):
411 Update for API change in bfd_elf${ELFSIZE}_size_dynamic_sections.
412 * mpw-elfmips.c (gldelf32ebmip_before_allocation): Ditto.
413 * ld.h (args_type): Remove member export_dynamic. All users
414 changed to use struct bfd_link_info member.
416 * Makefile.am (ecriself.c, ed10velf.c, ei386moss.c): Depend on
417 $(srcdir)/emultempl/elf32.em, not $(srcdir)/emultempl/generic.em.
418 * Makefile.in: Regenerate.
422 * ldlang.c (init_os): Add the newline to the einfo call.
423 (lang_check): Likewise.
424 (lang_do_version_exports_section): Likewise.
428 * lexsup.c (parse_args); Save optind to report unrecognized
433 * ldlang.c (lang_check): Emit fatal error if relocatable link
434 between different object flavours.
436 * lexsup.c (parse_args) <case OPTION_EXPORT_DYNAMIC, case 'E'>:
437 Set new link_info member export_dynamic.
438 * ldmain.c (main): Initialize new link_info member export_dynamic.
442 * ldlang.c (walk_wild): Only call walk_wild_file if
443 lookup_name returns something.
444 (lookup_name): If load_symbols fails, return NULL.
445 (load_symbols): Change to a boolean function.
446 (open_input_bfds): If load_symbols fails then do not make the
451 * ldlang.c (record_bfd_errors): Remove.
453 * emultempl/aix.em: Fix copyright dates.
457 * elf_x86_64.sh (NONPAGED_TEXT_START_ADDR): Increase.
458 (TEXT_START_ADDR): Likewise.
462 * configure.host: Set HOSTING_CRT0/HOSTING_LIBS correctly for s/390.
466 * emultempl/pe.em (init): Reduce default stack reserve to 0x200000.
470 * ldlang.c (open_input_bfds): Don't change the bfd error
471 handler whilst loading symbols.
475 * configure.tgt: Remove i370-mvs architecture, it is not currently
480 * emulparams/ppcmacos.sh: Add SYSCALL_MASK and SYMBOL_MODE_MASK
481 like emulparams/aixppc.sh.
485 * emultempl/beos.em (gld${EMULATION_NAME}_before_parse): Move
486 setting of output_filename after bfd_scan_arch.
487 * emultempl/pe.em: Likewise.
491 * emulparams/aixrs6.sh: Add SYSCALL_MASK and SYMBOL_MODE_MASK
492 like emulparams/aixppc.sh.
494 * emultempl/aix.em (sc): Use ${srcdir}/emultempl/ostring.sed
495 instead of ${srcdir}/emultempl/stringify.sed.
499 * emulparams/elf64_aix.sh: Change settings to match IBM linker
504 * configure.host: Replace linuxoldld with linux*oldld.
505 * configure.tgt: Likewise.
509 * emultempl/stringify.sed: Removed again.
513 * emultempl/aix.em (OUTPUT_ARCH): Defined.
514 (gld${EMULATION_NAME}_before_parse): Initialize
515 ldfile_output_architecture, ldfile_output_machine and
516 ldfile_output_machine_name from ${OUTPUT_ARCH} if possible.
517 * emultempl/beos.em: Likewise.
518 * emultempl/elf32.em: Likewise.
519 * emultempl/linux.em: Likewise.
520 * emultempl/mipsecoff.em: Likewise.
521 * emultempl/pe.em: Likewise.
522 * emultempl/sunos.em: Likewise.
526 * emultempl/aix.em : (gld${EMULATION_NAME}_read_file)
527 udate import file format.
528 (change_symbol_mode) New, same
529 (is_syscall) New, same
530 * emulparams/aixppc.sh : add SYSCALL_MASK and SYMBOL_MODE_MASK
531 * emulparams/aixppc64.sh : same
532 * emulparams/aixrs6.sh : same
533 * emulparams/ppcmacos.sh : same
534 * emultempl/aix.em : use strtoull to parse options
535 * Makefile.am : add eaixppc64 emulation for xcoff64
537 * configure.tgt : same
539 * scripttempl/aix.sc : default text section offset to 0x10000000
540 default data section offset to 0x20000000
541 add .sv3264 and .sv64 pseudo sections
542 loader and debug sections use the currect section offset.
544 * emultempl/aix.em : Add xcoff64 support
545 Add -binitfini support
546 (gld${EMULATION_NAME}_before_parse) -binitfini
547 (gld${EMULATION_NAME}_parse_args) same
548 (gld${EMULATION_NAME}_before_allocation) format change for special
551 * emulparams/aixppc64.sh : New file for xcoff64 support
555 * emultempl/elf32.em (ELF_INTERPRETER_SET_DEFAULT): Use this new
556 variable to avoid non-portable shell construct.
560 * ldmain.c (get_emulation): Add -mips5 command line argument.
564 * emulparams/elf_i386_ldso.sh: New, copied from elf_i386.sh.
565 (ELF_INTERPRETER_NAME): Define it.
566 * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Use
568 * configure.tgt (targ_emul, targ_extra_emuls)
569 [i[3456]86-*-solaris2*, i[3456]86-*-solaris*]: Use elf_i386_ldso
570 as primary, elf_i386 as extra.
571 * Makefile.am (ALL_EMULATIONS): Added eelf_i386_ldso.o.
572 (eelf_i386_ldso.c): New rule.
573 * Makefile.in: Rebuilt.
577 * lexsup.c (ld_options): Allow -I to be an alias for
578 --dynamic-linker. This is for Solaris compatability.
579 * ld.texinfo: Document that -I can be used.
584 * ldlang.c (wild_doit): Use linker_has_input to reliably determine
585 whether an input section is the first one assigned to an output
587 Assorted formatting fixes.
591 * Makefile.am (ld.dvi): Search bfd/doc for texinfo files.
592 * Makefile.in: Ditto.
596 * emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Put
597 .gnu.linkonce.ia64unw{,i} sections into corresponding .IA_64.unwind*
599 * emulparams/elf64_aix.sh (OTHER_READONLY_SECTIONS): Likewise.
603 * ldlang.c (lang_process): Call bfd_merge_sections.
607 * ldgram.y: Fix typo.
611 * emultempl/elf32.em: Include "libiberty.h".
612 (gld${EMULATION_NAME}_vercheck): Call basename () to get the
613 basename of the bfd filename.
614 (gld${EMULATION_NAME}_stat_needed): Likewise.
615 (gld${EMULATION_NAME}_try_needed): Likewise.
616 (gld${EMULATION_NAME}_open_dynamic_archive): Likewise.
620 * emultempl/pe.em: Include <ctype.h>.
624 * emulparams/elf32openrisc.sh: New file.
626 * Makefile.am: Add OpenRISC target.
627 * Makefile.in: Regenerated.
629 * configure.tgt: Add openrisc-*-* mapping.
633 * emultempl/aix.em: Replace buystring with xstrdup.
634 * emultempl/beos.em: Replace buystring with xstrdup.
638 * ldfile.c: Include "libiberty.h".
641 * ldmisc.c (buystring): Removed.
642 * ldmisc.h: Likewise.
644 * ldfile.c: Replace buystring with xstrdup.
645 * ldlang.c: Likewise.
647 * ldmain.c: Likewise.
648 * ldmisc.c: Likewise.
649 * lexsup.c: Likewise.
650 * mpw-eppcmac.c: Likewise.
654 * emulparms/elf_x86_64.sh (MAXPAGESIZE): Fix value.
658 * ldlang.c (load_symbols): Give emulation a chance
659 to process unrecognized file before fatal error is
664 * configure.tgt: Add arm-vxworks target.
665 * scripttempl/armcoff.sc: Support .text or .data as a section name
671 * ld.texinfo: Document --fatal-warnings.
674 * ldmisc.c (vfinfo): Set flag to inhibit making executable if
675 warnings have been turned into errors.
676 * lexsup.c (OPTION_WARN_FATAL): Define.
677 (ld_options): Entry for --fatal-warnings.
678 (parse_args): Handle OPTION_WARN_FATAL.
679 * ld.h (ld_config_type): Add fatal_warnings field.
683 * ldmain.c (main): Default to discard_sec_merge.
684 * lexsup.c (OPTION_DISCARD_NONE): Define.
685 (ld_options): Add --discard-none.
686 (parse_args): Handle OPTION_DISCARD_NONE.
687 * ldlang.c (wild_doit): SEC_MERGE should be set in the output
688 section only if SEC_MERGE and SEC_STRINGS flags and entsize of
689 all its input sections match.
693 * Makefile.am (ALL_EMULATIONS): Add eelf32ltsmip.o.
694 (ALL_64_EMULATIONS): Add eelf64btsmip.o and eelf64ltsmip.o.
695 (eelf32ltsmip.c): New target.
696 (eelf64btsmip.c): Likewise.
697 (eelf64ltsmip.c): Likewise.
698 * Makefile.in: Regenerated.
700 * configure.tgt (mips*el-*-linux-gnu): Uses traditional MIPS
702 (mips*-*-linux-gnu*): Likewise.
704 * emulparams/elf32ltsmip.sh: New. Traditional little endian
706 * emulparams/elf64btsmip.sh: New. Traditional 64bit big endian
708 * emulparams/elf64ltsmip.sh: New. Traditional 64bit little
713 * emulparams/criself.sh (EXECUTABLE_SYMBOLS): Cannot provide
714 correct value of __Stext here.
715 (TEXT_START_SYMBOLS): Define; always define __Stext, to start of
718 * emulparams/crislinux.sh: Remove FIXME.
722 * emulparams/hppalinux.sh (MAXPAGESIZE): Set to 64k.
723 (TEXT_START_ADDR, TARGET_PAGE_SIZE): Likewise.
727 * configure.tgt (cris-*-*): Change default emulation to criself.
728 (cris-*-*aout*): New rule.
732 * emulparams/hppalinux.sh (MAXPAGESIZE): Set to 0x4000.
733 (TEXT_START_ADDR, TARGET_PAGE_SIZE): Ditto.
737 * ld.texinfo (Overview): Fix syntax in texi code.
741 * ld.texinfo: Put @c man indications to generate the ld man page.
742 When generating man, define all the variables. Define SEEALSO
743 and SYNOPSIS. Re-organize some lines to avoid the cross references.
744 * Makefile.am (MANCONF, TEXI2POD, POD2MAN): New variables.
745 (ld.1): Generate from ld.texinfo.
746 * Makefile.in: Regenerate.
750 * scripttempl/i386go32.sc: Support the GCC flags '-ffunction-sections'
751 and '-fdata-sections'. Set the VMA of STABS sections to zero.
755 * emultmpl/elf32.em (gld${EMULATION_NAME}_search_needed): If NAME
756 is an absolute path look only for this file and not along the path.
760 * emultempl/elf32.em (OPTION_GROUP): New macro.
761 Add new option Bgroup to longopts.
762 (gld*_parse_args): Handle GROUP_OPTION and recognize -z defs.
763 (gld*_list_options): Add -Bgroup and -z defs.
764 * ld.1: Document -Bgroup and -z defs.
765 * ld.texinfo: Likewise.
769 * scripttempl/elfd10v.sc (.rodata,.rodata1,.data1,.sdata): Deal
770 with sections created by -fdata-sections.
771 (.dynbss,.bss): Ditto.
775 * emultempl/m68kelf.em (m68k_elf_after_allocation): Call
776 after_allocation_default, not gld..._before_allocation.
780 * configure.in (BFD_VERSION): New.
781 (AM_INIT_AUTOMAKE): Use $BFD_VERSION.
782 * configure: Regenerate.
783 * Makefile.am: Run "make dep-am"
784 * Makefile.in: Regenerate.
788 * emulparams/elf64_aix.sh: Add additional read-only sections;
789 uncomment lines which are now required.
793 * ldlang.c (open_input_bfds): Set the bfd error handler so
794 that problems can be caught whilst loading symbols.
795 (record_bfd_errors): New function: Report BFD errors and mark
796 the executable output as being invalid.
800 * configure.host: Add configuration for ia64-*-aix*.
801 * Makefile.am (ALL_64_EMULATIONS): Add emulation for ia64-*-aix*.
802 Add dependencies for eelf64_aix.c.
803 * Makefile.in: Regenerate.
804 * configure.tgt: Add ia64-*-aix* mapping.
805 * emulparams/elf64_aix.sh: Add settings for elf64 on aix5.
806 * testsuite/ld-bootstrap/bootstrap.exp: Exclude ia64 flavor from
811 * ldfile.c (ldfile_open_file): Set entry->search_dirs_flag to
812 false if we found the file.
816 * configure.tgt: Add FreeBSD/Alpha, FreeBSD/x86-64, FreeBSD/ia64,
817 FreeBSD/PowerPC, FreeBSD/arm, and FreeBSD/sparc64 entries.
821 * Makefile.am: Add PDP-11 target.
822 * configure.tgt: Likewise.
823 * emulparams/pdp11.sh: New file.
827 * configure.host: Add a generic FreeBSD configuration entry such that
828 all [modern] FreeBSD systems on all platforms will look the same.
832 * configure.tgt: Remove mention of earmelf_linux26.
836 * emulparams/elf64_ia64.sh (OTHER_GOT_SYMBOLS): Remove.
840 * ldexp.h (node_type): Add etree_provided.
841 * ldexp.c (exp_fold_tree): Handle etree_provided. Set the node
842 type to etree_provided if defined by PROVIDE. Allow updating
844 (exp_print_tree): Handle etree_provided.
845 * mpw-elfmips.c (gldelf32ebmip_find_exp_assignment): Handle
850 * emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Add
851 .IA_64.unwind.* pattern to unwind table section and
852 .IA_64.unwind_info* pattern to unwind info section.
856 * Makefile.am: Add linux target for S/390.
857 * Makefile.in: Likewise.
858 * configure.host: Likewise.
859 * configure.tgt: Likewise.
860 * emulparams/elf64_s390.sh: New file.
861 * emulparams/elf_s390.sh: New file.
865 * configure.tgt (sparc64-*-linux-gnu*): Add elf32_sparc into
867 (sparc-*-linux-gnu*): Add elf64_sparc into targ_extra_libpath.
871 * Makefile.am: Remove mention of earmelf_linux26.
872 * Makefile.in: Regenerate.
876 * emulparams/armelf_linux.sh (TEXT_START_ADDR): Set to 0x8000.
877 * emulparams/armelf_linux26.sh: Delete.
878 * configure.tgt: Remove mention of armelf_linux26 emulation.
882 * ld.1: Replace occurances of -oformat with --oformat.
886 * ldlang.c (lang_leave_overlay): Don't set lma_region when
887 load_base is specified.
891 * emultempl/elf32.em: Correct spelling in comments and listed
896 * ldlang.c (lang_leave_overlay): Only set lma_region from the
897 default for the first section of a group of overlay sections.
901 * Makefile.am (GENSCRIPTS): Pass exec_prefix.
902 * Makefile.in: Regenerate.
903 * genscripts.sh: Use exec_prefix parameter to specify tool lib.
904 Check for null tool_dir.
908 * emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Add IA_64.unwind
909 and IA_64.unwind.info.
913 * ldlang.c (lang_check): Merge the private data only if the
914 input file has contents.
918 * emulparams/hppalinux.sh (OUTPUT_FORMAT): Set to elf32-hppa-linux.
920 * emultempl/hppaelf.em (hppaelf_after_parse): New function,
921 enabling search for libmilli. On a relocatable link, make .text
923 (LDEMUL_AFTER_PARSE): Define.
924 (hppaelf_finish): Correct spelling of relocatable in comments.
926 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
927 rummage through the script for sections on the unique list.
928 Correct length of strncmp for ".note".
929 (gld${EMULATION_NAME}_check_needed): Rearrange function.
931 * ldlang.c (unique_section_list): New var.
932 (unique_section_p): New function.
933 (walk_wild_section): Don't match sections on unique_section_list.
934 (lang_add_unique): New function.
935 Correct spelling of relocatable in comments.
937 * ldlang.h (struct unique_sections): Declare.
938 (unique_section_list): Declare.
939 (unique_section_p): Declare.
940 (lang_add_unique): Declare.
942 * lexsup.c (ld_options): Allow --unique to take an optional arg.
943 (parse_args [OPTION_UNIQUE]): Call lang_add_unique.
945 * ld.texinfo (--unique): Update.
949 * lexsup.c (parse_args): Remove spurious white space.
953 * lexsup.c (parse_args): Update copyright date.
957 * configure.host: Set HOSTING_LIBS appropriately for ix86-cygwin.
961 * scripttempl/h8300.sc: Fix formatting. Fix a comment typo.
962 * scripttempl/h8300h.sc: Fix formatting.
963 * scripttempl/h8300s.sc: Likewise.
964 * scripttempl/h8500.sc: Likewise.
965 * scripttempl/h8500b.sc: Likewise.
966 * scripttempl/h8500c.sc: Likewise.
967 * scripttempl/h8500m.sc: Likewise.
968 * scripttempl/h8500s.sc: Likewise.
972 * emultempl/elf32.em: Only perform Linux ld hints processing when
977 * ld.texinfo (Bug Reporting): Update email address for reports.
981 * lexsup.c (parse_args): Set opterr to 0 and detect unparsed long
982 options by checking for a return value of '?' not -1.
986 * lexsup.c (struct ld_option): Add new enum value:
988 (ld_options[]): Change -omagic, -output and -oformat options
989 to be EXACTLY_TWO_DASHES.
990 (OUTPUT_COUNT): Use ARRAY_SIZE.
991 (parse_args): Change parameter 'argc' to unsigned.
992 Place EXACTLY_TWO_DASHES options into new really_longopts
994 If getopt_long_only fails, try calling getopt_long using the
995 really_longopts array.
996 (help): Print a double dash for both EXACTLY_TWO_DASHES and
999 * ldlex.h: Fix prototype of parse_args.
1001 * ld.texinfo: Document that long options starting with 'o'
1002 must be preceeded by two dashes. Change example of a single
1003 dashed long option from -oformat to -trace-symbol.
1007 * emultempl/pe.em (OPTION_NO_DEFAULT_EXCLUDES): Define.
1008 (longopts[]): New --no-default-excludes option.
1009 (gld_${EMULATION_NAME}_list_options): Document.
1010 (gld_${EMULATION_NAME}_parse_args): Handle.
1014 * ldlang.c (new_stat): Revert the last beautification with "innocent"
1015 whitespace, it breaks the K&R C preprocessor.
1019 * ld.texinfo: Add notes about --whole-archive and gcc.
1023 * lexsup.c (OPTION_ALLOW_SHLIB_UNDEFINED): Define.
1024 (ld_options): Entry for --allow-shlib-undefined.
1025 (parse_args): Handle OPTION_ALLOW_SHLIB_UNDEFINED.
1026 * ldmain.c (main): Initialize link_info.allow_shlib_undefined
1028 * ld.texinfo: Document new command line switch.
1032 * emulparams/elf32ppc.sh (OTHER_READWRITE_SECTIONS):
1033 .fixup is actually read/write.
1034 * emulparams/elf32lppc.sh (OTHER_READWRITE_SECTIONS): Likewise.
1035 * emulparams/elf32ppcsim.sh (OTHER_READWRITE_SECTIONS): Likewise.
1036 * emulparams/elf32lppcsim.sh (OTHER_READWRITE_SECTIONS): Likewise.
1040 * NEWS: Add note about x86_64 architecture.
1044 * scripttempl/i386go32.sc: Use PROVIDE with _etext, _edata, _end.
1045 Set DWARF2 sections to a VMA of zero.
1049 * configure.tgt (arm-*-rtems*, a29k-*rtems*, h8300-*-rtems*):
1051 (sparc*-*-rtemself*, sparc*-*-rtemsaout*): New targets.
1052 (sparc*-*-rtems*): Switched from a.out to ELF.
1056 * Makefile.am (ALL_EMULATIONS): Add eelf_x86_64.o
1057 (eelf_x86_64.c): New.
1058 * Makefile.in: Regenerate.
1059 * configure.tgt: Add support for x86_64-*-linux-gnu*.
1060 * emulparams/elf_x86_64.sh: New.
1064 * emulparams/crislinux.sh (ENTRY): Change back to _start.
1065 (TEXT_START_SYMBOLS): Remove conditional setting of __start.
1067 * scripttempl/crisaout.sc: Change all RELOCATING not related to
1068 merging non-a.out sections into CONSTRUCTING.
1072 * ld.1 (COPYING): Mention that the GNU Free Documentation
1073 License is present in the sources, but not the output, and
1074 also available from the GNU website.
1075 (GNU Free Documentation License): Comment out this section.
1079 * emulparams/elf64alpha.sh (ENTRY): Remove leading underscore as ELF
1084 * ld.1: Remove old date so it does not give the impression the manpage
1089 * configure.tgt (xscale-coff): Add target.
1090 (xscale-elf): Add target.
1094 * ldmain.c (main): Remove redundant init of config.make_executable
1099 * emulparams/elf64alpha.sh (MAXPAGESIZE): Typo -- 64k, not 1M.
1103 * scripttempl/h8300.sc: Fix formatting.
1104 * scripttempl/h8300h.sc: Likewise.
1105 * scripttempl/h8300s.sc: Likewise.
1109 * scripttempl/elf32avr.sc: Fix bug in .eeprom segment.
1113 * emultempl/pe.em: Define ___start_SECNAME and ___stop_SECNAME
1114 around orphan sections whose names can be represented in C.
1118 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): New local
1119 hold_sdata. If SEC_SMALL_DATA set, set place to hold_sdata.
1123 * ld.texinfo: Add GNU Free Documentation License.
1124 * ldint.texinfo: Add GNU Free Documentation License.
1125 * ld.1: Add GNU Free Documentation License.
1129 * ldlex.l (yy_create_string_buffer): Init yy_is_our_buffer,
1130 yy_is_interactive, yy_at_bol, and yy_fill_buffer.
1132 * Makefile.am (DISTCLEANFILES): Add stringify.sed.
1133 Move 2000-11-02 Makefile.in changes to this file.
1134 * Makefile.in: Regenerate.
1138 * scripttempl/h8300.sc: Use ${CONSTRUCTING...} to enclose
1139 constructors and destructors.
1140 * scripttempl/h8300h.sc: Ditto.
1141 * scripttempl/h8300s.sc: Ditto.
1142 * scripttempl/h8500.sc: Ditto.
1143 * scripttempl/h8500b.sc: Ditto.
1144 * scripttempl/h8500c.sc: Ditto.
1145 * scripttempl/h8500m.sc: Ditto.
1146 * scripttempl/h8500s.sc: Ditto.
1147 * scripttempl/v850.sc: Ditto.
1148 * scripttempl/w65.sc: Ditto.
1149 * scripttempl/z8000.sc: Ditto.
1153 * Makefile.in (e_i386_chaos.c): New rule.
1154 (ALL_EMULATIONS): Added e_i386_chaos.o.
1155 * emulparams/elf_i386_chaos.sh: New file.
1156 * configure.tgt: Recognise i[3456]86-chaosdev-storm-chaos.
1160 * emulparams/elf64_sparc.sh (TEXT_START_ADDR,
1161 NONPAGED_TEXT_START_ADDR): Set to 4GB for Solaris targets.
1162 Fix sed invocation, so that it coped with '/' in Solaris 64bit
1163 library path suffix.
1168 * scripttempl/crisaout.sc (.text, .data): Pad, with ALIGN (32),
1169 for consecutive sections.
1173 * lexsup.c: New option OPTION_TARGET_HELP. Prints all target specific
1175 * ld.texinfo: Added notes about this new option.
1179 * emultempl/pe.em (_after_open): Add tests of return values from
1180 bfd functions. Emit appropriate error messages if necessary.
1184 * emultempl/pe.em (_after_open): Delete 'is2' and 'nsyms'
1185 local variables - they are not used, but leave in the call to
1186 bfd_canonicalize_symtab.
1187 (_open_dynamic_archive): Add #ifdef DLL_SUPPORT around use of
1188 pe_dll_search_prefix.
1192 * emultempl/pe.em (pe_dll_search_prefix): New variable,
1193 (longopts): New --dll-search-prefix option.
1194 (gld_${EMULATION_NAME}_list_options): Document.
1195 (gld_${EMULATION_NAME}_parse_args): Handle.
1196 (gld_${EMULATION_NAME}_open_dynamic_archive): When linking
1197 dynamically, search for a dll named '<prefix><basename>.dll'
1198 in preference to 'lib<basename>.dll' if --dll-search-prefix
1203 * ldlang.c (section_already_linked): Set kept_section instead of
1208 * deffile.h: Fix formatting.
1209 * lexsup.c: Likewise.
1214 * pe-dll.c (make_one): Do not generate code thunk for DATA
1216 (process_def_file): deduce DATA flag for auto-export sumbols.
1220 * ld.h: Fix formatting.
1221 * ldcref.c: Likewise.
1222 * ldctor.h: Likewise.
1223 * ldemul.c: Likewise.
1224 * ldemul.h: Likewise.
1225 * ldexp.c: Likewise.
1226 * ldexp.h: Likewise.
1227 * ldfile.c: Likewise.
1228 * ldfile.h: Likewise.
1229 * ldlang.c: Likewise.
1230 * ldlang.h: Likewise.
1231 * ldmain.c: Likewise.
1232 * pe-dll.c: Likewise.
1234 * pe-dll.c: Revert some formatting fixes.
1238 * pe-dll.c: Fix formatting.
1242 * ldlang.c: Fix formatting.
1246 * pe-dll.c (fill_edata): initialize entire block
1247 (make_one): fill in correct section.
1251 * ldexp.c: Fix formatting.
1255 * emultempl/pe.em (gld_*_after_open): detect case where there two
1256 import libraries for same dll; rename one to ensure proper link
1259 * pe-dll.c (process_def_file): compare ordinals to -1, not 0; fix
1261 (generate_edata): fix typo
1265 * scripttempl/crisaout.sc (ENTRY): Now __start.
1266 (.text): Add default setting for __start.
1267 Remove CONSTRUCTORS handling.
1268 (/DISCARD/): Add .gnu.warning.*.
1269 * emulparams/crislinux.sh (ENTRY): Now __start.
1270 (TEXT_START_SYMBOLS): New; provide __Stext and __start default.
1271 * emulparams/criself.sh (OUTPUT_FORMAT): Now elf32-us-cris.
1272 (ENTRY): Now __start.
1273 (INITIAL_READONLY_SECTIONS): Add KEEP for .startup.
1274 (EXECUTABLE_SYMBOLS): Add default setting for __start.
1278 * deffile.h: Fix formatting.
1280 * ldcref.c: Likewise.
1281 * ldctor.c: Likewise.
1282 * ldctor.h: Likewise.
1283 * ldemul.c: Likewise.
1284 * ldemul.h: Likewise.
1285 * ldexp.c: Likewise.
1286 * ldexp.h: Likewise.
1287 * ldfile.c: Likewise.
1288 * ldfile.h: Likewise.
1289 * ldlang.c: Likewise.
1290 * ldlang.h: Likewise.
1291 * lexsup.c: Likewise.
1293 * pe-dll.c: Likewise.
1297 * pe-dll.c (process_def_file): Uninitialized data wasn't
1298 exported with --export-all-symbols switch.
1302 * pe-dll.c (fill_edata): rearrange the data so that ordinals and
1303 noname work properly.
1307 * ld.texinfo (HPPA ELF32): New section.
1309 * emultempl/hppaelf.em (group_size): New.
1310 (hppaelf_finish): Pass group_size to elf32_hppa_size_stubs.
1311 (PARSE_AND_LIST_PROLOGUE): Add OPTION_STUBGROUP_SIZE.
1312 (PARSE_AND_LIST_LONGOPTS): Add --stub-group-size. Duplicate
1313 options to prevent abbreviations matching.
1314 (PARSE_AND_LIST_OPTIONS): Describe the above. Reformat.
1315 (PARSE_AND_LIST_ARGS_CASES): Handle it.
1319 * emultempl/m68kelf.em: Conditionalise the embedded relocs feature
1320 on the m68*-*-elf target. Make it support COFF input objects.
1324 * ldmain.c: Fix formatting.
1325 * ldmisc.c: Likewise.
1326 * ldver.c: Likewise.
1327 * ldwrite.c: Likewise.
1331 * ldwrite.c (clone_section): Silence gcc warnings.
1335 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Handle
1336 out of memory failure.
1338 * ldwrite.c (ldwrite): Remove unnecessary einfo arg.
1339 (clone_section): Handle out of memory failures. Rename var to
1340 avoid c++ reserved word.
1344 * emultempl/hppaelf.em (hppaelf_add_stub_section): Rename
1345 stub_name param to stub_sec_name.
1346 (hppaelf_finish): Modify call to elf32_hppa_size_stubs.
1350 * emultempl/m68kelf.em: New file.
1351 * emulparams/m68kelf.sh (EXTRA_EM_FILE): Use it.
1352 * Makefile.am (em68kelf.c): Add dependency on m68kelf.em.
1353 * Makefile.in: Regenerate.
1357 * emulparams/hppalinux.sh (DATA_START_SYMBOLS): Provide $global$
1362 * ldmain.c (multiple_definition): Disable relaxation if
1363 multiple symbol definitions are encountered - otherwise the
1364 linker could abort with an assertion failure.
1368 * mri.c: Fix formatting.
1372 * configure.in (AC_ISC_POSIX): Put after AC_CANONICAL_SYSTEM.
1373 * configure: Rebuild.
1377 * Makefile.am (lexsup.o): Also depend on $(INCDIR)/demangle.h.
1378 * Makefile.in: Rebuild.
1382 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Fix
1383 broken list handling. Create __start_SECNAME and __stop_SECNAME
1384 when no place-holder. Add some comments. Test both SEC_CODE and
1385 SEC_READONLY for hold_text to prevent .rodata orphan poisoning.
1386 Handle case where no output section statement created.
1390 * configure.tgt (sh-*-linux*): Added.
1391 * Makefile.am: Added eshelf_linux and eshlelf_linux.
1392 * Makefile.in: Rebuilt.
1393 * emulparams/shelf_linux.sh: New file.
1394 * emulparams/shlelf_linux.sh: New file.
1398 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
1399 try shuffling sections when the orphan happens to be the place
1400 holder. Keep count of unique section names generated so we speed
1401 the search for a new name.
1405 * configure: Rebuilt with new libtool.m4.
1409 * Makefile.in: Regenerate.
1410 * aclocal.m4: Regenerate.
1411 * configure: Regenerate.
1412 * config.in: Regenerate.
1413 * po/ld.pot: Regenerate.
1415 * ldint.texinfo: Remove CVS revision marker - it foils local
1418 * emultempl/ticoff.em: Remove extraneous comma.
1422 * emultempl/hppaelf.em (hppaelf_add_stub_section): Add SEC_RELOC
1423 to stub section flags.
1424 (hppa_for_each_input_file_wrapper): New.
1425 (hppa_lang_for_each_input_file): New.
1426 (lang_for_each_input_file): Define to call above.
1427 (multi_subspace): New.
1428 (hppaelf_finish): Pass multi_subspace to elf32_hppa_size_stubs.
1429 (PARSE_AND_LIST_PROLOGUE): Define.
1430 (PARSE_AND_LIST_LONGOPTS): Define.
1431 (PARSE_AND_LIST_OPTIONS): Define.
1432 (PARSE_AND_LIST_ARGS_CASES): Define.
1433 (hppaelf_finish): Call elf32_hppa_set_gp.
1434 (hppaelf_set_output_arch): Remove.
1435 (LDEMUL_SET_OUTPUT_ARCH): Remove.
1437 * emulparams/hppalinux.sh (ELFSIZE): Define.
1439 (OTHER_READONLY_SECTIONS): Define.
1441 (GENERATE_SHLIB_SCRIPT): Define.
1443 * ldlang.c: Add missing prototypes, and tidy others. Change CONST
1444 to const throughout. Change `void *' to `PTR' throughout.
1445 (lang_memory_default): Function is local to file, add `static'.
1447 * Makefile.am (ehppaelf.c): Depend on emultempl/elf32.em.
1448 (ehppalinux.c): Likewise.
1449 (earmelf.c): Likewise.
1450 (earmelf_linux.c): Likewise.
1451 (earmelf_linux26.c): Likewise.
1452 * Makefile.in: Regenerate.
1454 * ld.h (ld_config_type): Add unique_orphan_sections.
1455 * lexsup.c (OPTION_UNIQUE): Define.
1456 (ld_options): Add "--unique".
1457 (parse_args): Handle it.
1458 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
1459 search for an existing output section if unique_orphan_sections is
1460 set. Make use of bfd_get_unique_section_name rather than
1461 duplicating code here.
1462 * ld.texinfo: Describe --unique.
1464 * lexsup.c (ld_options): Make split-by-reloc arg optional. Add
1465 optional arg to split-by-file.
1466 (parse_args): Handle them.
1467 * ld.texinfo: Update description of these options.
1468 * ldwrite.c (clone_section): Pass in the section name. Replace
1469 local code with bfd_get_unique_section_name.
1470 (split_sections): Tidy code and comments. Use a list traversal
1471 more appropriate to the list construction. Handle cooked section
1472 sizes. Split when split_by_reloc reached rather than exceeded.
1473 Track section size and split when split_by_file reached. Fix
1474 link_order_tail (even though it's not used).
1475 (ldwrite): Modify condition for calling split_sections to suit
1476 changed split_by_reloc and split_by_file.
1477 * ldmain.c (main): Init config.split_by_reloc and
1478 config.split_by_file to -1.
1479 * ld.h (ld_config_type): Change split_by_reloc to unsigned.
1480 Change split_by_file to bfd_size_type.
1484 * configure.in: Increase version number to 2.10.91.
1485 * NEWS: Mention new ability to support removal of duplicate DWARF2
1487 * configure: Regenerate.
1488 * aclocal.m4: Regenerate.
1489 * config.in: Regenerate.
1493 * scripttempl/elf.sc: Add .gnu.linkonce.wi.* to .debug_info
1495 * scripttempl/elf32avr.sc: Ditto.
1496 * scripttempl/elfd10v.sc: Ditto.
1497 * scripttempl/elfd30v.sc: Ditto.
1498 * scripttempl/elfi370.sc: Ditto.
1499 * scripttempl/elfm68hc11.sc: Ditto.
1500 * scripttempl/elfm68hc12.sc: Ditto.
1501 * scripttempl/elfi386beos.sc: Ditto.
1502 * scripttempl/v850.sc: Ditto.
1506 * acinclude.m4: Include libtool and gettext macros from the
1508 * aclocal.m4, configure: Rebuilt.
1512 * ldlang.c (open_output): When choosing the target for a
1513 particular endianness, do nothing if the target is not
1518 * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Don't
1519 check -rpath nor LD_RUN_PATH for cross link.
1520 * ld.texinfo: Document the change.
1524 * NEWS: Mention support for CRIS.
1528 * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Get
1529 the current runpath list from bfd_elf_get_runpath_list ()
1534 * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Search
1535 the DT_RPATH/DT_RUNPATH entries for DT_NEEDED after
1536 LD_LIBRARY_PATH for native linker. Display the needed DSO if
1537 trace_file_tries is non-zero.
1538 (gld${EMULATION_NAME}_try_needed): Report the needed DSO found
1539 if trace_file_tries is non-zero.
1541 * ld.texinfo: Document the usage of DT_RPATH/DT_RUNPATH.
1546 * NEWS: Mention i860 support.
1550 * scripttempl/elf.sc: Fix last change to use correct comment
1555 * scripttempl/elf.sc: Add a comment giving the correspondence
1556 between sections, per-datum sections, and linkonce sections. Make
1557 the comment true even for .bss, .sdata, .sdata2, .sbss, and
1562 * emulparams/elf32_i860.sh: New file.
1563 * configure.tgt: Recognize new target i860-stardent-{sysv4*|elf*}.
1564 * Makefile.am (ALL_EMULATIONS): Add eelf32_i860.o.
1565 (eelf32_i860.c): New rule.
1566 * Makefile.in: Regenerate.
1570 * emulparams/mipspe.sh (ENTRY): Add definition.
1574 * emultempl/elf32.em (_after_close): Refer to -rpath not --rpath
1579 * scripttempl/elfm68hc11.sc: Define __bss_size symbol to indicate
1580 the final size of .bss section.
1581 * scripttempl/elfm68hc12.sc: Likewise.
1585 * emultempl/elf32.em (gld_${EMULATION_NAME}_parse_args): Rename to
1586 gld${EMULATION_NAME}_parse_args for consistency. Combine
1587 lastoptind and prevoptind vars, and keep track of last optind.
1588 (gld_${EMULATION_NAME}_list_options): Rename to
1589 gld${EMULATION_NAME}_list_options.
1593 * configure.tgt: Select targ_emul=elf_i386 for Unixware 7
1594 (i586-sco-sysv5uw7.1.0).
1598 * emulparams/elf64alpha.sh (PARSE_AND_LIST_ARGS): Removed.
1599 (PARSE_AND_LIST_PROLOGUE): New.
1600 (PARSE_AND_LIST_LONGOPTS): Likewise.
1601 (PARSE_AND_LIST_OPTIONS): Likewise.
1602 (PARSE_AND_LIST_ARGS_CASES): Likewise.
1603 (PARSE_AND_LIST_EPILOGUE): Likewise.
1607 * emultempl/armelf.em: Elide functions common to elf32.em,
1608 ie. most of the file.
1609 (arm_elf_after_open): New. Do arm specific things then call
1610 gld${EMULATION_NAME}_after_open.
1611 (arm_elf_before_allocation): New. Call
1612 gld${EMULATION_NAME}_before_allocation then do arm specifics.
1613 (PARSE_AND_LIST_PROLOGUE): Define.
1614 (PARSE_AND_LIST_SHORTOPTS): Define.
1615 (PARSE_AND_LIST_LONGOPTS): Define.
1616 (PARSE_AND_LIST_OPTIONS): Define.
1617 (PARSE_AND_LIST_ARGS_CASES): Define.
1618 (LDEMUL_AFTER_OPEN): Define.
1619 (LDEMUL_BEFORE_ALLOCATION): Define.
1620 (LDEMUL_BEFORE_PARSE): Define.
1621 (LDEMUL_FINISH): Define.
1623 * emultempl/hppaelf.em: Similarly zap most of this file.
1624 (hppaelf_add_stub_section): Prototype.
1625 (hppaelf_layaout_sections_again): Prototype.
1626 (hook_in_stub): Prototype.
1627 (LDEMUL_SET_OUTPUT_ARCH): Define.
1628 (LDEMUL_FINISH): Define.
1629 (LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS): Define.
1631 * emulparams/armelf.sh (TEMPLATE_NAME): Use elf32.
1632 (EXTRA_EM_FILE): New.
1633 * emulparams/armelf_linux.sh: Likewise.
1634 * emulparams/armelf_linux26.sh: Likewise.
1635 * emulparams/hppalinux.sh: Likewise.
1636 * emulparams/hppaelf.sh: Likewise.
1639 * emultempl/elf32.em: Fix formatting.
1640 (EXTRA_EM_FILE): Source it.
1641 (LDEMUL_BEFORE_PARSE, LDEMUL_SYSLIB, LDEMUL_HLL,
1642 LDEMUL_AFTER_PARSE, LDEMUL_AFTER_OPEN, LDEMUL_AFTER_ALLOCATION,
1643 LDEMUL_SET_OUTPUT_ARCH, LDEMUL_CHOOSE_TARGET,
1644 LDEMUL_BEFORE_ALLOCATION, LDEMUL_GET_SCRIPT, LDEMUL_FINISH,
1645 LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS,
1646 LDEMUL_OPEN_DYNAMIC_ARCHIVE, LDEMUL_PLACE_ORPHAN,
1647 LDEMUL_SET_SYMBOLS, LDEMUL_PARSE_ARGS, LDEMUL_UNRECOGNIZED_FILE,
1648 LDEMUL_LIST_OPTIONS, LDEMUL_RECOGNIZED_FILE,
1649 LDEMUL_FIND_POTENTIAL_LIBRARIES): New shell vars. Add code to
1650 allow functions in this file to be overridden.
1651 (PARSE_AND_LIST_SHORTOPTS): Handle it.
1653 * emultempl/m68kcoff.em: Include ldfile.h before ldemul.h.
1655 * emultempl/elf32.em: Reorganize file.
1659 * emulparams/elf64alpha.sh: Implement "-taso" emulation
1660 specific option to fit 64-bit executable in the lower
1661 31-bit address range. This is done by changing start
1662 address of .interp (the very first section of executable)
1663 and then setting EF_ALPHA_32BIT elf header flag.
1667 * emultempl/m68kcoff.em: New file.
1668 * emulparams/m68kcoff.sh (TEMPLATE_NAME): Use m68kcoff template.
1669 * Makefile.am (em68kcoff.c): Depend on m68kcoff.em rather than
1671 * Makefile.in: Regenerate.
1675 * emultempl/elf32.em (longopts): Duplicate "disable-new-dtags"
1676 and "disable-new-dtags" to stop getopt from treating -d/-e as
1677 abbreviations for these options.
1681 * ld.texinfo: Add documentation for --disable-new-dtags and
1684 * ldmain.c (main): Initialize link_info.new_dtags to false.
1686 * emultempl/elf32.em (gld_${EMULATION_NAME}_parse_args): Add
1687 --disable-new-dtags and --enable-new-dtags.
1688 (gld_${EMULATION_NAME}_list_options): Likewise.
1692 * lexsup.c: Add optional style to demangle switch
1693 * ld.texinfo: Document optional style to demangle switch.
1697 * Makefile.am (ALL_EMULATIONS): Add ecrisaout.o, ecriself.o,
1699 (ecrisaout.c, ecriself.c, ecrislinux.c): New rules.
1700 Regenerate dependencies.
1701 * Makefile.in: Rebuild.
1702 * configure.tgt (cris-*-*): New target.
1703 * emulparams/crisaout.sh, emulparams/criself.sh,
1704 emulparams/crislinux.sh, scripttempl/crisaout.sc: New files.
1705 * po/POTFILES.in, po/ld.pot: Regenerate.
1709 * emultempl/elf32.em (gld_${EMULATION_NAME}_list_options):
1710 Print out ignored -z options.
1714 * emulparams/elf32mcore.sh (PARSE_AND_LIST_ARGS): Removed.
1715 (PARSE_AND_LIST_PROLOGUE): New.
1716 (PARSE_AND_LIST_LONGOPTS): Likewise.
1717 (PARSE_AND_LIST_OPTIONS): Likewise.
1718 (PARSE_AND_LIST_ARGS_CASES): Likewise.
1720 * ldmain.c (main): Clear link_info.flags and link_info.flags_1.
1722 * lexsup.c (ld_options): Comment out 'z'.
1723 (parse_args): Likewise.
1725 * emultempl/elf32.em: Include "elf/common.h".
1726 (gld_${EMULATION_NAME}_parse_args): Defined. Handle some -z
1728 (gld_${EMULATION_NAME}_list_options): Likewise.
1730 * ld.texinfo: Add documentation for the recognized -z options.
1734 * emultempl/elf32.em (gld${EMULATION_NAME}_try_needed): Call
1735 bfd_elf_set_dt_needed_soname ().
1739 * pe-dll.c (pe_dll_id_target): check object target name also
1743 * scripttempl/elf.sc (.init): Only do ${INIT_START} and
1744 ${INIT_END} if relocating.
1745 (.fini): Likewise ${FINI_START} and ${FINI_END}.
1749 * emultempl/pe.em (gld_*_open_dynamic_archive): New search
1750 order for dynamic library '-lfoo' on pei386: libfoo.dll.a,
1751 foo.dll.a, libfoo.a, libfoo.dll, foo.dll. This fixes compatibility
1752 errors introduced by the old dynamic lib search order.
1756 * pe-dll.c (process_def_file): auto-export data items also
1757 (pe_process_import_defs): also see if _imp_ form needed
1761 * pe-dll.c (make_one): fix a typo in the __imp_ name decoration
1762 for dll import libraries
1766 * scripttempl/i386go32.sc: Support the g++ attribute init_priority in
1767 gcc 2.95.2 and later.
1771 * ldfile.c (ldfile_try_open_bfd): Output '\n' after an error
1776 * ldemul.h (struct lang_input_statement_struct): Remove forward
1778 (struct search_dirs): Likewise.
1779 * ldfile.h (struct lang_input_statement_struct): Likewise.
1780 Protect file from multiple inclusion.
1781 * ldlang.h (LANG_FOR_EACH_INPUT_STATEMENT): Move file_chain
1782 declaration from macro to file scope.
1784 * ldemul.c: ldexp.h,ldlang.h,ldfile.h,ldemul.h go in this order.
1785 * ldgram.y: Likewise here.
1786 * ldlang.c: And here.
1787 * ldmain.c: And here.
1788 * mpw-elfmips.c: And here.
1789 * mpw-eppcmac.c: And here.
1790 * emultempl/aix.em: And here.
1791 * emultempl/armcoff.em: And here.
1792 * emultempl/armelf.em: And here.
1793 * emultempl/armelf_oabi.em: And here.
1794 * emultempl/beos.em: And here.
1795 * emultempl/elf32.em: And here.
1796 * emultempl/hppaelf.em: And here.
1797 * emultempl/linux.em: And here.
1798 * emultempl/lnk960.em: And here.
1799 * emultempl/pe.em: And here.
1800 * emultempl/sunos.em: And here.
1801 * mpw-esh.c: And here. Include ldexp.h and ldlang.h too.
1802 * mpw-idtmips.c: Ditto.
1803 * emultempl/generic.em: Ditto.
1804 * emultempl/gld960.em: Ditto.
1805 * emultempl/gld960c.em: Ditto.
1806 * emultempl/mipsecoff.em: Ditto.
1807 * emultempl/ticoff.em: Ditto.
1808 * emultempl/vanilla.em: Ditto.
1810 * pe-dll.c: Include ldfile.h
1811 * ldver.c: Include ldexp.h, ldlang.h, ldfile.h
1813 * mpw-elfmips.c: (gldelf32ebmip_before_allocation): Add missing
1814 arguments to bfd_elf32_size_dynamic_sections call.
1815 (gldelf32ebmip_place_orphan): Add missing arguments to
1816 lang_leave_output_section_statement call.
1820 * emultempl/pe.em (pe_enable_stdcall_fixup): Protect with
1822 (strhash): Likewise.
1823 (compute_dll_image_base): Likewise.
1824 (pe_undef_found_sym): Likewise.
1825 (pe_undef_cdecl_match): Likewise.
1826 (gld_${EMULATION_NAME}_open_dynamic_archive): Mark the
1827 argument "arch" with ATTRIBUTE_UNUSED.
1831 * configure.tgt: Remove extraneous hppa*-*-linux-gnu*.
1834 * ldwrite.c (SSIZE): Remove to cure macro redefinition warning.
1838 Changes to create multiple linker stubs, positioned immediately
1839 before the section where they are required.
1840 * emultempl/hppaelf.em: Include elf32-hppa.h.
1841 (stub_sec, file_chain): Delete.
1842 (hppaelf_create_output_section_statements): Don't make a stub
1844 (hook_stub_info): New struct.
1845 (hook_in_stub): New function.
1846 (hppaelf_add_stub_section): New function.
1847 (hppaelf_finish): Do nothing for relocateable links. Modify the
1848 call to elf32_hppa_size_stubs. Move code for updating section
1850 (hppaelf_layaout_sections_again): ..to here, a new function.
1852 * emultempl/hppaelf.em (hppaelf_delete_padding_statements): Fix
1853 broken list handling. Pass in a pointer to the list.
1854 (hppaelf_finish): Update call to hppaelf_delete_padding_statements
1856 (hppaelf_before_parse): Prototype.
1857 (hppaelf_set_output_arch): Prototype.
1858 (hppaelf_create_output_section_statements): Prototype.
1859 (hppaelf_delete_padding_statements): Prototype.
1860 (hppaelf_finish): Prototype.
1863 * emultempl/hppaelf.em: Include ctype.h.
1864 (struct orphan_save): New.
1865 (gld${EMULATION_NAME}_place_orphan): New.
1866 (output_rel_find): New.
1867 (hppaelf_get_script): Update from elf32.em.
1868 (ld_hppaelf_emulation): Rename to ld_${EMULATION_NAME}_emulation.
1869 Change emulation_name field to "${EMULATION_NAME}". Add
1870 gld${EMULATION_NAME}_place_orphan.
1872 * Makefile.am (ALL_EMULATIONS): Reinstate ehppaelf.o, add
1873 ehppalinux.o, sort it. Regenerate dependencies.
1874 (ehppalinux.c): Depend on hppaelf.em
1875 * Makefile.in: Regenerate.
1877 * configure.tgt: targ_emul=hppalinux for hppa*linux
1879 * emulparams/hppalinux.sh: New.
1880 * emulparams/hppaelf.sh (TARGET_PAGE_SIZE): Write in hex.
1884 * lexsup.c (parse_args): Copy section name.
1888 * emultempl/pe.em: institute the following search order for
1889 dynamic libraries on pei386: libfoo.dll.a, foo.dll.a (import
1890 libs), libfoo.dll, foo.dll (link direct to dll). Fall back to
1891 static lib (libfoo.a) if none of the above are found.
1895 * emultempl/pe.em (pe_enable_auto_image_base): New variable.
1896 (longopts): New --{enable,disable}-auto-image-base options.
1897 (gld_${EMULATION_NAME}_list_options): Document.
1898 (gld_${EMULATION_NAME}_parse): Handle.
1899 (strhash): New static function.
1900 (compute_dll_image_base): New static function.
1901 (gld_${EMULATION_NAME}_set_symbols): Use.
1909 * configure.tgt: Add traditional mips (mips*-*-sysv4*) target.
1910 * emulparams/elf32btsmip.sh: New file.
1911 * Makefile.am: Add traditional mips target.
1912 * Makefile.in: Rebuild.
1916 * Makefile.am (EXTRA_ld_new_SOURCES): Set to deffilep.y for
1917 automake to use YLWRAP.
1918 * Makefile.in: Rebuild.
1922 * Makefile.am (DEP): Fix 2000-06-22. grep after running dep.sed
1923 (CLEANFILES): Add DEPA.
1924 * Makefile.in: Regenerate.
1926 2000-06-30 Timothy Wall <twall@ppc>
1928 * scripttempl/tic54xcoff.sc: PAGE N is not implemented, so encode
1929 the page in the upper octet of the address.
1933 * emulparams/avrmega161.sh (ARCH): Change to avr:5.
1937 * NEWS: arm-elf does --gc-sections too.
1941 * Makefile.am (DEP): grep for leading `/' in DEP1, and fail if we
1943 * Makefile.in: Regenerate.
1947 * Makefile.am: Rebuild dependency.
1948 * Makefile.in: Rebuild.
1952 * Makefile.am: Rebuild dependency.
1953 * Makefile.in: Rebuild.
1957 * scripttempl/tic54xcoff.sc: New.
1958 * ldlang.c (wild_doit): Propagate SEC_BLOCK flag.
1959 * gen-doc.texi: Add flag for TI COFF.
1960 * ld.texinfo: Add documentation for TI COFF handling switches.
1961 * emultempl/ticoff.em: New. TI COFF handling.
1962 * configure.tgt: Add tic54x target.
1963 * Makefile.am: Add tic54x target.
1964 * Makefile.in: Ditto.
1968 * ldmain.c (set_scripts_dir): Correct pointer comparison when
1969 checking for backslashes.
1973 * NEWS: Move entries not in 2.10 above "Changes in version 2.10".
1977 * NEWS: Update list of targets supporting --gc-sections.
1979 * scripttempl/elf.sc: KEEP .eh_frame contents.
1980 * scripttempl/elfd30v.sc: Same here.
1984 * Makefile.am (ALL_EMULATIONS): Added new emulation for m68hc12
1986 * Makefile.in: Rebuild.
1987 * configure.tgt: Recognize m68hc12 and m68hc11.
1988 * scripttempl/elfm68hc12.sc: New file.
1989 * emulparams/m68hc12elfb: New emulation.
1990 * emulparams/m68hc12elf: New emulation.
1991 * emulparams/m68hc11elfb.sh: New file. User configurable emulation
1992 (includes a memory.x script to define the ROM and RAM banks).
1993 * scripttempl/elfm68hc11.sc, emulparams/m68hc11elf.sh:
1994 New configuration files for support of Motorola 68hc11
1998 * ldmain.c (main): Only change SEC_READONLY for final link.
2002 * configure: Regenerate.
2006 * configure.in (VERSION): Update to show this is the CVS mainline.
2010 * emultempl/mipsecoff.em (gld{EMULATION_NAME}_after_open): Require all
2011 input objects to be ECOFF.
2012 (check_sections): einfo takes %B, not %P, to print a BFD name.
2016 * ldgram.y (vers_defns): Handle 'extern "C++" { ... }' in
2019 * ldlex.l (V_IDENTIFIER): Accept `::' in symbols.
2023 * emulparams/avr1200.sh (STACK): Define as 0.
2024 * emulparams/avr23xx.sh (STACK): Define as last internal SRAM address.
2025 * emulparams/avr4433.sh (STACK): Likewise.
2026 * emulparams/avr44x4.sh (STACK): Likewise.
2027 * emulparams/avr85xx.sh (STACK): Likewise.
2028 * emulparams/avrmega103.sh (STACK): Likewise.
2029 * emulparams/avrmega161.sh (STACK): Likewise.
2030 * emulparams/avrmega603.sh (STACK): Likewise.
2031 * scripttempl/elf32avr.sc (__data_start): Define for gcrt1.
2032 (__stack): Define from ${STACK} for main().
2036 * Makefile.am: Update dependencies with "make dep-am"
2037 * Makefile.in: Regenerate.
2041 * ldmain.c: Include filenames.h.
2042 (set_scripts_dir): Support backslashes in program name.
2046 * ldmain.c (main): When deciding if ".text" section should be
2047 read-only, don't forget to reset SEC_READONLY because it
2048 could be already set.
2052 * ld.1: Add documentation for new command line option:
2053 --section-start <sectionname>=<sectionorg>
2054 This is a generic version of -Ttext etc. which accepts
2055 any section name as a parameter instead of just text/data/
2057 * ld.texinfo: More docs.
2059 * lexsup.c: (parse_args): Recognize new command line option.
2060 (ld_options): Add new option.
2064 * lexsup.c (parse_args): `i' == `r', not `q'.
2068 * configure.tgt (hppa*64*-*-*): Enable PA64 target.
2073 Add support for '-q' == '--emit-relocs' switch.
2074 * ldmain.c (main): Default to false.
2075 * lexsup.c (parse_args): Turn on emitrelocations flag if set.
2076 * NEWS: Describe the emitrelocations switch.
2077 * ld.texinfo: Describe the emitrelocations switch.
2081 * emultempl/pe.em (_open_dynamic_archive): New function: Search
2082 the library path for "foo.dll" and "libfoo.dll" dynamic libraries
2083 before searching for 'libfoo.a' in response to a '-Bdynamic -lfoo'
2088 * lexsup.c (parse_args): Update the year in the copyright notice.
2092 * ld.h (gettext, dgettext, dcgettext, textdomain, bindtextdomain):
2093 Replace defines with those from intl/libgettext.h to quieten gcc
2098 * ldlang.c (open_input_bfds): Don't load the same file within
2099 a group again if the whole archive has been loaded already.
2104 * lexsup.c (set_section_start): Use bfd_scan_vma rather than
2109 * configure.host (ia64-*-linux-gnu*): Change gcc to ${CC}.
2111 * configure.host: Added HOSTING_CRT0, HOSTING_LIBS for
2112 host "ia64-*-linux-gnu*".
2116 * ld.h: Correctly check GCC version.
2120 * Makefile.am: Add PA64 support. Add missing dependencies for
2122 * Makefile.in: Rebuilt.
2123 * configure.tgt: Add PA64 support (currently disabled).
2127 * emultempl/elf32.em (gld${EMULATION_NAME}_place_section): Delete.
2128 (output_rel_find): New function.
2129 (hold_section, hold_use): Delete.
2130 (hold_text, hold_rodata, hold_data, hold_bss, hold_rel,
2131 hold_interp): Make local to place_orphan.
2132 (gld${EMULATION_NAME}_place_orphan): Use lang_output_section_find
2133 rather than place_section to find possible previous use of orphan.
2134 Similarly find the place-holder output sections. Use returned
2135 value from lang_enter_output_section_statement rather than calling
2136 lang_output_section_statement_lookup.
2137 * emultempl/armelf.em: Same here.
2138 * emultempl/pe.em: Similar to above, but no need for output_rel_find.
2140 * ldlang.c (lang_enter_output_section_statement): Return output
2142 * ldlang.h (lang_enter_output_section_statement): Change
2145 * ldlang.h (lang_output_section_statement): Export it.
2146 * ldlang.c (lang_output_section_statement): Ditto.
2150 * ld.texinfo (Output Section Data): Add note that section data
2151 commands cannot appear outside of section directives.
2155 * configure.tgt: Add NetBSD/sparc ELF, and NetBSD/sparc64 support.
2160 * Makefile.am (ALL_64_EMULATIONS): Add eelf64_ia64.o.
2161 (eelf64_ia64.c): New rule.
2162 * Makefile.in: Rebuild.
2163 * configure.tgt (ia64-*-elf*, ia64-*-linux*): New targets.
2164 * emulparams/elf64_ia64.sh: New file.
2168 * scripttempl/elfd30v.sc: Place .gcc_except_table.
2172 * dep-in.sed: Match space at start of file name, not at end.
2176 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Call
2177 lang_leave_output_section_statement () after calling
2178 lang_enter_output_section_statement ().
2179 * emultempl/armelf.em: Likewise.
2183 * emultempl/elf32.em (struct orphan_save): Add section field.
2184 (gld${EMULATION_NAME}_place_orphan): Use above to keep sections in
2185 better order, and place first orphan section as we did before the
2186 2000-04-12 patch. Ignore ~SEC_ALLOC sections when choosing place.
2187 Don't call make_bfd_section here, let wild_doit do the job for us.
2188 Don't build a statement list when we'll only throw it away.
2189 * emultempl/armelf.em: Ditto.
2190 * emultempl/pe.em: Similarly.
2194 * scripttempl/elfppc.sc: Remove.
2195 * emulparams/elf32ppc.sh: Use elf.sc.
2196 * emulparams/elf32lppc.sh: Use elf.sc.
2197 * emulparams/elf32ppclinux.sh: Use elf.sc.
2198 * emulparams/elf32ppcsim.sh: New file.
2199 * emulparams/elf32lppcsim.sh: New file.
2200 * Makefile.am: Update dependencies. Add elf32ppcsim ad elf32lppcsim.
2201 (ALL_EMULATIONS): Add elf32ppcsim ad elf32lppcsim.
2202 * Makefile.in: Regenerate.
2203 * configure.tgt (powerpc-*): Add elf32ppcsim and elf32lppcsim.
2207 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Process
2208 ~SEC_ALLOC sections too. Init start address of debug sections.
2209 * emultempl/armelf.em (gld${EMULATION_NAME}_place_orphan): Ditto.
2210 * emultempl/pe.em (gld${EMULATION_NAME}_place_orphan): Ditto.
2211 Also set all relocateable section start addresses.
2215 * scripttempl/elf.sc: Add support for .sbss2 and .sdata2 sections.
2216 Add new BSS_PLT variable for when .plt need not be contained in
2217 the file. Move _etext so that it is also after .fini, and provide
2218 both etext and _etext with a leading underscore. Mark the start
2223 * emultempl/elf32.em (struct orphan_save): New.
2224 (hold_text, hold_rodata, hold_data, hold_bss, hold_rel,
2225 hold_interp): Make them struct orphan_save.
2226 (gld${EMULATION_NAME}_place_section): Modify for new hold_*.
2227 (gld${EMULATION_NAME}_place_orphan): Add new orphan sections to
2228 the end of the relevant section list. Also add associated section
2229 statements to the end of any previous orphan statements.
2230 * emultempl/armelf.em: Similarly.
2231 * emultempl/pe.em: Similarly.
2235 * ld.texinfo (Simple Example): Remove extraneous paragraph.
2239 * configure.in (WARN_CFLAGS): Set to -W -Wall by default. Add
2240 --enable-build-warnings option.
2241 * Makefile.am (AM_CFLAGS, WARN_CFLAGS): Add definitions.
2242 * Makefile.in, configure: Re-generate.
2246 * po/ld.pot: Regenerate.
2248 * lexsup.c (help): Restore translated part of bug string.
2250 * Makefile.am (MKDEP): Use gcc -MM rather than mkdep.
2251 (DEP): Quote when passing vars to sub-make. Add warning message
2253 (DEP1): Rewrite for "gcc -MM".
2254 (CLEANFILES): Add DEP2.
2255 Update dependencies.
2256 * Makefile.in: Regenerate.
2260 * ld.h: #include "bin-bugs.h"
2261 * lexsup.c (help): Use REPORT_BUGS_TO.
2265 * configure.tgt (avr-*-*): New target support.
2266 * Makefile.am: Likewise.
2267 * scripttempl/elf32avr.sc: New script file.
2268 * emulparams/avr1200.sh: New file.
2269 * emulparams/avr23xx.sh: New file.
2270 * emulparams/avr4433.sh New file.
2271 * emulparams/avr44x4.sh New file.
2272 * emulparams/avr85xx.sh New file.
2273 * emulparams/avrmega103.sh New file.
2274 * emulparams/avrmega161.sh New file.
2275 * emulparams/avrmega603.sh New file.
2276 * Makefile.in: Regenerate.
2280 * Makefile.am (check-DEJAGNU): Also unset LANG.
2281 * Makefile.in: Rebuild.
2285 * ldfile.c (ldfile_try_open_bfd): Don't crash if we see an empty
2290 * emulparams/elf32mcore.sh: Include "getopt.h".
2294 * configure.tgt: Remove *-*-aout, *-*-coff, and *-*-netware.
2298 * emulparams/mipspe.sh: Add SUBSYSTEM and INITIAL_SYMBOL_CHAR.
2299 * emulparams/shpe.sh: Likewise.
2303 * pe-dll.c: Remove unused variables and add ATTRIBUTE_UNUSED
2304 to unused parameters.
2306 * emultempl/pe.em: Add "#ifdef DLL_SUPPORT" around static
2307 functions only used by DLL code.
2308 (_place_orphan): Initialise 'dollar'.
2312 * ldmain.c (undefined_symbol): Take one more arg, fatal, to
2313 indicate if the undefined symbol is a fatal error or not.
2314 Don't delete the output file if "fatal" is false.
2318 * Makefile.am (check-DEJAGNU): Also pass LIBS="$(LIBS)".
2319 Set LC_COLLATE and LC_ALL to null and export them. It is for
2320 sort which expects the C locale.
2321 Add $(LIBS) to all $(HOSTING_LIBS).
2322 * Makefile.in: Rebuild.
2326 * emultempl/{aix.em, armcoff.em, armelf.em, armelf_oabi.em,
2327 beos.em, elf32.em, generic.em, gld960.em, gld960c.em, hppaelf.em,
2328 linux.em, lnk960.em, mipsecoff.em, sunos.em, vanilla.em}
2329 (ld_emulation_xfer_struct): Add missing NULL initialiser for
2330 find_potential_libraries.
2334 * ldgram.y (exclude_name_list): Don't require a comma to separate
2335 list entries; the lexer considers commas to be valid part of a
2336 filename, so in something like `foo, bar' the comma is considered
2337 part of the first filename, `foo,'.
2338 * ld.texinfo: Update section on EXCLUDE_FILE lists.
2342 * configure.host: Added HOSTING_CRT0, HOSTING_LIBS for
2343 host "i[3456]86-*-freebsdelf*".
2347 * scripttempl/i386go32.sc: Move misplaced semicolons.
2351 * Makefile.am (ALL_EMULATIONS): Remove ehppaelf.o.
2352 (ALL_64_EMULATIONS): Remove eelf64hppa.o.
2353 (eelf64hppa.c, ehppaelf.c): Remove targets.
2354 * Makefile.in: Rebuild.
2358 * configure.tgt (targ_extra_ofiles): Enable elf64_sparc on
2359 GNU/Linux/sparc, but keep the default as 32.
2361 * configure.tgt: Enable elf64_sparc on Solaris7+/sparc. And make
2362 it default if sparcv9 or sparc64.
2366 * Makefile.am: Add rules to build emipspe.o and earmpe.o.
2367 * Makefile.in: Regenerate.
2368 * configure.tgt: Add targets for arm-wince, sh-pe and mips-pe.
2370 * ldemul.h (ld_emulation_xfer_struct): Add new field:
2371 find_potential_libraries.
2372 * ldemul.c (ldemul_find_potential_libraries): New function.
2374 * ldfile.c (ldfile_open_file_search): Allow function to be
2376 (ldfile_open_file): Call ldemul_find_potential_libraries.
2377 * ldfile.h: Add prototype for ldfile_open_file_search.
2379 * pe-dll.c: Add support for ARM, MIPS and SH targets.
2381 * emulparams/mipspe.sh: New file. Parameters for mips-pe target.
2382 * emulparams/shpe.sh: New file. Parameters for sh-pe target.
2384 * emultempl/pe.em: Add support for ARM, MIPS and SH DLLs.
2385 (gld_X_find_potential_libraries): New function. Search for
2386 libraries called "*.lib".
2388 * scripttempl/pe.sc: Add .pdata section.
2392 * scripttempl/elfd10v.sc: Remove dynamic linking hooks.
2393 Add and use memory regions.
2397 * emulparams/elf32i370.sh, scripttempl/elfi370.sc: New.
2399 * Makefile.am: Add support for Linux/IBM 370.
2400 * configure.tgt: Likewise.
2402 * Makefile.in: Regenerate.
2406 * ldlang.c (print_input_section, print_data_statement,
2407 print_reloc_statement, print_padding_statement, insert_pad,
2408 size_input_section, lang_check_section_addresses,
2409 lang_size_sections, lang_do_assignments, lang_set_startof,
2410 lang_one_common): Change `opb' to unsigned.
2411 (lang_do_assignments): Also change `size' to unsigned.
2415 * scripttempl/elf.sc: Place OTHER_PLT_RELOC_SECTION.
2419 * mri.c (mri_draw_tree): Add default LMA region argument to call
2420 to lang_leave_output_section_statement.
2421 * ldlang.h: Update prototypes with LMA region arguments.
2422 * ldlang.c (lang_size_sections): Encapsulate region bounds
2423 checking in os_check_region call.
2424 (os_check_region): New function.
2425 (lang_output_section_statement_lookup): Initialize lma_region.
2426 (lang_leave_output_section_statement): Add LMA region argument.
2427 (lang_leave_overlay): Ditto.
2428 * ldgram.y: Handle LMA region syntax.
2429 * ld.texinfo (Output Section Description): Describe LMA region usage.
2430 * emultempl/armelf.em (gld$place_orphan): Add default value for
2431 lma region in call to lang_leave_output_section_statement.
2432 * emultempl/elf32.em (gld$place_orphan): Add default value for
2433 lma region in call to lang_leave_output_section_statement.
2434 * emultempl/pe.em (gld$place_orphan): Add default value for
2435 lma region in call to lang_leave_output_section_statement.
2440 * ldlang.c (lang_check_section_addresses): Use bytes instead of
2441 octets when calculating section end addresses.
2445 * ldlang.c (lang_size_sections): Fix typo in ALIGN_N invocation.
2449 * ldexp.c (fold_name): Make SIZEOF operator return byte count, not
2451 * ldlang.c (print_input_section, print_data_statement,
2452 print_reloc_statement, print_padding_statement): Print target
2453 address values and section sizes as bytes, not octets.
2454 (insert_pad) Calculate padding size in octets, and adjust "dot"
2456 (size_input_section) Always adjust "dot" by bytes, not octets.
2457 (lang_check_section_addresses, lang_do_assignments) Adjust
2458 "dot" by bytes, not octets. Use the larger of the directive size
2459 or octets_per_byte for the number of octets actually allocated in
2461 (lang_set_startof) Make sure STARTOF returns a target address.
2462 (lang_one_common) Record size changes in octets.
2463 (lang_abs_symbol_at_end_of) Section end symbol's value is
2464 recorded in target bytes.
2465 * ld.texinfo: Updated description of BYTE, SHORT, LONG, etc.
2466 to be clear about behavior when an octet is smaller than one byte.
2470 * ldcref.c (output_cref): Don't pass message strings to printf
2474 * ldmisc.c (vfinfo): Same here.
2479 * emultempl/{armcoff.em,armelf.em,armelf_oabi.em,beos.em,
2480 generic.em,gld960.em,gld960c.em,hppaelf.em,linux.em,lnk960.em,
2481 mipsecoff.em,sunos.em,vanilla.em} (ld_emulation_xfer_struct):
2482 Add missing NULL initialisers, and comments.
2484 * testsuite/ld-srec/sr3.cc (__rethrow): New.
2488 * ldlang.c (lang_size_sections): Fix typo in comment.
2492 * ldlang.c (lang_size_sections): Also update the current
2493 address of a region if the SEC_NEVER_LOAD bit is not set.
2497 * configure.tgt (arm*-*-conix*): New target.
2501 * ld.texinfo (Options): Remind users to preceed linker command
2502 line switches with -Wl, (or whatever is appropriate) if it is
2503 being invoked by a comnpiler driver program.
2504 Fix description of the behaviour of the -n command line switch.
2508 * ld.h (wildcard_spec): Change exclude_name to exclude_name_list.
2510 * ld.texinfo (EXCLUDE_FILE): Update documentation.
2511 * ldgram.y (wildcard_spec): Support a list of excluded_files.
2512 (exclude_name_list): New.
2513 ldlang.c (walk_wild_section): Support list of excluded files.
2514 (print_wild_statement): Likewise.
2515 (lang_add_wild): Likewise.
2516 * ldlang.h (lang_wild_statement_type): Likewise.
2517 * scripttempl/elf.sc (OTHER_EXCLUDE_FILES): Support.
2521 * pe-dll.c (pe_dll_warn_dup_exports): New variable.
2522 (process_def_file): Use.
2523 (pe_dll_compat_implib): New variable.
2526 * pe-dll.h: Add exports of pe_dll_warn_dup_exports and
2527 pe_dll_compat_implib.
2529 * emultempl/pe.em (longopts): Add warn-duplicate-exports and
2530 compat-implib options.
2531 (gld_${EMULATION_NAME}_list_options): List new options.
2532 (gld_${EMULATION_NAME}_parse_args): Handle.
2534 * pe-dll.c (pe_dll_generate_implib): Use the correct name for output
2537 * deffilep.y (opt_name): Allow "." in name.
2539 For older changes see ChangeLog-9899
2545 version-control: never