blob: f3bb59dee2ee889817378f20f95723020c268e91 [file] [log] [blame]
bfd/
2012-09-11 H.J. Lu <hongjiu.lu@intel.com>
* elf-bfd.h (_bfd_elf_merge_symbol): Add a boolean argument to
indicate if the old definition is secondary.
* elf32-sh-symbian.c (sh_symbian_relocate_section): Pass FALSE
to _bfd_elf_merge_symbol.
* elflink.c (_bfd_elf_merge_symbol): Add a boolean argument to
indicate if the old definition is secondary. Set OLDSECONADRY if
it isn't TRUE. Treat old secondary symbol as weak.
(_bfd_elf_add_default_symbol): Add a boolean argument to if the
old definition is secondary.
(elf_link_add_object_symbols): Pass oldsecondary to
_bfd_elf_merge_symbol and _bfd_elf_add_default_symbol.
2012-09-06 H.J. Lu <hongjiu.lu@intel.com>
* elflink.c (is_global_data_symbol_definition): Renamed to ...
(is_global_symbol_definition): This. If secondary symbols are
ignored, count function and common symbols as global definition.
(elf_link_is_defined_archive_symbol): Updated.
2012-09-06 H.J. Lu <hongjiu.lu@intel.com>
* elflink.c (is_global_data_symbol_definition): Add an argument
to ignore secondary symbols.
(elf_link_is_defined_archive_symbol): Likewise and pass it to
is_global_data_symbol_definition.
(elf_link_add_archive_symbols): Ignore another secondary
definition.
2012-06-30 H.J. Lu <hongjiu.lu@intel.com>
* elflink.c (elf_link_output_extsym): Generate STB_SECONDARY
symbols if needed.
2012-06-30 H.J. Lu <hongjiu.lu@intel.com>
* elf.c (swap_out_syms): Output undefined secondary symbols
as weak.
2012-06-30 H.J. Lu <hongjiu.lu@intel.com>
* elflink.c (_bfd_elf_merge_symbol): Allow overriding secondary
symbols.
(elf_link_add_object_symbols): Treat secondary symbols as weak
symbols. Allow overriding secondary symbols.
(elf_link_add_archive_symbols): Keep searching if a definition
is secondary.
(elf_link_output_extsym): Treat secondary symbols as weak
symbols.
* linker.c (_bfd_generic_link_add_one_symbol): Treat secondary
symbol as weak symbol. Mark secondary symbol.
2012-06-30 H.J. Lu <hongjiu.lu@intel.com>
* archive.c (_bfd_compute_and_write_armap): Treat BSF_SECONDARY
symbol as global.
* elf32-mips.c (mips_elf_sym_is_global): Likewise.
* elfn32-mips.c (mips_elf_sym_is_global): Likewise.
* elf.c (sym_is_global): Likewise.
(swap_out_syms): Handle SECONDARY symbol.
* elf64-ia64-vms.c (elf64_vms_link_add_object_symbols): Likewise.
* elfcode.h (elf_slurp_symbol_table): Likewise.
* elflink.c (elf_link_add_object_symbols): Likewise.
* syms.c (BSF_SECONDARY): New.
(bfd_print_symbol_vandf): Handle SECONDARY symbol.
(bfd_decode_symclass): Likewise.
* bfd-in2.h: Regenerated.
binutils/
2012-06-30 H.J. Lu <hongjiu.lu@intel.com>
* nm.c (filter_symbols): Treat BSF_SECONDARY symbol as global.
* readelf.c (get_symbol_binding): Handle STB_SECONDARY.
gas/
2012-09-05 H.J. Lu <hongjiu.lu@intel.com>
* config/obj-elf.c (obj_elf_weak): Don't set symbol weak on
secondary symbol.
2012-06-30 H.J. Lu <hongjiu.lu@intel.com>
* config/obj-elf.c (elf_frob_symbol): Handle secondary symbol
for .symver. Also remove the unused secondary symbol.
2012-06-30 H.J. Lu <hongjiu.lu@intel.com>
* symbols.c (S_IS_SECONDARY): New.
(S_SET_SECONDARY): Likewise.
(S_FORCE_RELOC): Handle BSF_SECONDARY like BSF_WEAK.
(S_SET_EXTERNAL): Likewise.
(S_CLEAR_EXTERNAL): Likewise.
(S_CLEAR_WEAKREFD): Likewise.
(S_SET_WEAK): Also clear BSF_SECONDARY.
* symbols.h (S_IS_SECONDARY): New.
(S_SET_SECONDARY): Likewise.
* config/obj-elf.c (obj_elf_secondary): New.
(elf_pseudo_table): Add "secondary".
(elf_frob_symbol): Also check secondary symbols.
* doc/as.texinfo: Document .secondary directive.
gas/testsuite/
2012-09-05 H.J. Lu <hongjiu.lu@intel.com>
* gas/elf/common3.d: New file.
* gas/elf/common3.l: Likewise.
* gas/elf/common3.s: Likewise.
* gas/elf/common4.d: Likewise.
* gas/elf/common4.l: Likewise.
* gas/elf/common4.s: Likewise.
* gas/elf/secondary1.e: Likewise.
* gas/elf/secondary1.s: Likewise.
* gas/elf/secondary2.e: Likewise.
* gas/elf/secondary2.s: Likewise.
* gas/elf/elf.exp: Run common3, common4, secondary1 and
secondary2.
* gas/elf/type.s: Add .secondary tests.
* gas/elf/type.e: Updated.
include/
2012-06-30 H.J. Lu <hongjiu.lu@intel.com>
* bfdlink.h (bfd_link_info): Add emit_secondary.
2012-06-30 H.J. Lu <hongjiu.lu@intel.com>
* bfdlink.h (bfd_link_hash_entry): Add secondary.
include/elf/
2012-06-30 H.J. Lu <hongjiu.lu@intel.com>
* common.h (STB_SECONDARY): New.
ld/
2012-09-08 H.J. Lu <hongjiu.lu@intel.com>
* ld.texinfo: Change "-z secondary" to "-z nosecondary".
* ldmain.c (main): Initialize link_info.emit_secondary to TRUE.
* emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Set
to link_info.emit_secondary to FALSE for "-z nosecondary".
(gld${EMULATION_NAME}_list_options): Replace "-z secondary" with
"-z nosecondary".
2012-06-30 H.J. Lu <hongjiu.lu@intel.com>
* ld.texinfo: Document "-z secondary".
* emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Set
to link_info.emit_secondary to TRUE for "-z secondary".
(gld${EMULATION_NAME}_list_options): Add "-z secondary".
ld/testsuite/
2012-09-08 H.J. Lu <hongjiu.lu@intel.com>
* ld-elf/secondary.exp: Update -Wl,-z,secondary with
-Wl,-z,nosecondary.
2012-09-06 H.J. Lu <hongjiu.lu@intel.com>
* ld-elf/library1.c: New file.
* ld-elf/library1.out: Likewise.
* ld-elf/library2.c: Likewise.
* ld-elf/library2.out: Likewise.
* ld-elf/library3.out: Likewise.
* ld-elf/library4.out: Likewise.
* ld-elf/library5a.c: Likewise.
* ld-elf/library5b.c: Likewise.
* ld-elf/library6a.c: Likewise.
* ld-elf/library6b.c: Likewise.
* ld-elf/library6c.c: Likewise.
* ld-elf/library7a.c: Likewise.
* ld-elf/library7b.c: Likewise.
* ld-elf/library7c.c: Likewise.
* ld-elf/secondary-foo.c: Likewise.
* ld-elf/secondary-main.c: Likewise.
* ld-elf/secondary.c: Likewise.
* ld-elf/secondary.exp: Likewise.
* ld-elf/secondary.rd: Likewise.
* ld-elf/secondary1.out: Likewise.
* ld-elf/secondary1.rd: Likewise.
* ld-elf/secondary2.rd: Likewise.
* ld-elf/secondary3.rd: Likewise.
* ld-elf/secondary3a.s: Likewise.
* ld-elf/secondary3b.s: Likewise.
* ld-elf/secondary4.rd: Likewise.
* ld-elf/secondary4.s: Likewise.
* ld-elf/secondary5.c: Likewise.
* ld-elf/secondary5.out: Likewise.
* ld-elf/secondary6.c: Likewise.
* ld-elf/secondary6.out: Likewise.
* ld-elf/secondary7.c: Likewise.
* ld-elf/secondary7.out: Likewise.
* ld-elf/library8.map: Likewise.
* ld-elf/library8a.c: Likewise.
* ld-elf/library8a.rd: Likewise.
* ld-elf/library8b.c: Likewise.
* ld-elf/library8b.rd: Likewise.
* ld-elf/library8c.c: Likewise.
* ld-elf/library8c.rd: Likewise.