From 415ac3df9b10ae426d4f71f9d48003f6a3c7bd8d Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 9 Jul 2009 23:52:22 -0700 Subject: Implement STB_GNU_UNIQUE handling. Some symbols have to be identified process-wide by their name. This is particularly important for some C++ features (e.g., class local static data and static variables in inline functions). This cannot completely be implemented with ELF functionality so far. The STB_GNU_UNIQUE binding helps by ensuring the dynamic linker will always use the same definition for all symbols with the same name and this binding. --- elf/tst-unique2mod2.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 elf/tst-unique2mod2.c (limited to 'elf/tst-unique2mod2.c') diff --git a/elf/tst-unique2mod2.c b/elf/tst-unique2mod2.c new file mode 100644 index 0000000000..c075515827 --- /dev/null +++ b/elf/tst-unique2mod2.c @@ -0,0 +1,20 @@ +#include + +#ifdef HAVE_ASM_UNIQUE_OBJECT +# define S(s) _S (s) +# define _S(s) #s + +asm (".data;" + S (ASM_GLOBAL_DIRECTIVE) " var\n" + ".type var, " S (ASM_TYPE_DIRECTIVE_PREFIX) "gnu_unique_object\n" + ".size var, 4\n" + "var:.zero 4\n" + ".previous"); +extern int var; + +int +f (int *p) +{ + return &var != p || *p != 1; +} +#endif -- cgit 1.4.1