mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-31 22:10:34 +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.
		
			
				
	
	
		
			165 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			165 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 1982, 1986, 1989, 1993
 | |
|  *	The Regents of the University of California.  All rights reserved.
 | |
|  * (c) UNIX System Laboratories, Inc.
 | |
|  * All or some portions of this file are derived from material licensed
 | |
|  * to the University of California by American Telephone and Telegraph
 | |
|  * Co. or Unix System Laboratories, Inc. and are reproduced herein with
 | |
|  * the permission of UNIX System Laboratories, Inc.
 | |
|  *
 | |
|  * Redistribution and use in source and binary forms, with or without
 | |
|  * modification, are permitted provided that the following conditions
 | |
|  * are met:
 | |
|  * 1. Redistributions of source code must retain the above copyright
 | |
|  *    notice, this list of conditions and the following disclaimer.
 | |
|  * 2. Redistributions in binary form must reproduce the above copyright
 | |
|  *    notice, this list of conditions and the following disclaimer in the
 | |
|  *    documentation and/or other materials provided with the distribution.
 | |
|  * 4. Neither the name of the University nor the names of its contributors
 | |
|  *    may be used to endorse or promote products derived from this software
 | |
|  *    without specific prior written permission.
 | |
|  *
 | |
|  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | |
|  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | |
|  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | |
|  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | |
|  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | |
|  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | |
|  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | |
|  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | |
|  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | |
|  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | |
|  * SUCH DAMAGE.
 | |
|  *
 | |
|  *	@(#)errno.h	8.5 (Berkeley) 1/21/94
 | |
|  */
 | |
| 
 | |
| #ifdef	_ERRNO_H
 | |
| 
 | |
| #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		/* Input/output error */
 | |
| #define	ENXIO		6		/* Device not configured */
 | |
| #define	E2BIG		7		/* Argument list too long */
 | |
| #define	ENOEXEC		8		/* Exec format error */
 | |
| #define	EBADF		9		/* Bad file descriptor */
 | |
| #define	ECHILD		10		/* No child processes */
 | |
| #define	EDEADLK		11		/* Resource deadlock avoided */
 | |
| 					/* 11 was EAGAIN */
 | |
| #define	ENOMEM		12		/* Cannot allocate memory */
 | |
| #define	EACCES		13		/* Permission denied */
 | |
| #define	EFAULT		14		/* Bad address */
 | |
| #ifdef	__USE_BSD
 | |
| #define	ENOTBLK		15		/* Block device required */
 | |
| #endif
 | |
| #define	EBUSY		16		/* Device busy */
 | |
| #define	EEXIST		17		/* File exists */
 | |
| #define	EXDEV		18		/* Cross-device link */
 | |
| #define	ENODEV		19		/* Operation not supported by 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 ioctl for device */
 | |
| #ifdef	__USE_BSD
 | |
| #define	ETXTBSY		26		/* Text file busy */
 | |
| #endif
 | |
| #define	EFBIG		27		/* File too large */
 | |
| #define	ENOSPC		28		/* No space left on device */
 | |
| #define	ESPIPE		29		/* Illegal seek */
 | |
| #define	EROFS		30		/* Read-only file system */
 | |
| #define	EMLINK		31		/* Too many links */
 | |
| #define	EPIPE		32		/* Broken pipe */
 | |
| 
 | |
| #endif /* <errno.h> included.  */
 | |
| 
 | |
| /* math software */
 | |
| 
 | |
| #if !defined(__Emath_defined) &&  (defined(_ERRNO_H) || defined(__need_Emath))
 | |
| #define	EDOM		33		/* Numerical argument out of domain */
 | |
| #endif /* Emath not defined and <errno.h> included or need Emath.  */
 | |
| #if !defined(__Emath_defined) &&  (defined(_ERRNO_H) || defined(__need_Emath))
 | |
| #define	ERANGE		34		/* Result too large */
 | |
| #endif /* Emath not defined and <errno.h> included or need Emath.  */
 | |
| 
 | |
| #ifdef _ERRNO_H
 | |
| 
 | |
| /* non-blocking and interrupt i/o */
 | |
| #define	EAGAIN		35		/* Resource temporarily unavailable */
 | |
| #ifdef	__USE_BSD
 | |
| #define	EWOULDBLOCK	EAGAIN		/* Operation would block */
 | |
| #define	EINPROGRESS	36		/* Operation now in progress */
 | |
| #define	EALREADY	37		/* Operation already in progress */
 | |
| 
 | |
| /* ipc/network software -- argument errors */
 | |
| #define	ENOTSOCK	38		/* Socket operation on non-socket */
 | |
| #define	EDESTADDRREQ	39		/* Destination address required */
 | |
| #define	EMSGSIZE	40		/* Message too long */
 | |
| #define	EPROTOTYPE	41		/* Protocol wrong type for socket */
 | |
| #define	ENOPROTOOPT	42		/* Protocol not available */
 | |
| #define	EPROTONOSUPPORT	43		/* Protocol not supported */
 | |
| #define	ESOCKTNOSUPPORT	44		/* Socket type not supported */
 | |
| #define	EOPNOTSUPP	45		/* Operation not supported */
 | |
| #define	EPFNOSUPPORT	46		/* Protocol family not supported */
 | |
| #define	EAFNOSUPPORT	47		/* Address family not supported by protocol family */
 | |
| #define	EADDRINUSE	48		/* Address already in use */
 | |
| #define	EADDRNOTAVAIL	49		/* Can't assign requested address */
 | |
| 
 | |
| /* ipc/network software -- operational errors */
 | |
| #define	ENETDOWN	50		/* Network is down */
 | |
| #define	ENETUNREACH	51		/* Network is unreachable */
 | |
| #define	ENETRESET	52		/* Network dropped connection on reset */
 | |
| #define	ECONNABORTED	53		/* Software caused connection abort */
 | |
| #define	ECONNRESET	54		/* Connection reset by peer */
 | |
| #define	ENOBUFS		55		/* No buffer space available */
 | |
| #define	EISCONN		56		/* Socket is already connected */
 | |
| #define	ENOTCONN	57		/* Socket is not connected */
 | |
| #define	ESHUTDOWN	58		/* Can't send after socket shutdown */
 | |
| #define	ETOOMANYREFS	59		/* Too many references: can't splice */
 | |
| #define	ETIMEDOUT	60		/* Operation timed out */
 | |
| #define	ECONNREFUSED	61		/* Connection refused */
 | |
| 
 | |
| #define	ELOOP		62		/* Too many levels of symbolic links */
 | |
| #endif /* __USE_BSD */
 | |
| #define	ENAMETOOLONG	63		/* File name too long */
 | |
| 
 | |
| /* should be rearranged */
 | |
| #ifdef	__USE_BSD
 | |
| #define	EHOSTDOWN	64		/* Host is down */
 | |
| #define	EHOSTUNREACH	65		/* No route to host */
 | |
| #endif /* __USE_BSD */
 | |
| #define	ENOTEMPTY	66		/* Directory not empty */
 | |
| 
 | |
| /* quotas & mush */
 | |
| #ifdef	__USE_BSD
 | |
| #define	EPROCLIM	67		/* Too many processes */
 | |
| #define	EUSERS		68		/* Too many users */
 | |
| #define	EDQUOT		69		/* Disc quota exceeded */
 | |
| 
 | |
| /* Network File System */
 | |
| #define	ESTALE		70		/* Stale NFS file handle */
 | |
| #define	EREMOTE		71		/* Too many levels of remote in path */
 | |
| #define	EBADRPC		72		/* RPC struct is bad */
 | |
| #define	ERPCMISMATCH	73		/* RPC version wrong */
 | |
| #define	EPROGUNAVAIL	74		/* RPC prog. not avail */
 | |
| #define	EPROGMISMATCH	75		/* Program version wrong */
 | |
| #define	EPROCUNAVAIL	76		/* Bad procedure for program */
 | |
| #endif /* __USE_BSD */
 | |
| 
 | |
| #define	ENOLCK		77		/* No locks available */
 | |
| #define	ENOSYS		78		/* Function not implemented */
 | |
| 
 | |
| #define	EFTYPE		79		/* Inappropriate file type or format */
 | |
| 
 | |
| #ifdef	__USE_BSD
 | |
| #define	EAUTH		80		/* Authentication error */
 | |
| #define	ENEEDAUTH	81		/* Need authenticator */
 | |
| #define	ELAST		81		/* Must be equal largest errno */
 | |
| #endif /* __USE_BSD */
 | |
| 
 | |
| 
 | |
| #endif /* <errno.h> included.  */
 |