* 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.
This commit is contained in:
Ulrich Drepper 2004-09-07 22:33:37 +00:00
parent 36ccb375a7
commit f377d02227
30 changed files with 342 additions and 270 deletions

View File

@ -1,5 +1,47 @@
2004-09-07 Ulrich Drepper <drepper@redhat.com>
* 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.

View File

@ -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 <miles@gnu.ai.mit.edu>.
@ -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;
}

View File

@ -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;
}

View File

@ -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

View File

@ -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 <drepper@redhat.com>, 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 */

View File

@ -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

View File

@ -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

View File

@ -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);
}

View File

@ -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

View File

@ -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

View File

@ -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);
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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);
# 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 (lio_listio,
(int __mode,
struct aiocb *__const __list[__restrict_arr],
int __nent, struct sigevent *__restrict __sig) __THROW,
lio_listio64);
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 (aio_error, (__const struct aiocb *__aiocbp) __THROW,
aio_error64);
extern __ssize_t __REDIRECT (aio_return, (struct aiocb *__aiocbp) __THROW,
aio_return64);
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 (aio_cancel,
(int __fildes, struct aiocb *__aiocbp) __THROW,
aio_cancel64);
extern int __REDIRECT_NTH (aio_cancel,
(int __fildes, struct aiocb *__aiocbp),
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_NTH (aio_suspend,
(__const struct aiocb *__const __list[], int __nent,
__const struct timespec *__restrict __timeout),
aio_suspend64);
extern int __REDIRECT (aio_fsync,
(int __operation, struct aiocb *__aiocbp) __THROW,
aio_fsync64);
extern int __REDIRECT_NTH (aio_fsync,
(int __operation, struct aiocb *__aiocbp),
aio_fsync64);
# else
# define aio_read aio_read64

View File

@ -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

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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;

View File

@ -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);
}

View File

@ -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]

View File

@ -361,3 +361,6 @@ typedef uintmax_t uatomic_max_t;
else \
abort (); \
__result; })
#define atomic_delay() asm ("rep; nop")

View File

@ -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 */

View File

@ -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 <dl-procinfo.h>
__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;
}

View File

@ -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. */

View File

@ -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)

View File

@ -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 <drepper@redhat.com>, 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")

View File

@ -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 <aj@suse.de>, 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;

View File

@ -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. */