mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-31 22:10:34 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			48 lines
		
	
	
		
			1000 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1000 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef _ERRNO_H
 | |
| 
 | |
| #include <stdlib/errno.h>
 | |
| 
 | |
| #if defined _ERRNO_H && !defined _ISOMAC && !defined __cplusplus
 | |
| 
 | |
| # ifdef IS_IN_rtld
 | |
| #  include <dl-sysdep.h>
 | |
| # 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;
 | |
| 
 | |
| # else
 | |
| 
 | |
| #  include <tls.h>
 | |
| 
 | |
| #  undef  errno
 | |
| #  ifndef NOT_IN_libc
 | |
| #   define errno __libc_errno
 | |
| #  else
 | |
| #   define errno errno		/* For #ifndef errno tests.  */
 | |
| #  endif
 | |
| extern __thread int errno attribute_tls_model_ie;
 | |
| 
 | |
| # endif	/* RTLD_PRIVATE_ERRNO */
 | |
| 
 | |
| # define __set_errno(val) (errno = (val))
 | |
| 
 | |
| # ifndef __ASSEMBLER__
 | |
| extern int *__errno_location (void) __THROW __attribute__ ((__const__))
 | |
| #  if RTLD_PRIVATE_ERRNO
 | |
|      attribute_hidden
 | |
| #  endif
 | |
| ;
 | |
| libc_hidden_proto (__errno_location)
 | |
| # endif
 | |
| 
 | |
| #endif /* _ERRNO_H */
 | |
| 
 | |
| #endif /* ! _ERRNO_H */
 |