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: