mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-30 10:45:40 +03:00 
			
		
		
		
	2002-07-19 Ulrich Drepper <drepper@redhat.com> * configure.in: Add test for __thread support in compiler. * config.h.in: Add HAVE___THREAD. * Makefile (headers): Remove errno.h, sys/errno.h, and bits/errno.h. * include/sys/errno.h: Moved to... * stdlib/sys/errno.h: ...here. New file. * stdlib/errno.h: New file. Moved from... * include/errno.h: ...here. Changed into an internal header defining libc-local things like __set_errno. * stdlib/Makefile (headers): Add errno.h, sys/errno.h, and bits/errno.h. * elf/dl-minimal.c: Include <tls.h>. Define errno as thread-local variable if USE_TLS && HAVE___THREAD. Don't define __errno_location either. * elf/rtld.c (_dl_start): Add code to initialize TLS for ld.so from... (_dl_start_final): ...here. Add code to initialize tls elements from bootstrap_map. * sysdeps/generic/errno-loc.c: Define errno as thread-local variable if USE_TLS && HAVE___THREAD. * sysdeps/generic/bits/errno.h: Remove __set_errno definition. * sysdeps/mach/hurd/bits/errno.h: Likewise. * sysdeps/standalone/arm/bits/errno.h: Likewise. * sysdeps/standalone/bits/errno.h: Likewise. * sysdeps/unix/bsd/bsd4.4/bits/errno.h: Likewise. * sysdeps/unix/sysv/aix/bits/errno.h: Likewise. * sysdeps/unix/sysv/hpux/bits/errno.h: Likewise. * sysdeps/unix/sysv/linux/bits/errno.h: Likewise. * sysdeps/unix/sysv/linux/hppa/bits/errno.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/errno.h: Likewise. * sysdeps/unix/sysv/sysv4/solaris2/bits/errno.h: Likewise. * sysdeps/i386/dl-machine.c (elf_machine_rel) [RTLD_BOOTSTRAP]: Don't use GL(dl_rtld_map), use map parameter. * sysdeps/sh/dl-machine.h (elf_machine_rela): Likewise. * sysdeps/unix/sysv/linux/i386/sysdep.S: Define errno in .tbss if USE_TLS && HAVE___THREAD. * sysdeps/unix/sysv/linux/i386/sysdep.h: Unify SETUP_PIC_REG definitions. If USE_TLS && HAVE___THREAD store errooor value using TLS code sequence. * sysdeps/unix/sysv/linux/i386/i686/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/getcwd.c: No real need to restore errno. * sysdeps/unix/sysv/linux/grantpt.c: Likewise. * sysdeps/unix/sysv/linux/internal_statvfs.c: Likewise. * sysdeps/unix/sysv/linux/msgctl.c: Likewise. * sysdeps/unix/sysv/linux/readv.c: Likewise. * sysdeps/unix/sysv/linux/writev.c: Likewise.
		
			
				
	
	
		
			154 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			154 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
 | |
|    This file is part of the GNU C Library.
 | |
| 
 | |
|    The GNU C Library is free software; you can redistribute it and/or
 | |
|    modify it under the terms of the GNU Lesser General Public
 | |
|    License as published by the Free Software Foundation; either
 | |
|    version 2.1 of the License, or (at your option) any later version.
 | |
| 
 | |
|    The GNU C Library is distributed in the hope that it will be useful,
 | |
|    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | |
|    Lesser General Public License for more details.
 | |
| 
 | |
|    You should have received a copy of the GNU Lesser General Public
 | |
|    License along with the GNU C Library; if not, write to the Free
 | |
|    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 | |
|    02111-1307 USA.  */
 | |
| 
 | |
| /* This file defines the `errno' constants.  */
 | |
| 
 | |
| #if !defined __Emath_defined && (defined _ERRNO_H || defined __need_Emath)
 | |
| #undef	__need_Emath
 | |
| #define	__Emath_defined	1
 | |
| 
 | |
| #endif
 | |
| 
 | |
| #ifdef	_ERRNO_H
 | |
| # undef EDOM
 | |
| # undef EILSEQ
 | |
| # undef ERANGE
 | |
| 
 | |
| # define EPERM		1	/* Operation not permitted.  */
 | |
| # define ENOENT		2	/* No such file or directory.  */
 | |
| # define ESRCH		3	/* No such process.  */
 | |
| # define EINTR		4	/* interrupted system call.  */
 | |
| # define EIO		5	/* I/O error.  */
 | |
| # define ENXIO		6	/* No such device or address.  */
 | |
| # define E2BIG		7	/* Arg list too long.  */
 | |
| # define ENOEXEC	8	/* Exec format error.  */
 | |
| # define EBADF		9	/* Bad file descriptor.  */
 | |
| # define ECHILD		10	/* No child processes.  */
 | |
| # define EAGAIN		11	/* Resource temporarily unavailable.  */
 | |
| # define ENOMEM		12	/* Not enough space.  */
 | |
| # define EACCES		13	/* Permission denied.  */
 | |
| # define EFAULT		14	/* Bad address.  */
 | |
| # define ENOTBLK	15	/* Block device required.  */
 | |
| # define EBUSY		16	/* Resource busy.  */
 | |
| # define EEXIST		17	/* File exists.  */
 | |
| # define EXDEV		18	/* Improper link.  */
 | |
| # define ENODEV		19	/* No such device.  */
 | |
| # define ENOTDIR	20	/* Not a directory.  */
 | |
| # define EISDIR		21	/* Is a directory.  */
 | |
| # define EINVAL		22	/* Invalid argument.  */
 | |
| # define ENFILE		23	/* Too many open files in system.  */
 | |
| # define EMFILE		24	/* Too many open files.  */
 | |
| # define ENOTTY		25	/* Inappropriate I/O control operation.  */
 | |
| # define ETXTBSY	26	/* Text file busy.  */
 | |
| # define EFBIG		27	/* File too large.  */
 | |
| # define ENOSPC		28	/* No space left on device.  */
 | |
| # define ESPIPE		29	/* Invalid seek.  */
 | |
| # define EROFS		30	/* Read only file system.  */
 | |
| # define EMLINK		31	/* Too many links.  */
 | |
| # define EPIPE		32	/* Broken pipe.  */
 | |
| # define EDOM		33	/* Domain error within math function.  */
 | |
| # define ERANGE		34	/* Result too large.  */
 | |
| # define ENOMSG		35	/* No message of desired type.  */
 | |
| # define EIDRM		36	/* Identifier removed.  */
 | |
| # define ECHRNG		37	/* Channel number out of range.  */
 | |
| # define EL2NSYNC	38	/* Level 2 not synchronized.  */
 | |
| # define EL3HLT		39	/* Level 3 halted.  */
 | |
| # define EL3RST		40	/* Level 3 reset.  */
 | |
| # define ELNRNG		41	/* Link number out of range.  */
 | |
| # define EUNATCH	42	/* Protocol driver not attached.  */
 | |
| # define ENOCSI		43	/* No CSI structure available.  */
 | |
| # define EL2HLT		44	/* Level 2 halted.  */
 | |
| # define EDEADLK	45	/* Resource deadlock avoided.  */
 | |
| # define ENOTREADY	46	/* Device not ready.  */
 | |
| # define EWRPROTECT	47	/* Write-protected media.  */
 | |
| # define EFORMAT	48	/* Unformatted media.  */
 | |
| # define ENOLCK		49	/* No locks available.  */
 | |
| # define ENOCONNECT	50	/* No connection.  */
 | |
| # define ESTALE		52	/* No filesystem.  */
 | |
| # define EDIST		53	/* Old, currently unused AIX errno.  */
 | |
| # if __USE_XOPEN_EXTENDED
 | |
| #  define EWOULDBLOCK	EAGAIN	/* Operation would block.  */
 | |
| # else /* __USE_XOPEN_EXTENDED */
 | |
| #  define EWOULDBLOCK	54
 | |
| # endif /* __USE_XOPEN_EXTENDED */
 | |
| # define EINPROGRESS	55	/* Operation now in progress.  */
 | |
| # define EALREADY	56	/* Operation already in progress.  */
 | |
| # define ENOTSOCK	57	/* Socket operation on non-socket.  */
 | |
| # define EDESTADDRREQ	58	/* Destination address required.  */
 | |
| # define EDESTADDREQ	EDESTADDRREQ /* Destination address required.  */
 | |
| # define EMSGSIZE	59	/* Message too long.  */
 | |
| # define EPROTOTYPE	60	/* Protocol wrong type for socket.  */
 | |
| # define ENOPROTOOPT	61	/* Protocol not available.  */
 | |
| # define EPROTONOSUPPORT 62	/* Protocol not supported.  */
 | |
| # define ESOCKTNOSUPPORT 63	/* Socket type not supported.  */
 | |
| # define EOPNOTSUPP	64	/* Operation not supported on socket.  */
 | |
| # define EPFNOSUPPORT	65	/* Protocol family not supported.  */
 | |
| # define EAFNOSUPPORT	66	/* Address family not supported by protocol
 | |
| 				   family.  */
 | |
| # define EADDRINUSE	67	/* Address already in use.  */
 | |
| # define EADDRNOTAVAIL	68	/* Can't assign requested address.  */
 | |
| # define ENETDOWN	69	/* Network is down.  */
 | |
| # define ENETUNREACH	70	/* Network is unreachable.  */
 | |
| # define ENETRESET	71	/* Network dropped connection on reset.  */
 | |
| # define ECONNABORTED	72	/* Software caused connection abort.  */
 | |
| # define ECONNRESET	73	/* Connection reset by peer.  */
 | |
| # define ENOBUFS	74	/* No buffer space available.  */
 | |
| # define EISCONN	75	/* Socket is already connected.  */
 | |
| # define ENOTCONN	76	/* Socket is not connected.  */
 | |
| # define ESHUTDOWN	77	/* Can't send after socket shutdown.  */
 | |
| # define ETIMEDOUT	78	/* Connection timed out.  */
 | |
| # define ECONNREFUSED	79	/* Connection refused.  */
 | |
| # define EHOSTDOWN	80	/* Host is down.  */
 | |
| # define EHOSTUNREACH	81	/* No route to host.  */
 | |
| # define ERESTART	82	/* Restart the system call.  */
 | |
| # define EPROCLIM	83	/* Too many processes.  */
 | |
| # define EUSERS		84	/* Too many users.  */
 | |
| # define ELOOP		85	/* Too many levels of symbolic links.  */
 | |
| # define ENAMETOOLONG	86	/* File name too long.  */
 | |
| # define ENOTEMPTY	EEXIST	/* Directory not empty.  */
 | |
| # define EDQUOT		88	/* Disc quota exceeded.  */
 | |
| # define ECORRUPT	89	/* Invalid file system control data.  */
 | |
| # define EREMOTE	93	/* Item is not local to host.  */
 | |
| # define ENOSYS		109	/* Function not implemented POSIX.  */
 | |
| # define EMEDIA		110	/* Media surface error.  */
 | |
| # define ESOFT		111	/* I/O completed, but needs relocation.  */
 | |
| # define ENOATTR	112	/* No attribute found.  */
 | |
| # define ESAD		113	/* Security authentication denied.  */
 | |
| # define ENOTRUST	114	/* Not a trusted program.  */
 | |
| # define ETOOMANYREFS	115	/* Too many references: can't splice.  */
 | |
| # define EILSEQ		116	/* Invalid wide character.  */
 | |
| # define ECANCELED	117	/* Asynchronous i/o cancelled.  */
 | |
| # define ENOSR		118	/* Temp out of streams resources.  */
 | |
| # define ETIME		119	/* I_STR ioctl timed out.  */
 | |
| # define EBADMSG	120	/* Wrong message type at stream head.  */
 | |
| # define EPROTO		121	/* STREAMS protocol error.  */
 | |
| # define ENODATA	122	/* No message ready at stream head.  */
 | |
| # define ENOSTR		123	/* Fd is not a stream.  */
 | |
| # define ECLONEME	ERESTART /* This is the way we clone a stream.  */
 | |
| # define ENOTSUP	124	/* POSIX threads unsupported value.  */
 | |
| # define EMULTIHOP	125	/* Multihop is not allowed.  */
 | |
| # define ENOLINK	126	/* The link has been severed.  */
 | |
| # define EOVERFLOW	127	/* Value too large to be stored in data type.*/
 | |
| #endif
 | |
| 
 | |
| #if !defined _ERRNO_H && defined __need_Emath
 | |
| # define EDOM	33	/* Math argument out of domain of function.  */
 | |
| # define EILSEQ	116	/* Illegal byte sequence.  */
 | |
| # define ERANGE	34	/* Math result not representable.  */
 | |
| #endif /* !_ERRNO_H && __need_Emath */
 |