2005-11-04 Alan Modra * ldlang.c (struct output_statement_hash_entry): Don't indirect to os. (output_statement_newfunc): Rewrite. (lang_output_section_find_1): Merge into.. (lang_output_section_find): ..here. (lang_output_section_statement_lookup_1): Rewrite to handle multiple sections with the same name. (output_statement_table_init): Commonise error message. (lang_init, open_output): Likewise. 2005-11-03 Paul Brook * scripttempl/elf.sc: Add .init_array.* and .fini_array.*. * scripttempl/armbpabi.sc: Make init/fini array consistent with elf.sc. * scripttempl/elf32sh-symbian.sc: Ditto. * scripttempl/elfxtensa.sc: Ditto. 2005-11-03 Alan Modra * ldlang.h (lang_output_section_statement_type): Rearrange. Remove memspec. Make "processed" a bitfield. (lang_data_statement_type, lang_reloc_statement_type): Rename output_vma to output_offset. * ldlang.c (lang_output_section_statement_lookup_1): Init all_input_readonly. Don't init memspec. (init_os): Remove incorrect comment. (print_data_statement, print_reloc_statement): Adjust for lang_data_statement_type and lang_reloc_statement_type change. (lang_size_sections_1, lang_add_reloc): Likewise. * ldwrite.c (build_link_order): Likewise. 2005-10-30 Mark Mitchell * lexsup.c (help): Document "@FILE". 2005-10-30 H.J. Lu * Makefile.am: Run "make dep-am". * Makefile.in: Regenerated. * dep-in.sed: Replace " ./" with " ". 2005-10-25 Arnold Metselaar * Makefile.am: Add support for Z80 * Makefile.in: Regenerated * configure.tgt: Add z80-*-coff * emulparams/z80.sh: New file. * emultempl/z80.em: New file. * scripttempl/z80.sc New file. * NEWS: Mention this new support. 2005-10-25 Alan Modra * po/ld.pot: Regenerate. 2005-10-25 Chris Metcalf * ld.texinfo (--reduce-memory-overheads): Fix typo. 2005-10-23 H.J. Lu PR ld/1487 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Call bfd_match_sections_by_type to match section types. * ldlang.c (init_os): Take the input section. Call bfd_init_private_section_data if the input section isn't NULL. (exp_init_os): Pass NULL to init_os. (map_input_to_output_sections): Likewise. (lang_add_section): Pass the input section to init_os. 2005-10-19 Paul Brook * emulparams/armelf.sh: Add .ARM.attributes to OTHER_SECTIONS. 2005-10-15 H.J. Lu PR ld/1467 * emultempl/elf32.em: Include "elf-bfd.h". (gld${EMULATION_NAME}_place_orphan): Check section type and don't use section name for ELF input sections. * ld.texinfo: Document orphan section processing. * ldlang.c (lang_output_section_find_by_flags): Match section types by calling bfd_match_sections_by_type. 2005-10-13 Mark Mitchell * ld.texino: Describe double-quoted string syntax for version nodes. * ldlang.h (lang_new_vers_pattern): Add literal_p parameter. * ldgram.y (vers_defns): Allow NAME as well as VERS_IDENTIFIER. Adjust calls to lang_new_vers_pattern to pass literal_p argument. * ldlang.c (lang_vers_match): Fix indentation. Do not glob-match version nodes without a pattern. (lang_new_vers_pattern): Add literal_p parameter. (lang_do_version_exports_section): Pass it. 2005-10-12 Mark Mitchell * NEWS: Mention @file. 2005-10-05 H.J. Lu PR ld/1396 * ldcref.c (check_refs): Accept bfd_boolean. (check_local_sym_xref): Pass FALSE to check_refs. (check_nocrossref): Pass TRUE to check_refs. (check_refs_info): Add bfd_boolean. (check_refs): Add bfd_boolean to check_refs_info. (check_reloc_refs): Match relocations with proper symbols. * ldmisc.c (vfinfo): Don't add extra ":\n". 2005-10-05 Danny Smith * emultempl/pe.em (gld_${EMULATION_NAME}_before_parse): Set default entry symbol to ENTRY here. * scripttempl/pe.sc: Not here. 2005-09-30 James E Wilson * ldlang.c (lang_startup): Add missing ": " to einfo call. 2005-09-30 H.J. Lu * Makefile.am: Run "make dep-am". * Makefile.in: Regenerated. * aclocal.m4: Likewise. 2005-09-30 H.J. Lu * ldlang.c (output_statement_hash_entry): New type. (output_statement_table): New variable for hash table. (output_statement_newfunc): New function. (output_statement_table_init): Likewise. (output_statement_table_free): Likewise. (lang_init): Call output_statement_table_init. (lang_finish): Renamed to ... (lang_end): This. (lang_process): Updated. (lang_finish): New function. (lang_output_section_find_1): Use hash table. (lang_output_section_statement_lookup_1): Likewise. * ldlang.h (lang_finish): New. * ldmain.c (main): Call lang_finish. 2005-09-30 Mark Mitchell * ldmain.c (main): Use expandargv. 2005-09-30 Catherine Moore * Makefile.am: Bfin support. * Makefile.in: Regenerated. * aclocal.m4: Regenerated. * configure.tgt: Bfin support. * emulparams/bfin.sh: New file. * emultempl/bfin.em: New file. 2005-09-30 Matthias Kurz * ld.h: Prevent the inclusion of from the Solaris version of when ENABLE_NLS is not defined. 2005-09-27 H.J. Lu * ld.texinfo (ALIGN): Document it as forcing output section alignment. * ldgram.y (ALIGN): Support it for forcing output section alignment. 2005-09-20 Alan Modra * ldlang.h (lang_output_section_statement_struct): Change type of "processed" to bfd_boolean. * ldexp.c (fold_name): Update references to os->processed. * ldlang.c (lang_output_section_statement_lookup_1): Likewise. (lang_size_sections_1): Likewise. (lang_reset_memory_regions): Likewise. PR ld/1353 * ldlang.c (lang_size_sections_1): Process addr_tree earlier, so that unused output section statements affect dot. 2005-09-08 Jakub Jelinek * ld.texinfo: Document -z {no,}execstack, -z {no,}relro and --eh-frame-hdr options. 2005-09-07 Alan Modra * ldexp.c (fold_name ): Return 0 for non-existent section. (exp_fold_tree_1): Print assert message only in final stage of linking. Trigger assertion failure if expression cannot be evaluated. 2005-09-06 H.J. Lu PR ld/1263 * emultempl/elf32.em (gld${EMULATION_NAME}_load_symbols): Check --just-symbols on DSO. 2005-08-18 Alan Modra * scripttempl/elf.sc: Remove commented out defines. 2005-08-18 Alan Modra * emulparams/a29k.sh: Delete. * emulparams/ebmon29k.sh: Delete. * emulparams/sa29200.sh: Delete. * Makefile.am: Remove a29k support. * configure.tgt: Likewise. * ld.texinfo: Likewise. * Makefile.in: Regenerate. 2005-08-17 Jakub Jelinek * ldgram.y (vers_defns): Don't lose pattern list before extern NAME {}. Handle global, local and extern symbol names. 2005-08-17 Kaz Kojima * emultempl/sh64elf.em (sh64_elf_${EMULATION_NAME}_after_allocation): Don't increment rel_count of .cranges here. Set rawsize of .cranges. 2005-08-10 Nick Clifton * pe-dll.c (pe_exe_fill_sections): Call lang_reset_memory_regions before lang_size_sections. 2005-08-09 Alan Modra * emulparams/hppa64linux.sh (LARGE_SECTIONS): Remove .tbss. 2005-08-08 Eric Doenges * Makefile.am (ALL_EMULATIONS): Add msp430x21xx variants. Add rules to build these emulations. * Makefile.in: Regenerate. * configure.tgt (msp430): Add the new variants to the targ_extra_emuls list. * emulparams/msp430all.sh: Add entries for the msp430x21xx variants. 2005-08-05 H.J. Lu * ld.texinfo: Document PROVIDE_HIDDEN. * ldexp.c (exp_fold_tree_1): Hide a provided symbol if asked. (exp_provide): Add and set hidden. * ldexp.h (etree_type): Add hidden to assign. * ldgram.y (PROVIDE_HIDDEN): New. * ldlex.l (PROVIDE_HIDDEN): Likewise. * scripttempl/elf.sc: Use PROVIDE_HIDDEN on array bound symbols. 2005-08-05 Alan Modra * emulparams/elf_x86_64.sh: Revert last change. * scripttempl/elf.sc (REL_LARGE, LARGE_SECTIONS): Define here. 2005-08-05 Alan Modra * emulparams/armelf.sh (OTHER_BSS_END_SYMBOLS): Split out from OTHER_END_SYMBOLS. * emulparams/armelf_linux.sh: Likewise. * emulparams/armnto.sh: Likewise. * emulparams/criself.sh: Likewise. * emulparams/elf32mcore.sh: Likewise. * emulparams/criself.sh (OTHER_SYMBOLS): Define. * emulparams/crislinux.sh (OTHER_SYMBOLS): Define. (OTHER_END_SYMBOLS): Don't define. * emulparams/elf32fr30.sh: Likewise. * emulparams/elf64mmix.sh: Likewise. * emulparams/hppa64linux.sh: Likewise. * emulparams/m32relf.sh: Likewise. * emulparams/vxworks.sh: Likewise. * scripttempl/armbpabi.sc (OTHER_BSS_SECTIONS): Delete. (OTHER_BSS_END_SYMBOLS): Add. (OTHER_END_SYMBOLS): Move before current end sym definitions. (OTHER_SYMBOLS): Replace OTHER_END_SYMBOLS near end of script. * scripttempl/elf.sc: Likewise. * scripttempl/elf32sh-symbian.sc: Likewise. * scripttempl/elf_chaos.sc: Likewise. * scripttempl/elfxtensa.sc: Likewise. * scripttempl/iq2000.sc: Likewise. * scripttempl/xstormy16.sc: Likewise. * scripttempl/elf.sc (LBSS, LARGE_SECTIONS): Delete. (REL_LDATA, REL_LBSS, REL_LRODATA): Delete. (REL_LARGE, LARGE_SECTIONS): Add. * emulparams/elf_x86_64.sh (LARGE_SECTIONS): Define as script text. (REL_LARGE): Define. * emulparams/hppa64linux.sh (OTHER_BSS_SECTIONS): Don't define. (LARGE_SECTIONS): Define. * emulparams/hppa64linux.sh (OTHER_BSS_SECTIONS): Don't define. (LARGE_SECTIONS): Define. 2005-08-04 Alan Modra * ldemul.c (ldemul_do_assignments, do_assignments_default): Delete. * ldemul.h (ldemul_do_assignments, do_assignments_default): Delete. (struct ld_emulation_xfer_struct): Remove do_assignments field. * ldlang.c (lang_do_assignments): Don't call ldemul_do_assignments. * emulparams/elf32ppc.sh (SDATA_START_SYMBOLS): New. (SDATA2_START_SYMBOLS, SBSS_START_SYMBOLS, SBSS_END_SYMBOLS): New. * emultempl/aix.em (ld_*_emulation): Delete do_assignments init. * emultempl/armcoff.em: Likewise. * emultempl/beos.em: Likewise. * emultempl/generic.em: Likewise. * emultempl/gld960.em: Likewise. * emultempl/gld960c.em: Likewise. * emultempl/linux.em: Likewise. * emultempl/lnk960.em: Likewise. * emultempl/m68kcoff.em: Likewise. * emultempl/pe.em: Likewise. * emultempl/sunos.em: Likewise. * emultempl/ticoff.em: Likewise. * emultempl/vanilla.em: Likewise. * emultempl/elf32.em: Likewise. (gld*_provide_bound_symbols): Delete. (gld*_provide_init_fini_syms): Delete. (gld*_before_allocation): Don't call ldemul_do_assignments. * emultempl/ppc32elf.em (ppc_do_assignments): Delete. (LDEMUL_DO_ASSIGNMENTS): Delete. * scripttempl/elf.sc: Provide init/fini syms. Add SBSS_START_SYMBOLS, SBSS_END_SYMBOLS, SDATA2_START_SYMBOLS. 2005-08-04 Alan Modra * Makefile.am (eelf32m32c.c): Fix dependencies. * Makefile.in: Regenerate. 2005-08-04 Alan Modra * ldemul.c (ldemul_finish): Call ld_emulation->finish unconditionally. (finish_default): New function. * ldemul.h (finish_default): Declare. * emultempl/aix.em (gld*_before_allocation): Call before_allocation_default rather than strip_excluded_output_sections. (ld_*_emulation): Init finish field to finish_default. * emultempl/armcoff.em: Likewise. * emultempl/beos.em: Likewise. * emultempl/elf32.em: Likewise. * emultempl/generic.em: Likewise. * emultempl/gld960.em: Likewise. * emultempl/gld960c.em: Likewise. * emultempl/hppaelf.em: Likewise. * emultempl/linux.em: Likewise. * emultempl/lnk960.em: Likewise. * emultempl/m68kcoff.em: Likewise. * emultempl/mmo.em: Likewise. * emultempl/pe.em: Likewise. * emultempl/ppc64elf.em: Likewise. * emultempl/sunos.em: Likewise. * emultempl/ticoff.em: Likewise. * emultempl/vanilla.em: Likewise. 2005-08-03 Alan Modra * ldlang.c (exp_init_os): Handle etree_provide. * emulparams/armelf.sh (OTHER_END_SYMBOLS): Rename from.. (OTHER_BSS_END_SYMBOLS): ..this. * emulparams/armelf_linux.sh: Likewise. * emulparams/armnto.sh: Likewise. * emulparams/criself.sh: Likewise. * emulparams/crislinux.sh: Likewise. * emulparams/elf32frv.sh: Likewise. * emulparams/elf32mcore.sh: Likewise. * emulparams/elf32ppc.sh: Likewise. * emulparams/elf32ppclinux.sh: Likewise. * emulparams/hppa64linux.sh: Likewise. * scripttempl/armbpabi.sc: Substitute $OTHER_END_SYMBOLS, not $OTHER_BSS_END_SYMBOLS. * scripttempl/elf32sh-symbian.sc: Likewise. * scripttempl/elf_chaos.sc: Likewise. * scripttempl/iq2000.sc: Likewise. * scripttempl/xstormy16.sc: Likewise. * scripttempl/elf.sc: Likewise. Delete __bss_start comment. * scripttempl/elfxtensa.sc: Likewise. 2005-07-29 Nick Clifton * ldmain.c (main): Allow -shared and -static to be used together. * ld.texinfo (-static): Mention that it is allowed with -shared. 2005-07-28 DJ Delorie * ldlang.c (lang_output_section_statement_lookup_1): Don't cast a unary & address operator, as that breaks GCC's strict aliasing rules. 2005-07-25 Jan Hubicka H.J. Lu * emulparams/elf_x86_64.sh (LARGE_SECTIONS): New. * scripttempl/elf.sc: Updated for large section support. 2005-07-21 Ralf Corsepius * configure.tgt: Remove i[3-7]86-*-rtemself*. Remove sparc-*-rtemself*. 2005-07-21 Ben Elliston * ldgram.y (ldgram_want_filename): Remove unused static. 2005-07-20 DJ Delorie * emulparams/elf32m32c.sh (TEMPLATE_NAME): New. (EXTRA_EM_FILE): New. 2005-07-19 H.J. Lu * ldmain.c (main): Reindent. 2005-07-19 Paul Brook * configure.host (HOSTING_CRT0): Parse output of gcc --help --verbose to determine dynamic linker name. 2005-07-18 Nick Clifton * configure.tgt: Restore alpha ordering to list of arches. 2005-07-16 Alan Modra * emultempl/elf32.em (gld*_provide_init_fini_syms): Prototype. (gld*_before_allocation): Call ldemul_do_assignments rather than gld*_provide_init_fini_syms directly. * emultempl/ppc32elf.em (gld*_after_allocation): Delete. (ppc_do_assignments): New function. (LDEMUL_AFTER_ALLOCATION): Don't define. (LDEMUL_DO_ASSIGNMENTS): Define. 2005-07-16 Alan Modra * Makefile.am: Run "make dep-am". (emipsidt.c, emipsidtl.c): Depend on generic.em. * Makefile.in: Regenerate. 2005-07-15 Alan Modra * ldemul.c (ldemul_do_assignments): New function. (do_assignments_default): New function. * ldemul.h (ldemul_do_assignments): Declare. (do_assignments_default): Declare. (struct ld_emulation_xfer_struct): Add do_assignments. * ldlang.c (lang_do_assignments) Call ldemul_do_assignments. * emultempl/aix.em (ld_*_emulation): Init do_assignments field. * emultempl/armcoff.em: Likewise. * emultempl/beos.em: Likewise. * emultempl/generic.em: Likewise. * emultempl/gld960.em: Likewise. * emultempl/gld960c.em: Likewise. * emultempl/linux.em: Likewise. * emultempl/lnk960.em: Likewise. * emultempl/m68kcoff.em: Likewise. * emultempl/pe.em: Likewise. * emultempl/sunos.em: Likewise. * emultempl/ticoff.em: Likewise. * emultempl/vanilla.em: Likewise. * emultempl/elf32.em: Likewise, to call gld*_provide_init_fini_syms. (gld*_find_exp_assignment): Adjust bfd_elf_record_link_assignment call. 2005-07-14 Jim Blandy Add support for the Renesas M32C and M16C. * Makefile.am (ALL_EMULATIONS): Add eelf32m32c.o. (eelf32m32c.c): New target. * Makefile.in: Regenerated. * configure.tgt: Add case for m32c-*-elf. * emulparams/elf32m32c.sh: New file. 2005-07-14 Alan Modra * ldlang.c (strip_excluded_output_sections): Don't call bfd_gc_sections. * emultempl/elf32.em (gld*_provide_bound_symbols): Move. (gld*_provide_init_fini_syms): Move. (gld*_before_allocation): Call the above from here.. (gld*_finish): ..not here. Call _bfd_elf_fix_excluded_sec_syms. * emultempl/hppaelf.em (hppaelf_finish): Likewise. * emultempl/ppc64elf.em (ppc_finish): Likewise. 2005-07-10 Ralf Corsepius * configure.tgt: Remove sparc*-*-rtemsaout*, i[3-7]86-go32-rtems*, i[3-7]86-*-rtemscoff*, hppa*-*-rtems*, mips*el-*-rtems*, powerpcle-*-rtems*. 2005-07-09 Christopher Faylor * emultempl/pe.em (gld_${EMULATION_NAME}_before_parse): Enable runtime relocation by default. (compute_dll_image_base): Avoid linking into cygwin dll address space. 2005-07-08 Alan Modra * ldlang.c (wild_sort): Formatting. (strip_excluded_output_sections): Strip zero size sections here. * emultempl/elf32.em (gld*_strip_empty_sections): Delete. (gld*_finish): Don't call the above. * emultempl/hppaelf.em (hppaelf_finish): Likewise. * emultempl/ppc64elf.em (ppc_finish): Likewise. 2005-07-05 Paul Brook * Makefile.am (ALL_EMULATIONS): Add eelf32ppcvxworks.o. (eelf32ppcvxworks.o): Add dependencies. * Makefile.in: Regenerate. * configure.tgt: Add entry for powerpc-vxworks. * emulparams/elf32-ppc.c: Mention elf32ppcvxworks.sh in comment. * emulparams/elf32ppcvxworks.sh: New file. * emultempl/ppc32elf.em (bfd_elf32_powerpc_vxworks_vec): Declare. (is_ppc_elf32_vec): New function. (ppc_after_open, ppc_before_allocation, gld${EMULATION_NAME}_after_allocation): Use it. 2005-07-05 Peter S. Mazinger" * emulparams/elf32bmip.sh (GENERATE_PIE_SCRIPT): Define as "yes". * emulparams/elf32bmipn32-defs.sh (GENERATE_PIE_SCRIPT): Define as "yes". 2005-07-04 Mike Frysinger * emulparams/hppalinux.sh (GENERATE_PIE_SCRIPT): Fix typo in name. 2005-07-04 Kazuhiro Inaoka * emulparams/m32relf_linux.sh (GENERATE_PIE_SCRIPT): Set to yes. 2005-07-04 Aurelien Jarno * emultempl/elf32.em: Enable use of ld.so.conf for *-*-k*bsd-*. 2005-07-01 Alan Modra * scripttempl/elf.sc (.gcc_except_table): Don't KEEP. 2005-06-30 Ben Elliston * Makefile.am (check-DEJAGNU): Don't search for expect. * Makefile.in: Regenerate. 2005-06-30 Ben Elliston * Makefile.am (EXPECT): Set to expect. (RUNTEST): Likewise, set to runtest. * Makefile.in: Regenerate. 2005-06-16 Alexander Klimov * emultempl/armelf.em: Add quotes to avoid a null test expression. 2005-06-12 Daniel Jacobowitz * ld.texinfo (Command Line Options): Add @item for --hash-size. 2005-06-10 Alan Modra * scripttempt/elf.sc (.bss): Align tail in a way that allows empty section pruning. 2005-06-09 Steve Ellcey * configure.in (AM_BINUTILS_WARNINGS): Add. (BFD_NEED_DECLARATION) Replace with AC_CHECK_DECLS. * config.in: Regenerate. * configure: Regenerate. * sysdep.h (NEED_DECLARATION_*): Replace with HAVE_DECL_* * ldmain.c: Ditto. 2005-06-09 Alan Modra * ldexp.c (fold_unary ): Revert last change. 2005-06-09 Alan Modra * ld.h (lang_phase_type): Move to.. * ldexp.h: ..here. Add lang_mark_phase_enum. (node_type): Remove etree_undef and etree_unspec. (exp_data_seg): Delete. (struct ldexp_control, expld): New. (invalid, exp_mark_used_section): Delete. (exp_fold_tree, exp_get_vma, exp_get_value_int, exp_get_fill, exp_get_abs_int): Update prototypes. * ldexp.c (assigning_to_dot): Delete. (expld): Define. (make_abs): Operate directly on expld.result. Update all callers. (new_abs): Likewise. Return void. (new_rel_from_abs): Rename from new_rel_from_section. (new_rel, new_rel_from_abs): Operate on expld.result and return void. Update all callers. (fold_unary): Operate on expld.result and return void. Remove "current_section", "allocation_done", "dot", "dotp" and "mark_used" params. Update all callers. (fold_binary, fold_trinary, fold_name, exp_fold_tree_1): Likewise. (fold_unary ): Ensure alignment is absolute. (fold_unary ): Use make_abs. (fold_unary ): Evaluate mark_phase as for allocating_phase. (fold_binary ): Ditto. (fold_binary <'%','/'>): Don't error if marking. (fold_name ): Don't call bfd_sizeof_headers when marking. (fold_name ): Remove FIXME; -R is handled correctly. Don't error when marking. (fold_name ): Don't set SEC_KEEP. (exp_fold_tree_1): Don't error when marking. (exp_fold_tree_1 ): Evaluate in all phases except first. (exp_fold_tree_1 ): Don't check for NULL current section, instead check for NULL dotp. (exp_fold_tree_1 ): Don't evaluate the assignment source unless the symbol is referenced and undefined. (exp_fold_tree): Remove "allocation_done" and "dot" params. Save params to expld. (exp_fold_tree_no_dot): Remove "current_section", "allocation_done and "mark_used" params. Save params to expld. Update all callers. (exp_assop): Do without temp var. (exp_print_tree ): Delete code. (exp_get_vma): Remove "allocation_done" param. Correct error return. (exp_get_fill, exp_get_abs_int): Likewise. (exp_get_value_int): Remove "allocation_done" param. (exp_mark_used_section): Delete. * ldgram.y (fill_exp): Update exp_get_fill call. (origin_spec, length_spec): Update exp_get_vma call. * ldlang.c (lang_init): Don't bother clearing lang_statement_iteration. (lang_mark_used_section_1, lang_mark_used_section): Delete. (strip_excluded_output_sections): Call one_lang_size_sections_pass in marking mode. Merge old lang_mark_used_section code. Correct handling of output sections with excluded input sections and data statements. Don't drop non-zero sized sections. Don't zap os->bfd_section. Do set SEC_EXCLUDE when appropriate. (print_output_section_statement): Update for changed ldexp.c interface. (print_assignment, lang_size_sections_1): Likewise. (lang_do_assignments_1, lang_enter_output_section_statement): Likewise. (lang_new_phdr, lang_record_phdrs): Likewise. (lang_size_sections): Likewise. (insert_pad): Use following statement if it is a pad, rather than creating a new one. (lang_size_sections_1 ): Do process ignored output section to set vma and lma, but don't update dot for these sections. Don't error if marking. (lang_size_sections_1 ): Don't update dot for ignored sections. (lang_size_sections_1 ): Don't mark absolute section with SEC_ALLOC. (one_lang_size_sections_pass): New function. (lang_size_sections): Remove first five params. Set expld.phase on entry and exit. Use one_lang_size_sections_pass. (lang_do_assignments): Remove all params. Update all callers. (lang_reset_memory_regions): Clear os->processed for all output section statements. * ldlang.h (lang_do_assignments): Update prototype. (lang_size_sections): Likewise. (one_lang_size_sections_pass): Declare. * pe-dll.c (pe_dll_fill_sections, pe_exe_fill_sections): Update lang_size_sections and lang_do_assignments calls. * emultempl/elf32.em (layout_sections_again): Likewise. * emultempl/ppc64elf.em (ppc_before_allocation): Use one_lang_size_sections_pass. 2005-06-08 Aldy Hernandez * emulparams/elf32ms1.sh: New. 2005-06-07 Eric Christopher * Makefile.am (eelf32ms1.c): Use tab. * Makefile.in: Regenerate. 2005-06-07 Aldy Hernandez Michael Snyder Stan Cox * configure.tgt: Same. * Makefile.am (ALL_EMULATIONS): Depend on eelf32ms1.o. (eelf32ms1.c): Add eelf32ms1.c rule. * Makefile.in: Regenerate. 2005-06-06 Alan Modra * emultempl/ppc64elf.em (ppc_before_allocation): Always run ppc64_elf_edit_opd. 2005-06-05 H.J. Lu * ldexp.c (exp_mark_used_section): Set SEC_KEEP on current section only if the symbol will be defined. 2005-06-04 H.J. Lu PR 992 * ldexp.c (exp_mark_used_section): Set SEC_KEEP on current section for etree_assign, etree_provide and etree_provided. Call fold_binary on etree_binary. * ldlang.c (lang_mark_used_section_1): Handle load base. 2005-06-03 Alan Modra * ldmain.c (link_callbacks): Add einfo. (add_archive_element): Use passed info, not link_info. (constructor_callback): Likewise. (reloc_overflow): Don't handle null bfd specially. (reloc_dangerous, unattached_reloc): Likewise. * ldmisc.c (vfinfo ): Print "ld generated" for null bfd. (vfinfo ): Handle null bfd. Wrap comments. 2005-06-02 Alan Modra * ldexp.h (etree_value_type): Use "asection *" in place of "struct lang_output_section_statement_struct *" for "section". (exp_fold_tree): Likewise. (exp_mark_used_section): Likewise. * ldexp.c (new_rel, new_rel_from_section, fold_unary, fold_binary, fold_trinary, fold_name, exp_fold_tree_1, exp_fold_tree, exp_mark_used_section): Likewise for "current_section" param. (make_abs, new_abs, exp_binop, exp_unop, exp_get_vma, exp_get_fill, exp_get_abs_int): Adjust for above changes. * ldlang.c (lang_mark_used_section_1, print_assignment, lang_size_sections_1, lang_do_assignments_1): Likewise. * ldexp.c (fold_name): Init entire result struct. 2005-06-01 Maciej W. Rozycki * emulparams/elf32btsmip.sh: Unset DATA_ADDR. 2005-05-31 Zack Weinberg * ldlang.c (entry_symbol_default): New file-scope global. (lang_finish): Use it, not a hardwired "start". (lang_default_entry): Set it. * ldlang.h: Declare lang_default_entry. * emultempl/beos.em, emultempl/pe.em: Use lang_default_entry, not lang_add_entry, to override default entry point symbol. 2005-05-29 Richard Henderson * emulparams/elf64alpha.sh (PLT): New. (TEXT_PLT): New. * emultempl/alphaelf.em (disable_relaxation): New. (limit_32bit): Rename from elf64alpha_32bit; update all users. (elf64_alpha_use_secureplt): Declare. (bfd_elf64_alpha_vec, bfd_elf64_alpha_freebsd_vec): Declare. (alpha_after_open): New. (alpha_before_allocation): New. (OPTION_NO_RELAX, OPTION_SECUREPLT, OPTION_NO_SECUREPLT): New. (PARSE_AND_LIST_LONGOPTS): Include them. (PARSE_AND_LIST_OPTIONS): Likewise. (PARSE_AND_LIST_ARGS_CASES): Likewise. (LDEMUL_AFTER_OPEN, LDEMUL_BEFORE_ALLOCATION): New. * scripttempl/elf.sc (TEXT_PLT): New. (PLT): Use it. 2005-05-27 Andreas Schwab * configure.host (HOSTING_LIBS): Add libunwind.a if it exists. 2005-05-24 Alan Modra * emultempl/ppc32elf.em (after_allocation): Don't call ppc_elf_set_sdata_syms when relocatable. 2005-05-21 H.J. Lu * Makefile.am (ld.1): Revert the last 2 changes. (info-recursive): Depend on ld.1. * Makefile.in: Regenerated. 2005-05-21 H.J. Lu * Makefile.am (ld.1): Depend on "info" instead of "configdoc.texi ldver.texi". * Makefile.in: Regenerated. 2005-05-21 H.J. Lu * Makefile.am (ld.1): Depend on "info". * Makefile.in: Regenerated. 2005-05-19 Zack Weinberg * Makefile.am: Have 'all' depend on 'info' and 'ld.1'. * Makefile.in: Regenerate. 2005-05-17 Zack Weinberg * ld-arm/mixed-app.d: Adjust expected disassembly a little. 2005-05-17 Daniel Jacobowitz * Makefile.am (ldver.texi): Don't use $<. * Makefile.in: Regenerated. 2005-05-17 Daniel Jacobowitz * Makefile.am (AM_MAKEINFOFLAGS, TEXI2DVI): Explicitly include $(srcdir) before $(BFDDIR)/doc. * Makefile.in: Regenerated. 2005-05-17 H.J. Lu PR 797 * ldexp.c (exp_fold_tree_1): Renamed from exp_fold_tree and take take a bfd_boolean, mark_used. Ignore assert failure if mark_used is TRUE. (exp_fold_tree) Call exp_fold_tree_1 with mark_used == FALSE. (exp_fold_tree_no_dot): Updated to take a bfd_boolean, mark_used and pass down. (fold_unary): Likewise. (fold_binary): Likewise. (fold_trinary): Likewise. (exp_binop): Add FALSE to call to exp_fold_tree_no_dot. (exp_trinop): Likewise. (exp_unop): Likewise. (exp_nameop): Likewise. (exp_get_vma): Likewise. (exp_get_fill): Likewise. (exp_get_abs_int): Likewise. (fold_name): Likewise. Set SEC_KEEP in output section flags. (exp_mark_used_section): New. * ldexp.h (exp_mark_used_section): New. * ldlang.c (lang_output_section_statement_lookup_1): Set the ignored field to FALSE. (lang_mark_used_section_1): New. (lang_mark_used_section): Call lang_mark_used_section_1. (strip_excluded_output_sections): Call lang_mark_used_section and check for unused sections. (lang_size_sections_1): Skip an output section if it should be ignored. (lang_do_assignments_1): Likewise. (lang_process): Don't call lang_mark_used_section here. * ldlang.h (lang_output_section_statement_type): Change all_input_readonly to bitfield. Add ignored. 2005-05-17 Lennert Buytenhek Peter S. Mazinger" * emulparams/armelf_linux.sh (GENERATE_PIE_SCRIPT): Define as "yes". * emulparams/hppalinux.sh (GENERATE_PIE_SCRIPT): Define as "yes". 2005-05-17 Julian Brown * ldlang.c (print_assignment): Do not rely upon a valid result having a section associated with it. 2005-05-17 Nick Clifton * ldlang.c (Scan_for_self_assignment): Check an assignment tree to see if the same value is being used on the rhs as on the lhs. (print_assignment): Call scan_for_self_assignment and if it returns true, do no display the result of the computation but instead just the final value of the symbol on the lhs. * ld.texinfo: Document this behaviour and provide an example of when it will happen. 2005-05-15 Daniel Jacobowitz * Makefile.am (AM_MAKEINFOFLAGS): Define. (TEXI2DVI): Define. (ldver.texi): Depend on distributed files instead of built files. (ld.info): Include $(srcdir) in the rule target. Remove actions. (ld.dvi): Remove actions. (MAINTAINERCLEANFILES): Add configdoc.texi. (CONFIG_STATUS_DEPENDENCIES): Add bfd/configure.in. (install-data-local): Renamed from install. (Makefile): Remove explicit dependency. * acinclude.m4: Remove obsolete code. * configure.in: Update AC_PREREQ. Remove extra $CONFIG_SHELL. * Makefile.in, aclocal.m4, config.in, configure: Regenerated. 2005-05-11 Bob Wilson * scripttempl/elfxtensa.sc: Sync up with elf.sc. * emulparams/elf32xtensa.sh (PLT, GOT): Define. 2005-05-11 Alan Modra * ldgram.y: Add SPECIAL token. (sect_constraint): Handle SPECIAL. * ldlang.c (lang_output_section_find_1): Don't match SPECIAL. (map_input_to_output_sections): Likewise. * ldlex.l (SPECIAL): Define. * emulparams/elf32ppc.sh (DATA_GOT, SDATA_GOT, SEPARATE_GOTPLT, GOT, PLT, GOTPLT): Define. * emultempl/ppc32elf.em (old_plt, old_got): New static vars. (ppc_after_open): New function. (PARSE_AND_LIST_PROLOGUE): Define OPTION_OLD_LPT and OPTION_OLD_GOT. (PARSE_AND_LIST_LONGOPTS): Add "bss-plt" and "sdata-got". (PARSE_AND_LIST_OPTIONS): Document them. (PARSE_AND_LIST_ARGS_CASES): Handle them. (LDEMUL_AFTER_OPEN): Define. * scripttempl/elf.sc (PLT): Don't override existing define. (DATA_GOT, SDATA_GOT): Define and use to enable alternate got placement rather than using NO_SMALL_DATA. Emit GOTPLT for RELRO_NOW. 2005-05-10 Alan Modra * scripttempl/elf.sc (DATA_SEGMENT_RELRO_GOTPLT_END): Delete. (DATA_SEGMENT_RELRO_END): Use SEPARATE_GOTPLT value. (GOTPLT): Remove DATA_SEGMENT_RELRO_GOTPLT_END. Place after DATA_SEGMENT_RELRO_END in script. 2005-05-09 H.J. Lu * emultempl/elf32.em (gld${EMULATION_NAME}_provide_bound_symbols): Don't use a removed section. 2005-05-09 H.J. Lu * ldmain.c (reloc_overflow): Use output_bfd if the symbol is defined in the ABS section. 2005-05-06 H.J. Lu * emultempl/elf32.em (gld${EMULATION_NAME}_provide_init_fini_syms): Put back !link_info.relocatable. 2005-05-06 H.J. Lu PR 878 * emultempl/elf32.em (gld${EMULATION_NAME}_provide_init_fini_syms): Just check link_info.executable. 2005-05-06 Nick Clifton * Update the address and phone number of the FSF organization in the GPL notices in the following files: aclocal.m4, deffile.h, deffilep.y, fdl.texi, ld.h, ldcref.c, ldctor.c, ldctor.h, ldemul.c, ldexp.c, ldexp.h, ldfile.c, ldfile.h, 20ldgram.y, ldint.texinfo, ldlang.c, ldlang.h, ldlex.h, ldlex.l, ldmain.c, ldmain.h, ldmisc.c, ldmisc.h, ldver.c, ldver.h, ldwrite.c, ldwrite.h, lexsup.c, mri.c, mri.h, pe-dll.c, pe-dll.h, sysdep.h, emultempl/aix.em, emultempl/alphaelf.em, emultempl/armcoff.em, emultempl/armelf.em, emultempl/beos.em, emultempl/crxelf.em, emultempl/elf32.em, emultempl/generic.em, emultempl/gld960.em, emultempl/gld960c.em, emultempl/hppaelf.em, emultempl/ia64elf.em, emultempl/irix.em, emultempl/linux.em, emultempl/lnk960.em, emultempl/m68hc1xelf.em, emultempl/m68kcoff.em, emultempl/m68kelf.em, emultempl/mipsecoff.em, emultempl/mmix-elfnmmo.em, emultempl/mmixelf.em, emultempl/mmo.em, emultempl/needrelax.em, emultempl/pe.em, emultempl/ppc32elf.em, emultempl/ppc64elf.em, emultempl/sh64elf.em, emultempl/sunos.em, emultempl/ticoff.em, emultempl/vanilla.em, emultempl/xtensaelf.em 2005-05-05 H.J. Lu * scripttempl/elf.sc: Document the usage of __bss_start. 2005-05-05 Paul Brook * Makefile.am: Add eelf_i386_vxworks. * Makefile.in: Regenerate. * configure.tgt: Make i?86-*-vxworks use targ_emul=elf_i386_vxworks. * emulparams/elf_i386_vxworks.sh: New file. * emulparams/vxworks.sh: New file. * scripttempl/elf.sc: Add DATA_END_SYMBOLS and ETEXT_NAME. 2005-05-04 H.J. Lu * emultempl/elf32.em (gld${EMULATION_NAME}_provide_bound_symbols): Call _bfd_elf_provide_section_bound_symbols. 2005-05-04 Alan Modra * ldemul.c: Include bfdlink.h. (ldemul_before_allocation): Assume before_allocation is non-zero. (before_allocation_default): Call strip_excluded_output_sections. * ldlang.c (stripped_excluded_sections): New variable. (lang_add_section): Build input section list for each output section, attached via map_head and map_tail pointers. (strip_excluded_output_sections): Make global. Traverse the input section lists to find which output sections can go. Clear link_order pointers and set stripped_excluded_sections. (lang_process): Call strip_excluded_output_sections. * ldlang.h (strip_excluded_output_sections): Declare. * ldwrite.c: Update throuhout for link_order_head -> map_head change. * emultempl/aix.em (before_allocation): Call strip_excluded_output_sections. * emultempl/armcoff.em (before_allocation): Likewise. * emultempl/beos.em (before_allocation): Likewise. * emultempl/linux.em (before_allocation): Likewise. * emultempl/pe.em (before_allocation): Likewise. * emultempl/sunos.em (before_allocation): Likewise. * emultempl/elf32.em (before_allocation): Likewise. Call bfd_elf_size_dynsym_hash_dynstr too. * emultempl/lnk960.em (lnk960_before_allocation): Delete. (ld_lnk960): Use before_allocation_default. 2005-05-02 H.J. Lu * emultempl/elf32.em (gld${EMULATION_NAME}_strip_empty_section): Updated for bfd_section_list_remove change. * ldlang.c (lang_insert_orphan): Likewise. (strip_excluded_output_sections): Likewise. (sort_sections_by_lma): New. (lang_check_section_addresses): Sort the sections before checking addresses. 2005-04-29 Ralf Corsepius * configure.tgt: Add h8300*-*-rtemscoff. Switch h8300*-*-rtems* to elf. 2005-04-29 Ben Elliston * ldgram.y (lang_memory_region_type): Make static. (ldgram_want_filename): Likewise. * ldemul.c (ld_emulation): Make static. * ldfile.h (ldfile_find_command_file): Remove extern. * ldfile.c (ldfile_find_command_file): Make static. * ldlang.h (unique_section_list): Remove extern declaration. * ldlang.c (unique_section_list): Make static. * mri.h (symbol_truncate): Remove extern declaration. * mri.c (symbol_truncate): Make static. (order, only_load, address, alias): Likewise. (alignment, subalignment): Likewise. 2005-04-27 H.J. Lu * emultempl/elf32.em (gld${EMULATION_NAME}_provide_bound_symbols): Use the first SEC_ALLOC section which isn't SEC_READONLY or the last SEC_ALLOC section if such a section doesn't exist. 2005-04-24 Mark Kettenis * configure.host: Add *-*-openbsd support. 2005-04-15 Julian Brown * ld.texinfo: Document --use-blx. * emultempl/armelf.em (use_blx): New variable. (arm_elf_create_output_section_statements): Communicate value of use_blx to bfd. (PARSE_AND_LIST_PROLOGUE): Add OPTION_USE_BLX. (PARSE_AND_LIST_OPTIONS): Add --use-blx option. (PARSE_AND_LIST_ARGS_CASES): Add OPTION_USE_BLX case. 2005-04-14 Alan Modra * Makefile.am (NO_WERROR): Define. Use instead of -Wno-error. * configure.in: Include ../bfd/warning.m4 contents. * Makefile.in: Regenerate. * configure: Regenerate. 2005-04-12 Alan Modra * Makefile.am: Run "make dep-am". (ldgram.o, ldlex.o, deffilep.o): Add -Wno-error to command. * Makefile.in: Regenerate. * config.in: Regenerate. 2005-04-11 Alan Modra * emultempl/elf32.em (gld${EMULATION_NAME}_stat_needed): Ignore as_needed libs that were not needed. (gld${EMULATION_NAME}_check_needed): Likewise. 2005-04-07 Nick Clifton * emultempl/m68kcoff.em: Include ldexp.h and ldlang.h so that ldfile.h can use the lang_input_statement type. 2005-04-06 Jakub Jelinek * ldlang.c: Formatting. (walk_wild_consider_section): Remember return value from wildcardp. (is_simple_wild): Use strcspn instead of 2 strpbrk calls and strlen. (wild_spec_can_overlap): Use strcspn instead of strpbrk and strlen. 2005-04-06 Robert O'Callahan * ld.h (lean_section_userdata_type): Remove. (fat_section_userdata_type): Remove file field. (SECTION_USERDATA_SIZE): Remove. * ldlang.c (init_os): Eliminate initialization of unused lean_section_userdata_type. * ldlang.h (callback_t, walk_wild_section_handler_t): New typedefs. (struct lang_wild_statement_struct): Add walk_wild_section_handler and handler_data fields. * ldlang.c (callback_t): Removed. (walk_wild_consider_section, walk_wild_section_general, section_iterator_callback, find_section, is_simple_wild, match_simple_wild, walk_wild_section_specs1_wild0, walk_wild_section_specs1_wild1, walk_wild_section_specs2_wild1, walk_wild_section_specs3_wild2, walk_wild_section_specs4_wild2, wild_spec_can_overlap, analyze_walk_wild_section_handler): New functions. (lang_add_wild): Call analyze_walk_wild_section_handler. (walk_wild_section): Renamed to walk_wild_section_general and created a wrapper function. (section_iterator_callback_data): New typedef. 2005-04-04 Nick Clifton * configure.in: Add a check for providing a prototype for getopt() which is compatible with the one in include/getopt.h. If so then define HAVE_DECL_GETOPT. * configure: Regenerate. * config.in (HAVE_DECL_GETOPT): Add. * ldemul.c: Include config.h * lexsup.c: Likewise. * emultempl/elf32.sc: Likewise. 2005-03-29 Alan Modra * emultempl/elf32.em (gld${EMULATION_NAME}_layout_sections_again): New function, extracted from static void gld${EMULATION_NAME}_finish. (gld${EMULATION_NAME}_strip_empty_sections): Likewise. (gld${EMULATION_NAME}_provide_init_fini_syms): Likewise. * emultempl/ppc64elf.em: Revert last change. (ppc_layout_sections_again): Use gld${EMULATION_NAME}_layout_sections_again. (ppc_finish): Don't call gld${EMULATION_NAME}_finish. Instead call gld${EMULATION_NAME}_strip_empty_sections and gld${EMULATION_NAME}_provide_init_fini_syms. * emultempl/hppaelf.em: Similarly. 2005-03-29 Alan Modra * emultempl/ppc64elf.em (need_laying_out): Delete. Remove all refs. (ppc_finish): Don't call bfd_elf_discard_info. * emultempl/hppaelf.em: Similarly. 2005-03-24 Nick Clifton * po/fr.po: Updated French translation. 2005-03-23 Mike Frysinger Nick Clifton * configure.host: Accept any C library to accompany a GNU Linux implementation, not just the GNU C library. * configure.tgt: Likewise. * emultempl/elf32.em: Likewise. 2005-03-22 H.J. Lu * emultempl/elf32.em (gld${EMULATION_NAME}_provide_bound_symbols): New (gld${EMULATION_NAME}_finish): Call gld${EMULATION_NAME}_provide_bound_symbols to provide __preinit_array_start, __preinit_array_end, __init_array_start, __init_array_end, __fini_array_start and __fini_array_end. * scripttempl/elf.sc: Don't provide __preinit_array_start, __preinit_array_end, __init_array_start, __init_array_end, __fini_array_start nor __fini_array_end. 2005-03-23 Alan Modra * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Set SEC_EXCLUDE on .gnu.warning sections. 2005-03-22 Alan Modra * scripttempl/elf.sc (SBSS): Don't provide sbss start and end syms. 2005-03-21 Alan Modra * emultempl/ppc32elf.em (gld${EMULATION_NAME}_after_allocation): New function. (LDEMUL_AFTER_ALLOCATION): Define. 2005-03-21 Alan Modra * emultempl/ppc64elf.em (ppc_finish): Rename from gld${EMULATION_NAME}_finish. Call gld${EMULATION_NAME}_finish. (LDEMUL_FINISH): Update. * emultempl/hppaelf.em (hppaelf_finish, LDEMUL_FINISH): Likewise. * emultempl/m68hc1xelf.em (m68hc11elf_finish, LDEMUL_FINISH): Likewise. 2005-03-18 Julian Brown * scripttempl/armbpapi.sc (.rel.dyn): Add .rel.init_array, .rel.fini_array. (.rela.dyn): Add .rela.init_array, .rela.fini_array. (SECTIONS): Add .rel.other, .rela.other, .reli.other after PLT relocs. 2005-03-18 H.J. Lu * emultempl/elf32.em (gld${EMULATION_NAME}_finish): Don't set bfd_section when removing unused empty output sections for non-relocatable link. 2005-03-19 Alan Modra * ldlang.c (lang_insert_orphan): Use old section_tail rather than traversing the bfd section list to find pointer to new section. 2005-03-18 Alan Modra * scripttempl/elf.sc: When CREATE_SHLIB, put .sdata2 and .sbss2 input sections into .sdata and .sbss output respectively. 2005-03-16 David Heine Bob Wilson * ldlang.c (IGNORE_SECTION): Remove check for zero size. (lang_check_section_addresses): Ignore zero size sections here. 2005-03-16 H.J. Lu * emultempl/elf32.em (gld${EMULATION_NAME}_finish): Remove unused empty output sections for non-relocatable link. * ld.h (args_type): Remove gc_sections. * ldlang.c (lang_mark_used_section): New. (lang_gc_sections): Use link_info.gc_sections instead of command_line.gc_sections. * ldmain.c (main): Likewise. * lexsup.c (parse_args): Likewise. * ldlang.c (lang_process): Call lang_mark_used_section. * ldmain.c (main): Initialize link_info.gc_sections to FALSE. 2005-03-16 Nick Clifton Ben Elliston * configure.in (werror): New switch: Add -Werror to the compiler command line. Enabled by default. Disable via --disable-werror. * configure: Regenerate. 2005-03-16 Alan Modra * emulparams/elf32ppclinux.sh (OTHER_READWRITE_SECTION): Delete. (OTHER_RELRO_SECTIONS): Set this instead. 2005-03-15 Nick Clifton * NEWS: Add cutoff for changes in 2.16 release. 2005-03-15 Mikkel Krautz * configure.tgt (x86_64-elf): Add target. 2005-03-15 Alan Modra * po/es.po: Commit new Spanish translation. 2005-03-14 Alan Modra * ldexp.c (exp_fold_tree): Ensure return value is initialized. Tidy etree_assert case. 2005-03-14 Alan Modra * po/tr.po: Commit new Turkish translation. 2005-03-11 Daniel Jacobowitz * Makefile.am: Remove references to em68klynx.o and esparclynx.o. * Makefile.in: Regenerated. * emulparams/m68klynx.sh, emulparams/sparclynx.sh: Remove. 2005-03-07 Nick Clifton * po/fr.po: Updated translation. 2005-03-05 Alan Modra * po/ld.pot: Regenerate. 2005-03-02 Jan Beulich * ldmain.c (remove_output): Use unlink_if_ordinary instead of unlink. * pe-dll.c (pe_dll_generate_implib): Likewise. 2005-02-24 Ben Elliston * ldfile.c: Remove GNU960 conditional code. * emultempl/gld960.em: Likewise. * emultempl/gld960c.em: Likewise. * emultempl/lnk960.em: Likewise. 2005-02-24 Nick Clifton * emultempl/lnk960.em (lnk960_before_parse): Remove redundant empty string from calls to concat. 2005-02-23 Nick Clifton * emultempl/lnk960.em (lnk960_before_parse): Terminate list of arguments passed to concat() with a NULL. * emultempl/m68kcoff.em: Include ldexp.h and ldlang.h because they define types needed by ldfile.h 2005-02-23 Alan Modra * pe-dll.c: Warning fixes. * emultempl/sunos.em: Likewise. 2005-02-22 Daniel Jacobowitz * ldlang.c (section_already_linked): Don't call bfd_section_already_linked for dynamic objects. 2005-02-22 Alan Modra * ldexp.c: Warning fixes. * ldwrite.c: Likewise. * emultempl/elf32.em: Likewise. 2005-02-21 H.J. Lu * ldlang.c (lang_add_section): Check SEC_TIC54X_BLOCK for TI tic54x input only. (lang_size_sections_1): Check SEC_COFF_SHARED_LIBRARY for COFF and ECOFF output only. 2005-02-21 Alan Modra * config.in: Regenerate. * configure: Regenerate. 2005-02-17 Zack Weinberg * ldexp.c (assigning_to_dot): New global flag. (fold_name): If assigning_to_dot is true, object immediately to an undefined symbol. (exp_fold_tree): Set and clear assigning_to_dot around the recursive call to exp_fold_tree to process the right-hand side of an assignment to the location counter. 2005-02-17 Paul Brook * scripttempl/armbpabi.sc: Add dummy name to version block. 2005-02-17 Alan Modra * ldexp.c (new_abs): Init new.str. 2005-02-15 Mark Mitchell * configure.in (AC_CHECK_FUNCS): Add glob. * configure: Regenerated. * emultempl/elf32.em (): Do not include if HAVE_GLOB is not defined. (gld${EMULATION_NAME}_parse_ld_so_conf_include): Do not use glob if HAVE_GLOB is not defined. 2005-02-16 Kaz Kojima * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Define lib_path if NATIVE is yes. 2005-02-16 Alan Modra * emultempl/ppc64elf.em (ppc_create_output_section_statements): Make an error creating fake bfd fatal. (ppc_before_allocation): Continue on after errors. (gld${EMULATION_NAME}_finish): Likewise. 2005-02-15 Nick Clifton * ldlex.l (YY_NO_UNPUT): Define so that the yy_unput function is not declared. It is not used and its presence causes a compile time warning. 2005-02-11 Zack Weinberg * emultempl/elf32.em (gld${EMULATION_NAME}_stat_needed): If st.st_ino is zero, do not treat the library as a duplicate. 2005-02-10 Jakub Jelinek * emultempl/hppaelf.em (hppaelf_create_output_section_statements): Set BFD_LINKER_CREATED on the stubs bfd. * emultempl/ppc64elf.em (ppc_create_output_section_statements): Likewise. 2005-02-08 Mark Mitchell * scripttempl/armbpabi.sc (VERSION): Make special section symbols local. (Image$$ER_RO$$Base): Define whenever RELOCATING. (Image$$ER_RO$$Limit): Likewise. (SHT$$INIT_ARRAY$$Base): Likewise. (SHT$$INIT_ARRAY$$Limit): Likeise. 2005-02-10 Ben Elliston * emultempl/beos.em: Remove #if 0 and #if 1 blocks. 2005-02-08 Richard Sandiford * configure.tgt (mips64*el-*-linux-gnu*): Define targ_extra_libpath to include o32 and n64 emulations. (mips64*-*-linux-gnu*): Likewise. 2005-02-08 Hans-Peter Nilsson * ldmain.c (warning_callback, warning_find_reloc): Prepend "warning: " to warning messages. 2005-02-04 Alan Modra * emultempl/elf32.em (gld${EMULATION_NAME}_find_exp_assignment): Don't look up symbol for etree_provide here. 2005-02-02 Daniel Jacobowitz * emulparams/elf32bmip.sh (TEXT_DYNAMIC): Always set. 2005-02-01 Edward Welbourne Nick Clifton * ld.texinfo (Source Code Reference): New node describing how to access linker script defined variables from source code. 2005-02-01 Alan Modra * ld.texinfo: Clarify --as-needed operation. 2005-01-31 Andrew Cagney * configure: Regenerate to track ../gettext.m4. 2005-01-31 Nick Clifton * ldver.c (ldversion): Bump reported copyright date to 2005. 2005-01-31 Nick Clifton * configure.tgt: Remove obsolete targets m68k-lynxos and sparc-lynxos. 2005-01-28 Julian Brown * emultempl/armelf.em (fix_v4bx): New variable. (arm_elf_create_output_section_statements): Communicate fix_v4bx flag value to bfd. (PARSE_AND_LIST_PROLOGUE): Add option token OPTION_FIX_V4BX. (PARSE_AND_LIST_LONGOPTS): Add option --fix-v4bx. (PARSE_AND_LIST_OPTIONS): Add option --fix-v4bx. (PARSE_AND_LIST_ARGS_CASES): Add option OPTION_FIX_V4BX. * NEWS: Mention --fix-v4bx. * ld.texinfo: Document --fix-v4bx. 2005-01-25 Mark Mitchell * emulparams/armsymbian.sh (OTHER_READONLY_SECTIONS): Define, so as to include .ARM.exidx$${Base,Limit}. * ld/scripttempl/armbpabi.sc: Move .plt to end of text segment. Define IMAGE$$ER_RO$${Base,Limit} and SHT$$INIT_ARRAY$${Base,Limit}. Put .init_array, .fini_array, etc. into the read-only data segment. 2005-01-25 Alan Modra * emultempl/elf32.em (gld${EMULATION_NAME}_try_needed): Formatting. (gld${EMULATION_NAME}_after_open): Ignore needed libs if they were only needed by an as-needed lib that didn't get linked. 2005-01-23 Alan Modra * ld.texinfo (Output Section Keywords ): Correct __DTOR_LIST__ description. 2005-01-23 Alan Modra * ld.texinfo (Location Counter ): Document effects of orphan section placement, and ". = ." workaround. * Makefile.in: Regenerate. 2005-01-22 Richard Sandiford * emulparams/elf32bmip.sh (OTHER_GOT_SECTIONS): Add ". = .;". * emulparams/elf32bmipn32-defs.sh (OTHER_GOT_SECTIONS): Likewise. 2005-01-21 Jakub Jelinek * ldgram.y (AS_NEEDED): New token. (input_list): Handle AS_NEEDED ( input_list ). * ldlex.l (AS_NEEDED): Add. * ld.texinfo: Document AS_NEEDED (). * NEWS: Mention AS_NEEDED (). 2005-01-21 Ben Elliston * ldlang.c (lang_reasonable_defaults): Remove. (lang_process): Don't call lang_reasonable_defaults. * ldexp.c (exp_assop): Remove #if 0'd code. (exp_print_tree): Likewise. * ldlang.c (lang_memory_region_lookup): Likewise. (open_output): Likewise. (lang_do_assignments_1): Likewise. (lang_place_orphans): Likewise. (lang_enter_output_section_statement): Likewise. (lang_reasonable_defaults): Likewise. * ldlang.h (struct lang_input_statement_struct): Likewise. * mri.c (mri_draw_tree): Likewise. (mri_load): Likewise. * pe-dll.c (generate_reloc): Likewise. (make_import_fixup_entry): Likewise. (pe_as16): Likewise. * emultempl/beos.em (set_pe_subsystem): Likewise. * emultempl/hppaelf.em (hppaelf_after_parse): Likewise. * emultempl/pe.em: Likewise. * emultempl/xtensaelf.em (xtensa_colocate_literals): Likewise. 2005-01-20 Daniel Jacobowitz * Makefile.am (ALL_EMULATIONS): Add earmelfb_linux_eabi.o. (earmelfb_linux_eabi.c): New target. * Makefile.in: Regenerated. * configure.tgt (arm*b-*-linux-gnueabi): New target. * emulparams/armelfb_linux_eabi.sh: New file. 2005-01-20 Nick Hudson PR ld/676 * emultempl/hppaelf.em (hppaelf_create_output_section_statements): Handle bfd_elf32_hppa_nbsd_vec. 2005-01-19 Richard Sandiford * ldmain.h (ld_sysroot): Change type to a constant string. * ldmain.c (ld_sysroot): Likewise. (get_relative_sysroot, get_sysroot): New functions, adding command-line support for changing the sysroot. (main): Call the new functions. * lexsup.c (OPTION_SYSROOT): New. (ld_options): Add --sysroot. (parse_args): Add a dummy handler for it. * ld.texinfo (--sysroot): Document. * NEWS: Mention the new --sysroot option. 2005-01-18 Alan Modra * ldlang.c (section_already_linked): Adjust bfd_link_just_syms call. (lang_place_orphans): Don't abort on just_syms_flag, instead call bfd_link_just_syms. 2005-01-16 Danny Smith * defilep.y (def_name, def_library): Combine into... (def_image_name): New function. Strip name to basename, with warning. 2005-01-12 Mark Kettenis * configure.in: Be sure to invoke config.sub using the shell. * configure: Regenerate. 2005-01-11 Alan Modra * configure.host: Correct sed patterns for last change. 2005-01-10 Nick Clifton PR binutils/609 * ldmisc.c (vfinfo): Add an extra argument: is_warning. Use this to determine whether config.make_executable should be set to FALSE in conjunction with config.fatal_warnings. (info_msg, minfo, lfinof): Pass FALSE as the extra argument. (einfo): Pass TRUE as the extra argument. 2005-01-10 Greg Schaffer * configure.host (linux targets): Use "${CC} -dumpspecs" instead of "${CC} --print-file-name=specs" to appease GCC versions >= 4.0. (ia64-*-aix): Delete - this target is obsolete, and would be broken by this patch. 2005-01-06 Eric Botcazou * configure.host (sparc*-*-solaris2*): Rename into sparc-*-solaris2*. (sparc64-sun-solaris2*): New host. 2005-01-06 Paul Brook * Makefie.am: Add earmelf_vxworks. * Makefile.in: Regenerate. * configure.tgt: Make arm-*-vxworks a separate case. * emulparams/armelf_vxworks.sh: New function. 2005-01-06 Alan Modra * emultempl/ppc64elf.em (no_multi_toc): New var. (gld${EMULATION_NAME}_finish): Pass to ppc64_elf_setup_section_lists. (OPTION_NO_MULTI_TOC): Define. (PARSE_AND_LIST_LONGOPTS): Add --no-multi-toc support. (PARSE_AND_LIST_OPTIONS, PARSE_AND_LIST_ARGS_CASES): Likewise. 2005-01-05 Nick Clifton PR binutils/614 * ldmisc.c (vfinfo): Alter output to conform to the GNU Coding Standard's specification for parsable error messages. 2005-01-04 Paul Brook * Makefile.am: Correct dependency for earmsymbian.c. * Makefile.in: Regenerate. 2004-12-28 Danny Smith * emultempl/pe.em (set_pe_subsystem): Change second arg to lang_add_entry to FALSE. 2004-12-23 Nick Clifton PR 600 * emulparams/shelf.sh (.stack): Increase stack start address to 0x300000. 2004-12-20 Nick Clifton * ldmain.c (main): Issue an error message if -static and -shared are used together. 2004-12-17 Jakub Jelinek * ldexp.h (exp_data_seg): Add min_base and maxpagesize fields. * ldexp.c (fold_binary) : Initialize them. * ldlang.c (lang_size_sections): Use them to avoid wasting virtual address space at DATA_SEGMENT_ALIGN. Fix computation of expected PT_GNU_RELRO segment end. 2004-12-14 P.J. Darcy * configure.tgt: Add s390x-ibm-tpf support. 2004-12-16 Martin Kögler * ldmisc.c (vfinfo): Handle the case where %B is passed a NULL BFD. 2004-12-07 Ben Elliston * ldemul.h: Forward declare struct option. 2004-12-01 Danny Smith * scripttempl/pe.sc (.data): Add .jcr subsection. 2004-11-30 Paul Brook * emultempl/armelf.em: Ignore -p and -no-pipeline-knowledge. 2004-11-30 Tero Niemela * Makefile.am: Change LOCALEDIR to $(datadir)/share. * Makefile.in: Regenerate. 2004-11-26 Melissa Mears * emultempl/pe.em: Add --subsystem:xbox as well as --subsystem:%d. * ld.texinfo: (ld_options): Document acceptance of subsystem xbox and numeric subsystems. 2004-11-24 Alan Modra * ldexp.c (fold_name): Correct PR 338 fix. 2004-11-19 Mark Mitchell * Makefile.am (ALL_EMULATIONS): Add earmelf_linux_eabi.o. (earmelf_linux_eabi.c): New target. * configure.tgt (arm*-*-linux-gnueabi): Handle it. * emulparams/armelf_linux_eabi.sh: New file. * Makefile.in: Regenerated. 2004-11-19 Nick Clifton PR 518 * ld.texinfo (MEMORY): Update the descriptions of the ORIGIN and LENGTH fields in the MEMORY command, to explicitly state that symbols cannot be used in their expressions. 2004-11-19 Jon Beniston * ld/ldlex.l: Allow ORIGIN and LENGTH in EXPRESSION. * ld/ldgram.y: Add ORIGIN and LENGTH expressions. * ld/ldexp.c (fold_name): Implement LENGTH() and ORIGIN() functions which return the length and origin of a memory. * ld/ld.texinfo: Document LENGTH() and ORIGIN() functions. * NEWS: Mention support for ORIGIN and LENGTH operators. 2004-11-17 Daniel Jacobowitz * emultempl/armelf.em (arm_elf_set_bfd_for_interworking): Don't use a dynamic object for stubs. 2004-11-04 Paul Brook * ld.texinfo: Document --default-imported-symver. * ldmain.c (main): Set link_info.default_imported_symver. * lexsup.c (option_values): Add OPTION_DEFAULT_IMPORTED_SYMVER. (ld_options): Add --default-imported-symver. (parse_args): Handle OPTION_DEFAULT_IMPORTED_SYMVER. 2004-11-08 Inderpreet Singh Vineet Sharma * Makefile.am: Add entries for new maxq-coff target. * Makefile.in: Regenerate. * configure.tgt: Add support for maxq. * emulparams/maxqcoff.sh: New File. * scripttempl/maxqcoff.sc: New linker script for target maxq. * NEWS: Mention the new target. 2004-11-04 Daniel Jacobowitz * Makefile.am (ALL_EMULATIONS): Remove earmelf_oabi.o. (earmelf_oabi.c): Remove rule. * configure.tgt: Remove arm-*-oabi and thumb-*-oabi. * emulparams/armelf_oabi.sh, emultempl/armelf_oabi.em: Delete files. * Makefile.in: Regenerated. 2004-11-04 Hans-Peter Nilsson * configure.tgt (crisv32-*-*): Handle like cris-*-* for non-aout. * emulparams/criself.sh (INIT_START): Remove emitted "push srp". (FINI_START): Ditto. (INIT_END): Remove emitted "jump [sp+]". (FINI_END): Ditto. 2004-11-04 Alan Modra * emultempl/ppc64elf.em (no_tls_opt): Rename from notlsopt. (no_opd_opt, no_toc_opt): New static vars. (ppc_before_allocation): Don't edit opt if no_opd_opt. Call ppc64_elf_edit_toc. (OPTION_NO_OPD_OPT, OPTION_NO_TOC_OPT): Define. (PARSE_AND_LIST_LONGOPTS): Add no-opd-optimize and no-toc-optimize. (PARSE_AND_LIST_OPTIONS): Describe new options. (PARSE_AND_LIST_ARGS_CASES): Handle them. 2004-10-27 Nick Clifton * emultempl/alphaelf.em (alpha_after_parse): Add extra, NULL, parameter to invocation of lang_section_start. * emultempl/aix.em (_handle_option): Likewise. * Makefile.am (eelf64alpha.c, eelf64alpha_fbsd.c, eelf64alpha_nbsd.c): Add dependency upon emultempl/alphaelf.em. * Makefile.in: Regenerate. 2004-10-26 Mark Mitchell * emulparams/armelf.sh (OTHER_READONLY_SECTIONS): Do not emit __exidx_{start,end} when not relocating. 2004-10-25 Mark Mitchell * Makefile.in (earmsymbian.c): Depend on armbpabi.sc, not elf.sc. * ldexp.h (segment_type): New type. (segments): New variable. * ldexp.c (segments): New variable. (exp_print_token): Handle SEGMENT_START. (fold_binary): Likewise. * ldgram.y (SEGMENT_START): Declare it as a token. (exp): Handle SEGMENT_START. * ldlang.h (lang_address_statement_type): Add segment field. (lang_section_start): Change prototype. * ldlang.c (map_input_to_output_sections): Do not process section assignments if a corresponding SEGMENT_START has already been seen. (lang_section_start): Add segment parameter. * ldlex.l (SEGMENT_START): Add it. * lexsup.c (seg_segment_start): New function. (parse_args): Use it for -Tbss, -Tdata, and -Ttext. * ld.texinfo (SEGMENT_START): Document it. * emulparams/armsymbian.sh (EMBEDDED): Set it. * scripttempl/armbpabi.sc: Use SEGMENT_START to control segment base addresses. Do not map relocations. * NEWS: Mention SEGMENT_START. 2004-10-26 Paul Brook * ld.texinfo: Document --default-symver. * ldmain.c (main): Set link_info.create_default_symver. * lexsup.c (enum option_values): Add OPTION_DEFAULT_SYMVER. (ld_options): Add default-symver. (parse_args): Handle OPTION_DEFAULT_SYMVER. 2004-10-24 Danny Smith * pe-dll.c (process_def_file): Don't export all symbols by default if building a position-independent executable. 2004-10-21 H.J. Lu PR 463 * ldmain.c (reloc_overflow): Accept a pointer to struct bfd_link_hash_entry. Report symbol location for relocation overflow. 2004-10-21 H.J. Lu * genscripts.sh (libpath.exp): Really generate for first emulation only. 2004-10-19 Danny Smith * emultempl/pe.em (gld_${EMULATION_NAME}_after_open): Simplify comparison and replacement of filenames. 2004-10-19 H.J. Lu PR 459 * ldlang.c (load_symbols): Use the same -Bdynamic/-Bstatic option on linker script as the one for linker script. 2004-10-16 Daniel Jacobowitz * ldlang.c (struct excluded_lib, excluded_libs, add_excluded_libs) (check_excluded_libs): New. (load_symbols): Call check_excluded_libs. * ldlang.h (add_excluded_libs): New prototype. * emultempl/elf32.em (OPTION_EXCLUDED_LIBS): Define. (gld${EMULATION_NAME}_add_options): Add --exclude-libs. (gld${EMULATION_NAME}_handle_option): Handle --exclude-libs. * ld.texinfo (Command Line Variables): Document --exclude-libs. (Options Specific to i386 PE Targets): Remove --exclude-libs. 2004-10-15 Alan Modra * ldexp.c (exp_fold_tree): Don't immediately exit ld on a failing link script assert. * ldctor.c (ldctor_add_set_entry): Fix comment typo. 2004-10-14 H.J. Lu PR 445 * emulparams/elf64_ia64.sh (SMALL_DATA_CTOR): Set. (SMALL_DATA_DTOR): Set. * emulparams/elf64_ia64_fbsd.sh (SMALL_DATA_CTOR): Unset. (SMALL_DATA_DTOR): Unset. * scripttempl/elf.sc: If SMALL_DATA_CTOR is set, move .ctors after .data. If SMALL_DATA_DTOR is set, move .dtors after .data. 2004-10-14 Alan Modra PR 63 * ldlang.h (lang_output_section_statement_type): Make "next" a struct lang_output_section_statement_struct *. (struct orphan_save): Move from elf32.em. Add "name" and "flags". (lang_output_section_find_by_flags, lang_insert_orphan): Declare. * ldlang.c (lang_output_section_find_1): Adjust for changed output_section_statement "next". (strip_excluded_output_sections): Likewise. (lang_record_phdrs): Likewise. (lang_output_section_find_by_flags): New function. (output_prev_sec_find): Move from pe.em. Adjust iterator. (lang_insert_orphan): New function. Tail end of elf32.em's place_orphan merged with that from pe.em. Allow bfd_section to be placed first. New heuristic for placing new output section statement in existing script, and accompanying split of __start symbol alignment into a separate assignment to dot. (lang_add_section): Consistently use output->bfd_section rather than an alias, section->output_section. (map_input_to_output_sections): Rename overly long arg. Move initialization of data_statement output section to here.. (lang_check_section_addresses): ..from here. (print_assignment): Correct printing of etree_assert. (print_all_symbols): Don't bomb if userdata is NULL. (IGNORE_SECTION): Rearrange. * emultempl/elf32.em (output_rel_find): Adjust interator. (output_prev_sec_find): Delete. (struct orphan_save): Delete. (gld${EMULATION_NAME}_place_orphan): Cater for zero bfd_section flags without creating a duplicate output section statement. Revise code holding history of various orphan section placements. Allow orphan sections to place before script specified output sections. Call lang_output_section_find_by_flags when placement by name fails. Use lang_insert_orphan. * emultempl/mmo.em (output_prev_sec_find): Delete. (struct orphan_save): Delete. (mmo_place_orphan): Revise code holding history of orphan placement. Allow orphans to place before existing output sections. Use lang_insert_orphan. * emultempl/pe.em (output_prev_sec_find): Delete. (struct orphan_save): Delete. (gld_${EMULATION_NAME}_place_orphan): Revise to suit use of lang_insert_orphan. 2004-10-13 Mark Mitchell * scripttempl/armbpabi.sc: Do not put .gnu.version.* into a loadable segment. 2004-10-13 Alan Modra PR 44 * ldcref.c (check_section_sym_xref): Delete. (check_local_sym_xref): New function. (check_nocrossrefs): Adjust call. * emultempl/pe.em (struct orphan_save): Add os_tail. (place_orphan): Backport assorted fixes from elf32.em. 2004-10-12 Bob Wilson * emultempl/xtensaelf.em: Use ISO C90 formatting. 2004-10-11 Jakub Jelinek * emultempl/elf32.em (gld${EMULATION_NAME}_parse_ld_so_conf): Avoid getline for portability. * emultempl/elf32.em (gld${EMULATION_NAME}_ld_so_conf): New structure. (gld${EMULATION_NAME}_parse_ld_so_conf, gld${EMULATION_NAME}_parse_ld_so_conf_include): New functions. (gld${EMULATION_NAME}_check_ld_so_conf): Use them. 2004-10-11 Alan Modra PR 423 * ldfile.c (ldfile_try_open_bfd): Ensure dynamic objects are rejected when linking statically. 2004-10-08 Daniel Jacobowitz * configure.tgt: Include elf_x86_64 for i[3-7]86-*-solaris2*. 2004-10-07 Bob Wilson * ld.texinfo (Xtensa): Describe new linker relaxation to optimize assembler-generated longcall sequences. Describe new --size-opt option. * emulparams/elf32xtensa.sh (OTHER_SECTIONS): Add .xt.prop section. * emultempl/xtensaelf.em (remove_section, replace_insn_sec_with_prop_sec, replace_instruction_table_sections, elf_xtensa_after_open): New. (OPTION_OPT_SIZEOPT, OPTION_LITERAL_MOVEMENT, OPTION_NO_LITERAL_MOVEMENT): Define. (elf32xtensa_size_opt, elf32xtensa_no_literal_movement): New globals. (PARSE_AND_LIST_LONGOPTS): Add size-opt and [no-]literal-movement. (PARSE_AND_LIST_OPTIONS): Add --size-opt. (PARSE_AND_LIST_ARGS_CASES): Handle OPTION_OPT_SIZEOPT, OPTION_LITERAL_MOVEMENT, and OPTION_NO_LITERAL_MOVEMENT. (LDEMUL_AFTER_OPEN): Set to elf_xtensa_after_open. * scripttempl/elfxtensa.sc: Update with changes from elf.sc. * Makefile.am (eelf32xtensa.c): Update dependencies. * Makefile.in: Regenerate. 2004-10-07 Jeff Baker * lexsup.c: Handle --warn-shared-textrel option. (ld_options): Restore alpha sorting of options. * ldmain.c (main): Initialise warn_shared_info field to FALSE. * ld.texinfo: Add documentation for --warn-shared-textrel. * NEWS: Added mention of --warn-shared-textrel option. 2004-10-05 Tomer Levi * emultempl/crxelf.em (disable_relaxation): Add. (crxelf_before_allocation): Enable --relax option by default. (PARSE_AND_LIST_PROLOGUE): Add OPTION_NO_RELAX. (PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS): Add --no-relax. (PARSE_AND_LIST_ARGS_CASES): Handle OPTION_NO_RELAX. 2004-10-04 H.J. Lu * NEWS: Mention SORT_BY_NAME, SORT_BY_ALIGNMENT and --sort-section name|alignment. * ld.texinfo: Document SORT_BY_NAME, SORT_BY_ALIGNMENT and --sort-section name|alignment. * ld.h (sort_type): New enum. (wildcard_spec): Change the type of `sorted' to sort_type. * ldgram.y (SORT): Removed. (SORT_BY_NAME): Added. (SORT_BY_ALIGNMENT): Added. (wildcard_spec): Updated `sorted'. Handle SORT_BY_NAME and SORT_BY_ALIGNMENT. (input_section_spec_no_keep): Updated `sorted'. (statement): Replace SORT with SORT_BY_NAME. * ldlang.c (compare_section): New function to compare 2 sections with different sorting schemes. (wild_sort): Updated. Use compare_section. (update_wild_statements): New function. (lang_process): Call update_wild_statements before map_input_to_output_sections. * ldlex.l (SORT_BY_NAME): New. (SORT_BY_ALIGNMENT): New. (SORT): Return SORT_BY_NAME. * ldmain.c (sort_section): New. Defined. (main): Initialize it to none. * lexsup.c (option_values): Add OPTION_SORT_SECTION. (ld_options): Add an entry for OPTION_SORT_SECTION. (parse_args): Handle OPTION_SORT_SECTION. * mri.c (mri_draw_tree): Updated `sorted'. 2004-10-04 Jakub Jelinek * ldgram.y (DATA_SEGMENT_RELRO_END): Add one argument. * scripttempl/elf.sc (DATA_SEGMENT_RELRO_END): Add 0 as first argument. (DATA_SEGMENT_RELRO_GOTPLT_END): Pass $SEPARATE_GOTPLT as first and . as second argument. (GOTPLT): Move $DATA_SEGMENT_RELRO_GOTPLT_END before the section. * ldexp.c (fold_unary): Remove DATA_SEGMENT_RELRO_END handling here. (fold_binary): Add it here. Insert padding to make relro_end COMMONPAGESIZE bytes aligned. For DATA_SEGMENT_ALIGN in exp_dataseg_relro_adjust phase just use previously computed exp_data_seg.base. * ldlang.c (lang_size_sections): Set exp_data_seg.base for relro_adjust here. Call lang_size_sections_1 once more if there was too big padding at DATA_SEGMENT_RELRO_END. * ld.texinfo (DATA_SEGMENT_RELRO_END): Add documentation. 2004-10-01 Paul Brook * emulparams/armelf.sh: Add unwinding table sections. 2004-09-30 Filip Navara * emultempl/pe.em (gld_${EMULATION_NAME}_set_symbols): Generate correct base address for position independant executables. * pe-dll.c (pe_dll_fill_sections): Don't mark position independant executables as DLLs. 2004-09-30 Paul Brook * ld.texinfo: Document --target2=abs. * emulparms/armsymbian.sh (TARGET2_TYPE): Set. 2004-09-29 Nick Clifton * scripttempl/xstormy16.sc: Only perform the assignments to the ROM region when not performing a relocatable link. The ROM region does not start at address 0, but the sections will. * Makefile.am: Fix linker script dependency for the generation of eelf32xstormy16.c. * Makefile.in: Regenerate. 2004-09-18 Filip Navara * emulparams/arm_epoc_pe.sh, emulparams/armpe.sh, emulparams/i386pe.sh, emulparams/i386pe_posix.sh, emulparams/mcorepe.sh, emulparams/mipspe.sh, emulparams/ppcpe.sh, scripttempl/pe.sc: Define TARGET_PAGE_SIZE. * scripttempl/pe.sc: Make the virtual address and file offset synced if the alignment is lower than the target page size. 2004-09-27 Filip Navara * emultempl/pe.em (gld_${EMULATION_NAME}_unrecognized_file): Allow def_file_parse to handle pe_def_file if NULL and prevent crash with invalid .def files. 2004-09-27 Alan Modra * emultempl/ppc64elf.em (gld${EMULATION_NAME}_finish): Enable --emit-stub-syms automatically when --emit-relocs. 2004-09-24 Paul Brook * scripttempl/elf.sc: Keep .preinit_array, .init_array and .fini_array sections. 2004-09-19 Andreas Schwab * ldexp.c (fold_binary) [DATA_SEGMENT_ALIGN]: Adjust data segment base so that relro end is suitably aligned. 2004-09-17 Paul Brook * ld.texinfo: Rename arm-specific section. Document --target* * emulparams/armelf_fbsd.sh: Set TARGET2_TYPE. * emulparams/armelf_linux.sh: Ditto. * emulparams/armelf_nbsd.sh: Ditto. * emultempl/armelf.em: Set default for TARGET2_TYPE. (target2_type): New variable. (arm_elf_before_allocation): Don't pass target1_type. (arm_elf_create_output_section_statements): New function. (PARSE_AND_LIST_PROLOGUE): Add OPTION_TARGET2. (PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS): Add --target=. (PARSE_AND_LIST_ARGS_CASES): Handle OPTION_TARGET2. (LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS): Set. * emultempl/armelf_oabi.em (_before_allocation): Remove extra argument to bfd_elf32_arm_process_before_allocation. 2004-09-17 Alan Modra * ldexp.c (fold_name): Update u.undef.next refs. * emultempl/pe.em: Likewise. * emultempl/sunos.em: Likewise. 2004-09-17 Alan Modra * Makefile.am: Run "make dep-am". * Makefile.in: Regenerate. * config.in: Regenerate. * configure: Regenerate. * aclocal.m4: Regenerate. * po/ld.pot: Regenerate. 2004-09-16 Tomer Levi * scripttempl/elf32crx.sc (.init): Add KEEP for section's *personality*. (.fini): Likewise. (.jcr): Likewise. 2004-09-16 Alan Modra * emultempl/armelf_oabi.em (before_allocation): Add extra zero param to bfd_elf32_arm_process_before_allocation call. 2004-09-13 Paul Brook * emulparams/armsymbian.sh: Set TARGET1_IS_REL. * emultempl/armelf.em: Use TARGET1_IS_REL. Add --target1-{rel,abs}. 2004-09-07 H.J. Lu * configure: Regenerated with autconfig 2.13. 2004-09-07 Andreas Schwab * ldexp.c (fold_binary) [DATA_SEGMENT_ALIGN]: Apply data segment alignment before adjusting DATA_SEGMENT_RELRO_END. 2004-09-06 Mark Mitchell * emulparams/armsymbian.sh: Use armbpabi script. * scripttempl/armbpabi.sc: New script. 2004-09-02 Mark Mitchell * Makefile.am (ALL_EMULATIONS): Add earmsymbian.o. (earmsymbian.c): New target. * configure.tgt: Use armsymbian emulation for arm*-*-symbianelf*. * Makefile.in: Regenerated. * aclocal.m4: Likewise. * configure: Likewise. * emulparams/armsymbian.sh: New file. 2004-09-03 Tomer Levi * scripttempl/elf32crx.sc: Edit file with comments. (.init): Add new section. (.fini): Likewise. (.ctor): Control the linkage order. (.dtor): Likewise. 2004-08-27 Nick Clifton * emultempl/pe.em (after_open): Do not assume that either bfd is an archive. 2004-08-26 Alan Modra * ldlang.c (lang_init): Don't compare with TRUE. 2004-08-25 Dmitry Diky * emulparams/msp430all.sh: Fix RAM sizes for all targets. * scripttempl/elf32msp430.sc: Add .profiler section definition. 2004-08-24 H.J. Lu * ldlang.c (wildcardp): Defined as a macro with strpbrk. 2004-08-19 Mark Mitchell * configure.tgt (arm*-*-symbianelf*): New target. (arm*-*-eabi*): Likewise. 2004-08-19 Jakub Jelinek * emultempl/ppc64elf.em (non_overlapping_opd): New variable. (ppc_before_allocation): Pass it to ppc64_elf_edit_opd). (OPTION_NON_OVERLAPPING_OPD): Define. (PARSE_AND_LIST_OPTIONS, PARSE_AND_LIST_ARGS_CASES): Add --non-overlapping-opd option. 2004-08-18 Alan Modra PR 338 * ldexp.c (fold_name): Don't call bfd_link_add_undef if the symbol was already on the undefs list. 2004-08-17 Alan Modra * emultempl/ppc64elf.em (gld${EMULATION_NAME}_new_vers_pattern): Dot prefix the symbol field too. 2004-08-13 Alan Modra * ldmain.c (link_callbacks): Remove "error_handler". * ldmisc.c: Include elf-bfd.h. (vfinfo): Sort comment. Handle %A. Use %A instead of bfd_get_section_indent. (error_handler): Delete. * ldmisc.h (error_handler): Delete declaration. 2004-08-10 Alan Modra * emultempl/ppc64elf.em (gld${EMULATION_NAME}_finish): Call ppc64_elf_restore_symbols. 2004-08-09 Alan Modra * emultempl/ppc64elf.em (gld${EMULATION_NAME}_finish): Error if .toc is too large on relocatable linking. 2004-08-09 Alan Modra * emultempl/ppc64elf.em (ppc_after_open): Delete. (LDEMUL_AFTER_OPEN): Don't define. 2004-08-02 Stephane Carrez * ld.texinfo (Top): Document specific options of 68HC11 and 68HC12. 2004-08-01 Stephane Carrez * scripttempl/elfm68hc12.sc: Align text, rodata and data section on power of 2. 2004-07-27 Jason Thorpe * emulparams/hppanbsd.sh (OUTPUT_FORMAT): Set to "elf32-hppa-netbsd". 2004-07-26 Dmitry Diky * Makefile.am: Add new subtargets: msp430x1610, msp430x1611, msp430x1612, msp430x415, msp430x417, msp430xG437, msp430xG438, msp430xG439. * configure.tgt: Likewise. * emulparams/msp430all.sh: Likewise. * Makefile.in: Regenerate. 2004-07-23 Nick Clifton * emultempl/elf32.em (_place_orphan): Use an already existing section name if that section does not have any flags set. 2004-07-21 H.J. Lu * ldlang.c (already_linked_hash_entry): Removed. (already_linked): Likewise. (already_linked_table): Likewise. (section_already_linked): Call bfd_section_already_linked. (lang_process): Replace already_linked_table_init with bfd_section_already_linked_table_init and check return. Replace already_linked_table_free with bfd_section_already_linked_table_free. 2004-07-21 Nick Clifton * ldlang.c (init_os): Make sure that the newly allocated userdata structure is zeroed out. 2004-07-19 H.J. Lu * NEWS: Mention the new --add-needed/--no-add-needed and --as-needed/--no-as-needed options. 2004-07-19 H.J. Lu * emultempl/elf32.em (gld${EMULATION_NAME}_load_symbols): Also check the add_needed field. (dt_needed): New struct. (gld${EMULATION_NAME}_try_needed): Change the first argument to a pointer to struct dt_needed. Check the DYN_NO_ADD_NEEDED bit in the file where the DT_NEEDED entry comes from. (gld${EMULATION_NAME}_search_needed): Change the second argument to a pointer to struct dt_needed. (gld${EMULATION_NAME}_check_ld_so_conf): Updated. (gld${EMULATION_NAME}_after_open): Likewise. * ld.texinfo: Add --add-needed document. * ldlang.c (new_afile): Set p->add_needed. * ldlang.h (lang_input_statement_type): Add add_needed field. * ldmain.h (add_needed): Declare. * ldmain.c (add_needed): New global var. * lexsup.c (option_values): Add OPTION_ADD_NEEDED and OPTION_NO_ADD_NEEDED. (ld_options): Likewise. (parse_args): Handle them. 2004-07-13 Christof Petig * emultempl/pe.em (make_import_fixup): Use bfd_get_32 to correct for endian-ness of extracted addend. 2004-07-13 Danny Smith * pe-dll.c (auto_export): Filter on just the import prefix, "_imp_", not "_imp__". 2004-07-09 Nick Clifton * configure.tgt: Change sh-sybmian-elf to sh-*-symbianelf. 2004-07-06 Tomer Levi * Makefile.am (ALL_EMULATIONS): Add eelf32crx.o. (eelf32crx.c): New target. * Makefile.in: Regenerate. * configure.tgt: Handle crx-*-elf*. * emulparams/elf32crx.sh: New file. * emultempl/crxelf.em: New file. * scripttempl/elf32crx.sc: New file. * NEWS: Mention new target. 2004-07-06 Nick Clifton * Makefile.am: Add eshlsymbian.c. * Makefile.in: Regenerate. * configure.tgt: Add sh*-symbian-elf target. * emulparams/shlsymbian.sh: New file. Configure the sh-symbian-elf linker scripts. * scripttemp/elf32sh-symbian.sc: New file. Linker script template for the sh-symbian-elf target. 2004-07-05 John David Anglin * emulparams/hppa64linux.sh: Define PLT_BEFORE_GOT. * emulparams/hppalinux.sh: Likewise. * scripttempl/elf.sc: Place .plt just before .got when .plt is in data segment and PLT_BEFORE_GOT is defined. 2004-07-03 Aaron W. LaFramboise * ld.texinfo (WIN32): Document PE weak symbols. 2004-07-02 Kaz Kojima * emulparams/shlelf32_linux.sh (COMMONPAGESIZE): Set to 4KB. 2004-07-01 H.J. Lu * ldmisc.c (vfinfo): Call bfd_get_section_ident to identify the section. 2004-06-29 Alan Modra * ldlang.c (lang_reset_memory_regions): Save last relax pass section size in rawsize. 2004-06-24 Alan Modra * ldlang.c (print_output_section_statement): Don't print size before relaxation. (IGNORE_SECTION): Remove bfd arg. Update all callers. * ldexp.c (fold_name): .. See below. * ldlang.c (section_already_linked, print_output_section_statement, print_input_section, insert_pad, size_input_section, lang_check_section_addresses, lang_size_sections_1, lang_size_sections, lang_do_assignments_1, lang_set_startof, lang_one_common, lang_reset_memory_regions, lang_process, lang_abs_symbol_at_end_of, lang_do_version_exports_section): .. * ldwrite.c (build_link_order, clone_section, ds, split_sections): .. * pe-dll.c (process_def_file, generate_reloc): .. * emultempl/elf32.em (gld${EMULATION_NAME}_find_statement_assignment, gld${EMULATION_NAME}_before_allocation): .. * emultempl/mmix-elfnmmo.em (mmix_after_allocation): .. * emultempl/sh64elf.em (sh64_elf_${EMULATION_NAME}_before_allocation, sh64_elf_${EMULATION_NAME}_after_allocation): .. * emultempl/sunos.em (gld${EMULATION_NAME}_before_allocation): .. * emultempl/xtensaelf.em (ld_assign_relative_paged_dot, ld_local_file_relocations_fit, ld_xtensa_insert_page_offsets): Use "size" instead of "_raw_size" and "_cooked_size". Expand bfd_section_size macro invocations. 2004-06-22 Aaron W. LaFramboise * ld/scripttemp/pe.sc (.CRT): Define ___crt_xc_start__, ___crt_xc_end__, ___crt_xi_start__, ___crt_xi_end__, ___crt_xl_start__, ___crt_xp_start__, ___crt_xp_end__, ___crt_xt_start__ and ___crt_xt_end__. (.tls): Define ___tls_start__ and ___tls_end__. 2004-06-21 Alexandre Oliva * emulparams/elf32frvfd.sh (GENERATE_PIE_SCRIPT): Set to yes. 2004-06-18 Adam Nemet * configure.in: Set EXTRA_SHLIB_EXTENSION to .a for LynxOS. * configure: Regenerate. 2004-06-15 Jakub Jelinek * scripttempl/elf.sc: Readd KEEP and .gcc_except_table.* to .gcc_except_table output sections lost accidentally with -z relro patch. 2004-06-15 Alan Modra * ldwrite.c (build_link_order): Use bfd_get_section_size instead of bfd_get_section_size_before_reloc or _raw_size. * pe-dll.c (process_def_file): Likewise. 2004-06-14 Alan Modra From Richard Wirth * ldlang.c (lang_finish): Don't free lang_definedness_table. 2004-05-29 Alan Modra * ldlang.c (gc_section_callback): Move SEC_EXCLUDE twiddles.. (lang_gc_sections): .. to a LANG_FOR_EACH_INPUT_STATEMENT loop here. 2004-05-28 Alan Modra * ldlang.c: Formatting. Wrap long lines, expand bfd_get_section_flags throughout file. * lexsup.c: Formatting. Wrap long lines. * ldwrite.c: Update copyright date. * ldlang.c (lang_add_section): Don't twidlle SEC_EXCLUDE here. (output_section_callback): Nor SEC_KEEP here. (gc_section_callback): Twiddle SEC_EXCLUDE here. (lang_gc_wild): Delete. Fold into.. (lang_gc_sections_1): ..here. Only call bfd_gc_sections when garbage collecting. (lang_process): Always call lang_gc_sections. (lang_place_orphans): Handle SEC_EXCLUDE sections. * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Remove SEC_EXCLUDE code. 2004-05-26 H.J. Lu * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Clear SEC_EXCLUDE on non-SEC_DEBUGGING sections for relocatable link. * ldlang.c (lang_add_section): Likewise. 2004-05-26 Alan Modra * ldlang.c (lang_add_section): Set SEC_EXCLUDE for SEC_GROUP sections when doing a final link. Clear SEC_EXCLUDE when doing a relocable link, except for SEC_DEBUGGING sections. * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Use the same condition here to drop SEC_EXCLUDE orphan sections. 2004-05-25 Alan Modra * ldlang.c (lang_process): Call bfd_merge_sections later, and only when not a relocatable link. (print_input_section): Handle SEC_EXCLUDE sections. (size_input_section): Don't update dot on SEC_EXCLUDE sections. (lang_do_assignments_1): Likewise. * ldwrite.c (build_link_order): Ignore SEC_EXCLUDE input sections. * emultempl/armelf.em (arm_elf_set_bfd_for_interworking): Likewise. * emultempl/hppaelf.em (build_section_lists): Likewise. * emultempl/ppc64elf.em (build_toc_list): Likewise. (build_section_lists): Likewise. 2004-05-23 Andreas Schwab * ld.texinfo (Options): Fix typo in last change. 2004-05-21 Andy Chittenden * ld.h (ld_config_type): Add new field: hash_table_size. * ldmain.c: Initialise the new field to zero. If it is non-zero after parsing the linker's command line call bfd_hash_set_default_size. * lexsup.c (option_values): Add OPTION_HASH_SIZE. (ld_options): Add hash-size. (parse_args): Parse --hash-size option. Allow --reduce-memory-overheads to set the default hash table size as well. * ld.texinfo: Document the new switch. Also mention that --reduce-memory-overheads can affect the hash table size. * NEWS: Mention the new feature. 2004-05-19 J"orn Rennecke * NEWS: Mention new linker map file generation and the --reduce-memory-overheads option. * ld.texinfo: Document --reduce-memory-overheads option. * ld.h (map_symbol_def): New struct. (struct user_section_struct, section_userdata_type): Rename to: (struct lean_user_section_struct, lean_section_userdata_type). (struct fat_user_section_struct, fat_section_userdata_type): New. (SECTION_USERDATA_SIZE): Define. (args_type): New member reduce_memory_overheads. * ldlang.c (map_obstack): New static variable. (init_map_userdata, print_all_symbols, sort_def_symbol): New functions. (lang_map): Unless command_line.reduce_memory_overheads is set, initialize lists of defined symbols for each section. (print_input_section): Unless command_line.reduce_memory_overheads is set, use print_all_symbols. (init_os): Use lean_section_userdata_type / SECTION_USERDATA_SIZE. * ldmain.c (main): Initialize command_line.reduce_memory_overheads. * lexsup.c (enum option_values): Add OPTION_REDUCE_MEMORY_OVERHEADS. (ld_options): Add entry for --reduce-memory-overheads. (parse_args): Handle OPTION_REDUCE_MEMORY_OVERHEADS. 2004-05-19 Jakub Jelinek * ldgram.y (sect_constraint): New. (ONLY_IF_RO, ONLY_IF_RW): New tokens. (section): Add sect_constraint. Pass additional argument to lang_enter_output_section_statement. * mri.c (mri_draw_tree): Pass additional argument to lang_enter_output_section_statement. * emultempl/pe.em (place_orphan): Likewise. (output_prev_sec_find): Disregard output section statements with constraint == -1. * emultempl/mmo.em (output_prev_sec_find): Likewise. (mmo_place_orphan): Pass additional argument to lang_enter_output_section_statement. * emultempl/elf32.em (output_prev_sec_find): Disregard output section statements with constraint == -1. (place_orphan): Pass additional argument to lang_enter_output_section_statement. * ldlang.c (lang_enter_overlay_section): Likewise. (lang_output_section_find_1): New. (lang_output_section_find): Use it. (lang_output_section_statement_lookup_1): New. (lang_output_section_statement_lookup): Use it. (check_section_callback, check_input_sections): New. (map_input_to_output_sections): Check if all input sections are readonly if ONLY_IF_RO or ONLY_IF_RW was seen. (strip_excluded_output_sections): Disregard output section statements with constraint == -1. (lang_record_phdrs): Likewise. (lang_enter_output_section_statement): Add constraint argument. Use lang_output_section_statement_lookup_1. * ldlang.h (lang_output_section_statement_type): Add constraint and all_input_readonly fields. (lang_enter_output_section_statement): Adjust prototype. * ldlex.l (ONLY_IF_RO, ONLY_IF_RW): New tokens. * scripttempl/elf.sc (.eh_frame, .gcc_except_table): Move into text segment if all input sections are readonly. 2004-05-19 Adam Nemet * scripttempl/i386lynx.sc: Remove file. 2004-05-17 Bob Wilson * ld.texinfo (Output Section Address): Correct subsection name. 2004-05-17 Adam Nemet * configure.tgt (powerpc-*-lynxos* case): New case. * configure.host (i[3-7]86-*-lynxos* case): Remove case. * emulparams/ppclynx.sh: New file. * emulparams/i386lynx.sh (SCRIPT_NAME): Update to LynxOS 4.0. * Makefile.am (ALL_EMULATIONS): Add eppclynx.o (ei386lynx.c): Update rule to LynxOS 4.0 ELF. (eppclynx.c): New rule. * Makefile.in: Regenerate. 2004-05-13 Joel Sherrill * configure.tgt (or32-*-rtems*): Switch to elf and support versioned targets. 2004-05-13 Nick Clifton * po/fr.po: Updated French translation. 2004-05-11 Jakub Jelinek * genscripts.sh: Generate -z combreloc -z now -z relro scripts for binaries, -shared and -pie. * emulparams/elf_i386.sh (SEPARATE_GOTPLT): Set. * emulparams/elf_x86_64.sh (SEPARATE_GOTPLT): Set. * emulparams/elf32ppc.sh (OTHER_READWRITE_SECTIONS): Rename to... (OTHER_RELRO_SECTIONS): ... this. * ldlex.l (DATA_SEGMENT_RELRO_END): Add. * emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Handle -z relro and -z norelro. (gld${EMULATION_NAME}_list_options): Add it to usage. (gld${EMULATION_NAME}_get_script): Return -z combreloc -z now -z relro scripts when appropriate. * scripttempl/elf.sc: Unset SEPARATE_GOTPLT if RELRO_NOW is set. Create separate .got.plt section if SEPARATE_GOTPLT. Move sections which are only written during relocation handling to the beginning of RW segment. If NO_SMALL_DATA, move .got before .data. Add DATA_SEGMENT_RELRO_END directive. Include OTHER_RELRO_SECTIONS. * ldgram.y (DATA_SEGMENT_RELRO_END): Add. * ldexp.c (exp_print_token): Handle DATA_SEGMENT_RELRO_END. (fold_unary): Likewise. (fold_binary): Handle -z relro. * ldexp.h (struct exp_data_seg): Add exp_dataseg_relro_seen and exp_dataseg_relro_adjust phases. Add relro_end field. * ldmain.c (main): Initialize link_info.relro to FALSE. * ldlang.c (lang_size_sections): Handle -z relro. 2004-05-08 Marek Michalkiewicz * scripttempl/avr.sc: Do not set LMA for "eeprom" section. 2004-05-07 J"orn Rennecke * ldlang.c (print_padding_statement): Cast size_t to bfd_vma before printing it with %W. 2004-05-07 Brian Ford DJ Delorie * emultempl/pe.em (real_flags): New static. (OPTION_LARGE_ADDRESS_AWARE): New define. (gld${EMULATION_NAME}_add_options): Add --large-address-aware option. (gld_${EMULATION_NAME}_list_options): Likewise. (gld${EMULATION_NAME}_handle_option): Likewise. (gld_${EMULATION_NAME}_after_open): Pass real_flags to PE private data. * ld.texinfo: Document it. * NEWS: Mention it. 2004-05-07 Brian Ford * NEWS: Mention DWARF 2 support for i386pe. 2004-05-05 Alexandre Oliva * emulparams/elf32frvfd.sh (OUTPUT_FORMAT): Switch to new elf32-frvfdpic. 2004-04-30 Alan Modra * ldlang.c (unique_section_p): Pass section parm, return true on group sections. (output_section_callback): Adjust. * ldlang.h (unique_section_p): Update prototype. * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Adjust. 2004-04-30 Eric Botcazou * ld.texinfo (--gc-sections): Remove restriction for dynamic linking. 2004-04-29 Brian Ford * scripttempl/pe.sc: Handle .debug* and .gnu.linkonce.wi.* sections for DWARF 2/3. Update stab section's syntax. 2004-04-29 Alan Modra * pe-dll.c: Revert changes accidentally committed 2004-03-08. (fill_edata): Correct pointer arithmetic. 2004-04-21 Chris Demetriou * ld.texinfo: Remove MIPS --embedded-relocs documentation. * emulparams/elf32bmip.sh (EXTRA_EM_FILE): Remove definition. * emulparams/mipsidt.sh (TEMPLATE_NAME): Use generic.em. (EXTRA_EM_FILE): Use mipsecoff.em * emulparams/mipsidtl.sh (TEMPLATE_NAME): Use generic.em. (EXTRA_EM_FILE): Use mipsecoff.em * emultempl/mipsecoff.em: Restructure to be included as an extra emulation file. (check_sections, gld${EMULATION_NAME}_after_open) (gld${EMULATION_NAME}_after_allocation) (gld${EMULATION_NAME}_get_script) (ld_${EMULATION_NAME}_emulation): Remove (gld${EMULATION_NAME}_before_parse): Rename to... (mipsecoff_before_parse): This. (LDEMUL_BEFORE_PARSE): Define. * emultempl/mipself.em: Remove file. * scripttempl/mips.sc (.rel.sdata): Do not include in output. (__runtime_reloc_start, __runtime_reloc_stop): Stop providing these symbols. * Makefile.am: Remove dependencies on emultempl/mipself.em. * Makefile.in: Regenerate. 2004-04-21 Anil Paranjpe * ld.texinfo (synthesizing on H8/300): Information about linker relaxation support for bit manipulation instructions and system control instructions is added. 2004-04-21 Hans-Peter Nilsson * NEWS: Mention change in DEFINED semantics. 2004-04-21 Eric Botcazou * scripttempl/elf.sc (.text): Add KEEP for .text.*personality*. (.data): Add KEEP for .gnu.linkonce.d.*personality*. (.gcc_except_table): Add KEEP for self and accept .gcc_except_table.*. 2004-04-21 Ben Elliston * ld.texinfo (Simple Example): Add missing punctuation. 2004-04-20 Chris Demetriou * NEWS: Note that MIPS --embedded-relocs option is deprecated. 2004-04-19 Jakub Jelinek * ldlang.c (lang_do_assignments_1): Handle .tbss output section specially. 2004-04-18 Danny Smith * scriptempl/pe.sc: Put numbered .ctors.* after .ctors with default priority. Likewise for dtors. 2004-04-11 Thiemo Seufer * configure.host: Remove mips*-dec-bsd* target. * configure.tgt: Likewise. 2004-04-08 Richard Sandiford * emulparams/elf32bsmip.sh (EXTRA_EM_FILE): Define to irix. * emulparams/elf64bmip.sh (EXTRA_EM_FILE): Likewise. * emulparams/elf32bmipn32.sh (EXTRA_EM_FILE): Likewise. * emultempl/irix.em: New file. * Makefile.am (eelf32bsmip.c, eelf32bmipn32.c, eelf64bmip.c): Update dependencies. * Makefile.in: Regenerate. 2004-04-01 Paul Brook * emultempl/armelf.em (byteswap_code): Add. (arm_elf_before_allocation): Pass extra parameter. (PARSE_AND_LIST_PROLOGUE): Add OPTION_BE8. (PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS): Add be8. (PARSE_AND_LIST_ARGS_CASES): Handle OPTION_BE8. * emultempl/armelf_oabi.em: Pass extra parameter. * ld.texinfo: Document --be8. 2004-03-30 Stan Shebs Remove long-obsolete MPW support. * mpw-config.in, mpw-make.sed, mac-ld.r: Remove files. * Makefile.am (mpw): Remove file-presynthesizing actions. * Makefile.in: Likewise. * ldfile.c (slash): Remove MPW case. * ldlex.l [MPW]: Remove unused definition. 2004-03-30 Galit Heller * Makefile.am (ALL_EMULATIONS): Add eelf32cr16c.o. (eelf32cr16c.c): New target. * Makefile.in: Regenerate. * configure.tgt: Handle cr16c-*-elf*. * emulparams/elf32cr16c.sh: New file. * scripttempl/elfcr16c.sc: Likewise * NEWS: Mention support for new target. 2004-03-30 Nick Clifton * po/sv.po: Updated Swedish translation. 2004-03-27 Alan Modra * emultempl/elf32.em: Update new bfd_elf_discard_info name. * emultempl/hppaelf.em: Likewise. * emultempl/ppc64elf.em: Likewise. * emultempl/sh64elf.em: Likewise. 2004-03-25 Alan Modra * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Update size_dynamic_sections call. 2004-03-23 Alan Modra PR 51. * emultempl/ppc64elf.em (ppc_create_output_section_statements): Set link_info.wrap_char. 2004-03-20 H.J. Lu * lexsup.c (parse_args): Don't set unresolved_syms_in_objects or unresolved_syms_in_shared_libs for -Bdynamic and -Bstatic. 2004-03-20 Alexandre Oliva * emulparams/elf32frvfd.sh (MAXPAGESIZE): Change to 16Kb. 2004-03-19 Alan Modra * config.in: Regenerate. * po/ld.pot: Regenerate. 2004-03-18 Alan Modra * ld.texinfo: Add --as-needed doco. * ldmain.c (as_needed): New global var. * ldmain.h (as_needed): Declare. * lexsup.c (option_values): Add OPTION_AS_NEEDED and OPTION_NO_AS_NEEDED. (ld_options): Likewise. (parse_args): Handle them. * ldlang.h (lang_input_statement_type): Add as_needed field. * ldlang.c (new_afile): Set p->as_needed. * emultempl/elf32.em (gld${EMULATION_NAME}_load_symbols): New function. (gld${EMULATION_NAME}_try_needed): Use bfd_elf_set_dyn_lib_class. (ld_${EMULATION_NAME}_emulation): Set LDEMUL_RECOGNIZED_FILE entry. * ldlang.c (open_input_bfds): Remove useless cast. (lang_do_assignments_1): Likewise. (lang_for_each_input_section): Delete. 2004-03-17 Ralf Corsepius * configure.tgt: Switch sh-*-rtems* to ELF. Add sh-*-rtemscoff*. 2004-03-08 Danny Smith * pe-dll.c (pe_dll_generate_implib): Skip sections marked as private when building implib. 2004-03-05 Nathan Sidwell * ldlang.c (lang_add_section): Don't force SEC_LOAD on SEC_THREAD_LOCAL. (IGNORE_SECTION): Ignore .tbss sections too. (lang_size_sections_1): .tbss sections do not advance dot. 2004-03-01 Andreas Schwab * ld.texinfo (Options): Fix example for --wrap. 2004-02-25 Danny Smith * pe-dll.c (fill_edata): Check that exported_symbol_sections is not NULL. 2004-02-23 Ian Lance Taylor * ldlang.c (lang_check): Use %P, not %E, in error message. 2004-02-23 Nathan Sidwell * ldlang.h (struct lang_output_section_state): Change processed field's type. * ldexp.c (check, invalid): Remove. (fold_name): Move valid_p assignments. Create undefined symbol when needed. Directly exampine section's processd flag. * ldlang.c (lang_output_section_statement_lookup): Adjust processed field init. (lang_size_sections_1): Allow LOADADDR when determining section's VMA. Adjust error message. Fold data statement's expr. (lang_size_sections): Correctly increment lang_statement_iteration. 2004-02-23 Alan Modra * ldexp.c (fold_tree): Follow indirect symbols. 2004-02-20 Nathan Sidwell * ldgram.y (exp): Add two operand ALIGN. * ldexp.c (fold_binary): Add ALIGN_K case. * ld.texinfo (ALIGN): Document two operand version. 2004-02-19 Nathan Sidwell * ldlang.c (map_input_to_output_sections): Initialize sections mentioned in a data statement expression. (lang_do_assignments_1): Add data statement's expression's section's vma. 2004-02-18 Nathan Sidwell * ldgram.y (statement_anywhere): Add assert rule. * ldlang.c (exp_init_os): Add assert case. 2004-02-14 Andrew Cagney * ldmain.c (remove_output): Call bfd_cache_close. 2004-02-14 Richard Sandiford * emulparams/elf32bmipn32-defs.sh (OTHER_SECTIONS): Discard .MIPS.content* and .MIPS.events* sections. 2004-02-09 Daniel Jacobowitz * emulparams/armelf.sh, emulparams/armelf_linux.sh: Move .note.gnu.arm.ident to after allocated sections. Mark its address as 0. 2004-02-09 Daniel Jacobowitz * emulparams/armelf_linux.sh (COMMONPAGESIZE): Set to 4KB. * emulparams/elf32bmip.sh (COMMONPAGESIZE): Likewise. * emulparams/elf32bmipn32.sh (COMMONPAGESIZE): Likewise. * emulparams/elf32btsmipn32.sh (COMMONPAGESIZE): Likewise. * emulparams/shlelf_linux.sh (COMMONPAGESIZE): Likewise. 2004-02-05 Nick Clifton * emultempl/pe.em (_after_open): Fix typo in previous delta. 2004-02-04 Danny Smith * emultempl/pe.em (_after_open): Fix thinko in 2003-12-18 patch. 2004-01-28 Alan Modra * genscripts.sh: Fix typo. * genscripts.sh: Apply $LIBPATH_SUFFIX to $tool_lib and $libdir too. 2004-01-24 Jakub Jelinek * emulparams/elf64_ia64.sh: Put .rela.opd into OTHER_GOT_RELOC_SECTIONS instead of OTHER_PLT_RELOC_SECTIONS. 2004-01-20 Danny Smith * pe-dll.c (pe_create_import_fixup): Clear WP_TEXT flag. * ld.texinfo (--omagic): Note that writable text section does not conform to published PE-COFF specs. (--enable-auto-import): Likewise. 2004-01-15 Alan Modra * emulparams/elf32ppc.sh (COMMONPAGESIZE): Define. 2004-01-13 Nick Clifton * ldlang.c (lang_get_regions): Add extra parameter 'have_vma' which if true will prevent the LMA region being used as a replacement for a default VMA region. (lang_leave_output_section_statement): Pass extra parameter. (lang_leave_overlay): Likewise. * ld.texinfo (Output Section LMA): Document that the LMA region can be set to the VMA region if no VMA has been set. * ldlang.h (struct lang_output_section_phdr_list): Create a typedef for this type. Minor formatting fixes. 2004-01-13 Nick Clifton * ldlang.c (lang_size_sections_1): If dot is advanced, then assume that the section should be allocated. 2004-01-13 Alan Modra * ldlang.c (IGNORE_SECTION): Don't ignore SEC_ALLOC && !SEC_LOAD sections. Do ignore SEC_NEVER_LOAD sections. (lang_size_sections_1): Remove test made redundant with the above. 2004-01-09 Alan Modra * emultempl/ppc64elf.em (ppc_before_allocation): Clear cached program_header_size. 2004-01-06 Alexandre Oliva 2003-11-28 Alexandre Oliva * emulparams/elf32frvfd.sh (EMBEDDED): Clear. 2003-11-05 Alexandre Oliva * emulparams/elf32frvfd.sh (STACK_ADDR): Unset. (MAXPAGESIZE): Set to 64Kb. (OTHER_READONLY_SECTIONS): Define __ROFIXUP_LIST__ and __ROFIXUP_END__. Don't map .rofixup.got any more. * emulparams/elf32frv.sh (NOP): Set. 2003-10-31 Alexandre Oliva * configure.tgt: Add frv-*-*linux*. 2003-09-30 Alexandre Oliva * Makefile.am (ALL_EMULATIONS): Added eelf32frvfd.o. (eelf32frvfd.c): New. * configure.tgt : Added it to targ_extra_emuls. * emulparams/elf32frv.sh: Reverted previous two patches. * emulparams/elf32frvfd.sh: New. * Makefile.in: Rebuilt. 2003-09-18 Alexandre Oliva * emulparams/elf32frv.sh (OTHER_READONLY_SECTIONS): Added .rofixup.got to .rofixup. 2003-09-15 Alexandre Oliva * emulparams/elf32frv.sh (MAXPAGESIZE): Make it 256KiB, not 256B. (TEMPLATE_NAME, GENERATE_SHLIB_SCRIPT): Set. 2004-01-05 Jakub Jelinek * emulparams/elf_s390.sh (NO_SMALL_DATA): Set to yes. * emulparams/elf64_s390.sh (NO_SMALL_DATA): Set to yes. 2004-01-03 Alan Modra * ldexp.c (align_n): Make static. * ldexp.h (align_n): Delete declaration. * ldlang.h (lang_enter_output_section_statement): Remove block_value param. * ldlang.c (lang_enter_output_section_statement): Likewise. (TO_ADDR, TO_SIZE): Define. (opb_shift): New var. (init_opb): New function. (print_input_section): Call init_opb and use TO_ADDR. (print_data_statement, print_reloc_statement): Likewise. (print_padding_statement): Likewise. (size_input_section): Use TO_SIZE and TO_ADDR, and global opb_shift. (lang_check_section_addresses): Likewise. (lang_size_sections_1): Likewise. (lang_do_assignments_1): Likewise. (lang_set_startof): Likewise. (lang_one_common): Likewise. Combine power_of_two and opb_shift align. (lang_process): Call init_opb. (lang_abs_symbol_at_end_of): Use TO_ADDR and global opb_shift. (lang_enter_overlay_section): Adjust lang_enter_output_section_statement call. * ldgram.y: Likewise. * mri.c (mri_draw_tree): Likewise. * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Likewise. * emultempl/mmo.em (mmo_place_orphan): Likewise. * emultempl/pe.em (gld${EMULATION_NAME}_place_orphan): Likewise. * ldfile.c (ldfile_set_output_arch): Add defarch param. * ldfile.h (ldfile_set_output_arch): Ditto. * emultempl/aix.em (gld${EMULATION_NAME}_before_parse): Use ldfile_set_output_arch. * emultempl/beos.em (gld${EMULATION_NAME}_before_parse): Ditto. * emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Ditto. * emultempl/linux.em (gld${EMULATION_NAME}_before_parse): Ditto. * emultempl/mipsecoff.em (gld${EMULATION_NAME}_before_parse): Ditto. * emultempl/pe.em (gld${EMULATION_NAME}_before_parse): Ditto. * emultempl/sunos.em (gld${EMULATION_NAME}_before_parse): Ditto. * ldgram.y: Adjust ldfile_set_output_arch call. * emultempl/armcoff.em (gld${EMULATION_NAME}_before_parse): Ditto. * emultempl/armelf.em (gld${EMULATION_NAME}_before_parse): Ditto. * emultempl/armelf_oabi.em (gld${EMULATION_NAME}_before_parse): Ditto. * emultempl/generic.em (gld${EMULATION_NAME}_before_parse): Ditto. * emultempl/gld960c.em (gld960_set_output_arch): Ditto. * emultempl/m68kcoff.em (gld${EMULATION_NAME}_before_parse): Ditto. * emultempl/ticoff.em (gld${EMULATION_NAME}_before_parse): Ditto. 2004-01-02 Bernardo Innocenti * configure.tgt: Add m68k-uClinux target. For older changes see ChangeLog-0203 Local Variables: mode: change-log left-margin: 8 fill-column: 74 version-control: never End: