From 5fe14d967045adf037e12a5945ac56de151c2ae2 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 29 Aug 2002 00:34:10 +0000 Subject: Update. * sysdeps/generic/ldsodefs.h (__rtld_global_attribute__): Define. (_rtld_global): Use it. * sysdeps/gnu/Dist: Remove errlist-compat.c. * sysdeps/gnu/Makefile (errlist-compat.c): Build this file in the object directory. Pass all Versions files to the awk script. * sysdeps/gnu/errlist-compat.c: Removed. * sysdeps/gnu/errlist.awk: Use #errlist-compat comments from the first Versions file in the search path which has them. Allow multiple errlist symbol versions to have the same count of errors. * sysdeps/gnu/errlist-compat.awk: Include instead of "errlist-compat.c". * sysdeps/gnu/errlist.c: Regenerated. * sysdeps/unix/sysv/linux/mips/Versions (libc): Add #errlist-compat comments at GLIBC_2.0, GLIBC_2.1 and GLIBC_2.3. * sysdeps/unix/sysv/linux/alpha/Versions: Likewise. (librt): Add aio_cancel and aio_cancel64 as GLIBC_2.3. * sysdeps/unix/sysv/linux/hppa/Versions: Likewise. * sysdeps/unix/sysv/linux/sparc/Versions: New file. * sysdeps/unix/sysv/linux/alpha/bits/errno.h: New file. * sysdeps/unix/sysv/linux/hppa/bits/errno.h (ECANCELED): Define to ECANCELLED if not defined by kernel headers. * sysdeps/unix/sysv/linux/bits/errno.h: Don't redefine ECANCELED if already defined by kernel headers. * sysdeps/unix/sysv/linux/sparc/bits/errno.h: New file. * sysdeps/pthread/aio_cancel.c: Don't include aio.h and its aio_cancel64 renaming hack nor provide weak_alias if aio_cancel is a macro. * Versions.def (GLIBC_2.3) [librt]: Add. * sysdeps/unix/sysv/linux/alpha/pipe.S: New file. 2002-08-28 Ulrich Drepper * include/libc-symbols.h [!__ASSEMBLER__] (declare_symbol_1): Add missing comma to .type directive. 2002-08-28 Jakub Jelinek --- sysdeps/unix/sysv/linux/alpha/Versions | 22 +++++++++++++ sysdeps/unix/sysv/linux/alpha/bits/errno.h | 52 ++++++++++++++++++++++++++++++ sysdeps/unix/sysv/linux/alpha/pipe.S | 1 + sysdeps/unix/sysv/linux/bits/errno.h | 6 ++-- sysdeps/unix/sysv/linux/hppa/Versions | 21 +++++++++++- sysdeps/unix/sysv/linux/hppa/bits/errno.h | 8 +++-- sysdeps/unix/sysv/linux/mips/Versions | 16 +++++++++ sysdeps/unix/sysv/linux/sparc/Versions | 25 ++++++++++++++ sysdeps/unix/sysv/linux/sparc/bits/errno.h | 52 ++++++++++++++++++++++++++++++ 9 files changed, 197 insertions(+), 6 deletions(-) create mode 100644 sysdeps/unix/sysv/linux/alpha/bits/errno.h create mode 100644 sysdeps/unix/sysv/linux/alpha/pipe.S create mode 100644 sysdeps/unix/sysv/linux/sparc/Versions create mode 100644 sysdeps/unix/sysv/linux/sparc/bits/errno.h (limited to 'sysdeps/unix/sysv/linux') diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions index c18816ca6f..89ec9db1c4 100644 --- a/sysdeps/unix/sysv/linux/alpha/Versions +++ b/sysdeps/unix/sysv/linux/alpha/Versions @@ -1,5 +1,14 @@ libc { + # The comment lines with "#errlist-compat" are magic; see + # sysdeps/gnu/errlist-compat.awk. + # When you get an error from errlist-compat.awk, you need to add a new + # version here. Don't do this blindly, since this means changing the ABI + # for all GNU/Linux configurations. + GLIBC_2.0 { + #errlist-compat 131 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + # Unfortunately in wider use. _inb; _inw; _inl; _outb; _outw; _outl; _bus_base; _bus_base_sparse; _hae_shift; @@ -24,6 +33,9 @@ libc { pciconfig_read; pciconfig_write; sethae; } GLIBC_2.1 { + #errlist-compat 131 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + # Linux/Alpha 64-bit timeval functions. __select; select; adjtime; adjtimex; __adjtimex; @@ -57,4 +69,14 @@ libc { # w* wordexp; } + GLIBC_2.3 { + #errlist-compat 132 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + } +} +librt { + GLIBC_2.3 { + # AIO functions. + aio_cancel; aio_cancel64; + } } diff --git a/sysdeps/unix/sysv/linux/alpha/bits/errno.h b/sysdeps/unix/sysv/linux/alpha/bits/errno.h new file mode 100644 index 0000000000..9cdc167bf7 --- /dev/null +++ b/sysdeps/unix/sysv/linux/alpha/bits/errno.h @@ -0,0 +1,52 @@ +/* Error constants. Linux/Alpha specific version. + Copyright (C) 1996, 1997, 1998, 1999, 2002 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. */ + +#ifdef _ERRNO_H + +# undef EDOM +# undef EILSEQ +# undef ERANGE +# include + +/* Linux has no ENOTSUP error code. */ +# define ENOTSUP EOPNOTSUPP + +# ifndef ECANCELED +# define ECANCELED 131 +# endif + +# ifndef __ASSEMBLER__ +/* Function to get address of global `errno' variable. */ +extern int *__errno_location (void) __THROW __attribute__ ((__const__)); + +# if !defined _LIBC || defined _LIBC_REENTRANT +/* When using threads, errno is a per-thread value. */ +# define errno (*__errno_location ()) +# endif +# endif /* !__ASSEMBLER__ */ +#endif /* _ERRNO_H */ + +#if !defined _ERRNO_H && defined __need_Emath +/* This is ugly but the kernel header is not clean enough. We must + define only the values EDOM, EILSEQ and ERANGE in case __need_Emath is + defined. */ +# 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 */ diff --git a/sysdeps/unix/sysv/linux/alpha/pipe.S b/sysdeps/unix/sysv/linux/alpha/pipe.S new file mode 100644 index 0000000000..1e7ec1c199 --- /dev/null +++ b/sysdeps/unix/sysv/linux/alpha/pipe.S @@ -0,0 +1 @@ +#include diff --git a/sysdeps/unix/sysv/linux/bits/errno.h b/sysdeps/unix/sysv/linux/bits/errno.h index 7307c2d6d9..724dabaf10 100644 --- a/sysdeps/unix/sysv/linux/bits/errno.h +++ b/sysdeps/unix/sysv/linux/bits/errno.h @@ -27,9 +27,11 @@ /* Linux has no ENOTSUP error code. */ # define ENOTSUP EOPNOTSUPP -/* Linux also has no ECANCELED error code. Since it is not used here +/* Linux also had no ECANCELED error code. Since it is not used here we define it to an invalid value. */ -# define ECANCELED 125 +# ifndef ECANCELED +# define ECANCELED 125 +# endif # ifndef __ASSEMBLER__ /* Function to get address of global `errno' variable. */ diff --git a/sysdeps/unix/sysv/linux/hppa/Versions b/sysdeps/unix/sysv/linux/hppa/Versions index 475fbe1721..e15c8225fb 100644 --- a/sysdeps/unix/sysv/linux/hppa/Versions +++ b/sysdeps/unix/sysv/linux/hppa/Versions @@ -1,6 +1,25 @@ libc { + # The comment lines with "#errlist-compat" are magic; see errlist-compat.awk. + # When you get an error from errlist-compat.awk, you need to add a new + # version here. Don't do this blindly, since this means changing the ABI + # for all GNU/Linux configurations. + + GLIBC_2.1 { + #errlist-compat 253 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + } GLIBC_2.2 { # New rlimit interface getrlimit; setrlimit; getrlimit64; setrlimit64; } -} \ No newline at end of file + GLIBC_2.3 { + #errlist-compat 254 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + } +} +librt { + GLIBC_2.3 { + # AIO functions. + aio_cancel; aio_cancel64; + } +} diff --git a/sysdeps/unix/sysv/linux/hppa/bits/errno.h b/sysdeps/unix/sysv/linux/hppa/bits/errno.h index 4d75ff1f61..003d71f622 100644 --- a/sysdeps/unix/sysv/linux/hppa/bits/errno.h +++ b/sysdeps/unix/sysv/linux/hppa/bits/errno.h @@ -1,5 +1,5 @@ /* Error constants. Linux/HPPA specific version. - Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1996,1997,1998,1999,2000,2002 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 @@ -26,7 +26,9 @@ /* Linux also has no ECANCELED error code. Since it is not used here we define it to an invalid value. */ -# define ECANCELED 125 +# ifndef ECANCELED +# define ECANCELED ECANCELLED +# endif # ifndef __ASSEMBLER__ /* Function to get address of global `errno' variable. */ @@ -44,6 +46,6 @@ extern int *__errno_location (void) __THROW __attribute__ ((__const__)); define only the values EDOM, EILSEQ and ERANGE in case __need_Emath is defined. */ # define EDOM 33 /* Math argument out of domain of function. */ -# define EILSEQ 84 /* Illegal byte sequence. */ +# define EILSEQ 47 /* Illegal byte sequence. */ # define ERANGE 34 /* Math result not representable. */ #endif /* !_ERRNO_H && __need_Emath */ diff --git a/sysdeps/unix/sysv/linux/mips/Versions b/sysdeps/unix/sysv/linux/mips/Versions index f71d9b5d88..1569885d56 100644 --- a/sysdeps/unix/sysv/linux/mips/Versions +++ b/sysdeps/unix/sysv/linux/mips/Versions @@ -1,5 +1,13 @@ libc { + # The comment lines with "#errlist-compat" are magic; see errlist-compat.awk. + # When you get an error from errlist-compat.awk, you need to add a new + # version here. Don't do this blindly, since this means changing the ABI + # for all GNU/Linux configurations. + GLIBC_2.0 { + #errlist-compat 1134 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + # Exception handling support functions from libgcc __register_frame; __register_frame_table; __deregister_frame; __frame_state_for; __register_frame_info_table; @@ -13,8 +21,16 @@ libc { # s* sysmips; } + GLIBC_2.1 { + #errlist-compat 1134 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + } GLIBC_2.2 { # _* _test_and_set; } + GLIBC_2.3 { + #errlist-compat 1134 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + } } diff --git a/sysdeps/unix/sysv/linux/sparc/Versions b/sysdeps/unix/sysv/linux/sparc/Versions new file mode 100644 index 0000000000..03d1d87176 --- /dev/null +++ b/sysdeps/unix/sysv/linux/sparc/Versions @@ -0,0 +1,25 @@ +libc { + # The comment lines with "#errlist-compat" are magic; see errlist-compat.awk. + # When you get an error from errlist-compat.awk, you need to add a new + # version here. Don't do this blindly, since this means changing the ABI + # for all GNU/Linux configurations. + + GLIBC_2.0 { + #errlist-compat 127 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + } + GLIBC_2.1 { + #errlist-compat 127 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + } + GLIBC_2.3 { + #errlist-compat 128 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + } +} +librt { + GLIBC_2.3 { + # AIO functions. + aio_cancel; aio_cancel64; + } +} diff --git a/sysdeps/unix/sysv/linux/sparc/bits/errno.h b/sysdeps/unix/sysv/linux/sparc/bits/errno.h new file mode 100644 index 0000000000..96b7372f19 --- /dev/null +++ b/sysdeps/unix/sysv/linux/sparc/bits/errno.h @@ -0,0 +1,52 @@ +/* Error constants. Linux/Sparc specific version. + Copyright (C) 1996, 1997, 1998, 1999, 2002 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. */ + +#ifdef _ERRNO_H + +# undef EDOM +# undef EILSEQ +# undef ERANGE +# include + +/* Linux has no ENOTSUP error code. */ +# define ENOTSUP EOPNOTSUPP + +# ifndef ECANCELED +# define ECANCELED 127 +# endif + +# ifndef __ASSEMBLER__ +/* Function to get address of global `errno' variable. */ +extern int *__errno_location (void) __THROW __attribute__ ((__const__)); + +# if !defined _LIBC || defined _LIBC_REENTRANT +/* When using threads, errno is a per-thread value. */ +# define errno (*__errno_location ()) +# endif +# endif /* !__ASSEMBLER__ */ +#endif /* _ERRNO_H */ + +#if !defined _ERRNO_H && defined __need_Emath +/* This is ugly but the kernel header is not clean enough. We must + define only the values EDOM, EILSEQ and ERANGE in case __need_Emath is + defined. */ +# define EDOM 33 /* Math argument out of domain of function. */ +# define EILSEQ 122 /* Illegal byte sequence. */ +# define ERANGE 34 /* Math result not representable. */ +#endif /* !_ERRNO_H && __need_Emath */ -- cgit 1.4.1