summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2009-07-23 13:00:30 +0000
committerNick Clifton <nickc@redhat.com>2009-07-23 13:00:30 +0000
commitf9415fedf85a35a1662a5033c9f8e40b1d186e85 (patch)
tree62eb379fce2d1ca37517687784ef899f0853b7d9
parenta6131454a5de1af75b06d5dc473ffe4af850b46e (diff)
downloadcygnal-f9415fedf85a35a1662a5033c9f8e40b1d186e85.tar.gz
cygnal-f9415fedf85a35a1662a5033c9f8e40b1d186e85.tar.bz2
cygnal-f9415fedf85a35a1662a5033c9f8e40b1d186e85.zip
* 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.
-rw-r--r--include/elf/ChangeLog4
-rw-r--r--include/elf/common.h3
2 files changed, 6 insertions, 1 deletions
diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog
index 89235d1a9..600342c8a 100644
--- a/include/elf/ChangeLog
+++ b/include/elf/ChangeLog
@@ -1,3 +1,7 @@
+2009-07-23 Ulrich Drepper <drepper@redhat.com>
+
+ * common.h (STB_GNU_UNIQUE): Define.
+
2009-07-10 Tom Tromey <tromey@redhat.com>
* dwarf2.h: Move to `..'.
diff --git a/include/elf/common.h b/include/elf/common.h
index 75f4eb82d..72afa918e 100644
--- a/include/elf/common.h
+++ b/include/elf/common.h
@@ -1,6 +1,6 @@
/* ELF support for BFD.
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Written by Fred Fish @ Cygnus Support, from information published
@@ -555,6 +555,7 @@
#define STB_GLOBAL 1 /* Symbol visible outside obj */
#define STB_WEAK 2 /* Like globals, lower precedence */
#define STB_LOOS 10 /* OS-specific semantics */
+#define STB_GNU_UNIQUE 10 /* Symbol is unique in namespace */
#define STB_HIOS 12 /* OS-specific semantics */
#define STB_LOPROC 13 /* Processor-specific semantics */
#define STB_HIPROC 15 /* Processor-specific semantics */