glibc/elf/tst-unique1mod2.c
Ulrich Drepper 415ac3df9b 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.
2009-07-09 23:52:22 -07:00

21 lines
351 B
C

#include <config.h>
#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