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. --- 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 +++---- 9 files changed, 76 insertions(+), 68 deletions(-) (limited to 'sysdeps') 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; -- cgit 1.4.1