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-unique1mod1.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 elf/tst-unique1mod1.c (limited to 'elf/tst-unique1mod1.c') diff --git a/elf/tst-unique1mod1.c b/elf/tst-unique1mod1.c new file mode 100644 index 0000000000..16de28d25e --- /dev/null +++ b/elf/tst-unique1mod1.c @@ -0,0 +1,21 @@ +#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 (void) +{ + var = 1; + return &var; +} +#endif -- cgit 1.4.1