mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-11-03 20:53:13 +03:00 
			
		
		
		
	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.
		
			
				
	
	
		
			21 lines
		
	
	
		
			351 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			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
 |