From f377d02227448a6f0d97eaf48ba60483c2f27e98 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 7 Sep 2004 22:33:37 +0000 Subject: Update. * include/atomic.h: Define atomic_increment_val, atomic_decrement_val, and atomic_dealy is not already defined. * sysdeps/i386/i486/bits/atomic.h: Define atomic_delay. * sysdeps/x86_64/bits/atomic.h: Likewise. * miscd/sys/cdefs.h (__NTH): New macro. (__THROW): Define using nothrow attribute for C code and gcc >= 3.2. (__REDIRECT_NTH): New macro. * argp/argp.h: Use __NTH and __REDIRECT_NTH where necessary. * ctype/ctype.h: Likewise. * dirent/dirent.h: Likewise. * io/fcntl.h: Likewise. * io/sys/sendfile.h: Likewise. * io/sys/stat.h: Likewise. * io/sys/statfs.h: Likewise. * io/sys/statvfs.h: Likewise. * libio/bits/stdio.h: Likewise. * misc/sys/mman.h: Likewise. * posix/unistd.h: Likewise. * resource/sys/resource.h: Likewise. * rt/aio.h: Likewise. * signal/signal.h: Likewise. * stdlib/stdlib.h: Likewise. * string/argz.h: Likewise. * string/string.h: Likewise. * sysdeps/generic/inttypes.h: Likewise. * sysdeps/i386/fpu/bits/mathinline.h: Likewise. * sysdeps/powerpc/fpu/bits/mathinline.h: Likewise. * sysdeps/s390/fpu/bits/mathinline.h: Likewise. * sysdeps/x86_64/fpu/bits/mathinline.h: Likewise. * sysdeps/unix/sysv/linux/bits/socket.h: Likewise. * sysdeps/unix/sysv/linux/bits/sys/sysmacros.h: Likewise. * wcsmbs/wchar.h: Likewise. * sysdeps/generic/glob.c: Use __PMT isntead of __P where appropriate. * resolv/gethnamaddr.c (getanswer): Remove __P use in variable definition. * io/sys/poll.h: Remove __THROW from poll prototype, it's a cancellation point. --- ChangeLog | 42 ++++++++++++++++++++++ argp/argp.h | 11 +++--- ctype/ctype.h | 6 ++-- dirent/dirent.h | 24 ++++++------- include/atomic.h | 17 ++++++++- io/fcntl.h | 10 +++--- io/sys/sendfile.h | 11 +++--- io/sys/stat.h | 63 ++++++++++++++++----------------- io/sys/statfs.h | 16 ++++----- io/sys/statvfs.h | 17 +++++---- libio/bits/stdio.h | 4 +-- misc/sys/cdefs.h | 22 +++++++++--- misc/sys/mman.h | 12 +++---- posix/unistd.h | 32 ++++++++--------- resource/sys/resource.h | 17 +++++---- rt/aio.h | 58 +++++++++++++++--------------- signal/signal.h | 9 +++-- stdlib/stdlib.h | 40 ++++++++++----------- string/argz.h | 10 +++--- string/string.h | 10 +++--- sysdeps/generic/inttypes.h | 32 ++++++++--------- sysdeps/i386/fpu/bits/mathinline.h | 42 +++++++++++----------- sysdeps/i386/i486/bits/atomic.h | 3 ++ sysdeps/powerpc/fpu/bits/mathinline.h | 28 +++++++-------- sysdeps/s390/fpu/bits/mathinline.h | 14 ++++---- sysdeps/unix/sysv/linux/bits/socket.h | 4 +-- sysdeps/unix/sysv/linux/sys/sysmacros.h | 8 ++--- sysdeps/x86_64/bits/atomic.h | 5 ++- sysdeps/x86_64/fpu/bits/mathinline.h | 8 ++--- wcsmbs/wchar.h | 47 ++++++++++++------------ 30 files changed, 347 insertions(+), 275 deletions(-) diff --git a/ChangeLog b/ChangeLog index 944416412f..968756a24d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,47 @@ 2004-09-07 Ulrich Drepper + * include/atomic.h: Define atomic_increment_val, atomic_decrement_val, + and atomic_dealy is not already defined. + * sysdeps/i386/i486/bits/atomic.h: Define atomic_delay. + * sysdeps/x86_64/bits/atomic.h: Likewise. + + * miscd/sys/cdefs.h (__NTH): New macro. + (__THROW): Define using nothrow attribute for C code and gcc >= 3.2. + (__REDIRECT_NTH): New macro. + * argp/argp.h: Use __NTH and __REDIRECT_NTH where necessary. + * ctype/ctype.h: Likewise. + * dirent/dirent.h: Likewise. + * io/fcntl.h: Likewise. + * io/sys/sendfile.h: Likewise. + * io/sys/stat.h: Likewise. + * io/sys/statfs.h: Likewise. + * io/sys/statvfs.h: Likewise. + * libio/bits/stdio.h: Likewise. + * misc/sys/mman.h: Likewise. + * posix/unistd.h: Likewise. + * resource/sys/resource.h: Likewise. + * rt/aio.h: Likewise. + * signal/signal.h: Likewise. + * stdlib/stdlib.h: Likewise. + * string/argz.h: Likewise. + * string/string.h: Likewise. + * sysdeps/generic/inttypes.h: Likewise. + * sysdeps/i386/fpu/bits/mathinline.h: Likewise. + * sysdeps/powerpc/fpu/bits/mathinline.h: Likewise. + * sysdeps/s390/fpu/bits/mathinline.h: Likewise. + * sysdeps/x86_64/fpu/bits/mathinline.h: Likewise. + * sysdeps/unix/sysv/linux/bits/socket.h: Likewise. + * sysdeps/unix/sysv/linux/bits/sys/sysmacros.h: Likewise. + * wcsmbs/wchar.h: Likewise. + + * sysdeps/generic/glob.c: Use __PMT isntead of __P where appropriate. + + * resolv/gethnamaddr.c (getanswer): Remove __P use in variable + definition. + + * io/sys/poll.h: Remove __THROW from poll prototype, it's a + cancellation point. + * io/fts.c (fts_open): Remove uses of __P. * include/stdlib.h: No need to use __THROW in this header. diff --git a/argp/argp.h b/argp/argp.h index 78a9d1bb3c..008e039f9e 100644 --- a/argp/argp.h +++ b/argp/argp.h @@ -1,5 +1,5 @@ /* Hierarchial argument parsing, layered over getopt. - Copyright (C) 1995,1996,1997,1998,1999,2003 Free Software Foundation, Inc. + Copyright (C) 1995-1999,2003,2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -35,6 +35,9 @@ #ifndef __THROW # define __THROW #endif +#ifndef __NTH +# define __NTH(fct) fct __THROW +#endif #ifndef __attribute__ /* This feature is available in gcc versions 2.5 and later. */ @@ -558,13 +561,13 @@ extern void *__argp_input (__const struct argp *__restrict __argp, # endif ARGP_EI void -__argp_usage (__const struct argp_state *__state) __THROW +__NTH (__argp_usage (__const struct argp_state *__state)) { __argp_state_help (__state, stderr, ARGP_HELP_STD_USAGE); } ARGP_EI int -__option_is_short (__const struct argp_option *__opt) __THROW +__NTH (__option_is_short (__const struct argp_option *__opt)) { if (__opt->flags & OPTION_DOC) return 0; @@ -576,7 +579,7 @@ __option_is_short (__const struct argp_option *__opt) __THROW } ARGP_EI int -__option_is_end (__const struct argp_option *__opt) __THROW +__NTH (__option_is_end (__const struct argp_option *__opt)) { return !__opt->key && !__opt->name && !__opt->doc && !__opt->group; } diff --git a/ctype/ctype.h b/ctype/ctype.h index c7290ed731..e08545359d 100644 --- a/ctype/ctype.h +++ b/ctype/ctype.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,92,93,95,96,97,98,99,2001,02 +/* Copyright (C) 1991,92,93,95,96,97,98,99,2001,2002,2004 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -188,13 +188,13 @@ __exctype (_tolower); # ifdef __USE_EXTERN_INLINES extern __inline int -tolower (int __c) __THROW +__NTH (tolower (int __c)) { return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c; } extern __inline int -toupper (int __c) __THROW +__NTH (toupper (int __c)) { return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c; } diff --git a/dirent/dirent.h b/dirent/dirent.h index 319fb745a1..173d0eba97 100644 --- a/dirent/dirent.h +++ b/dirent/dirent.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-1999, 2000, 2003 Free Software Foundation, Inc. +/* Copyright (C) 1991-2000, 2003, 2004 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 @@ -268,9 +268,9 @@ extern int alphasort (__const void *__e1, __const void *__e2) __THROW __attribute_pure__; # else # ifdef __REDIRECT -extern int __REDIRECT (alphasort, - (__const void *__e1, __const void *__e2) __THROW, - alphasort64) __attribute_pure__; +extern int __REDIRECT_NTH (alphasort, + (__const void *__e1, __const void *__e2), + alphasort64) __attribute_pure__; # else # define alphasort alphasort64 # endif @@ -288,9 +288,9 @@ extern int versionsort (__const void *__e1, __const void *__e2) __THROW __attribute_pure__; # else # ifdef __REDIRECT -extern int __REDIRECT (versionsort, - (__const void *__e1, __const void *__e2) __THROW, - versionsort64) __attribute_pure__; +extern int __REDIRECT_NTH (versionsort, + (__const void *__e1, __const void *__e2), + versionsort64) __attribute_pure__; # else # define versionsort versionsort64 # endif @@ -312,11 +312,11 @@ extern __ssize_t getdirentries (int __fd, char *__restrict __buf, __off_t *__restrict __basep) __THROW; # else # ifdef __REDIRECT -extern __ssize_t __REDIRECT (getdirentries, - (int __fd, char *__restrict __buf, - size_t __nbytes, - __off64_t *__restrict __basep) __THROW, - getdirentries64); +extern __ssize_t __REDIRECT_NTH (getdirentries, + (int __fd, char *__restrict __buf, + size_t __nbytes, + __off64_t *__restrict __basep), + getdirentries64); # else # define getdirentries getdirentries64 # endif diff --git a/include/atomic.h b/include/atomic.h index 092b6e00a3..8a23f6ee9e 100644 --- a/include/atomic.h +++ b/include/atomic.h @@ -1,5 +1,5 @@ /* Internal macros for atomic operations for GNU C Library. - Copyright (C) 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2002. @@ -151,6 +151,11 @@ #endif +#ifndef atomic_increment_val +# define atomic_increment_val(mem) (atomic_exchange_and_add ((mem), 1) + 1) +#endif + + /* Add one to *MEM and return true iff it's now zero. */ #ifndef atomic_increment_and_test # define atomic_increment_and_test(mem) \ @@ -163,6 +168,11 @@ #endif +#ifndef atomic_decrement_val +# define atomic_decrement_val(mem) (atomic_exchange_and_add ((mem), -1) - 1) +#endif + + /* Subtract 1 from *MEM and return true iff it's now zero. */ #ifndef atomic_decrement_and_test # define atomic_decrement_and_test(mem) \ @@ -243,4 +253,9 @@ # define atomic_write_barrier() atomic_full_barrier () #endif + +#ifndef atomic_delay +# define atomic_delay() do { /* nothing */ } while (0) +#endif + #endif /* atomic.h */ diff --git a/io/fcntl.h b/io/fcntl.h index b81a5b7230..b1a9f65387 100644 --- a/io/fcntl.h +++ b/io/fcntl.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,1992,1994-2001,2003 Free Software Foundation, Inc. +/* Copyright (C) 1991,1992,1994-2001,2003,2004 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 @@ -136,10 +136,10 @@ extern int lockf64 (int __fd, int __cmd, __off64_t __len); extern int posix_fadvise (int __fd, __off_t __offset, __off_t __len, int __advise) __THROW; # else -# ifdef __REDIRECT -extern int __REDIRECT (posix_fadvise, (int __fd, __off64_t __offset, - __off64_t __len, int __advise) __THROW, - posix_fadvise64); +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (posix_fadvise, (int __fd, __off64_t __offset, + __off64_t __len, int __advise), + posix_fadvise64); # else # define posix_fadvise posix_fadvise64 # endif diff --git a/io/sys/sendfile.h b/io/sys/sendfile.h index 797822b9fe..4c1367b6be 100644 --- a/io/sys/sendfile.h +++ b/io/sys/sendfile.h @@ -1,5 +1,5 @@ /* sendfile -- copy data directly from one file descriptor to another - Copyright (C) 1998,99,01,2002 Free Software Foundation, Inc. + Copyright (C) 1998,99,01,2002,2004 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 @@ -34,11 +34,10 @@ __BEGIN_DECLS extern ssize_t sendfile (int __out_fd, int __in_fd, off_t *__offset, size_t __count) __THROW; #else -# ifdef __REDIRECT -extern ssize_t __REDIRECT (sendfile, - (int __out_fd, int __in_fd, __off64_t *__offset, - size_t __count) __THROW, - sendfile64); +# ifdef __REDIRECT_NTH +extern ssize_t __REDIRECT_NTH (sendfile, + (int __out_fd, int __in_fd, __off64_t *__offset, + size_t __count), sendfile64); # else # define sendfile sendfile64 # endif diff --git a/io/sys/stat.h b/io/sys/stat.h index e71006a43d..abe68860cb 100644 --- a/io/sys/stat.h +++ b/io/sys/stat.h @@ -211,12 +211,10 @@ extern int stat (__const char *__restrict __file, that file descriptor FD is open on and put them in BUF. */ extern int fstat (int __fd, struct stat *__buf) __THROW; #else -# ifdef __REDIRECT -extern int __REDIRECT (stat, - (__const char *__restrict __file, - struct stat *__restrict __buf) __THROW, - stat64); -extern int __REDIRECT (fstat, (int __fd, struct stat *__buf) __THROW, fstat64); +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (stat, (__const char *__restrict __file, + struct stat *__restrict __buf), stat64); +extern int __REDIRECT_NTH (fstat, (int __fd, struct stat *__buf), fstat64); # else # define stat stat64 # define fstat fstat64 @@ -235,11 +233,10 @@ extern int fstat64 (int __fd, struct stat64 *__buf) __THROW; extern int lstat (__const char *__restrict __file, struct stat *__restrict __buf) __THROW; # else -# ifdef __REDIRECT -extern int __REDIRECT (lstat, - (__const char *__restrict __file, - struct stat *__restrict __buf) __THROW, - lstat64); +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (lstat, + (__const char *__restrict __file, + struct stat *__restrict __buf), lstat64); # else # define lstat lstat64 # endif @@ -322,15 +319,13 @@ extern int __xstat (int __ver, __const char *__filename, extern int __lxstat (int __ver, __const char *__filename, struct stat *__stat_buf) __THROW; #else -# ifdef __REDIRECT -extern int __REDIRECT (__fxstat, (int __ver, int __fildes, - struct stat *__stat_buf) __THROW, - __fxstat64); -extern int __REDIRECT (__xstat, (int __ver, __const char *__filename, - struct stat *__stat_buf) __THROW, __xstat64); -extern int __REDIRECT (__lxstat, (int __ver, __const char *__filename, - struct stat *__stat_buf) __THROW, - __lxstat64); +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (__fxstat, (int __ver, int __fildes, + struct stat *__stat_buf), __fxstat64); +extern int __REDIRECT_NTH (__xstat, (int __ver, __const char *__filename, + struct stat *__stat_buf), __xstat64); +extern int __REDIRECT_NTH (__lxstat, (int __ver, __const char *__filename, + struct stat *__stat_buf), __lxstat64); # else # define __fxstat __fxstat64 @@ -353,28 +348,29 @@ extern int __xmknod (int __ver, __const char *__path, __mode_t __mode, #if defined __GNUC__ && __GNUC__ >= 2 /* Inlined versions of the real stat and mknod functions. */ -extern __inline__ int stat (__const char *__path, - struct stat *__statbuf) __THROW +extern __inline__ int +__NTH (stat (__const char *__path, struct stat *__statbuf)) { return __xstat (_STAT_VER, __path, __statbuf); } # if defined __USE_BSD || defined __USE_XOPEN_EXTENDED -extern __inline__ int lstat (__const char *__path, - struct stat *__statbuf) __THROW +extern __inline__ int +__NTH (lstat (__const char *__path, struct stat *__statbuf)) { return __lxstat (_STAT_VER, __path, __statbuf); } # endif -extern __inline__ int fstat (int __fd, struct stat *__statbuf) __THROW +extern __inline__ int +__NTH (fstat (int __fd, struct stat *__statbuf)) { return __fxstat (_STAT_VER, __fd, __statbuf); } # if defined __USE_MISC || defined __USE_BSD -extern __inline__ int mknod (__const char *__path, __mode_t __mode, - __dev_t __dev) __THROW +extern __inline__ int +__NTH (mknod (__const char *__path, __mode_t __mode, __dev_t __dev)) { return __xmknod (_MKNOD_VER, __path, __mode, &__dev); } @@ -382,22 +378,23 @@ extern __inline__ int mknod (__const char *__path, __mode_t __mode, # if defined __USE_LARGEFILE64 \ && (! defined __USE_FILE_OFFSET64 \ - || (defined __REDIRECT && defined __OPTIMIZE__)) -extern __inline__ int stat64 (__const char *__path, - struct stat64 *__statbuf) __THROW + || (defined __REDIRECT_NTH && defined __OPTIMIZE__)) +extern __inline__ int +__NTH (stat64 (__const char *__path, struct stat64 *__statbuf)) { return __xstat64 (_STAT_VER, __path, __statbuf); } # if defined __USE_BSD || defined __USE_XOPEN_EXTENDED -extern __inline__ int lstat64 (__const char *__path, - struct stat64 *__statbuf) __THROW +extern __inline__ int +__NTH (lstat64 (__const char *__path, struct stat64 *__statbuf)) { return __lxstat64 (_STAT_VER, __path, __statbuf); } # endif -extern __inline__ int fstat64 (int __fd, struct stat64 *__statbuf) __THROW +extern __inline__ int +__NTH (fstat64 (int __fd, struct stat64 *__statbuf)) { return __fxstat64 (_STAT_VER, __fd, __statbuf); } diff --git a/io/sys/statfs.h b/io/sys/statfs.h index 969d9d0e58..c93d8f1d44 100644 --- a/io/sys/statfs.h +++ b/io/sys/statfs.h @@ -1,5 +1,5 @@ /* Definitions for getting information about a filesystem. - Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 1999, 2004 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 @@ -31,10 +31,10 @@ __BEGIN_DECLS #ifndef __USE_FILE_OFFSET64 extern int statfs (__const char *__file, struct statfs *__buf) __THROW; #else -# ifdef __REDIRECT -extern int __REDIRECT (statfs, - (__const char *__file, struct statfs *__buf) __THROW, - statfs64); +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (statfs, + (__const char *__file, struct statfs *__buf), + statfs64); # else # define statfs statfs64 # endif @@ -48,9 +48,9 @@ extern int statfs64 (__const char *__file, struct statfs64 *__buf) __THROW; #ifndef __USE_FILE_OFFSET64 extern int fstatfs (int __fildes, struct statfs *__buf) __THROW; #else -# ifdef __REDIRECT -extern int __REDIRECT (fstatfs, (int __fildes, struct statfs *__buf) __THROW, - fstatfs64); +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (fstatfs, (int __fildes, struct statfs *__buf), + fstatfs64); # else # define fstatfs fstatfs64 # endif diff --git a/io/sys/statvfs.h b/io/sys/statvfs.h index f34f8d318e..7c6c90fae0 100644 --- a/io/sys/statvfs.h +++ b/io/sys/statvfs.h @@ -1,5 +1,5 @@ /* Definitions for getting information about a filesystem. - Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2004 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 @@ -52,11 +52,10 @@ __BEGIN_DECLS extern int statvfs (__const char *__restrict __file, struct statvfs *__restrict __buf) __THROW; #else -# ifdef __REDIRECT -extern int __REDIRECT (statvfs, - (__const char *__restrict __file, - struct statvfs *__restrict __buf) __THROW, - statvfs64); +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (statvfs, + (__const char *__restrict __file, + struct statvfs *__restrict __buf), statvfs64); # else # define statvfs statvfs64 # endif @@ -71,9 +70,9 @@ extern int statvfs64 (__const char *__restrict __file, #ifndef __USE_FILE_OFFSET64 extern int fstatvfs (int __fildes, struct statvfs *__buf) __THROW; #else -# ifdef __REDIRECT -extern int __REDIRECT (fstatvfs, (int __fildes, struct statvfs *__buf) __THROW, - fstatvfs64); +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (fstatvfs, (int __fildes, struct statvfs *__buf), + fstatvfs64); # else # define fstatvfs fstatvfs64 # endif diff --git a/libio/bits/stdio.h b/libio/bits/stdio.h index 60c937f072..9e951ad8e4 100644 --- a/libio/bits/stdio.h +++ b/libio/bits/stdio.h @@ -109,14 +109,14 @@ getline (char **__lineptr, size_t *__n, FILE *__stream) # ifdef __USE_MISC /* Faster versions when locking is not required. */ __STDIO_INLINE int -feof_unlocked (FILE *__stream) __THROW +__NTH (feof_unlocked (FILE *__stream)) { return _IO_feof_unlocked (__stream); } /* Faster versions when locking is not required. */ __STDIO_INLINE int -ferror_unlocked (FILE *__stream) __THROW +__NTH (ferror_unlocked (FILE *__stream)) { return _IO_ferror_unlocked (__stream); } diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h index 18143058fa..3c53ca707d 100644 --- a/misc/sys/cdefs.h +++ b/misc/sys/cdefs.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1992-2001, 2002, 2004 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 @@ -39,11 +39,20 @@ /* GCC can always grok prototypes. For C++ programs we add throw() to help it optimize the function calls. But this works only with - gcc 2.8.x and egcs. */ -# if defined __cplusplus && __GNUC_PREREQ (2,8) -# define __THROW throw () + gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions + as non-throwing using a function attribute since programs can use + the -fexceptions options for C code as well. */ +# if !defined __cplusplus && __GNUC_PREREQ (3, 2) +# define __THROW __attribute__ ((__nothrow__)) +# define __NTH(fct) __attribute__ ((__nothrow__)) fct # else -# define __THROW +# if defined __cplusplus && __GNUC_PREREQ (2,8) +# define __THROW throw () +# define __NTH(fct) fct throw () +# else +# define __THROW +# define __NTH(fct) fct +# endif # endif # define __P(args) args __THROW /* This macro will be used for functions which might take C++ callback @@ -55,6 +64,7 @@ # define __inline /* No inline functions. */ # define __THROW +# define __NTH(fct) fct # define __P(args) args # define __PMT(args) args @@ -149,6 +159,8 @@ #if defined __GNUC__ && __GNUC__ >= 2 # define __REDIRECT(name, proto, alias) name proto __asm__ (__ASMNAME (#alias)) +# define __REDIRECT_NTH(name, proto, alias) \ + name proto __asm__ (__ASMNAME (#alias)) __THROW # define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname) # define __ASMNAME2(prefix, cname) __STRING (prefix) cname diff --git a/misc/sys/mman.h b/misc/sys/mman.h index 5e37278df3..ae4dd64fc6 100644 --- a/misc/sys/mman.h +++ b/misc/sys/mman.h @@ -1,5 +1,5 @@ /* Definitions for BSD-style memory management. - Copyright (C) 1994-1999, 2000, 2003 Free Software Foundation, Inc. + Copyright (C) 1994-2000, 2003, 2004 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 @@ -58,11 +58,11 @@ __BEGIN_DECLS extern void *mmap (void *__addr, size_t __len, int __prot, int __flags, int __fd, __off_t __offset) __THROW; #else -# ifdef __REDIRECT -extern void * __REDIRECT (mmap, - (void *__addr, size_t __len, int __prot, - int __flags, int __fd, __off64_t __offset) __THROW, - mmap64); +# ifdef __REDIRECT_NTH +extern void * __REDIRECT_NTH (mmap, + (void *__addr, size_t __len, int __prot, + int __flags, int __fd, __off64_t __offset), + mmap64); # else # define mmap mmap64 # endif diff --git a/posix/unistd.h b/posix/unistd.h index 72167483d7..52a0185115 100644 --- a/posix/unistd.h +++ b/posix/unistd.h @@ -285,11 +285,10 @@ extern int euidaccess (__const char *__name, int __type) __THROW; #ifndef __USE_FILE_OFFSET64 extern __off_t lseek (int __fd, __off_t __offset, int __whence) __THROW; #else -# ifdef __REDIRECT -extern __off64_t __REDIRECT (lseek, - (int __fd, __off64_t __offset, int __whence) - __THROW, - lseek64); +# ifdef __REDIRECT_NTH +extern __off64_t __REDIRECT_NTH (lseek, + (int __fd, __off64_t __offset, int __whence), + lseek64); # else # define lseek lseek64 # endif @@ -550,8 +549,8 @@ extern __pid_t getppid (void) __THROW; #ifndef __FAVOR_BSD extern __pid_t getpgrp (void) __THROW; #else -# ifdef __REDIRECT -extern __pid_t __REDIRECT (getpgrp, (__pid_t __pid) __THROW, __getpgid); +# ifdef __REDIRECT_NTH +extern __pid_t __REDIRECT_NTH (getpgrp, (__pid_t __pid), __getpgid); # else # define getpgrp __getpgid # endif @@ -589,9 +588,8 @@ extern int setpgrp (void) __THROW; # else /* Another name for `setpgid' (above). */ -# ifdef __REDIRECT -extern int __REDIRECT (setpgrp, (__pid_t __pid, __pid_t __pgrp) __THROW, - setpgid); +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (setpgrp, (__pid_t __pid, __pid_t __pgrp), setpgid); # else # define setpgrp setpgid # endif @@ -876,10 +874,10 @@ extern int getpagesize (void) __THROW __attribute__ ((__const__)); # ifndef __USE_FILE_OFFSET64 extern int truncate (__const char *__file, __off_t __length) __THROW; # else -# ifdef __REDIRECT -extern int __REDIRECT (truncate, - (__const char *__file, __off64_t __length) __THROW, - truncate64); +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (truncate, + (__const char *__file, __off64_t __length), + truncate64); # else # define truncate truncate64 # endif @@ -892,9 +890,9 @@ extern int truncate64 (__const char *__file, __off64_t __length) __THROW; # ifndef __USE_FILE_OFFSET64 extern int ftruncate (int __fd, __off_t __length) __THROW; # else -# ifdef __REDIRECT -extern int __REDIRECT (ftruncate, (int __fd, __off64_t __length) __THROW, - ftruncate64); +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (ftruncate, (int __fd, __off64_t __length), + ftruncate64); # else # define ftruncate ftruncate64 # endif diff --git a/resource/sys/resource.h b/resource/sys/resource.h index 3dd2da9291..3912741376 100644 --- a/resource/sys/resource.h +++ b/resource/sys/resource.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992,94,96,97,98,99,2000,2002 Free Software Foundation, Inc. +/* Copyright (C) 1992,94,1996-2000,2002,2004 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 @@ -51,10 +51,9 @@ typedef int __priority_which_t; extern int getrlimit (__rlimit_resource_t __resource, struct rlimit *__rlimits) __THROW; #else -# ifdef __REDIRECT -extern int __REDIRECT (getrlimit, (__rlimit_resource_t __resource, - struct rlimit *__rlimits) __THROW, - getrlimit64); +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (getrlimit, (__rlimit_resource_t __resource, + struct rlimit *__rlimits), getrlimit64); # else # define getrlimit getrlimit64 # endif @@ -71,10 +70,10 @@ extern int getrlimit64 (__rlimit_resource_t __resource, extern int setrlimit (__rlimit_resource_t __resource, __const struct rlimit *__rlimits) __THROW; #else -# ifdef __REDIRECT -extern int __REDIRECT (setrlimit, (__rlimit_resource_t __resource, - __const struct rlimit *__rlimits) __THROW, - setrlimit64); +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (setrlimit, (__rlimit_resource_t __resource, + __const struct rlimit *__rlimits), + setrlimit64); # else # define setrlimit setrlimit64 # endif diff --git a/rt/aio.h b/rt/aio.h index 12c8eeaf04..35dc196426 100644 --- a/rt/aio.h +++ b/rt/aio.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1996,1997,1998,1999,2000,2003 Free Software Foundation, Inc. +/* Copyright (C) 1996-2000,2003,2004 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 @@ -172,35 +172,33 @@ extern int aio_suspend (__const struct aiocb *__const __list[], int __nent, `aio_fildes' member of AIOCBP. */ extern int aio_fsync (int __operation, struct aiocb *__aiocbp) __THROW; #else -# ifdef __REDIRECT -extern int __REDIRECT (aio_read, (struct aiocb *__aiocbp) __THROW, aio_read64); -extern int __REDIRECT (aio_write, (struct aiocb *__aiocbp) __THROW, - aio_write64); - -extern int __REDIRECT (lio_listio, - (int __mode, - struct aiocb *__const __list[__restrict_arr], - int __nent, struct sigevent *__restrict __sig) __THROW, - lio_listio64); - -extern int __REDIRECT (aio_error, (__const struct aiocb *__aiocbp) __THROW, - aio_error64); -extern __ssize_t __REDIRECT (aio_return, (struct aiocb *__aiocbp) __THROW, - aio_return64); - -extern int __REDIRECT (aio_cancel, - (int __fildes, struct aiocb *__aiocbp) __THROW, - aio_cancel64); - -extern int __REDIRECT (aio_suspend, - (__const struct aiocb *__const __list[], - int __nent, - __const struct timespec *__restrict __timeout) __THROW, - aio_suspend64); - -extern int __REDIRECT (aio_fsync, - (int __operation, struct aiocb *__aiocbp) __THROW, - aio_fsync64); +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (aio_read, (struct aiocb *__aiocbp), aio_read64); +extern int __REDIRECT_NTH (aio_write, (struct aiocb *__aiocbp), aio_write64); + +extern int __REDIRECT_NTH (lio_listio, + (int __mode, + struct aiocb *__const __list[__restrict_arr], + int __nent, struct sigevent *__restrict __sig), + lio_listio64); + +extern int __REDIRECT_NTH (aio_error, (__const struct aiocb *__aiocbp), + aio_error64); +extern __ssize_t __REDIRECT_NTH (aio_return, (struct aiocb *__aiocbp), + aio_return64); + +extern int __REDIRECT_NTH (aio_cancel, + (int __fildes, struct aiocb *__aiocbp), + aio_cancel64); + +extern int __REDIRECT_NTH (aio_suspend, + (__const struct aiocb *__const __list[], int __nent, + __const struct timespec *__restrict __timeout), + aio_suspend64); + +extern int __REDIRECT_NTH (aio_fsync, + (int __operation, struct aiocb *__aiocbp), + aio_fsync64); # else # define aio_read aio_read64 diff --git a/signal/signal.h b/signal/signal.h index 4df5603e2c..e99ef28d96 100644 --- a/signal/signal.h +++ b/signal/signal.h @@ -92,11 +92,10 @@ __BEGIN_NAMESPACE_STD extern __sighandler_t signal (int __sig, __sighandler_t __handler) __THROW; #else /* Make sure the used `signal' implementation is the SVID version. */ -# ifdef __REDIRECT -extern __sighandler_t __REDIRECT (signal, - (int __sig, - __sighandler_t __handler) __THROW, - __sysv_signal); +# ifdef __REDIRECT_NTH +extern __sighandler_t __REDIRECT_NTH (signal, + (int __sig, __sighandler_t __handler), + __sysv_signal); # else # define signal __sysv_signal # endif diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h index 1349753b78..e178568dd3 100644 --- a/stdlib/stdlib.h +++ b/stdlib/stdlib.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2002, 2003 Free Software Foundation, Inc. +/* Copyright (C) 1991-2002, 2003, 2004 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 @@ -306,19 +306,19 @@ extern unsigned long long int __strtoull_internal (__const char * __BEGIN_NAMESPACE_STD extern __inline double -strtod (__const char *__restrict __nptr, char **__restrict __endptr) __THROW +__NTH (strtod (__const char *__restrict __nptr, char **__restrict __endptr)) { return __strtod_internal (__nptr, __endptr, 0); } extern __inline long int -strtol (__const char *__restrict __nptr, char **__restrict __endptr, - int __base) __THROW +__NTH (strtol (__const char *__restrict __nptr, char **__restrict __endptr, + int __base)) { return __strtol_internal (__nptr, __endptr, __base, 0); } extern __inline unsigned long int -strtoul (__const char *__restrict __nptr, char **__restrict __endptr, - int __base) __THROW +__NTH (strtoul (__const char *__restrict __nptr, char **__restrict __endptr, + int __base)) { return __strtoul_internal (__nptr, __endptr, __base, 0); } @@ -327,12 +327,12 @@ __END_NAMESPACE_STD # ifdef __USE_ISOC99 __BEGIN_NAMESPACE_C99 extern __inline float -strtof (__const char *__restrict __nptr, char **__restrict __endptr) __THROW +__NTH (strtof (__const char *__restrict __nptr, char **__restrict __endptr)) { return __strtof_internal (__nptr, __endptr, 0); } extern __inline long double -strtold (__const char *__restrict __nptr, char **__restrict __endptr) __THROW +__NTH (strtold (__const char *__restrict __nptr, char **__restrict __endptr)) { return __strtold_internal (__nptr, __endptr, 0); } @@ -341,14 +341,14 @@ __END_NAMESPACE_C99 # ifdef __USE_BSD __extension__ extern __inline long long int -strtoq (__const char *__restrict __nptr, char **__restrict __endptr, - int __base) __THROW +__NTH (strtoq (__const char *__restrict __nptr, char **__restrict __endptr, + int __base)) { return __strtoll_internal (__nptr, __endptr, __base, 0); } __extension__ extern __inline unsigned long long int -strtouq (__const char *__restrict __nptr, char **__restrict __endptr, - int __base) __THROW +__NTH (strtouq (__const char *__restrict __nptr, char **__restrict __endptr, + int __base)) { return __strtoull_internal (__nptr, __endptr, __base, 0); } @@ -357,14 +357,14 @@ strtouq (__const char *__restrict __nptr, char **__restrict __endptr, # if defined __USE_MISC || defined __USE_ISOC99 __BEGIN_NAMESPACE_C99 __extension__ extern __inline long long int -strtoll (__const char *__restrict __nptr, char **__restrict __endptr, - int __base) __THROW +__NTH (strtoll (__const char *__restrict __nptr, char **__restrict __endptr, + int __base)) { return __strtoll_internal (__nptr, __endptr, __base, 0); } __extension__ extern __inline unsigned long long int -strtoull (__const char * __restrict __nptr, char **__restrict __endptr, - int __base) __THROW +__NTH (strtoull (__const char * __restrict __nptr, char **__restrict __endptr, + int __base)) { return __strtoull_internal (__nptr, __endptr, __base, 0); } @@ -373,17 +373,17 @@ __END_NAMESPACE_C99 __BEGIN_NAMESPACE_STD extern __inline double -atof (__const char *__nptr) __THROW +__NTH (atof (__const char *__nptr)) { return strtod (__nptr, (char **) NULL); } extern __inline int -atoi (__const char *__nptr) __THROW +__NTH (atoi (__const char *__nptr)) { return (int) strtol (__nptr, (char **) NULL, 10); } extern __inline long int -atol (__const char *__nptr) __THROW +__NTH (atol (__const char *__nptr)) { return strtol (__nptr, (char **) NULL, 10); } @@ -392,7 +392,7 @@ __END_NAMESPACE_STD # if defined __USE_MISC || defined __USE_ISOC99 __BEGIN_NAMESPACE_C99 __extension__ extern __inline long long int -atoll (__const char *__nptr) __THROW +__NTH (atoll (__const char *__nptr)) { return strtoll (__nptr, (char **) NULL, 10); } diff --git a/string/argz.h b/string/argz.h index b083d8e1a9..dd7e4706c7 100644 --- a/string/argz.h +++ b/string/argz.h @@ -1,5 +1,5 @@ /* Routines for dealing with '\0' separated arg vectors. - Copyright (C) 1995, 96, 97, 98, 99, 2000 Free Software Foundation, Inc. + Copyright (C) 1995,96,97,98,99,2000,2004 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 @@ -161,8 +161,8 @@ extern char *argz_next (__const char *__restrict __argz, size_t __argz_len, #ifdef __USE_EXTERN_INLINES extern inline char * -__argz_next (__const char *__argz, size_t __argz_len, - __const char *__entry) __THROW +__NTH (__argz_next (__const char *__argz, size_t __argz_len, + __const char *__entry)) { if (__entry) { @@ -175,8 +175,8 @@ __argz_next (__const char *__argz, size_t __argz_len, return __argz_len > 0 ? (char *) __argz : 0; } extern inline char * -argz_next (__const char *__argz, size_t __argz_len, - __const char *__entry) __THROW +__NTH (argz_next (__const char *__argz, size_t __argz_len, + __const char *__entry)) { return __argz_next (__argz, __argz_len, __entry); } diff --git a/string/string.h b/string/string.h index 19dd9c3188..d62594bc4c 100644 --- a/string/string.h +++ b/string/string.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-1993, 1995-2002, 2003 Free Software Foundation, Inc. +/* Copyright (C) 1991-1993, 1995-2003, 2004 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 @@ -253,10 +253,10 @@ __END_NAMESPACE_STD # if defined __USE_XOPEN2K && !defined __USE_GNU /* Fill BUF with a string describing the meaning of the `errno' code in ERRNUM. */ -# ifdef __REDIRECT -extern int __REDIRECT (strerror_r, - (int __errnum, char *__buf, size_t __buflen), - __xpg_strerror_r) __THROW; +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (strerror_r, + (int __errnum, char *__buf, size_t __buflen), + __xpg_strerror_r); # else extern int __xpg_strerror_r (int __errnum, char *__buf, size_t __buflen) __THROW; diff --git a/sysdeps/generic/inttypes.h b/sysdeps/generic/inttypes.h index 4ac6815623..87f532f1d4 100644 --- a/sysdeps/generic/inttypes.h +++ b/sysdeps/generic/inttypes.h @@ -331,8 +331,8 @@ extern long int __strtol_internal (__const char *__restrict __nptr, # define __strtol_internal_defined 1 # endif extern __inline intmax_t -strtoimax (__const char *__restrict nptr, char **__restrict endptr, - int base) __THROW +__NTH (strtoimax (__const char *__restrict nptr, char **__restrict endptr, + int base)) { return __strtol_internal (nptr, endptr, base, 0); } @@ -346,8 +346,8 @@ extern unsigned long int __strtoul_internal (__const char * # define __strtoul_internal_defined 1 # endif extern __inline uintmax_t -strtoumax (__const char *__restrict nptr, char **__restrict endptr, - int base) __THROW +__NTH (strtoumax (__const char *__restrict nptr, char **__restrict endptr, + int base)) { return __strtoul_internal (nptr, endptr, base, 0); } @@ -360,8 +360,8 @@ extern long int __wcstol_internal (__const __gwchar_t * __restrict __nptr, # define __wcstol_internal_defined 1 # endif extern __inline intmax_t -wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, - int base) __THROW +__NTH (wcstoimax (__const __gwchar_t *__restrict nptr, + __gwchar_t **__restrict endptr, int base)) { return __wcstol_internal (nptr, endptr, base, 0); } @@ -377,8 +377,8 @@ extern unsigned long int __wcstoul_internal (__const __gwchar_t * # define __wcstoul_internal_defined 1 # endif extern __inline uintmax_t -wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, - int base) __THROW +__NTH (wcstoumax (__const __gwchar_t *__restrict nptr, + __gwchar_t **__restrict endptr, int base)) { return __wcstoul_internal (nptr, endptr, base, 0); } @@ -394,8 +394,8 @@ extern long long int __strtoll_internal (__const char *__restrict __nptr, # define __strtoll_internal_defined 1 # endif extern __inline intmax_t -strtoimax (__const char *__restrict nptr, char **__restrict endptr, - int base) __THROW +__NTH (strtoimax (__const char *__restrict nptr, char **__restrict endptr, + int base)) { return __strtoll_internal (nptr, endptr, base, 0); } @@ -412,8 +412,8 @@ extern unsigned long long int __strtoull_internal (__const char * # define __strtoull_internal_defined 1 # endif extern __inline uintmax_t -strtoumax (__const char *__restrict nptr, char **__restrict endptr, - int base) __THROW +__NTH (strtoumax (__const char *__restrict nptr, char **__restrict endptr, + int base)) { return __strtoull_internal (nptr, endptr, base, 0); } @@ -428,8 +428,8 @@ extern long long int __wcstoll_internal (__const __gwchar_t * # define __wcstoll_internal_defined 1 # endif extern __inline intmax_t -wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, - int base) __THROW +__NTH (wcstoimax (__const __gwchar_t *__restrict nptr, + __gwchar_t **__restrict endptr, int base)) { return __wcstoll_internal (nptr, endptr, base, 0); } @@ -447,8 +447,8 @@ extern unsigned long long int __wcstoull_internal (__const __gwchar_t * # define __wcstoull_internal_defined 1 # endif extern __inline uintmax_t -wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, - int base) __THROW +__NTH (wcstoumax (__const __gwchar_t *__restrict nptr, + __gwchar_t **__restrict endptr, int base)) { return __wcstoull_internal (nptr, endptr, base, 0); } diff --git a/sysdeps/i386/fpu/bits/mathinline.h b/sysdeps/i386/fpu/bits/mathinline.h index 4256777db3..e04ce95099 100644 --- a/sysdeps/i386/fpu/bits/mathinline.h +++ b/sysdeps/i386/fpu/bits/mathinline.h @@ -125,19 +125,19 @@ # if __GNUC_PREREQ (2, 8) /* Test for negative number. Used in the signbit() macro. */ __MATH_INLINE int -__signbitf (float __x) __THROW +__NTH (__signbitf (float __x)) { __extension__ union { float __f; int __i; } __u = { __f: __x }; return __u.__i < 0; } __MATH_INLINE int -__signbit (double __x) __THROW +__NTH (__signbit (double __x)) { __extension__ union { double __d; int __i[2]; } __u = { __d: __x }; return __u.__i[1] < 0; } __MATH_INLINE int -__signbitl (long double __x) __THROW +__NTH (__signbitl (long double __x)) { __extension__ union { long double __l; int __i[3]; } __u = { __l: __x }; return (__u.__i[2] & 0x8000) != 0; @@ -203,7 +203,7 @@ __signbitl (long double __x) __THROW __inline_mathop_declNP_ (float_type, func, op, params) #define __inline_mathop_declNP_(float_type, func, op, params...) \ - __MATH_INLINE float_type func (float_type __x) __THROW \ + __MATH_INLINE float_type __NTH (func (float_type __x)) \ { \ register float_type __result; \ __asm __volatile__ (op : "=t" (__result) : params); \ @@ -256,7 +256,7 @@ __signbitl (long double __x) __THROW __inline_mathcodeNP_(float_type, func, arg, code) #define __inline_mathcodeNP_(float_type, func, arg, code) \ - __MATH_INLINE float_type func (float_type arg) __THROW \ + __MATH_INLINE float_type __NTH (func (float_type arg)) \ { \ code; \ } @@ -267,7 +267,7 @@ __signbitl (long double __x) __THROW __inline_mathcodeNP2_ (float_type, func, arg1, arg2, code) #define __inline_mathcodeNP2_(float_type, func, arg1, arg2, code) \ - __MATH_INLINE float_type func (float_type arg1, float_type arg2) __THROW \ + __MATH_INLINE float_type __NTH (func (float_type arg1, float_type arg2)) \ { \ code; \ } @@ -277,8 +277,8 @@ __signbitl (long double __x) __THROW __inline_mathcodeNP3_(float_type, func, arg1, arg2, arg3, code) #define __inline_mathcodeNP3_(float_type, func, arg1, arg2, arg3, code) \ - __MATH_INLINE float_type func (float_type arg1, float_type arg2, \ - float_type arg3) __THROW \ + __MATH_INLINE float_type __NTH (func (float_type arg1, float_type arg2, \ + float_type arg3)) \ { \ code; \ } @@ -341,19 +341,19 @@ __inline_mathcode (__pow2, __x, \ *__cosx = __cosr __MATH_INLINE void -__sincos (double __x, double *__sinx, double *__cosx) __THROW +__NTH (__sincos (double __x, double *__sinx, double *__cosx)) { __sincos_code; } __MATH_INLINE void -__sincosf (float __x, float *__sinx, float *__cosx) __THROW +__NTH (__sincosf (float __x, float *__sinx, float *__cosx)) { __sincos_code; } __MATH_INLINE void -__sincosl (long double __x, long double *__sinx, long double *__cosx) __THROW +__NTH (__sincosl (long double __x, long double *__sinx, long double *__cosx)) { __sincos_code; } @@ -558,7 +558,7 @@ __inline_mathcodeNP (ceil, __x, \ return __value __MATH_INLINE double -ldexp (double __x, int __y) __THROW +__NTH (ldexp (double __x, int __y)) { __ldexp_code; } @@ -628,13 +628,13 @@ __inline_mathop_declNP (log2, "fld1; fxch; fyl2x", "0" (__x) : "st(1)") # endif __MATH_INLINE float -ldexpf (float __x, int __y) __THROW +__NTH (ldexpf (float __x, int __y)) { __ldexp_code; } __MATH_INLINE long double -ldexpl (long double __x, int __y) __THROW +__NTH (ldexpl (long double __x, int __y)) { __ldexp_code; } @@ -651,17 +651,17 @@ __inline_mathopNP (rint, "frndint") : "=m" (__lrintres) : "t" (__x) : "st"); \ return __lrintres __MATH_INLINE long int -lrintf (float __x) __THROW +__NTH (lrintf (float __x)) { __lrint_code; } __MATH_INLINE long int -lrint (double __x) __THROW +__NTH (lrint (double __x)) { __lrint_code; } __MATH_INLINE long int -lrintl (long double __x) __THROW +__NTH (lrintl (long double __x)) { __lrint_code; } @@ -674,17 +674,17 @@ lrintl (long double __x) __THROW : "=m" (__llrintres) : "t" (__x) : "st"); \ return __llrintres __MATH_INLINE long long int -llrintf (float __x) __THROW +__NTH (llrintf (float __x)) { __llrint_code; } __MATH_INLINE long long int -llrint (double __x) __THROW +__NTH (llrint (double __x)) { __llrint_code; } __MATH_INLINE long long int -llrintl (long double __x) __THROW +__NTH (llrintl (long double __x)) { __llrint_code; } @@ -711,7 +711,7 @@ __inline_mathcodeNP2 (drem, __x, __y, \ /* This function is used in the `isfinite' macro. */ __MATH_INLINE int -__finite (double __x) __THROW +__NTH (__finite (double __x)) { return (__extension__ (((((union { double __d; int __i[2]; }) {__d: __x}).__i[1] diff --git a/sysdeps/i386/i486/bits/atomic.h b/sysdeps/i386/i486/bits/atomic.h index 7f3d534483..c748761758 100644 --- a/sysdeps/i386/i486/bits/atomic.h +++ b/sysdeps/i386/i486/bits/atomic.h @@ -361,3 +361,6 @@ typedef uintmax_t uatomic_max_t; else \ abort (); \ __result; }) + + +#define atomic_delay() asm ("rep; nop") diff --git a/sysdeps/powerpc/fpu/bits/mathinline.h b/sysdeps/powerpc/fpu/bits/mathinline.h index d9206d4fac..491d529091 100644 --- a/sysdeps/powerpc/fpu/bits/mathinline.h +++ b/sysdeps/powerpc/fpu/bits/mathinline.h @@ -61,13 +61,13 @@ # if __GNUC_PREREQ (2, 8) /* Test for negative number. Used in the signbit() macro. */ __MATH_INLINE int -__signbitf (float __x) __THROW +__NTH (__signbitf (float __x)) { __extension__ union { float __f; int __i; } __u = { __f: __x }; return __u.__i < 0; } __MATH_INLINE int -__signbit (double __x) __THROW +__NTH (__signbit (double __x)) { __extension__ union { double __d; int __i[2]; } __u = { __d: __x }; return __u.__i[0] < 0; @@ -82,7 +82,7 @@ __signbit (double __x) __THROW # ifndef __powerpc64__ __MATH_INLINE long int lrint (double __x) __THROW; __MATH_INLINE long int -lrint (double __x) __THROW +__NTH (lrint (double __x)) { union { double __d; @@ -94,7 +94,7 @@ lrint (double __x) __THROW __MATH_INLINE long int lrintf (float __x) __THROW; __MATH_INLINE long int -lrintf (float __x) __THROW +__NTH (lrintf (float __x)) { union { double __d; @@ -107,14 +107,14 @@ lrintf (float __x) __THROW __MATH_INLINE double fdim (double __x, double __y) __THROW; __MATH_INLINE double -fdim (double __x, double __y) __THROW +__NTH (fdim (double __x, double __y)) { return __x < __y ? 0 : __x - __y; } __MATH_INLINE float fdimf (float __x, float __y) __THROW; __MATH_INLINE float -fdimf (float __x, float __y) __THROW +__NTH (fdimf (float __x, float __y)) { return __x < __y ? 0 : __x - __y; } @@ -131,14 +131,14 @@ fdimf (float __x, float __y) __THROW extern double __slow_ieee754_sqrt (double); __MATH_INLINE double -__ieee754_sqrt (double __x) +__NTH (__ieee754_sqrt (double __x)) { double __z; - + /* If the CPU is 64-bit we can use the optional FP instructions we. */ if ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0) { - /* Volatile is required to prevent the compiler from moving the + /* Volatile is required to prevent the compiler from moving the fsqrt instruction above the branch. */ __asm __volatile ( " fsqrt %0,%1\n" @@ -147,20 +147,20 @@ __ieee754_sqrt (double __x) } else __z = __slow_ieee754_sqrt(__x); - + return __z; } extern float __slow_ieee754_sqrtf (float); __MATH_INLINE float -__ieee754_sqrtf (float __x) +__NTH (__ieee754_sqrtf (float __x)) { float __z; - + /* If the CPU is 64-bit we can use the optional FP instructions we. */ if ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0) { - /* Volatile is required to prevent the compiler from moving the + /* Volatile is required to prevent the compiler from moving the fsqrts instruction above the branch. */ __asm __volatile ( " fsqrts %0,%1\n" @@ -169,7 +169,7 @@ __ieee754_sqrtf (float __x) } else __z = __slow_ieee754_sqrtf(__x); - + return __z; } # endif /* __LIBC_INTERNAL_MATH_INLINES */ diff --git a/sysdeps/s390/fpu/bits/mathinline.h b/sysdeps/s390/fpu/bits/mathinline.h index d83d9ca8b8..4d22922f8d 100644 --- a/sysdeps/s390/fpu/bits/mathinline.h +++ b/sysdeps/s390/fpu/bits/mathinline.h @@ -33,13 +33,15 @@ #ifdef __USE_ISOC99 /* Test for negative number. Used in the signbit() macro. */ -__MATH_INLINE int __signbitf (float __x) __THROW +__MATH_INLINE int +__NTH (__signbitf (float __x)) { __extension__ union { float __f; int __i; } __u = { __f: __x }; return __u.__i < 0; } -__MATH_INLINE int __signbit (double __x) __THROW +__MATH_INLINE int +__NTH (__signbit (double __x)) { __extension__ union { double __d; long __i; } __u = { __d: __x }; return __u.__i < 0; @@ -55,19 +57,19 @@ __MATH_INLINE int __signbit (double __x) __THROW #include __MATH_INLINE double -__ieee754_sqrt (double x) +__NTH (__ieee754_sqrt (double x)) { double res; - + asm ( "sqdbr %0,%1" : "=f" (res) : "f" (x) ); return res; } __MATH_INLINE float -__ieee754_sqrtf (float x) +__NTH (__ieee754_sqrtf (float x)) { float res; - + asm ( "sqebr %0,%1" : "=f" (res) : "f" (x) ); return res; } diff --git a/sysdeps/unix/sysv/linux/bits/socket.h b/sysdeps/unix/sysv/linux/bits/socket.h index c28e03ff35..e94a42175e 100644 --- a/sysdeps/unix/sysv/linux/bits/socket.h +++ b/sysdeps/unix/sysv/linux/bits/socket.h @@ -1,5 +1,5 @@ /* System-specific socket constants and types. Linux version. - Copyright (C) 1991,1992,1994-1999,2000,2001 Free Software Foundation, Inc. + Copyright (C) 1991,1992,1994-2001, 2004 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 @@ -261,7 +261,7 @@ extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr, # define _EXTERN_INLINE extern __inline # endif _EXTERN_INLINE struct cmsghdr * -__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg) __THROW +__NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)) { if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr)) /* The kernel header does this so there may be a reason. */ diff --git a/sysdeps/unix/sysv/linux/sys/sysmacros.h b/sysdeps/unix/sysv/linux/sys/sysmacros.h index a9bfa78d3e..179642ff40 100644 --- a/sysdeps/unix/sysv/linux/sys/sysmacros.h +++ b/sysdeps/unix/sysv/linux/sys/sysmacros.h @@ -1,5 +1,5 @@ /* Definitions of macros to access `dev_t' values. - Copyright (C) 1996, 1997, 1999, 2003 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1999, 2003, 2004 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 @@ -39,19 +39,19 @@ extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major, # if defined __GNUC__ && __GNUC__ >= 2 __extension__ extern __inline unsigned int -gnu_dev_major (unsigned long long int __dev) __THROW +__NTH (gnu_dev_major (unsigned long long int __dev)) { return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); } __extension__ extern __inline unsigned int -gnu_dev_minor (unsigned long long int __dev) __THROW +__NTH (gnu_dev_minor (unsigned long long int __dev)) { return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); } __extension__ extern __inline unsigned long long int -gnu_dev_makedev (unsigned int __major, unsigned int __minor) __THROW +__NTH (gnu_dev_makedev (unsigned int __major, unsigned int __minor)) { return ((__minor & 0xff) | ((__major & 0xfff) << 8) | (((unsigned long long int) (__minor & ~0xff)) << 12) diff --git a/sysdeps/x86_64/bits/atomic.h b/sysdeps/x86_64/bits/atomic.h index f31bedb0b3..133a68d192 100644 --- a/sysdeps/x86_64/bits/atomic.h +++ b/sysdeps/x86_64/bits/atomic.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2002. @@ -319,3 +319,6 @@ typedef uintmax_t uatomic_max_t; : "=q" (__result), "=m" (*mem) \ : "m" (*mem), "ir" (bit)); \ __result; }) + + +#define atomic_delay() asm ("rep; nop") diff --git a/sysdeps/x86_64/fpu/bits/mathinline.h b/sysdeps/x86_64/fpu/bits/mathinline.h index 3f61ff5e92..39d11b678d 100644 --- a/sysdeps/x86_64/fpu/bits/mathinline.h +++ b/sysdeps/x86_64/fpu/bits/mathinline.h @@ -1,5 +1,5 @@ /* Inline math functions for x86-64. - Copyright (C) 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Andreas Jaeger , 2002. @@ -33,19 +33,19 @@ /* Test for negative number. Used in the signbit() macro. */ __MATH_INLINE int -__signbitf (float __x) __THROW +__NTH (__signbitf (float __x)) { __extension__ union { float __f; int __i; } __u = { __f: __x }; return __u.__i < 0; } __MATH_INLINE int -__signbit (double __x) __THROW +__NTH (__signbit (double __x)) { __extension__ union { double __d; int __i[2]; } __u = { __d: __x }; return __u.__i[1] < 0; } __MATH_INLINE int -__signbitl (long double __x) __THROW +__NTH (__signbitl (long double __x)) { __extension__ union { long double __l; int __i[3]; } __u = { __l: __x }; return (__u.__i[2] & 0x8000) != 0; diff --git a/wcsmbs/wchar.h b/wcsmbs/wchar.h index 8bab0ddd7b..1fe7e94d92 100644 --- a/wcsmbs/wchar.h +++ b/wcsmbs/wchar.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2002, 2003 Free Software Foundation, Inc. +/* Copyright (C) 1995-2002, 2003, 2004 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 @@ -320,8 +320,9 @@ __END_NAMESPACE_C99 #ifdef __USE_EXTERN_INLINES /* Define inline function as optimization. */ -extern __inline size_t mbrlen (__const char *__restrict __s, size_t __n, - mbstate_t *__restrict __ps) __THROW +extern __inline size_t +__NTH (mbrlen (__const char *__restrict __s, size_t __n, + mbstate_t *__restrict __ps)) { return (__ps != NULL ? mbrtowc (NULL, __s, __n, __ps) : __mbrlen (__s, __n, NULL)); } #endif @@ -525,38 +526,40 @@ extern unsigned long long int __wcstoull_internal (__const wchar_t * /* Define inline functions which call the internal entry points. */ __BEGIN_NAMESPACE_C99 -extern __inline double wcstod (__const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr) __THROW +extern __inline double +__NTH (wcstod (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr)) { return __wcstod_internal (__nptr, __endptr, 0); } -extern __inline long int wcstol (__const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, - int __base) __THROW +extern __inline long int +__NTH (wcstol (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, int __base)) { return __wcstol_internal (__nptr, __endptr, __base, 0); } -extern __inline unsigned long int wcstoul (__const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, - int __base) __THROW +extern __inline unsigned long int +__NTH (wcstoul (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, int __base)) { return __wcstoul_internal (__nptr, __endptr, __base, 0); } __END_NAMESPACE_C99 # ifdef __USE_GNU -extern __inline float wcstof (__const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr) __THROW +extern __inline float +__NTH (wcstof (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr)) { return __wcstof_internal (__nptr, __endptr, 0); } -extern __inline long double wcstold (__const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr) __THROW +extern __inline long double +__NTH (wcstold (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr)) { return __wcstold_internal (__nptr, __endptr, 0); } __extension__ -extern __inline long long int wcstoq (__const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, - int __base) __THROW +extern __inline long long int +__NTH (wcstoq (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, int __base)) { return __wcstoll_internal (__nptr, __endptr, __base, 0); } __extension__ -extern __inline unsigned long long int wcstouq (__const wchar_t * - __restrict __nptr, - wchar_t **__restrict __endptr, - int __base) __THROW +extern __inline unsigned long long int +__NTH (wcstouq (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, int __base)) { return __wcstoull_internal (__nptr, __endptr, __base, 0); } # endif /* Use GNU. */ #endif /* Optimizing GCC >=2. */ -- cgit v1.2.3