mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-11-03 20:53:13 +03:00 
			
		
		
		
	The tls.h inclusion is not really required and limits possible definition on more arch specific headers. This is a cleanup to allow inline functions on sysdep.h, more specifically on i386 and ia64 which requires to access some tls definitions its own. No semantic changes expected, checked with a build against all affected ABIs.
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef _ERRNO_H
 | 
						|
#include <stdlib/errno.h>
 | 
						|
#if !defined _ISOMAC && !defined __ASSEMBLER__
 | 
						|
 | 
						|
# if IS_IN (rtld)
 | 
						|
#  include <dl-sysdep.h>
 | 
						|
#  ifndef RTLD_PRIVATE_ERRNO
 | 
						|
#   error "dl-sysdep.h must define RTLD_PRIVATE_ERRNO!"
 | 
						|
#  endif
 | 
						|
# else
 | 
						|
#  define RTLD_PRIVATE_ERRNO	0
 | 
						|
# endif
 | 
						|
 | 
						|
# if RTLD_PRIVATE_ERRNO
 | 
						|
/* The dynamic linker uses its own private errno variable.
 | 
						|
   All access to errno inside the dynamic linker is serialized,
 | 
						|
   so a single (hidden) global variable is all it needs.  */
 | 
						|
 | 
						|
#  undef  errno
 | 
						|
#  define errno rtld_errno
 | 
						|
extern int rtld_errno attribute_hidden;
 | 
						|
 | 
						|
# elif IS_IN_LIB && !IS_IN (rtld)
 | 
						|
 | 
						|
#  undef  errno
 | 
						|
#  if IS_IN (libc)
 | 
						|
#   define errno __libc_errno
 | 
						|
#  else
 | 
						|
#   define errno errno		/* For #ifndef errno tests.  */
 | 
						|
#  endif
 | 
						|
extern __thread int errno attribute_tls_model_ie;
 | 
						|
 | 
						|
# endif	/* IS_IN_LIB */
 | 
						|
 | 
						|
# define __set_errno(val) (errno = (val))
 | 
						|
 | 
						|
extern int *__errno_location (void) __THROW __attribute_const__
 | 
						|
#  if RTLD_PRIVATE_ERRNO
 | 
						|
     attribute_hidden
 | 
						|
#  endif
 | 
						|
;
 | 
						|
libc_hidden_proto (__errno_location)
 | 
						|
 | 
						|
#endif /* !_ISOMAC && !__ASSEMBLER__ */
 | 
						|
#endif /* !_ERRNO_H */
 |