aboutsummaryrefslogtreecommitdiff
path: root/bfd/elflink.h
AgeCommit message (Collapse)AuthorFilesLines
2004-01-01 * elflink.h (elf_gc_sections): Warn when gc-sections option is ignored.Alan Modra1-1/+4
* elf32-h8300.c (elf32_h8_gc_mark_hook): New function. (elf32_h8_gc_sweep_hook): New function. (elf_backend_gc_mark_hook): Define. (elf_backend_gc_sweep_hook): Define. (elf_backend_can_gc_sections): Define.
2003-12-08 * elf-bfd.h (struct elf_backend_data): Remove "bfd *" and addAlan Modra1-13/+17
"elflink_hash_entry *" param to elf_backend_link_output_symbol_hook. Add "elflink_hash_entry *" param to elf_backend_output_arch_syms. * elflink.h (elf_link_output_sym): Add "elflink_hash_entry *" param, and pass to output_symbol_hook. (elf_bfd_final_link): Adjust elf_link_output_sym calls. (elf_link_output_extsym): Likewise. (elf_link_input_bfd): Likewise. * elf32-sh64.c (sh64_elf_link_output_symbol_hook): Adjust. * elf32-v850.c (v850_elf_link_output_symbol_hook): Likewise. * elf64-mmix.c (mmix_elf_link_output_symbol_hook): Likewise. * elf64-sh64.c (sh64_elf64_link_output_symbol_hook): Likewise. * elfxx-mips.c (_bfd_mips_elf_link_output_symbol_hook): Likewise. * elfxx-mips.h (_bfd_mips_elf_link_output_symbol_hook): Likewise. * elf64-sparc.c (sparc64_elf_output_arch_syms): Likewise. * elf64-hppa.c (elf64_hppa_link_output_symbol_hook): Likewise. Validate dynh->h against h. * elf64-ppc.c (struct ppc_link_hash_entry): Add adjust_done bitfield. (link_hash_newfunc): Init it. (adjust_opd_syms): New function. (ppc64_elf_edit_opd): Set adjust_done when global .opd sym adjusted. Set opd.adjust for all .opd relocs. Call adjust_opd_syms. (ppc64_elf_tls_optimize): Adjust possible .opd sym values here. (ppc64_elf_relocate_section): Also adjust syms not a multiple of 24. (ppc64_elf_output_symbol_hook): New function. (elf_backend_link_output_symbol_hook): Define.
2003-12-01 * elf-bfd.h (is_elf_hash_table): Take hash tab rather than info arg.Alan Modra1-32/+32
* elf.c (_bfd_elf_merge_sections): Adjust to suit. (_bfd_elf_link_just_syms): Likewise. (bfd_elf_get_needed_list): Likewise. (bfd_elf_get_runpath_list): Likewise. (_bfd_elf_link_hash_copy_indirect): Remove unneeded parens. * elf32-hppa.c (elf32_hppa_setup_section_lists): Don't check hash tab creator flavour. (elf32_hppa_set_gp): Look up output sections rather than using htab. * elf32-i960.c: Comment fix. Formatting. * elf32-m32r.c (m32r_elf_add_symbol_hook): Use is_elf_hash_table rather than testing creator flavour. * elf32-sh64.c (sh64_elf_add_symbol_hook): Likewise. * elf64-sh64.c (sh64_elf64_add_symbol_hook): Likewise. * elflink.c (_bfd_elf_link_create_dynamic_sections): Adjust for is_elf_hash_table change. Remove redundant test. (bfd_elf_record_link_assignment): Use is_elf_hash_table rather than testing creator flavour. (elf_link_record_local_dynamic_symbol): Adjust for is_elf_hash_table. (_bfd_elf_fix_symbol_flags): Likewise. (_bfd_elf_adjust_dynamic_symbol): Likewise. * elflink.h (elf_link_add_object_symbols): Likewise. Remove redundant checks. Use is_elf_hash_table rather than testing creator flavour. Use hash_table throughout in place of info->hash. (elf_add_dynamic_entry): Adjust for is_elf_hash_table change. (NAME(bfd_elf,size_dynamic_sections)): Likewise. Remove redundant check. (elf_bfd_final_link): Adjust for is_elf_hash_table change. (elf_link_check_versioned_symbol): Use is_elf_hash_table rather than testing creator flavour. (elf_gc_sections): Add is_elf_hash_table check. (elf_gc_common_finalize_got_offsets): Likewise. (elf_bfd_discard_info): Adjust for is_elf_hash_table change. Remove redundant check. * elfxx-ia64.c (elfNN_ia64_relax_section): Use is_elf_hash_table rather than testing creator flavour.
2003-11-27 * elf32-arm.h: Fix comment typos.Kazu Hirata1-8/+8
* elf32-d30v.c: Likewise. * elf32-dlx.c: Likewise. * elf32-h8300.c: Likewise. * elf32-i370.c: Likewise. * elf32-ip2k.c: Likewise. * elf32-m68hc11.c: Likewise. * elf32-mcore.c: Likewise. * elf32-ppc.c: Likewise. * elf32-s390.c: Likewise. * elf32-sh.c: Likewise. * elf32-v850.c: Likewise. * elf32-xtensa.c: Likewise. * elf64-alpha.c: Likewise. * elf64-hppa.c: Likewise. * elf64-mips.c: Likewise. * elf64-mmix.c: Likewise. * elf64-ppc.c: Likewise. * elf64-sparc.c: Likewise. * elflink.c: Likewise. * elflink.h: Likewise. * elfn32-mips.c: Likewise. * elfxx-ia64.c: Likewise. * elfxx-mips.c: Likewise.
2003-11-11Fix decision about when a .interp section should existNick Clifton1-1/+1
2003-11-04 * bfd-in.h (_bfd_elf_tls_setup): Declare.Alan Modra1-31/+15
* bfd-in2.h: Regenerate. * elf-bfd.h (struct elf_link_tls_segment): Delete. (struct elf_link_hash_table): Add tls_sec and tls_size. * elf.c (_bfd_elf_link_hash_table_init): Init tls_sec and tls_size. * elflink.c (_bfd_elf_tls_setup): New function. * elflink.h (struct elf_final_link_info): Remove first_tls_sec. (elf_bfd_final_link): Don't set first_tls_sec here. Update code saving tls segment info, round segment size up. (elf_link_output_extsym): Adjust code using tls segment info. (elf_link_input_bfd): Likewise. * elf32-i386.c (dtpoff_base, tpoff): Likewise. * elf32-s390.c (dtpoff_base, tpoff): Likewise. * elf32-sh.c (dtpoff_base, tpoff): Likewise. * elf32-sparc.c (dtpoff_base, tpoff): Likewise. * elf64-s390.c (dtpoff_base, tpoff): Likewise. * elf64-x86-64.c (dtpoff_base, tpoff): Likewise. * elfxx-ia64.c (elfNN_ia64_tprel_base): Likewise. (elfNN_ia64_dtprel_base): Likewise. * elf64-alpha.c (alpha_get_dtprel_base): Likewise. (alpha_get_tprel_base): Likewise. (struct alpha_relax_info): Remove tls_segment. (elf64_alpha_relax_got_load): Adjust invocation of alpha_get_dtprel_base and alpha_get_tprel_base. (elf64_alpha_relax_tls_get_addr): Likewise. (elf64_alpha_relax_section): Likewise. (elf64_alpha_relocate_section): Likewise. (elf64_alpha_relax_find_tls_segment): Delete. * elf32-ppc.c (struct ppc_elf_link_hash_table): Remove tls_sec. (ppc_elf_tls_setup): Call _bfd_elf_tls_setup. Return section. (ppc_elf_relocate_section): Adjust to use elf.tls_sec. * elf32-ppc.h (ppc_elf_tls_setup): Update. * elf64-ppc.c (struct ppc_link_hash_table): Remove tls_sec. (ppc64_elf_tls_setup): Call _bfd_elf_tls_setup. Return section. (ppc64_elf_tls_optimize): Adjust to use elf.tls_sec. (ppc64_elf_relocate_section): Likewise. * elf64-ppc.h (ppc64_elf_tls_setup): Update. * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Call _bfd_elf_tls_setup.
2003-10-24bfd/H.J. Lu1-4/+2
2003-10-24 H.J. Lu <hongjiu.lu@intel.com> * elflink.h (NAME(bfd_elf,size_dynamic_sections)): Look up hash table for real symbols. include/ 2003-10-24 H.J. Lu <hongjiu.lu@intel.com> * bfdlink.h (bfd_elf_version_expr): Add "symbol" and remove "wildcard". ld/ 2003-10-24 H.J. Lu <hongjiu.lu@intel.com> * ldlang.c (lang_vers_match): Check "symbol" instead of "wildcard" and "pattern". Fix a typo. (lang_finalize_version_expr_head): Likewise. (lang_register_vers_node): Likewise. (realsymbol): New function. (lang_new_vers_pattern): Set "symbol" and remove "wildcard". * ldlex.l (V_IDENTIFIER): Allow '\\'.
2003-10-22bfd/Jakub Jelinek1-3/+5
* elflink.c (_bfd_elf_export_symbol): Adjust for globals and locals field changes. (_bfd_elf_link_assign_sym_version): Likewise. * elflink.h (size_dynamic_sections): Likewise. include/ * bfdlink.h (struct bfd_elf_version_expr): Remove match field. Add wildcard and mask fields. (BFD_ELF_VERSION_C_TYPE): Define. (BFD_ELF_VERSION_CXX_TYPE): Likewise. (BFD_ELF_VERSION_JAVA_TYPE): Likewise. (struct bfd_elf_version_expr_head): New. (struct bfd_elf_version_tree): Add match field. Change type of globals and locals fields to struct bfd_elf_version_expr_head. ld/ * ldlang.c: Include hashtab.h. (lang_vers_match_lang_c, lang_vers_match_lang_cplusplus, lang_vers_match_lang_java): Remove. (lang_vers_match): New function. (lang_new_vers_pattern): Initialize wildcard and mask fields, don't initialize match. (lang_new_vers_node): Use xcalloc. Adjust for globals and locals field type changes. Set match field. (version_expr_head_hash, version_expr_head_eq): New functions. (lang_finalize_version_expr_head): New function. (lang_register_vers_node): Call lang_finalize_version_expr_head. Search in hash table if not wildcard when looking for duplicates. * emultempl/ppc64elf.em (new_vers_pattern): Don't bother with duplicate checking. Initialize all fields of dot_entry from entry with the exception of pattern and next.
2003-10-162003-10-16 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu1-2/+1
* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Also warn undefined patterns with '*'.
2003-10-14 * elf-bfd.h (struct elf_backend_data): New function pointer memberKaz Kojima1-0/+4
elf_backend_merge_symbol_attribute. * elflink.h (elf_link_add_object_symbols): Adjust call to elf_backend_merge_symbol_attribute if the backend defined it. * elfxx-target.h (elf_backend_merge_symbol_attribute): New macro. (elfNN_bed): Add that to the initializer.
2003-10-07bfd/Changelog:Nathan Sidwell1-20/+27
* libbfd-in.h (_bfd_link_section_stabs): Add string offset parameter. * cofflink.c (coff_link_add_symbols): Deal with split stab sections. * elflink.h (elf_link_add_object_symbols): Deal with split stab sections. * stabs.c (_bfd_link_section_stabs): Add string offset parameter. * libbfd.h: Regenerated. ld/ChangeLog: * ldwrite.c (unsplittable_name): New. (clone_section): Strip existing numeric suffix. Only truncate names for coff targets. (split_sections): Use unsplittable_name. binutils/ChangeLog: * objdump.c (read_section_stabs): Just read one section, return pointer to it. Add size parameter. (print_section_stabs): Add string offset parameter. Adjust. (struct stab_section_names): Add string offset member. (find_stabs_sections): Correct check for split section suffix, adjust read_section_stabs and print_section_stabs calls. (dump_stabs_section): Clear string_offset, free string table.
2003-08-23 * elflink.h (elf_link_add_object_symbols): Don't crash on NULL owner.Alan Modra1-1/+2
2003-08-20Better handking for unresolved symbolsNick Clifton1-16/+10
2003-08-07 * elfxx-target.h: Remove PTR cast.Alan Modra1-17/+18
* targets.c (bfd_target): Make backend_data const void *. * elf-bfd.h: Constify all occurrences of struct elf_backend_data. * elf-m10300.c: Likewise. * elf.c: Likewise. * elf32-hppa.c: Likewise. * elf32-i386.c: Likewise. * elf32-m68hc1x.c: Likewise. * elf32-ppc.c: Likewise. * elf32-s390.c: Likewise. * elf32-sh.c: Likewise. * elf32-sh64.c: Likewise. * elf32-sparc.c: Likewise. * elf32-xtensa.c: Likewise. * elf64-mips.c: Likewise. * elf64-ppc.c: Likewise. * elf64-s390.c: Likewise. * elf64-sh64.c: Likewise. * elf64-sparc.c: Likewise. * elf64-x86-64.c: Likewise. * elfcode.h: Likewise. * elfcore.h: Likewise. * elflink.c: Likewise. * elflink.h: Likewise. * elfxx-ia64.c: Likewise. * elfxx-mips.c: Likewise. * elfxx-mips.h: Likewise. * elf.c (prep_headers): Remove useless check for null backend_data. * bfd-in2.h: Regenerate.
2003-08-04Prefix .gnu.warning section messages with "warning: ".Nick Clifton1-3/+7
2003-08-04 * elfcode.h: Convert to C90, remove unneeded casts and prototypes.Alan Modra1-391/+246
* elfcore.h: Likewise. * elflink.c: Likewise. * elflink.h: Likewise. * elf.c (sym_is_global): Remove INLINE. (align_file_position): Replace INLINE with inline. * elfcode.h (elf_swap_dyn_in, elf_swap_dyn_out): Remove INLINE. (elf_file_p): Replace INLINE with inline.
2003-07-10 * elf64-ppc.c (bfd_elf64_mkobject): Define.Alan Modra1-15/+14
(struct ppc64_elf_obj_tdata): New. (ppc64_elf_tdata, ppc64_tlsld_got): Define. (ppc64_elf_mkobject): New function. (struct got_entry): Add "owner". Move "tls_type". (struct ppc_link_hash_table): Delete "relgot", "tlsld_got". (ppc64_elf_init_stub_bfd): New function. (create_got_section): Create header .got in dynobj. Create .got and .rela.got in each bfd. Stash pointers in ppc64_elf_obj_tdata. (ppc64_elf_create_dynamic_sections): Don't call create_got_section. Look for dynobj .got, and test it. (ppc64_elf_copy_indirect_symbol): Adjust for changed got. (update_local_sym_info): Likewise. (ppc64_elf_check_relocs): Likewise. (ppc64_elf_gc_sweep_hook): Likewise. (ppc64_elf_tls_optimize): Likewise. (allocate_dynrelocs): Likewise. (ppc64_elf_size_dynamic_sections): Likewise. (ppc64_elf_relocate_section): Likewise. (ppc64_elf_next_toc_section): Update comment. (toc_adjusting_stub_needed): Remove unneeded cast. (ppc64_elf_build_stubs): Check for stub sections in stub bfd by testing section flags. (ppc64_elf_build_stubs): Likewise. (ppc64_elf_size_stubs): Likewise. Remove stub_bfd param. (ppc64_elf_finish_dynamic_sections): Write out got sections. (func_desc_adjust): Copy over dynamic info for undef weaks. * elf64-ppc.h (ppc64_elf_init_stub_bfd): Declare. (ppc64_elf_size_stubs): Update prototype. * elflink.h (elf_link_sort_relocs): Use link_orders to find reldyn input sections rather than scanning dynobj.
2003-07-04 * elf-bfd.h (_bfd_elf_create_linker_section) Don't declare.Alan Modra1-258/+0
(_bfd_elf_find_pointer_linker_section): Likewise. (bfd_elf32_create_pointer_linker_section): Likewise. (bfd_elf32_finish_pointer_linker_section): Likewise. (bfd_elf64_create_pointer_linker_section): Likewise. (bfd_elf64_finish_pointer_linker_section): Likewise. (_bfd_elf_make_linker_section_rela): Likewise. * elfcode.h (elf_create_pointer_linker_section): Don't define. (elf_finish_pointer_linker_section): Likewise. * elflink.c (_bfd_elf_make_linker_section_rela): Delete. (_bfd_elf_create_linker_section): Move this function.. (_bfd_elf_find_pointer_linker_section): ..and this.. * elflink.h (elf_create_pointer_linker_section): ..and this.. (elf_finish_pointer_linker_section): ..and this.. * elf32-ppc.c: ..to here, renaming to the following, and adjusting calls. (elf_create_linker_section): Convert to C90, tidy. (elf_find_pointer_linker_section): Likewise. (elf_create_pointer_linker_section): Likewise. (elf_finish_pointer_linker_section): Likewise. * elf32-i370.c: Delete #if 0 code.
2003-06-25Correct spelling of "relocatable".Alan Modra1-35/+35
2003-06-232003-06-23 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu1-2/+2
* elflink.h (elf_link_input_bfd): Check raw size when using kept_section to preserve debug information discarded by linkonce.
2003-06-18 * elflink.h (elf_gc_record_vtentry): Revert last change. CorrectAlan Modra1-8/+9
size calculation from addend. Round size up.
2003-06-18bfd/H.J. Lu1-9/+27
2003-06-17 H.J. Lu <hongjiu.lu@intel.com> * section.c (struct sec): Put back kept_section. (STD_SECTION): Put back kept_section initialization. * bfd-in2.h: Regenerate. * elflink.h (elf_link_input_bfd): Also check discarded linkonce sections for relocateable output. Use kept_section to preserve debug information discarded by linkonce. ld/ 2003-06-17 H.J. Lu <hongjiu.lu@intel.com> * ldlang.c (section_already_linked): Put back assignment of kept_section.
2003-06-17(elf_gc_record_vtentry): Allocate an extra element in the vtable_entries_usedNick Clifton1-3/+4
array to allow for the accessing the largest element.
2003-06-03binutils/Jakub Jelinek1-0/+37
* readelf.c (get_segment_type): Handle PT_GNU_STACK. bfd/ * elf.c (_bfd_elf_print_private_bfd_data): Handle PT_GNU_STACK. (bfd_section_from_phdr): Likewise. (map_sections_to_segments): Create PT_GNU_STACK segment header. (get_program_header_size): Count with PT_GNU_STACK. * elf-bfd.h (struct elf_obj_tdata): Add stack_flags. * elflink.h (bfd_elfNN_size_dynamic_sections): Set stack_flags. include/ * bfdlink.h (struct bfd_link_info): Add execstack and noexecstack. * elf/common.h (PT_GNU_STACK): Define. ld/ * ldgram.y (phdr_type): Grok PT_GNU_STACK. * emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Add -z execstack and -z noexecstack. (gld${EMULATION_NAME}_list_options): Likewise. * scripttempl/elf.sc: If not -r, discard .note.GNU-stack section.
2003-06-03bfd/H.J. Lu1-26/+21
2003-06-03 H.J. Lu <hongjiu.lu@intel.com> * elflink.h (elf_link_input_bfd): Call linker error_handler for discarded definitions. include/ 2003-06-03 H.J. Lu <hongjiu.lu@intel.com> * bfdlink.h (LD_DEFINITION_IN_DISCARDED_SECTION): New. ld/ 2003-06-03 H.J. Lu <hongjiu.lu@intel.com> * ldmisc.c: Include "bfdlink.h". (error_handler): Handle LD_DEFINITION_IN_DISCARDED_SECTION and -LD_DEFINITION_IN_DISCARDED_SECTION. * Makefile.am: Rebuild dependency. * Makefile.in: Regenerated. ld/testsuite/ 2003-06-03 H.J. Lu <hongjiu.lu@intel.com> * ld-discard/extern.d: Updated. * ld-discard/start.d: Likewise. * ld-discard/static.d: Likewise.
2003-05-30bfd/Jakub Jelinek1-5/+6
* elflink.h (elf_link_add_object_symbols): Use !info->executable instead of info->shared where appropriate. (bfd_elfNN_size_dynamic_sections, elf_link_output_extsym): Likewise. * elflink.c (_bfd_elf_create_got_section): Likewise. (_bfd_elf_link_create_dynamic_sections): Likewise. (_bfd_elf_link_assign_sym_version): Likewise. * elf32-i386.c (elf_i386_size_dynamic_sections): Create .interp section and DT_DEBUG dynamic tag even for position independent executables. * elf32-ppc.c (ppc_elf_size_dynamic_sections): Likewise. * elf32-s390.c (elf_s390_size_dynamic_sections: Likewise. * elf64-ppc.c (ppc64_elf_size_dynamic_sections: Likewise. * elf64-s390.c (elf_s390_size_dynamic_sections: Likewise. * elf64-x86-64.c (elf64_x86_64_size_dynamic_sections: Likewise. * elfxx-ia64.c (elfNN_ia64_size_dynamic_sections: Likewise. * elf32-sparc.c (elf32_sparc_size_dynamic_sections: Likewise. * elf64-alpha.c (elf64_alpha_size_dynamic_sections: Likewise. * elf64-sparc.c (sparc64_elf_size_dynamic_sections: Likewise. include/ * bfdlink.h (struct bfd_link_info): Add pie and executable bits. ld/ * lexsup.c (OPTION_PIE): Define. (ld_options): Add -pie and --pic-executable options. (parse_args): Handle OPTION_PIE. * ldmain.c (main): Initialize link_info.pie and link_info.executable. * genscripts.sh: Generate PIE scripts. * ld.texinfo: Document -pie and --pic-executable options. * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): (gld${EMULATION_NAME}_place_orphan): Likewise. (gld${EMULATION_NAME}_get_script): Include PIE scripts. * scripttempl/elf.sc: In PIE scripts set . the same way as in shared scripts. * emulparams/elf_i386.sh (GENERATE_PIE_SCRIPT): Set to yes. * emulparams/elf64_ia64.sh (GENERATE_PIE_SCRIPT): Likewise. * emulparams/elf32ppc.sh (GENERATE_PIE_SCRIPT): Likewise. * emulparams/elf64ppc.sh (GENERATE_PIE_SCRIPT): Likewise. * emulparams/elf_x86_64.sh (GENERATE_PIE_SCRIPT): Likewise. * emulparams/elf_s390.sh (GENERATE_PIE_SCRIPT): Likewise. * emulparams/elf32_sparc.sh (GENERATE_PIE_SCRIPT): Likewise. * emulparams/elf64_sparc.sh (GENERATE_PIE_SCRIPT): Likewise. * emulparams/elf64alpha.sh (GENERATE_PIE_SCRIPT): Likewise. * emulparams/elf64_s390.sh (GENERATE_PIE_SCRIPT): Likewise. * emulparams/elf_i386.sh (GENERATE_PIE_SCRIPT): Likewise.
2003-05-20bfd/H.J. Lu1-1/+1
2003-05-20 Jakub Jelinek <jakub@redhat.com> * elflink.h (elf_link_output_extsym): Only issue error about != STV_DEFAULT symbols if they are bfd_link_hash_undefined. 2003-05-20 H.J. Lu <hongjiu.lu@intel.com> * elflink.c (_bfd_elf_merge_symbol): Check ELF_LINK_DYNAMIC_DEF when removing the old definition for symbols with non-default visibility. ld/testsuite/ 2003-05-20 Jakub Jelinek <jakub@redhat.com> * ld-elfvsb/common.c: New file. * ld-elfvsb/elfvsb.exp: Add common. 2003-05-20 H.J. Lu <hongjiu.lu@intel.com> * ld-elfvsb/sh3.c: New file. * ld-elfvsb/test.c: Likewise. * ld-elfvsb/elfvsb.exp: Add new weak hidden symbol tests.
2003-05-17 * elf32-i386.c (elf_i386_adjust_dynamic_symbol): Use SYMBOL_CALLS_LOCALAlan Modra1-1/+1
to trim plt entries. Move undefweak non-default visibility test.. (allocate_dynrelocs): ..from here. * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Don't test dynamic_sections_created here. Update comment. Move undefweak non-default visibility test.. (allocate_dynrelocs): ..from here. Fix comment. * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Use SYMBOL_CALLS_LOCAL to trim plt entries. Move undefweak non-default visibility test.. (allocate_dynrelocs): ..from here. Fix comment. * elflink.h (elf_link_output_extsym): Compare ELF_ST_VISIBILITY with STV_DEFAULT rather than comparing with zero. * elflink.c (_bfd_elf_merge_symbol): Likewise. (_bfd_elf_fix_symbol_flags): Likewise. Format comment.
2003-05-152003-05-14 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu1-2/+4
* elflink.h (elf_link_check_versioned_symbol): Also allow the base version.
2003-05-09 * elflink.c (_bfd_elf_link_create_dynamic_sections): Move fromAlan Modra1-2135/+60
elflink.h. Replace LOG_FILE_ALIGN with bed->s->log_file_align. (_bfd_elf_create_dynamic_sections): Use bed->s->log_file_align. (bfd_elf_record_link_assignment): Move from elflink.h. (_bfd_elf_merge_symbol): Likewise. (_bfd_elf_add_default_symbol): Likewise. (_bfd_elf_export_symbol): Likewise. (_bfd_elf_link_find_version_dependencies): Likewise. (_bfd_elf_link_assign_sym_version): Likewise. (_bfd_elf_link_read_relocs): Likewise. (_bfd_elf_link_size_reloc_section): Likewise. (_bfd_elf_fix_symbol_flags): Likewise. (_bfd_elf_adjust_dynamic_symbol): Likewise. (_bfd_elf_link_sec_merge_syms): Likewise. (elf_link_read_relocs_from_section): Likewise. Use bed->s->sizeof_rel and bed->s->sizeof_rela. (_bfd_elf_link_output_relocs): Likewise. * elf-bfd.h (struct elf_size_info): Rename file_align to log_file_align. (struct elf_info_failed): Move from elflink.h. (struct elf_assign_sym_version_info): Likewise. (struct elf_find_verdep_info): Likewise. (_bfd_elf_create_dynamic_sections): Delete duplicate declaration. (_bfd_elf_merge_symbol, _bfd_elf_add_default_symbol, _bfd_elf_export_symbol, _bfd_elf_link_find_version_dependencies, _bfd_elf_link_assign_sym_version, _bfd_elf_link_create_dynamic_sections, _bfd_elf_link_read_relocs, _bfd_elf_link_size_reloc_section, _bfd_elf_link_output_relocs, _bfd_elf_fix_symbol_flags, _bfd_elf_adjust_dynamic_symbol, _bfd_elf_link_sec_merge_syms): Declare. (bfd_elf32_link_create_dynamic_sections): Don't declare. (_bfd_elf32_link_read_relocs): Likewise. (bfd_elf64_link_create_dynamic_sections): Likewise. (_bfd_elf64_link_read_relocs): Likewise. * elflink.h: Move lots o' stuff elsewhere. * bfd-in.h (bfd_elf32_record_link_assignment): Don't declare. (bfd_elf64_record_link_assignment): Likewise. (bfd_elf_record_link_assignment): Declare. * bfd-in2.h: Regenerate. * elfcode.h (elf_link_create_dynamic_sections): Don't declare. (NAME(_bfd_elf,size_info)): Adjust for log_file_align. * elf.c (_bfd_elf_init_reloc_shdr): Adjust for bed->s->log_file_align. (assign_file_positions_for_segments): Likewise. (assign_file_positions_except_relocs): Likewise. (swap_out_syms, elfcore_write_note): Likewise. * elf-m10200.c: Adjust for changed function names. * elf-m10300.c: Likewise. * elf32-arm.h: Likewise. * elf32-h8300.c: Likewise. * elf32-hppa.c: Likewise. * elf32-ip2k.c: Likewise. * elf32-m32r.c: Likewise. * elf32-m68hc11.c: Likewise. * elf32-m68hc1x.c: Likewise. * elf32-m68k.c: Likewise. * elf32-mips.c: Likewise. * elf32-ppc.c: Likewise. * elf32-sh.c: Likewise. * elf32-v850.c: Likewise. * elf32-xtensa.c: Likewise. * elf64-alpha.c: Likewise. * elf64-hppa.c: Likewise. * elf64-mmix.c: Likewise. * elf64-ppc.c: Likewise. * elf64-sh64.c: Likewise. * elfxx-ia64.c: Likewise. * elfxx-mips.c: Likewise. (MIPS_ELF_LOG_FILE_ALIGN): Use log_file_align. * elf64-alpha.c (alpha_elf_size_info): Adjust for log_file_align. * elf64-hppa.c (hppa64_elf_size_info): Likewise. * elf64-mips.c (mips_elf64_size_info): Likewise. * elf64-s390.c (s390_elf64_size_info): Likewise. * elf64-sparc.c (sparc64_elf_size_info): Likewise.
2003-05-082003-05-08 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu1-1/+2
* elflink.h (elf_add_default_symbol): After skipping the unversioned symbol, go to non-default one.
2003-05-082003-05-07 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu1-7/+32
* elflink.h (elf_link_check_versioned_symbol): Also handle the case that a DSO references a hidden symbol which may be satisfied by a versioned symbol in another DSO. (elf_link_output_extsym): Check versioned definition for hidden symbol referenced by a DSO.
2003-05-05bfd/H.J. Lu1-1/+13
2003-05-04 H.J. Lu <hjl@gnu.org> * elf32-i386.c (allocate_dynrelocs): Don't allocate dynamic relocation entries for weak undefined symbols with non-default visibility. (elf_i386_relocate_section): Initialize the GOT entries and skip R_386_32/R_386_PC32 for weak undefined symbols with non-default visibility. * elfxx-ia64.c (allocate_fptr): Don't allocate function descriptors for weak undefined symbols with non-default visibility. (allocate_dynrel_entries): Don't allocate relocation entries for symbols resolved to 0. (set_got_entry): Don't install dynamic relocation for weak undefined symbols with non-default visibility. (set_pltoff_entry): Likewise. * elflink.h (elf_fix_symbol_flags): Hide weak undefined symbols with non-default visibility. (elf_link_output_extsym): Don't make weak undefined symbols with non-default visibility dynamic. ld/testsuite/ 2003-05-04 H.J. Lu <hjl@gnu.org> * ld-elfvsb/main.c: Updated. * ld-elfvsb/sh1.c: Likewise.
2003-05-05bfd/H.J. Lu1-15/+62
2003-05-04 H.J. Lu <hjl@gnu.org> * elflink.h (elf_merge_symbol): Correctly handle weak definiton. ld/testsuite/ 2003-05-04 H.J. Lu <hjl@gnu.org> * ld-elfvers/vers18.dsym: Updated for weak definiton change. * ld-elfvers/vers18.ver: Likewise. * ld-elfvers/vers19.ver: Likewise. * ld-elfweak/elfweak.exp: Remove xfail.
2003-05-052003-05-04 H.J. Lu <hjl@gnu.org>H.J. Lu1-4/+21
* elflink.h (elf_merge_symbol): Don't record a hidden/internal symbol dynamic. Check indirection when removing the old definition for symbols with non-default visibility. (elf_add_default_symbol): Skip when told by elf_merge_symbol.
2003-04-28bfd/H.J. Lu1-1/+3
2003-04-28 H.J. Lu <hjl@gnu.org> * elflink.h (elf_merge_symbol): Call elf_backend_copy_indirect_symbol to copy any information related to dynamic linking when we flip the indirection. ld/testsuite/ 2003-04-28 H.J. Lu <hjl@gnu.org> * ld-elfvers/vers.exp (picflag): Set PIC flag for compiler. (build_vers_lib): Support PIC. (build_vers_lib_no_pic): New. Change all calls to build_vers_lib to build_vers_lib_no_pic. (build_vers_lib_pic): New. Add tests vers26a, vers26b1, vers26b2 and vers26b3 for versioned definition vs. normal definition in different files. * ld-elfvers/vers26a.c: New file. * ld-elfvers/vers26a.dsym: Likewise. * ld-elfvers/vers26a.map: Likewise. * ld-elfvers/vers26a.ver: Likewise. * ld-elfvers/vers26b.c: Likewise. * ld-elfvers/vers26b.dsym: New empty file. * ld-elfvers/vers26b.ver: Likewise.
2003-04-28bfd/H.J. Lu1-13/+110
2003-04-27 H.J. Lu <hjl@gnu.org> * elf-bfd.h (ELF_LINK_DYNAMIC_DEF): New. (ELF_LINK_DYNAMIC_WEAK): New. * elflink.h (elf_merge_symbol): Add one argument to indicate if a symbol should be skipped. Ignore definitions in dynamic objects for symbols with non-default visibility. (elf_add_default_symbol): Adjusted. (elf_link_add_object_symbols): Check if a symbol should be skipped. Don't merge the visibility field with the one from a dynamic object. (elf_link_check_versioned_symbol): Use undef_bfd. (elf_link_output_extsym): Warn if a forced local symbol is referenced from dynamic objects. Make non-weak undefined symbol with non-default visibility a fatal error. ld/testsuite/ 2003-04-27 H.J. Lu <hjl@gnu.org> * ld-elfvsb/elfvsb.dat: Updated. * ld-elfvsb/elfvsb.exp: Likewise. * ld-elfvsb/main.c: Likewise. * ld-elfvsb/sh1.c: Likewise. * ld-elfvsb/sh2.c: Likewise.
2003-04-252003-04-25 Alan Modra <amodra@bigpond.net.au>H.J. Lu1-15/+30
* elflink.h (elf_merge_symbol): When we find a regular definition for an indirect symbol, flip the indirection so that the old direct symbol now points to the new definition.
2003-04-15Properly report filename for alignment reduction.Nick Clifton1-6/+20
Add test for alignment reduction.
2003-04-14Maintain maximum alignment for common symbols. Warn reducing alignment forNick Clifton1-7/+62
common symbols. Report old filename when symbol size changes.
2003-03-31Fix memory leaksNick Clifton1-0/+1
2003-03-292003-03-28 H.J. Lu <hjl@gnu.org>H.J. Lu1-2/+8
* elflink.h (elf_link_add_object_symbols): Correctly combine visibilities.
2003-03-062003-03-06 Jakub Jelinek <jakub@redhat.com>Andrew Haley1-3/+5
Andrew Haley <aph@redhat.com> * elflink.h (elf_bfd_discard_info): Don't process eh frames if output is relocateable.
2003-02-25 * elflink.h (elf_link_read_relocs_from_section): Don't abort withAlan Modra1-1/+4
wrong reloc sizes.
2003-02-25 * elflink.h (elf_bfd_final_link): Apportion reloc counts to rel_hdrAlan Modra1-61/+59
and rel_hdr2 when initially counting input relocs rather than after creating output reloc sections.
2003-02-17Fix the behaviour of --allow-shlib-undefined, so that it does what it claimsNick Clifton1-14/+13
to do. Add an inverse switch. Update the documentation.
2003-02-13bfd/Jakub Jelinek1-0/+70
* elflink.h (elf_link_add_object_symbols): Handle .symver x, x@FOO. ld/testsuite/ * ld-shared/shared.exp: Run on s390*-*-linux* and x86_64-*-linux* too. xfail tests linking non-pic code into shared libs on x86_64-*-linux*. * ld-elfvsb/elfvsb.exp: Likewise. * ld-elfvers/vers.exp: Likewise. Add vers24a, vers24b and vers24c tests. * ld-elfvers/vers3.ver: Allow VERS_2.0 to come before GLIBC_* version. * ld-elfvers/vers19.ver: Likewise. * ld-elfvers/vers24a.c: New test. * ld-elfvers/vers24b.c: New test. * ld-elfvers/vers24c.c: New test. * ld-elfvers/vers24.map: New test. * ld-elfvers/vers24.rd: New test. * lib/ld-lib.exp (run_ld_link_tests): Add optional 7th argument cflags. If source files have .c extension, compile them first.
2003-02-04 * elf-bfd.h (struct got_entry, struct plt_entry): Forward declare.Alan Modra1-7/+7
(struct elf_link_hash_entry): Add "glist" and "plist" fields to "got" union, and declare as gotplt_union. Use gotplt_uinion for "plt" field. (struct elf_link_hash_table): Make "init_refcount" a gotplt_union. Add "init_offset" field. (struct elf_obj_tdata <local_got>): Add "struct got_entry **" to union. (elf_local_got_ents): Declare. * elf.c (_bfd_elf_link_hash_newfunc): Adjust initialization of "got" and "plt". (_bfd_elf_link_hash_hide_symbol): Use "init_offset". (_bfd_elf_link_hash_table_init): Set "init_offset". * elflink.h (NAME(bfd_elf,size_dynamic_sections)): Set init_refcount from init_offset. (elf_adjust_dynamic_symbol): Set plt and got offsets using init_offset. * elf.c (bfd_elf_local_sym_name): Split out from.. (group_signature): ..here. * elf-bfd.h (bfd_elf_local_sym_name): Declare.
2003-02-04bfdAlan Modra1-9/+9
* elf-bfd.h (enum elf_link_info_type): Remove. (struct bfd_elf_section_data): Move sec_info_type, use_rela_p fields to struct sec. Remove linkonce_p field. (elf_linkonce_p): Delete. (elf_discarded_section): Update for sec_info_type change. * section.c (struct sec): Add sec_info_type, use_rela_p, has_tls_reloc, flag11, flag12, flag13, flag14, flag15, flag16, flag20, flag24. (ELF_INFO_TYPE_NONE): Define. (ELF_INFO_TYPE_STABS): Define. (ELF_INFO_TYPE_MERGE): Define. (ELF_INFO_TYPE_EH_FRAME): Define. (ELF_INFO_TYPE_JUST_SYMS): Define. (STD_SECTION): Update struct sec initializer. * ecoff.c (bfd_debug_section): Likewise. * elf.c: Likewise. Update occurrences of sec_info_type and use_rela_p. * elflink.h: Likewise. * elf-eh-frame.c: Likewise. * elf64-alpha.c: Likewise. * elfxx-ia64.c: Likewise. * elfxx-mips.c: Likewise. * bfd-in2.h: Regenerate. * elf32-sparc.c (sec_do_relax): Use elf_section_data macro rather than referring to used_by_bfd. * elf64-sparc.c (sec_do_relax): Likewise. * elf64-mmix.c (mmix_elf_section_data): Likewise. * elfxx-mips.c (mips_elf_section_data): Likewise. * ieee.c (ieee_slurp_section_data): Use ieee_per_section macro. (ieee_get_section_contents): Likewise. (ieee_new_section_hook): Formatting. (ieee_canonicalize_reloc): Remove commented out code. * mmo.c (mmo_section_data): Define. Use throughout file. * oasys.c (oasys_get_section_contents): Use oasys_per_section macro. gas * config/obj-elf.c (obj_elf_change_section): Set SEC_LINK_ONCE and SEC_LINK_DUPLICATES_DISCARD directly rather than using elf_linkonce_p.
2002-12-23 * elflink.h (elf_link_output_extsym): Heed strip_discarded.Alan Modra1-5/+10