Age | Commit message (Collapse) | Author | Files | Lines |
|
* linker.c (bfd_section_already_linked_table_insert): Change
return type from void to boolean. Return FALSE on failure.
(_bfd_generic_section_already_linked): Test return value of
bfd_section_already_linked_table_insert, call fatal on error.
* elflink.c (_bfd_elf_section_already_linked): Test return value
of bfd_section_already_linked_table_insert, call fatal on error.
* libbfd-in.h (bfd_section_already_linked_table_insert): Update
return type to bfd_boolean.
* libbfd.h: Regenerate.
|
|
check on dynobj. Remove bed shadow.
|
|
* elflink.c (bfd_elf_final_link): Avoid redundant frees -- return
on bfd_malloc error rather than goto error_return.
|
|
_bfd_elf_merge_sections, _bfd_elf_link_hash_newfunc,
_bfd_elf_link_hash_copy_indirect, _bfd_elf_link_hash_hide_symbol,
_bfd_elf_link_hash_table_init, _bfd_elf_link_hash_table_create,
bfd_elf_set_dt_needed_name, bfd_elf_get_dyn_lib_class,
bfd_elf_set_dyn_lib_class, bfd_elf_get_needed_list,
bfd_elf_get_runpath_list, bfd_elf_get_dt_soname,
bfd_elf_get_bfd_needed_list, struct elf_symbuf_symbol,
struct elf_symbuf_head, struct elf_symbol, elf_sort_elf_symbol,
elf_sym_name_compare, elf_create_symbuf,
bfd_elf_match_symbols_in_sections,
_bfd_elf_match_sections_by_type): Move to here..
* elf.c: ..from here.
|
|
* elflink.c (_bfd_elf_fix_symbol_flags): Only assert the type
of weakdef->root.type if weakdef has no regular definition.
ld/testsuite/
* ld-elf/weak-dyn-1a.s, ld-elf/weak-dyn-1b.s, ld-elf/weak-dyn-1.ld,
* ld-elf/weak-dyn-1.rd: New test.
* ld-elf/elf.exp: Run it.
|
|
* elflink.c (bfd_elf_record_link_assignment): Handle indirect
symbol.
(_bfd_elf_merge_symbol): Properly update normal symbol when
overriding the versioned symbol from a dynamic library.
|
|
error_free_vers on "notice" failure.
|
|
|
|
* elf-attrs.c: New.
* Makefile.am (BFD32_BACKENDS): Add elf-attrs.lo.
(BFD32_BACKENDS_CFILES): Add elf-attrs.c.
(elf-attrs.lo): Generate dependencies.
* Makefile.in: Regenerate.
* configure.in (elf): Add elf-attrs.lo.
* configure: Regenerate.
* elf-bfd.h (struct elf_backend_data): Add entries for object
attributes.
(NUM_KNOWN_OBJ_ATTRIBUTES, obj_attribute, obj_attribute_list,
OBJ_ATTR_PROC, OBJ_ATTR_GNU, OBJ_ATTR_FIRST, OBJ_ATTR_LAST,
Tag_NULL, Tag_File, Tag_Section, Tag_Symbol, Tag_compatibility):
New.
(struct elf_obj_tdata): Add entries for object attributes.
(elf_known_obj_attributes, elf_other_obj_attributes,
elf_known_obj_attributes_proc, elf_other_obj_attributes_proc):
New.
(bfd_elf_obj_attr_size, bfd_elf_set_obj_attr_contents,
bfd_elf_get_obj_attr_int, bfd_elf_add_obj_attr_int,
bfd_elf_add_proc_attr_int, bfd_elf_add_obj_attr_string,
bfd_elf_add_proc_attr_string, bfd_elf_add_obj_attr_compat,
bfd_elf_add_proc_attr_compat, _bfd_elf_attr_strdup,
_bfd_elf_copy_obj_attributes, _bfd_elf_obj_attrs_arg_type,
_bfd_elf_parse_attributes, _bfd_elf_merge_object_attributes): New.
* elf.c (_bfd_elf_copy_private_bfd_data): Copy object attributes.
(bfd_section_from_shdr): Handle attributes sections.
* elflink.c (bfd_elf_final_link): Handle attributes sections.
* elfxx-target.h (elf_backend_obj_attrs_vendor,
elf_backend_obj_attrs_section, elf_backend_obj_attrs_arg_type,
elf_backend_obj_attrs_section_type): New.
(elfNN_bed): Update.
* elf32-arm.c (NUM_KNOWN_ATTRIBUTES, aeabi_attribute,
aeabi_attribute_list): Remove.
(struct elf32_arm_obj_tdata): Remove object attributes fields.
(check_use_blx, bfd_elf32_arm_set_vfp11_fix, using_thumb2,
elf32_arm_copy_private_bfd_data, elf32_arm_merge_eabi_attributes):
Update for new object attributes interfaces.
(uleb128_size, is_default_attr, eabi_attr_size,
elf32_arm_eabi_attr_size, write_uleb128, write_eabi_attribute,
elf32_arm_set_eabi_attr_contents, elf32_arm_bfd_final_link,
elf32_arm_new_eabi_attr, elf32_arm_get_eabi_attr_int,
elf32_arm_add_eabi_attr_int, attr_strdup,
elf32_arm_add_eabi_attr_string, elf32_arm_add_eabi_attr_compat,
copy_eabi_attributes, elf32_arm_parse_attributes): Remove. Moved
to generic code in elf-attrs.c.
(elf32_arm_obj_attrs_arg_type): New.
(elf32_arm_fake_sections): Do not handle .ARM.attributes.
(elf32_arm_section_from_shdr): Do not handle SHT_ARM_ATTRIBUTES.
(bfd_elf32_bfd_final_link): Remove.
(elf_backend_obj_attrs_vendor, elf_backend_obj_attrs_section,
elf_backend_obj_attrs_arg_type,
elf_backend_obj_attrs_section_type): New.
* elf32-bfin.c (bfin_elf_copy_private_bfd_data): Copy object
attributes.
* elf32-frv.c (frv_elf_copy_private_bfd_data): Likewise.
* elf32-iq2000.c (iq2000_elf_copy_private_bfd_data): Likewise.
* elf32-mep.c (mep_elf_copy_private_bfd_data): Likewise.
* elf32-mt.c (mt_elf_copy_private_bfd_data): Likewise.
* elf32-sh.c (sh_elf_copy_private_data): Likewise.
* elf64-sh64.c (sh_elf64_copy_private_data_internal): Likewise.
binutils:
* readelf.c (display_gnu_attribute): New.
(process_arm_specific): Rearrange as process_attributes.
(process_arm_specific): Replace by wrapper of process_attributes.
gas:
* as.c (create_obj_attrs_section): New.
(main): Call create_obj_attrs_section for ELF.
* read.c (s_gnu_attribute, skip_whitespace, skip_past_char,
skip_past_comma, s_vendor_attribute): New.
(potable): Add gnu_attribute for ELF.
* read.h (s_vendor_attribute): Declare.
* config/tc-arm.c (s_arm_eabi_attribute): Replace by wrapper
round s_vendor_attribute.
(aeabi_set_public_attributes): Update for new attributes
interfaces.
(arm_md_end): Remove attributes contents setting now done
generically.
include/elf:
* arm.h (elf32_arm_add_eabi_attr_int,
elf32_arm_add_eabi_attr_string, elf32_arm_add_eabi_attr_compat,
elf32_arm_get_eabi_attr_int, elf32_arm_set_eabi_attr_contents,
elf32_arm_eabi_attr_size, Tag_NULL, Tag_File, Tag_Section,
Tag_Symbol, Tag_compatibility): Remove.
* common.h (SHT_GNU_ATTRIBUTES): Define.
ld:
* emulparams/armelf.sh (OTHER_SECTIONS): Remove .ARM.attributes.
(ATTRS_SECTIONS): Define.
* scripttempl/elf.sc, scripttempl/elf32sh-symbian.sc,
scripttempl/elf_chaos.sc, scripttempl/elfi370.sc,
scripttempl/elfxtensa.sc: Handle ATTRS_SECTIONS.
|
|
message for undefined version nodes.
(elf_gc_sweep): Don't warn when zero size sections are
removed.
|
|
Alan Modra <amodra@bigpond.net.au>
* elflink.c (_bfd_elf_adjust_dynamic_copy): Align dynamic bss
section to the minimum alignment.
|
|
Alan Modra <amodra@bigpond.net.au>
PR ld/4504
* elf-bfd.h (_bfd_elf_adjust_dynamic_copy): New.
* elflink.c (_bfd_elf_adjust_dynamic_copy): New.
* elf-m10300.c (_bfd_mn10300_elf_adjust_dynamic_symbol): Call
_bfd_elf_adjust_dynamic_copy to adjust for the copy in dynamic
bss section.
* elf32-arm.c (elf32_arm_adjust_dynamic_symbol): Likewise.
* elf32-cris.c (elf_cris_adjust_dynamic_symbol): Likewise.
* elf32-hppa.c (elf32_hppa_adjust_dynamic_symbol): Likewise.
* elf32-i370.c (i370_elf_adjust_dynamic_symbol): Likewise.
* elf32-i386.c (elf_i386_adjust_dynamic_symbol): Likewise.
* elf32-m32r.c (m32r_elf_adjust_dynamic_symbol): Likewise.
* elf32-m68k.c (elf_m68k_adjust_dynamic_symbol): Likewise.
* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Likewise.
* elf32-s390.c (elf_s390_adjust_dynamic_symbol): Likewise.
* elf32-sh.c (sh_elf_adjust_dynamic_symbol): Likewise.
* elf32-vax.c (elf_vax_adjust_dynamic_symbol): Likewise.
* elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Likewise.
* elf64-s390.c (elf_s390_adjust_dynamic_symbol): Likewise.
* elf64-sh64.c (sh64_elf64_adjust_dynamic_symbol): Likewise.
* elf64-x86-64.c (elf64_x86_64_adjust_dynamic_symbol): Likewise.
* elfxx-mips.c (_bfd_mips_vxworks_adjust_dynamic_symbol): Likewise.
* elfxx-sparc.c (_bfd_sparc_elf_adjust_dynamic_symbol): Likewise.
|
|
* spu.h (R_SPU_PPU32, R_SPU_PPU64): Define.
bfd/
* reloc.c (BFD_RELOC_SPU_PPU32, BFD_RELOC_SPU_PPU64): Define.
* elf-bfd.h (struct elf_backend_data): Change return type of
elf_backend_relocate_section to int.
* elf32-spu.c (elf_howto_table): Add howtos for R_SPU_PPU32 and
R_SPU_PPU64.
(spu_elf_bfd_to_reloc_type): Convert new relocs.
(spu_elf_count_relocs): New function.
(elf_backend_count_relocs): Define.
(spu_elf_relocate_section): Arrange to emit R_SPU_PPU32 and
R_SPU_PPU64 relocs.
* elflink.c (elf_link_input_bfd): Emit relocs if relocate_section
returns 2.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
gas/
* config/tc-spu.c (md_pseudo_table): Add int, long, quad. Call
spu_cons for word.
(md_assemble): Tidy use of insn.flag.
(get_imm): Likewise. Handle uppercase input too.
(spu_cons): New function.
* config/tc-spu.h (tc_fix_adjustable): Don't adjust SPU_PPU relocs.
(TC_FORCE_RELOCATION): Don't resolve them either.
binutils/
* embedspu.sh (find_prog): Prefer prog in same dir as embedspu
over one found on the users path.
(main): Generate .reloc for each R_SPU_PPU* reloc.
|
|
elf_backend_count_relocs.
(bfd_elf_discard_info): Print an error if we can't read syms.
|
|
* elflink.c (elf_link_sort_relocs): Return if both .rela.dyn
and .rel.dyn aren't present.
|
|
are present examine the indirect sections in an attempt to compute the
correct relocation size. If there is any ambiguity, produce an error and
refuse to sort.
|
|
Many files: Include sysdep.h before bfd.h.
* Makefile.am: Run "make dep-am".
* Makefile.in: Regenerate.
binutils/
* bucumm.h: Split off host dependencies to..
* sysdep.h: ..here.
Many files: Include sysdep.h. Remove duplicate headers and reorder.
* Makefile.am: Run "make dep-am".
* Makefile.in: Regenerate.
ld/
Many files: Include sysdep.h first. Remove duplicate headers.
* Makefile.am: Run "make dep-am".
* Makefile.in: Regenerate.
opcodes/
* Makefile.am: Run "make dep-am".
* Makefile.in: Regenerate.
* ns32k-dis.c: Include sysdep.h first.
|
|
bfd/
* elf.c (_bfd_elf_is_function_type): New function.
* elflink.c (_bfd_elf_merge_symbol): Use bed->is_function_type.
(_bfd_elf_dynamic_symbol_p, _bfd_elf_symbol_refs_local_p,
is_global_data_symbol_definition, elf_link_add_object_symbols): Ditto.
* elf-bfd.h (elf_backend_data): Add is_function_type.
(_bfd_elf_is_function_type): Add prototype.
* elfxx-target.h (elf_backend_is_function_type): Add default
definition.
(elfNN_bed): Add elf_backend_is_function_type.
* elf32-arm.c (elf32_arm_is_function_type): New function.
(elf_backend_is_function_type): Define.
ld/testsuite/
* ld-arm/preempt-app.s: New test.
* ld-arm/preempt-app.sym: New.
* ld-arm/arm-elf.exp: Add preempt-app.
|
|
non-elf input bfds.
(bfd_elf_size_dynamic_sections): Don't access elf_section_data
for non-elf input bfds.
|
|
2007-04-05 H.J. Lu <hongjiu.lu@intel.com>
PR ld/4304
* elflink.c (bfd_elf_final_link): Call einfo callback in
bfd_link_info instead of _bfd_error_handler for DT_TEXTREL
warning.
ld/testsuite/
2007-04-05 H.J. Lu <hongjiu.lu@intel.com>
PR ld/4304
* ld-i386/i386.exp: Run "warn1".
* ld-i386/warn1.d: New file.
* ld-i386/warn1.s: Likewise.
|
|
* elflink.c (evaluate_complex_relocation_symbols): Use bfd_vma
for rel->r_info values.
(bfd_elf_perform_complex_relocation): Likewise.
|
|
bfd/
* elf-bfd.h (RELOC_FOR_GLOBAL_SYMBOL): No error on relocatable link.
(elf_discarded_section): Move..
* bfd-in.h: ..to here.
* bfd-in2.h: Regenerate.
* elflink.c (elf_link_input_bfd): Don't zap relocs against symbols
from discarded sections before relocate_section has done its job.
* reloc.c (bfd_generic_get_relocated_section_contents): Handle
relocs against symbols from discarded sections.
* elf-hppa.h (elf_hppa_howto_table): Set size. Set dst_mask on
SECREL32.
(elf_hppa_relocate_section): Handle relocatable link after setting
sec, sym, h etc. for final link. Squash error messages for
relocatable link. Clear section contents for relocs against
symbols in discarded sections, and zero reloc. Remove existing
zero r_symndx code.
* elf-m10200.c (mn10200_elf_relocate_section): Likewise.
* elf-m10300.c (mn10300_elf_relocate_section): Likewise.
* elf32-arm.c (elf32_arm_relocate_section): Likewise.
* elf32-avr.c (elf32_avr_relocate_section): Likewise.
* elf32-bfin.c (bfinfdpic_relocate_section): Likewise.
(bfin_relocate_section): Likewise.
* elf32-cr16c.c (elf32_cr16c_relocate_section): Likewise.
* elf32-cris.c (cris_elf_relocate_section): Likewise.
* elf32-crx.c (elf32_crx_relocate_section): Likewise.
* elf32-d10v.c (elf32_d10v_relocate_section): Likewise.
* elf32-fr30.c (fr30_elf_relocate_section): Likewise.
* elf32-frv.c (elf32_frv_relocate_section): Likewise.
* elf32-h8300.c (elf32_h8_relocate_section): Likewise.
* elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
* elf32-i370.c (i370_elf_relocate_section): Likewise.
* elf32-i386.c (elf_i386_relocate_section): Likewise.
* elf32-i860.c (elf32_i860_relocate_section): Likewise.
* elf32-ip2k.c (ip2k_elf_relocate_section): Likewise.
* elf32-iq2000.c (iq2000_elf_relocate_section): Likewise.
* elf32-m32c.c (m32c_elf_relocate_section): Likewise.
* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
* elf32-m68hc1x.c (elf32_m68hc11_check_relocs): Likewise.
* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
* elf32-mep.c (mep_elf_relocate_section): Likewise.
* elf32-msp430.c (elf32_msp430_relocate_section): Likewise.
* elf32-mt.c (mt_elf_relocate_section): Likewise.
* elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
* elf32-s390.c (elf_s390_relocate_section): Likewise.
* elf32-score.c (_bfd_score_elf_relocate_section): Likewise.
* elf32-sh.c (sh_elf_relocate_section): Likewise.
* elf32-spu.c (spu_elf_relocate_section): Likewise.
* elf32-v850.c (v850_elf_relocate_section): Likewise.
* elf32-vax.c (elf_vax_relocate_section): Likewise.
* elf32-xc16x.c (elf32_xc16x_relocate_section): Likewise.
* elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise.
* elf32-xtensa.c (elf_xtensa_relocate_section): Likewise.
* elf64-alpha.c (elf64_alpha_relocate_section_r): Likewise.
(elf64_alpha_relocate_section): Likewise.
* elf64-mmix.c (mmix_elf_relocate_section): Likewise.
* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
* elf64-s390.c (elf_s390_relocate_section): Likewise.
* elf64-sh64.c (sh_elf64_relocate_section): Likewise.
* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
* elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
* elfxx-mips.c (_bfd_mips_elf_relocate_section): Likewise.
* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Likewise.
* elf32-arm.c (elf32_arm_relocate_section): Always adjust section
symbols for relocatable link. Don't use always-zero st_value.
(elf_backend_rela_normal): Don't define.
* elf32-bfin.c (bfinfdpic_relocate_section): Use
RELOC_FOR_GLOBAL_SYMBOL.
* elf32-frv.c (elf32_frv_relocate_section): Likewise.
* elf32-d10v.c (elf32_d10v_relocate_section): Combine SEC_MERGE
section symbol adjustments with same for relocatable link.
* elf32-i386.c (elf_i386_relocate_section): Likewise.
* elf32-m68hc1x.c (m68hc11_get_relocation_value): Move..
(elf32_m68hc11_check_relocs): ..to here.
* elf32-score.c (score_elf_final_link_relocate): Remove zero
r_symndx code.
* elfxx-mips.c (mips_elf_calculate_relocation): Likewise.
ld/testsuite/
* ld-elf/linkonce1.d: New.
* ld-elf/linkonce1a.s: New.
* ld-elf/linkonce1b.s: New.
* ld-elf/linkonce2.d: New.
* ld-i386/pcrel16abs.d: New.
* ld-i386/pcrel16abs.s: New.
* ld-i386/i386.exp: Run it.
|
|
bfd/
* elflink.c (gc_mark_hook_fn): Remove.
(_bfd_elf_gc_mark): Rename gc_mark_hook_fn to elf_gc_mark_hook_fn.
(bfd_elf_gc_sections): Ditto. Call gc_mark_extra_sections.
* elf-bfd.h (elf_gc_mark_hook_fn): Define.
(elf_backend_data): Add gc_mark_extra_sections.
* elfxx-target.h (elf_backend_gc_mark_extra_sections): Provide default
definition.
(elfNN_bed): Add elf_backend_gc_mark_extra_sections.
* elf32-arm.c (elf32_arm_gc_mark_extra_sections): New function.
(elf_backend_gc_mark_extra_sections): Define.
ld/testsuite/
* ld-arm/arm-elf.exp (armelftests): Add gc-unwind.h.
* ld-arm/gc-unwind.s: New file.
* ld-arm/gc-unwind.d: New file.
|
|
* elflink.c (bfd_elf_size_dynamic_sections): Heed default_execstack.
* elfxx-target.h (elf_backend_default_execstack): Define to 1.
(elfNN_bed): Init new field.
* elf64-ppc.c (elf_backend_default_execstack): Define to 0.
|
|
2007-02-14 H.J. Lu <hongjiu.lu@intel.com>
PR ld/3953
* elflink.c (_bfd_elf_add_default_symbol): Check warning symbol
when adding default symbol.
ld/testsuite/
2007-02-14 H.J. Lu <hongjiu.lu@intel.com>
PR ld/3953
* ld-elf/beginwarn.c: New file.
* ld-elf/warn.out: Likewise.
* ld-elf/shared.exp (build_tests): Add "Build warn libbar.so".
(run_tests): Add "Run warn with versioned libfoo.so".
* lib/ld-lib.exp (default_ld_relocate): Make exec_output global
and remove target first.
(default_ld_link): Likewise.
(default_ld_simple_link): Likewise.
(run_ld_link_exec_tests): Take an optional linker warning and
check it.
(default_ld_link): Check pruned linker output.
|
|
with a zero symbol index.
|
|
|
|
Stan Cox <scox@redhat.com>
PR ld/3972
* elflink.c (elf_link_input_bfd): Always setup finfo->internal_syms.
|
|
|
|
* bfd-in.h (bfd_arm_vfp11_fix): New enum. Specify how VFP11
instruction scanning should be done.
(bfd_elf32_arm_init_maps, bfd_elf32_arm_vfp11_erratum_scan)
(bfd_elf32_arm_vfp11_fix_veneer_locations): Add prototypes.
(bfd_elf32_arm_set_target_relocs): Add vfp11 fix type argument to
prototype.
* elf-bfd.h (elf_backend_write_section): Add struct bfd_link_info
argument.
* elf32-arm.c (VFP11_ERRATUM_VENEER_SECTION_NAME)
(VFP11_ERRATUM_VENEER_ENTRY_NAME): Define macros.
(elf32_vfp11_erratum_type): New enum.
(elf32_vfp11_erratum_list): New struct. List of veneers or jumps to
veneers.
(_arm_elf_section_data): Add mapsize, erratumcount, erratumlist.
(elf32_arm_link_hash_table): Add vfp11_erratum_glue_size,
vfp11_fix and num_vfp11_fixes fields.
(elf32_arm_link_hash_table_create): Initialise vfp11_fix,
vfp11_erratum_glue_size, num_vfp11_fixes fields.
(VFP11_ERRATUM_VENEER_SIZE): Define. Size of an (ARM) veneer.
(bfd_elf32_arm_allocate_interworking_sections): Initialise erratum
glue section.
(elf32_arm_section_map_add): Add an code/data mapping symbol entry
to a section's map.
(record_vfp11_erratum_veneer): Create a single veneer, and its
associated symbols.
(bfd_elf32_arm_add_glue_sections_to_bfd): Add vfp11 erratum glue.
(bfd_elf32_arm_init_maps): Initialise mapping symbol table for input
BFDs.
(bfd_elf32_arm_set_vfp11_fix): Set the type of erratum workaround
required.
(bfd_arm_vfp11_pipe): Define VFP11 instruction pipes.
(bfd_arm_vfp11_regno): Recode a register number from a VFP11 insn.
(bfd_arm_vfp11_write_mask): Update write mask according to coded
register number.
(bfd_arm_vfp11_antidependency): New function.
(bfd_arm_vfp11_insn_decode): Decode a VFP11 insn.
(elf32_arm_compare_mapping): Declare.
(bfd_elf32_arm_vfp11_erratum_scan): Scan the sections of an input
BFD for potential erratum-triggering insns. Record results.
(bfd_elf32_arm_vfp11_fix_veneer_locations): Find out where veneers
and branches to veneers have been placed in virtual memory after
layout.
(bfd_elf32_arm_set_target_relocs): Set vfp11_fix field in global
hash table.
(elf32_arm_output_symbol_hook): Remove.
(elf32_arm_write_section): Output veneers, and branches to veneers.
Use maps from input sections, not output sections, for code
byte-swapping.
* elf32-ppc.c (ppc_elf_write_section): Add dummy link_info argument.
* elf32-score.c (_bfd_score_elf_write_section): Likewise.
* elfxx-mips.c (_bfd_mips_elf_write_section): Likewise.
* elfxx-mips.h (_bfd_mips_elf_write_section): Likewise.
|
|
2007-01-16 H.J. Lu <hongjiu.lu@intel.com>
PR ld/3831
* elf-bfd.h (bfd_elf_link_mark_dynamic_symbol): Add an
argument, Elf_Internal_Sym *.
* elflink.c (bfd_elf_link_mark_dynamic_symbol): Mark a data
symbol dynamic if info->dynamic_data is TRUE.
(bfd_elf_record_link_assignment): Updated call to
bfd_elf_record_link_assignment.
(_bfd_elf_merge_symbol): Likewise. Always call
bfd_elf_link_mark_dynamic_symbol.
include/
2007-01-16 H.J. Lu <hongjiu.lu@intel.com>
PR ld/3831
* bfdlink.h (bfd_link_info): Rename dynamic to dynamic_list.
Add dynamic and dynamic_data.
ld/
2007-01-16 H.J. Lu <hongjiu.lu@intel.com>
PR ld/3831
* NEWS: Mention -Bsymbolic-functions, --dynamic-list-data and
--dynamic-list-cpp-new.
* ld.texinfo: Document -Bsymbolic-functions, --dynamic-list-data
and --dynamic-list-cpp-new.
* ldlang.c (lang_append_dynamic_list_cpp_new): New.
(lang_process): Change link_info.dynamic to
link_info.dynamic_list.
(lang_append_dynamic_list): Likewise.
* ldmain.c (main): Likewise. Initialize link_info.dynamic and
link_info.dynamic_data to FALSE.
* ldlang.h (lang_append_dynamic_list_cpp_new): New.
* lexsup.c (option_values): Add OPTION_DYNAMIC_LIST_DATA and
OPTION_DYNAMIC_LIST_CPP_NEW.
(ld_options): Add entries for -Bsymbolic-functions,
--dynamic-list-data and --dynamic-list-cpp-new. Make
-Bsymbolic-functions an alias of --dynamic-list-data.
(parse_args): Change link_info.dynamic to link_info.dynamic_list.
Set link_info.dynamic to TRUE for --dynamic-list and
--dynamic-list-cpp-typeinfo. Handle --dynamic-list-data and
--dynamic-list-cpp-new.
ld/testsuite/
2007-01-16 H.J. Lu <hongjiu.lu@intel.com>
PR ld/3831
* ld-elf/del.cc: New.
* ld-elf/dl5.cc: Likewise.
* ld-elf/dl5.out: Likewise.
* ld-elf/new.cc: Likewise.
* ld-elf/shared.exp: Add tests for --dynamic-list-data and
--dynamic-list-cpp-new.
|
|
2006-12-29 H.J. Lu <hongjiu.lu@intel.com>
* elflink.c (elf_link_add_object_symbols): Remember the symbol
size only if it is defined.
ld/testsuite/
2006-12-29 H.J. Lu <hongjiu.lu@intel.com>
* ld-elf/wrap.exp: New file.
* ld-elf/wrap1.c: Likewise.
* ld-elf/wrap1.out: Likewise.
* ld-elf/wrap1a.c: Likewise.
* ld-elf/wrap1b.c: Likewise.
|
|
* elfxx-target.h (elf_backend_as_needed_cleanup): Define.
(elfNN_bed): Add as_needed_cleanup hook.
* elflink.c (elf_link_add_object_symbols): Call it when reverting
hash table changes for unneeded --as-needed input.
* elf64-ppc64.c (elf_backend_as_needed_cleanup): Define.
(ppc64_elf_as_needed_cleanup): New function.
|
|
sections with .gnu.linkonce.t. prefix.
|
|
2006-12-07 H.J. Lu <hjl@gnu.org>
PR ld/3666
* elflink.c (elf_link_add_object_symbols): Keep symbol
visibility for symbols from discarded section.
ld/testsuite/
2006-12-07 H.J. Lu <hjl@gnu.org>
PR ld/3666
* ld-elf/group3a.d: New file.
* ld-elf/group3a.s: Likewise.
* ld-elf/group3b.d: Likewise.
* ld-elf/group3b.s: Likewise.
|
|
2006-12-04 Jan Beulich <jbeulich@novell.com>
* elflink.c (_bfd_elf_link_create_dynamic_sections): Don't create
.eh_frame_hdr section from here anymore.
(bfd_elf_size_dynamic_sections): Call _bfd_elf_maybe_strip_eh_frame_hdr
a little earlier.
ld/
2006-12-04 Jan Beulich <jbeulich@novell.com>
* emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Create
.eh_frame_hdr section here.
ld/testsuite/
2006-12-04 Jan Beulich <jbeulich@novell.com>
* ld-elf/eh-frame-hdr.d: New.
* ld-elf/eh-frame-hdr.s: New.
* ld-ia64/tlsbin.dd, ld-ia64/tlsbin.sd: Don't depend on exact linkage
table layout.
|
|
section. Save result of checks in kept_section.
(_bfd_elf_section_already_linked): Tidy. Correct comments.
Ignore all group member sections. Handle special matching of
single-member groups against linkonce sections via their group
section. When such a match is found, set kept_section to the
group member section rather than to the group.
|
|
2006-10-30 H.J. Lu <hongjiu.lu@intel.com>
PR ld/3111
* elf-bfd.h (elf_obj_tdata): Add symbuf.
(_bfd_elf_section_already_linked): Add struct bfd_link_info *.
(_bfd_elf_check_kept_section): Likewise.
(bfd_elf_match_symbols_in_sections): Likewise.
* elf.c (assign_section_numbers): Updated to add
struct bfd_link_info *.
(bfd_elf_match_symbols_in_sections): Updated. Cache symbol
buffer if info->reduce_memory_overheads is false.
* elflink.c (match_group_member): Updated to add
struct bfd_link_info *.
(_bfd_elf_check_kept_section): Likewise.
(elf_link_input_bfd): Likewise.
(_bfd_elf_section_already_linked): Likewise.
(bfd_elf_final_link): Free symbol buffer if
info->reduce_memory_overheads is false.
* libbfd-in.h (_bfd_nolink_section_already_linked): Add
struct bfd_link_info *.
(_bfd_generic_section_already_linked): Likewise.
* libbfd.h: Regenerated.
* linker.c (bfd_section_already_linked): Add
struct bfd_link_info *.
(_bfd_generic_section_already_linked): Likewise.
* targets.c (bfd_target): Add struct bfd_link_info * to
_section_already_linked.
* bfd-in2.h: Regenerated.
include/
2006-10-30 H.J. Lu <hongjiu.lu@intel.com>
PR ld/3111
* bfdlink.h (bfd_link_info): Add reduce_memory_overheads.
ld/
2006-10-30 H.J. Lu <hongjiu.lu@intel.com>
PR ld/3111
* ld.h (args_type): Remove reduce_memory_overheads.
* ldlang.c (lang_map): Updated.
(section_already_linked): Likewise.
(print_input_section): Likewise.
* ldmain.c (main): Likewise.
* lexsup.c (parse_args): Likewise.
|
|
* section.c (SEC_KEEP): Update comment.
* bfd-in2.h: Regenerate.
* elflink.c (bfd_elf_gc_sections): Ignore SEC_EXCLUDE sections.
* merge.c (_bfd_merge_sections): Set SEC_KEEP on excluded sections.
* stabs.c (_bfd_discard_section_stabs): Likewise.
(_bfd_link_section_stabs): Likewise. Simplify abs_section check.
ld/
* ldlang.c (lang_map): Don't say SEC_LINKER_CREATED and SEC_KEEP
sections have been discarded.
(lang_do_version_exports_section): Set SEC_KEEP on export section.
* emultempl/elf32.em (before_allocation): Set SEC_KEEP on warning
sections.
|
|
2006-10-18 H.J. Lu <hongjiu.lu@intel.com>
PR ld/3290
* elflink.c (elf_link_add_object_symbols): Hide definitions in
debug sections.
ld/testsuite/
2006-10-18 H.J. Lu <hongjiu.lu@intel.com>
PR ld/3290
* ld-elf/dummy.c: New file.
* ld-elf/dwarf.exp: Likewise.
* ld-elf/dwarf1.c: Likewise.
* ld-elf/dwarf1.h: Likewise.
* ld-elf/dwarf1.out: Likewise.
* ld-elf/dwarf1main.c: Likewise.
|
|
* elf-bfd.h (struct elf_link_hash_table): Reorder. Add
text_index_section and data_index_section.
(struct elf_backend_data): Add elf_backend_init_index_section.
(_bfd_elf_init_1_index_section): Declare.
(_bfd_elf_init_2_index_sections): Declare.
* elfxx-target.h (elf_backend_init_index_section): Define.
(elfNN_bed): Init new field.
* elflink.c (_bfd_elf_link_omit_section_dynsym): Keep first tls
section and text_index_section plus data_index_section.
(_bfd_elf_link_renumber_dynsyms): Clear dynindx on omitted sections.
(_bfd_elf_init_1_index_section): New function.
(_bfd_elf_init_2_index_sections): New function.
(bfd_elf_size_dynsym_hash_dynstr): Call elf_backend_init_index_section.
(elf_link_input_bfd): When emitting relocs, use text_index_section
and data_index_section for removed sections.
* elf-m10300.c (elf_backend_omit_section_dynsym): Define.
* elf32-i386.c: Likewise.
* elf32-m32r.c: Likewise.
* elf32-sh.c: Likewise.
* elf32-xstormy16.c: Likewise.
* elf32-xtensa.c: Likewise.
* elf64-alpha.c: Likewise.
* elf64-hppa.c: Likewise.
* elf64-mmix.c: Likewise.
* elf64-sh64.c: Likewise.
* elfxx-ia64.c: Likewise.
* elf32-arm.c (elf32_arm_final_link_relocate): Use text_index_section
and data_index_section sym for relocs against sections with no dynamic
section sym.
(elf_backend_init_index_section): Define.
* elf32-cris.c: Similarly.
* elf32-hppa.c: Similarly.
* elf32-i370.c: Similarly.
* elf32-m68k.c: Similarly.
* elf32-mips.c: Similarly.
* elf32-ppc.c: Similarly.
* elf32-s390.c: Similarly.
* elf32-sparc.c: Similarly.
* elf32-vax.c: Similarly.
* elf64-mips.c: Similarly.
* elf64-ppc.c: Similarly.
* elf64-s390.c: Similarly.
* elf64-sparc.c: Similarly.
* elf64-x86-64.c: Similarly.
* elfn32-mips.c: Similarly.
* elfxx-mips.c: Similarly.
* elfxx-sparc.c: Similarly.
* linker.c (fix_syms): Base symbols in removed sections on
previous section in preference to using absolute section.
ld/
* ldlang.c (strip_excluded_output_sections): Do strip sections
that define syms, but don't ignore them.
* ld.texinfo (Output Section Discarding): Revise.
* emultempl/armcoff.em (gld${EMULATION_NAME}_finish): Always call
finish_default.
ld/testsuite/
Update for section sym changes.
|
|
symbols from the --just-syms file.
|
|
* elf-bfd.h (_bfd_elf_gc_mark_hook): Declare.
* elfxx-target.h (elf_backend_gc_mark_hook): Default to above.
* elf-m10300.c (mn10300_elf_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
* elf32-arm.c (elf32_arm_gc_mark_hook): Likewise.
* elf32-cris.c (cris_elf_gc_mark_hook): Likewise.
* elf32-hppa.c (elf32_hppa_gc_mark_hook): Likewise.
* elf32-i386.c (elf_i386_gc_mark_hook): Likewise.
* elf32-m32r.c (m32r_elf_gc_mark_hook): Likewise.
* elf32-m68k.c (elf_m68k_gc_mark_hook): Likewise.
* elf32-mcore.c (mcore_elf_gc_mark_hook): Likewise.
* elf32-ppc.c (ppc_elf_gc_mark_hook): Likewise.
* elf32-s390.c (elf_s390_gc_mark_hook): Likewise.
* elf32-score.c (_bfd_score_elf_gc_mark_hook): Likewise.
* elf32-sh.c (sh_elf_gc_mark_hook): Likewise.
* elf32-vax.c (elf_vax_gc_mark_hook): Likewise.
* elf32-xtensa.c (elf_xtensa_gc_mark_hook): Likewise.
* elf64-mmix.c (mmix_elf_gc_mark_hook): Likewise.
* elf64-s390.c (elf_s390_gc_mark_hook): Likewise.
* elf64-x86-64.c (elf64_x86_64_gc_mark_hook): Likewise.
* elfxx-mips.c (_bfd_mips_elf_gc_mark_hook): Likewise.
* elfxx-sparc.c (_bfd_sparc_elf_gc_mark_hook): Likewise.
* elf32-bfin.c (bfin_gc_mark_hook): Likewise.
(bfinfdpic_gc_sweep_hook): Delete.
(elf_backend_gc_sweep_hook): Don't define for elf32-bfinfdpic.
* elf32-d10v.c (elf32_d10v_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
(elf32_d10v_gc_sweep_hook): Delete.
(elf_backend_gc_sweep_hook): Don't define.
* elf32-fr30.c (fr30_elf_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
(fr30_elf_gc_sweep_hook): Delete.
(elf_backend_gc_sweep_hook): Don't define.
* elf32-frv.c (elf32_frv_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
(elf32_frv_gc_sweep_hook): Delete.
(elf_backend_gc_sweep_hook): Don't define.
* elf32-iq2000.c (iq2000_elf_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
(iq2000_elf_gc_sweep_hook): Delete.
(elf_backend_gc_sweep_hook): Don't define.
* elf32-openrisc.c (openrisc_elf_gc_mark_hook): Use
_bfd_elf_gc_mark_hook.
(openrisc_elf_gc_sweep_hook): Delete.
(elf_backend_gc_sweep_hook): Don't define.
* elf32-v850.c (v850_elf_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
(v850_elf_gc_sweep_hook): Delete.
(elf_backend_gc_sweep_hook): Don't define.
* elf32-xstormy16.c (xstormy16_elf_gc_mark_hook): Use
_bfd_elf_gc_mark_hook.
(xstormy16_elf_gc_sweep_hook): Delete.
(elf_backend_gc_sweep_hook): Don't define.
* elf64-sh64.c (sh_elf64_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
(sh_elf64_gc_sweep_hook): Delete.
(elf_backend_gc_sweep_hook): Don't define.
* elf32-avr.c (elf32_avr_gc_mark_hook): Delete.
(elf32_avr_gc_sweep_hook): Delete.
(elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
* elf32-cr16c.c (elf32_cr16c_gc_mark_hook): Delete.
(elf32_cr16c_gc_sweep_hook): Delete.
(elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
* elf32-crx.c (elf32_crx_gc_mark_hook): Delete.
(elf32_crx_gc_sweep_hook): Delete.
(elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
* elf32-h8300.c (elf32_h8_gc_mark_hook): Delete.
(elf32_h8_gc_sweep_hook): Delete.
(elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
* elf32-ip2k.c (ip2k_elf_gc_mark_hook): Delete.
(ip2k_elf_gc_sweep_hook): Delete.
(elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
* elf32-m32c.c (m32c_elf_gc_mark_hook, m32c_elf_gc_sweep_hook): Delete.
(elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
* elf32-m68hc11.c (elf_backend_gc_mark_hook): Don't define.
(elf_backend_gc_sweep_hook): Don't define.
* elf32-m68hc12.c (elf_backend_gc_mark_hook): Don't define.
(elf_backend_gc_sweep_hook): Don't define.
* elf32-m68hc1x.c (elf32_m68hc11_gc_mark_hook): Delete.
(elf32_m68hc11_gc_sweep_hook): Delete.
* elf32-m68hc1x.h (elf32_m68hc11_gc_mark_hook): Delete.
(elf32_m68hc11_gc_sweep_hook): Delete.
* elf32-msp430.c (elf32_msp430_gc_mark_hook): Delete.
(elf32_msp430_gc_sweep_hook): Delete.
(elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
* elf32-mt.c (mt_elf_gc_mark_hook, mt_elf_gc_sweep_hook): Delete.
(elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
|
|
(LITSTRCPY) : New.
(LITMEMCPY) : New.
* bfd-in2.h : Regenerate.
* elflink.c (bfd_elf_gc_sections) : Use LITMEMCPY. Don't manually calculate string lengths.
* nlmcode.h (nlm_swap_auxiliary_headers_in) : Use LITMEMCPY.
* nlmconv.c (main) : Use LITMEMCPY.
* prdbg.c (tg_class_static_member) : Use LITSTRCPY.
|
|
argument and emits the string followed by a comma and then the length of
the string.
(CONST_STRNEQ): New macro. Checks to see if a variable string has a constant
string as its initial characters.
(CONST_STRNCPY): New macro. Copies a constant string to the start of a
variable string.
* bfd-in2.h: Regenerate.
* <remainign files>: Make use of the new macros.
|
|
2006-09-12 H.J. Lu <hongjiu.lu@intel.com>
PR ld/3197
* elflink.c (elf_link_output_extsym): Compute bucket only if
needed.
ld/testsuite/
2006-09-12 H.J. Lu <hongjiu.lu@intel.com>
PR ld/3197
* ld-elf/hash.d: New test.
|
|
2006-09-07 H.J. Lu <hongjiu.lu@intel.com>
* elf-bfd.h (elf_link_hash_entry): Add a dynamic field.
(bfd_elf_link_mark_dynamic_symbol): New.
(SYMBOLIC_BIND): New.
* elf32-i386.c (elf_i386_check_relocs): Replace info->symbolic
with SYMBOLIC_BIND (info, h).
(elf_i386_relocate_section): Likewise.
* elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
(elf64_x86_64_relocate_section): Likewise.
* elfxx-ia64.c (elfNN_ia64_check_relocs): Likewise.
* elflink.c (bfd_elf_link_mark_dynamic_symbol): New.
(bfd_elf_record_link_assignment): Call
bfd_elf_link_mark_dynamic_symbol on new entry.
(_bfd_elf_merge_symbol): Likewise.
(_bfd_elf_export_symbol): Return if the symbol isn't exported.
(_bfd_elf_fix_symbol_flags): Replace info->symbolic with
SYMBOLIC_BIND (info, h).
(_bfd_elf_dynamic_symbol_p): Likewise.
(_bfd_elf_symbol_refs_local_p): Likewise.
(bfd_elf_size_dynamic_sections): Updated.
include/
2006-09-07 H.J. Lu <hongjiu.lu@intel.com>
* bfdlink.h (bfd_elf_dynamic_list): New.
(bfd_link_info): Add a dynamic field.
ld/
2006-09-07 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.am (CXX): Set to g++.
(CXX_FOR_TARGET): Likewise.
* Makefile.in: Regenerated.
* NEWS: Mention --dynamic-list.
* ld.texinfo: Document --dynamic-list.
* ldgram.y: Support dynamic list.
* ldlang.c (lang_process): Call lang_finalize_version_expr_head
on link_info.dynamic if needed.
(lang_append_dynamic_list): New.
(lang_append_dynamic_list_cpp_typeinfo): New.
* ldlang.h (lang_append_dynamic_list): Likewise.
* ldlang.h (lang_append_dynamic_list_cpp_typeinfo): Likewise.
* ldlex.h (input_enum): Add input_dynamic_list.
* ldlex.l: Handle it.
* ldmain.c (main): Initialize link_info.dynamic.
* lexsup.c (option_values): Add OPTION_DYNAMIC_LIST and
OPTION_DYNAMIC_LIST_CPP_TYPEINFO.
(ld_options): Add entries for OPTION_DYNAMIC_LIST and
OPTION_DYNAMIC_LIST_CPP_TYPEINFO.
(parse_args): Handle OPTION_DYNAMIC_LIST and
OPTION_DYNAMIC_LIST_CPP_TYPEINFO.
ld/testsuite/
2006-09-07 H.J. Lu <hongjiu.lu@intel.com>
* ld-elf/dl1.c: New file.
* ld-elf/dl1.list: Likewise.
* ld-elf/dl1.out: Likewise.
* ld-elf/dl1main.c: Likewise.
* ld-elf/dl2.c: Likewise.
* ld-elf/dl2.list: Likewise.
* ld-elf/dl2a.out: Likewise.
* ld-elf/dl2b.out: Likewise.
* ld-elf/dl2main.c: Likewise.
* ld-elf/dl2xxx.c: Likewise.
* ld-elf/dl2xxx.list: Likewise.
* ld-elf/dl3.cc: Likewise.
* ld-elf/dl3.list: Likewise.
* ld-elf/dl3a.out: Likewise.
* ld-elf/dl3b.out: Likewise.
* ld-elf/dl3header.h: Likewise.
* ld-elf/dl3main.cc: Likewise.
* ld-elf/shared.exp: Updated.
* lib/ld-lib.exp (run_ld_link_exec_tests): Take an optional
argument for source language. Use CC/CXX for link, depending
on source language.
(run_cc_link_tests): Likewise.
|
|
(elf_backend_merge_symbol_attribute): Define.
* elflink.c (elf_link_add_object_symbols): Merge only the ELF
visibility flags.
* elfxx-mips.c (_bfd_mips_elf_merge_symbol_attribute): New function.
|
|
* lexsup.c: Add --print-gc-sections and --no-print-gc-sections switches.
* ld.texinfo: Document new switches.
* NEWS: Mention new switches.
* bfdlink.h (struct bfd_link_info): New field: print_gc_sections.
* elflink.c (elf_gc_sweep): If info.print_gc_sections is true, list removed sections to stderr.
|
|
* bfd-in.h (enum notice_asneeded_action): Define.
* bfd-in2.h: Regenerate.
* elflink.c (elf_link_add_object_symbols): Call linker "notice"
function with NULL name for as-needed handling.
ld/
* ld.h (handle_asneeded_cref): Declare.
* ldcref.c: Include objalloc.h.
(old_table, old_count, old_tab, alloc_mark): New variables.
(tabsize, entsize, refsize, old_symcount): Likewise.
(add_cref): Use bfd_hash_allocate for refs.
(handle_asneeded_cref): New function.
* ldmain.c (notice): Call handle_asneeded_cref for NULL name.
|