From 23c851466b0744bf01ca28ea243b5ccb53a70131 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 23 Jul 2009 13:00:30 +0000 Subject: * config/obj-elf.c (obj_elf_type): Add code to support a type of gnu_unique_object. * doc/as.texinfo: Document new feature of .type directive. * NEWS: Mention support for gnu_unique_object symbol type. * common.h (STB_GNU_UNIQUE): Define. * NEWS: Mention the linker's support for symbols with a binding of STB_GNU_UNIQUE. * gas/elf/type.s: Add unique global symbol definition. * gas/elf/type.e: Add expected readelf output for global unique symbol. * elfcpp.h (enum STB): Add STB_GNU_UNIQUE. * readelf.c (get_symbol_binding): For Linux targeted files return UNIQUE for symbols with the STB_GNU_UNIQUE binding. * doc/binutils.texi: Document the meaning of the 'u' symbol binding in the output of nm and objdump --syms. * elf-bfd.h (struct elf_link_hash_entry): Add unique_global field. * elf.c (swap_out_syms): Set binding to STB_GNU_UNIQUE for symbols with the BSF_GNU_UNIQUE flag bit set. * elfcode.h (elf_slurp_symbol_table): Set the BSF_GNU_UNIQUE flag for symbols with STB_GNU_UNIQUE binding. * elflink.c (_bfd_elf_merge_symbol): Set unique_global for symbols with the STB_GNU_UNIQUE binding. (elf_link_add_object_symbols): Set the BSF_GNU_UNIQUE flag for symbols with STB_GNU_UNIQUE binding. Set STB_GNU_UNIQUE for symbols with the unique_global field set. (elf_link_output_extsym): Set unique_global field for symbols with the STB_GNU_UNIQUE binding. * syms.c (struct bfd_symbol): Define BSF_GNU_UNIQUE flag bit. (bfd_print_symbol_vandf): Print a 'u' character for BSF_GNU_UNIQUE symbols. (bfd_decode_symclass): Return a 'u' character for BSF_GNU_UNIQUE symbols. * bfd-in2.h: Regenerate. --- elfcpp/ChangeLog | 4 ++++ elfcpp/elfcpp.h | 1 + 2 files changed, 5 insertions(+) (limited to 'elfcpp') diff --git a/elfcpp/ChangeLog b/elfcpp/ChangeLog index 2a8204f8ae..2a668a6744 100644 --- a/elfcpp/ChangeLog +++ b/elfcpp/ChangeLog @@ -1,3 +1,7 @@ +2009-07-23 Ulrich Drepper + + * elfcpp.h (enum STB): Add STB_GNU_UNIQUE. + 2009-06-21 Ian Lance Taylor * elfcpp.h (SHN_X86_64_LCOMMON): Define enum constant. diff --git a/elfcpp/elfcpp.h b/elfcpp/elfcpp.h index 1b1a875c3d..683cd9dceb 100644 --- a/elfcpp/elfcpp.h +++ b/elfcpp/elfcpp.h @@ -485,6 +485,7 @@ enum STB STB_GLOBAL = 1, STB_WEAK = 2, STB_LOOS = 10, + STB_GNU_UNIQUE = 10, STB_HIOS = 12, STB_LOPROC = 13, STB_HIPROC = 15 -- cgit v1.2.1