Browse Source

Major rework of the include files to eliminate redundancy
and to better support each arch. This is a really big patch...
-Erik

Eric Andersen 22 years ago
parent
commit
9cee42f10d
100 changed files with 257 additions and 3373 deletions
  1. 1 0
      include/.cvsignore
  2. 1 1
      include/signal.h
  3. 0 79
      libc/sysdeps/linux/arm/bits/byteswap.h
  4. 0 55
      libc/sysdeps/linux/arm/bits/dirent.h
  5. 0 59
      libc/sysdeps/linux/arm/bits/dlfcn.h
  6. 0 317
      libc/sysdeps/linux/arm/bits/libc-lock.h
  7. 0 141
      libc/sysdeps/linux/arm/bits/posix_opt.h
  8. 0 142
      libc/sysdeps/linux/arm/bits/pthreadtypes.h
  9. 0 50
      libc/sysdeps/linux/arm/bits/stdio-lock.h
  10. 0 24
      libc/sysdeps/linux/arm/bits/stdio.h
  11. 0 1239
      libc/sysdeps/linux/arm/bits/string2.h
  12. 0 146
      libc/sysdeps/linux/arm/bits/types.h
  13. 8 9
      libc/sysdeps/linux/arm/sys/elf.h
  14. 0 12
      libc/sysdeps/linux/arm/sys/io.h
  15. 0 0
      libc/sysdeps/linux/arm/sys/procfs.h
  16. 0 0
      libc/sysdeps/linux/arm/sys/ucontext.h
  17. 0 0
      libc/sysdeps/linux/arm/sys/user.h
  18. 6 1
      libc/sysdeps/linux/common/bits/byteswap.h
  19. 0 0
      libc/sysdeps/linux/common/bits/cmathcalls.h
  20. 0 0
      libc/sysdeps/linux/common/bits/confname.h
  21. 5 1
      libc/sysdeps/linux/common/bits/dirent.h
  22. 0 0
      libc/sysdeps/linux/common/bits/dlfcn.h
  23. 0 0
      libc/sysdeps/linux/common/bits/elfclass.h
  24. 13 0
      libc/sysdeps/linux/common/bits/endian.h
  25. 0 0
      libc/sysdeps/linux/common/bits/environments.h
  26. 0 0
      libc/sysdeps/linux/common/bits/errno.h
  27. 3 0
      libc/sysdeps/linux/common/bits/fcntl.h
  28. 4 9
      libc/sysdeps/linux/common/bits/fenv.h
  29. 0 0
      libc/sysdeps/linux/common/bits/fenvinline.h
  30. 0 0
      libc/sysdeps/linux/common/bits/huge_val.h
  31. 0 0
      libc/sysdeps/linux/common/bits/in.h
  32. 3 4
      libc/sysdeps/linux/common/bits/initspin.h
  33. 0 0
      libc/sysdeps/linux/common/bits/ioctl-types.h
  34. 0 0
      libc/sysdeps/linux/common/bits/ioctls.h
  35. 0 0
      libc/sysdeps/linux/common/bits/ipc.h
  36. 3 3
      libc/sysdeps/linux/common/bits/libc-lock.h
  37. 0 0
      libc/sysdeps/linux/common/bits/local_lim.h
  38. 0 0
      libc/sysdeps/linux/common/bits/locale.h
  39. 0 0
      libc/sysdeps/linux/common/bits/mathcalls.h
  40. 0 0
      libc/sysdeps/linux/common/bits/mathdef.h
  41. 0 0
      libc/sysdeps/linux/common/bits/mathinline.h
  42. 87 0
      libc/sysdeps/linux/common/bits/mman.h
  43. 0 0
      libc/sysdeps/linux/common/bits/msq.h
  44. 0 0
      libc/sysdeps/linux/common/bits/nan.h
  45. 0 0
      libc/sysdeps/linux/common/bits/netdb.h
  46. 0 0
      libc/sysdeps/linux/common/bits/poll.h
  47. 0 0
      libc/sysdeps/linux/common/bits/posix1_lim.h
  48. 0 0
      libc/sysdeps/linux/common/bits/posix2_lim.h
  49. 63 18
      libc/sysdeps/linux/common/bits/posix_opt.h
  50. 3 1
      libc/sysdeps/linux/common/bits/pthreadtypes.h
  51. 0 0
      libc/sysdeps/linux/common/bits/resource.h
  52. 0 0
      libc/sysdeps/linux/common/bits/sched.h
  53. 0 0
      libc/sysdeps/linux/common/bits/select.h
  54. 0 0
      libc/sysdeps/linux/common/bits/sem.h
  55. 7 0
      libc/sysdeps/linux/common/bits/setjmp.h
  56. 0 0
      libc/sysdeps/linux/common/bits/shm.h
  57. 0 0
      libc/sysdeps/linux/common/bits/sigaction.h
  58. 0 0
      libc/sysdeps/linux/common/bits/sigcontext.h
  59. 0 0
      libc/sysdeps/linux/common/bits/siginfo.h
  60. 0 0
      libc/sysdeps/linux/common/bits/signum.h
  61. 0 0
      libc/sysdeps/linux/common/bits/sigset.h
  62. 0 0
      libc/sysdeps/linux/common/bits/sigstack.h
  63. 0 0
      libc/sysdeps/linux/common/bits/sigthread.h
  64. 0 0
      libc/sysdeps/linux/common/bits/sockaddr.h
  65. 0 0
      libc/sysdeps/linux/common/bits/socket.h
  66. 0 0
      libc/sysdeps/linux/common/bits/stab.def
  67. 0 0
      libc/sysdeps/linux/common/bits/stat.h
  68. 0 0
      libc/sysdeps/linux/common/bits/statfs.h
  69. 0 0
      libc/sysdeps/linux/common/bits/statvfs.h
  70. 0 0
      libc/sysdeps/linux/common/bits/stdio-lock.h
  71. 0 1
      libc/sysdeps/linux/common/bits/stdio.h
  72. 0 0
      libc/sysdeps/linux/common/bits/stdio_lim.h
  73. 0 0
      libc/sysdeps/linux/common/bits/string.h
  74. 47 23
      libc/sysdeps/linux/common/bits/string2.h
  75. 0 0
      libc/sysdeps/linux/common/bits/stropts.h
  76. 0 0
      libc/sysdeps/linux/common/bits/termios.h
  77. 0 0
      libc/sysdeps/linux/common/bits/time.h
  78. 1 1
      libc/sysdeps/linux/common/bits/types.h
  79. 0 0
      libc/sysdeps/linux/common/bits/uio.h
  80. 0 0
      libc/sysdeps/linux/common/bits/ustat.h
  81. 0 0
      libc/sysdeps/linux/common/bits/utmp.h
  82. 0 0
      libc/sysdeps/linux/common/bits/utmpx.h
  83. 0 0
      libc/sysdeps/linux/common/bits/utsname.h
  84. 0 0
      libc/sysdeps/linux/common/bits/waitflags.h
  85. 0 0
      libc/sysdeps/linux/common/bits/waitstatus.h
  86. 0 0
      libc/sysdeps/linux/common/bits/wchar.h
  87. 1 0
      libc/sysdeps/linux/common/bits/wordsize.h
  88. 0 0
      libc/sysdeps/linux/common/bits/xopen_lim.h
  89. 0 0
      libc/sysdeps/linux/common/sys/ptrace.h
  90. 1 0
      libc/sysdeps/linux/common/sys/user.h
  91. 0 5
      libc/sysdeps/linux/h8300/Makefile
  92. 0 67
      libc/sysdeps/linux/h8300/bits/byteswap.h
  93. 0 159
      libc/sysdeps/linux/h8300/bits/cmathcalls.h
  94. 0 566
      libc/sysdeps/linux/h8300/bits/confname.h
  95. 0 62
      libc/sysdeps/linux/h8300/bits/dirent.h
  96. 0 37
      libc/sysdeps/linux/h8300/bits/dlfcn.h
  97. 0 11
      libc/sysdeps/linux/h8300/bits/elfclass.h
  98. 0 7
      libc/sysdeps/linux/h8300/bits/endian.h
  99. 0 59
      libc/sysdeps/linux/h8300/bits/environments.h
  100. 0 64
      libc/sysdeps/linux/h8300/bits/errno.h

+ 1 - 0
include/.cvsignore

@@ -0,0 +1 @@
+bits

+ 1 - 1
include/signal.h

@@ -352,7 +352,7 @@ extern int sigignore (int __sig) __THROW;
 extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __THROW;
 #endif
 
-#if defined _POSIX_THREADS && (defined __USE_POSIX199506 || defined __USE_UNIX98)
+#if defined __UCLIBC_HAS_THREADS__ && (defined __USE_POSIX199506 || defined __USE_UNIX98)
 /* Some of the functions for handling signals in threaded programs must
    be defined here.  */
 # include <bits/sigthread.h>

+ 0 - 79
libc/sysdeps/linux/arm/bits/byteswap.h

@@ -1,79 +0,0 @@
-/* Macros to swap the order of bytes in integer values.
-   Copyright (C) 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#if !defined _BYTESWAP_H && !defined _NETINET_IN_H
-# error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
-#endif
-
-/* Swap bytes in 16 bit value.  */
-#ifdef __GNUC__
-# define __bswap_16(x) \
-    (__extension__							      \
-     ({ unsigned short int __bsx = (x);					      \
-        ((((__bsx) >> 8) & 0xff) | (((__bsx) & 0xff) << 8)); }))
-#else
-static __inline unsigned short int
-__bswap_16 (unsigned short int __bsx)
-{
-  return ((((__bsx) >> 8) & 0xff) | (((__bsx) & 0xff) << 8));
-}
-#endif
-
-/* Swap bytes in 32 bit value.  */
-#ifdef __GNUC__
-# define __bswap_32(x) \
-    (__extension__							      \
-     ({ unsigned int __bsx = (x);					      \
-        ((((__bsx) & 0xff000000) >> 24) | (((__bsx) & 0x00ff0000) >>  8) |    \
-	 (((__bsx) & 0x0000ff00) <<  8) | (((__bsx) & 0x000000ff) << 24)); }))
-#else
-static __inline unsigned int
-__bswap_32 (unsigned int __bsx)
-{
-  return ((((__bsx) & 0xff000000) >> 24) | (((__bsx) & 0x00ff0000) >>  8) |
-	  (((__bsx) & 0x0000ff00) <<  8) | (((__bsx) & 0x000000ff) << 24));
-}
-#endif
-
-#if defined __GNUC__ && __GNUC__ >= 2
-/* Swap bytes in 64 bit value.  */
-# define __bswap_constant_64(x) \
-     ((((x) & 0xff00000000000000ull) >> 56)				      \
-      | (((x) & 0x00ff000000000000ull) >> 40)				      \
-      | (((x) & 0x0000ff0000000000ull) >> 24)				      \
-      | (((x) & 0x000000ff00000000ull) >> 8)				      \
-      | (((x) & 0x00000000ff000000ull) << 8)				      \
-      | (((x) & 0x0000000000ff0000ull) << 24)				      \
-      | (((x) & 0x000000000000ff00ull) << 40)				      \
-      | (((x) & 0x00000000000000ffull) << 56))
-
-# define __bswap_64(x) \
-     (__extension__							      \
-      ({ union { __extension__ unsigned long long int __ll;		      \
-		 unsigned int __l[2]; } __w, __r;			      \
-         if (__builtin_constant_p (x))					      \
-	   __r.__ll = __bswap_constant_64 (x);				      \
-	 else								      \
-	   {								      \
-	     __w.__ll = (x);						      \
-	     __r.__l[0] = __bswap_32 (__w.__l[1]);			      \
-	     __r.__l[1] = __bswap_32 (__w.__l[0]);			      \
-	   }								      \
-	 __r.__ll; }))
-#endif

+ 0 - 55
libc/sysdeps/linux/arm/bits/dirent.h

@@ -1,55 +0,0 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifndef _DIRENT_H
-# error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
-#endif
-
-struct dirent
-  {
-#ifndef __USE_FILE_OFFSET64
-    __ino_t d_ino;
-    __off_t d_off;
-#else
-    __ino64_t d_ino;
-    __off64_t d_off;
-#endif
-    unsigned short int d_reclen;
-#ifdef __USE_FILE_OFFSET64
-    unsigned char d_type;
-#endif
-    char d_name[256];		/* We must not include limits.h! */
-  };
-
-#ifdef __USE_LARGEFILE64
-struct dirent64
-  {
-    __ino64_t d_ino;
-    __off64_t d_off;
-    unsigned short int d_reclen;
-    unsigned char d_type;
-    char d_name[256];		/* We must not include limits.h! */
-  };
-#endif
-
-#define d_fileno	d_ino	/* Backwards compatibility.  */
-
-#undef  _DIRENT_HAVE_D_NAMLEN
-#define _DIRENT_HAVE_D_RECLEN
-#define _DIRENT_HAVE_D_OFF
-#define _DIRENT_HAVE_D_TYPE

+ 0 - 59
libc/sysdeps/linux/arm/bits/dlfcn.h

@@ -1,59 +0,0 @@
-/* System dependent definitions for run-time dynamic loading.
-   Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifndef _DLFCN_H
-# error "Never use <bits/dlfcn.h> directly; include <dlfcn.h> instead."
-#endif
-
-/* The MODE argument to `dlopen' contains one of the following: */
-#define RTLD_LAZY	0x00001	/* Lazy function call binding.  */
-#define RTLD_NOW	0x00002	/* Immediate function call binding.  */
-#define	RTLD_BINDING_MASK   0x3	/* Mask of binding time value.  */
-#define RTLD_NOLOAD	0x00004	/* Do not load the object.  */
-
-/* If the following bit is set in the MODE argument to `dlopen',
-   the symbols of the loaded object and its dependencies are made
-   visible as if the object were linked directly into the program.  */
-#define RTLD_GLOBAL	0x00100
-
-/* Unix98 demands the following flag which is the inverse to RTLD_GLOBAL.
-   The implementation does this by default and so we can define the
-   value to zero.  */
-#define RTLD_LOCAL	0
-
-/* Do not delete object when closed.  */
-#define RTLD_NODELETE	0x01000
-
-#ifdef __USE_GNU
-/* To support profiling of shared objects it is a good idea to call
-   the function found using `dlsym' using the following macro since
-   these calls do not use the PLT.  But this would mean the dynamic
-   loader has no chance to find out when the function is called.  The
-   macro applies the necessary magic so that profiling is possible.
-   Rewrite
-	foo = (*fctp) (arg1, arg2);
-   into
-        foo = DL_CALL_FCT (fctp, (arg1, arg2));
-*/
-# define DL_CALL_FCT(fctp, args) \
-  (_dl_mcount_wrapper_check (fctp), (*(fctp)) args)
-
-/* This function calls the profiling functions.  */
-extern void _dl_mcount_wrapper_check (void *__selfpc) __THROW;
-#endif

+ 0 - 317
libc/sysdeps/linux/arm/bits/libc-lock.h

@@ -1,317 +0,0 @@
-/* libc-internal interface for mutex locks.  LinuxThreads version.
-   Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#ifndef _BITS_LIBC_LOCK_H
-#define _BITS_LIBC_LOCK_H 1
-
-#include <pthread.h>
-
-/* Mutex type.  */
-#ifdef _LIBC
-typedef pthread_mutex_t __libc_lock_t;
-typedef pthread_rwlock_t __libc_rwlock_t;
-#else
-typedef struct __libc_lock_opaque__ __libc_lock_t;
-typedef struct __libc_rwlock_opaque__ __libc_rwlock_t;
-#endif
-
-/* Type for key to thread-specific data.  */
-typedef pthread_key_t __libc_key_t;
-
-/* Define a lock variable NAME with storage class CLASS.  The lock must be
-   initialized with __libc_lock_init before it can be used (or define it
-   with __libc_lock_define_initialized, below).  Use `extern' for CLASS to
-   declare a lock defined in another module.  In public structure
-   definitions you must use a pointer to the lock structure (i.e., NAME
-   begins with a `*'), because its storage size will not be known outside
-   of libc.  */
-#define __libc_lock_define(CLASS,NAME) \
-  CLASS __libc_lock_t NAME;
-#define __libc_rwlock_define(CLASS,NAME) \
-  CLASS __libc_rwlock_t NAME;
-
-/* Define an initialized lock variable NAME with storage class CLASS.
-
-   For the C library we take a deeper look at the initializer.  For
-   this implementation all fields are initialized to zero.  Therefore
-   we don't initialize the variable which allows putting it into the
-   BSS section.  (Except on PA-RISC and other odd architectures, where
-   initialized locks must be set to one due to the lack of normal
-   atomic operations.) */
-
-#if __LT_SPINLOCK_INIT == 0
-#  define __libc_lock_define_initialized(CLASS,NAME) \
-  CLASS __libc_lock_t NAME;
-#else
-#  define __libc_lock_define_initialized(CLASS,NAME) \
-  CLASS __libc_lock_t NAME = PTHREAD_MUTEX_INITIALIZER;
-#endif
-
-#define __libc_rwlock_define_initialized(CLASS,NAME) \
-  CLASS __libc_rwlock_t NAME = PTHREAD_RWLOCK_INITIALIZER;
-
-/* Define an initialized recursive lock variable NAME with storage
-   class CLASS.  */
-#define __libc_lock_define_initialized_recursive(CLASS,NAME) \
-  CLASS __libc_lock_t NAME = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
-
-/* Initialize the named lock variable, leaving it in a consistent, unlocked
-   state.  */
-#define __libc_lock_init(NAME) \
-  (__pthread_mutex_init != NULL ? __pthread_mutex_init (&(NAME), NULL) : 0);
-#define __libc_rwlock_init(NAME) \
-  (__pthread_rwlock_init != NULL ? __pthread_rwlock_init (&(NAME), NULL) : 0);
-
-/* Same as last but this time we initialize a recursive mutex.  */
-#define __libc_lock_init_recursive(NAME) \
-  do {									      \
-    if (__pthread_mutex_init != NULL)					      \
-      {									      \
-	pthread_mutexattr_t __attr;					      \
-	__pthread_mutexattr_init (&__attr);				      \
-	__pthread_mutexattr_settype (&__attr, PTHREAD_MUTEX_RECURSIVE_NP); \
-	__pthread_mutex_init (&(NAME), &__attr);			      \
-	__pthread_mutexattr_destroy (&__attr);				      \
-      }									      \
-  } while (0);
-
-/* Finalize the named lock variable, which must be locked.  It cannot be
-   used again until __libc_lock_init is called again on it.  This must be
-   called on a lock variable before the containing storage is reused.  */
-#define __libc_lock_fini(NAME) \
-  (__pthread_mutex_destroy != NULL ? __pthread_mutex_destroy (&(NAME)) : 0);
-#define __libc_rwlock_fini(NAME) \
-  (__pthread_rwlock_destroy != NULL ? __pthread_rwlock_destroy (&(NAME)) : 0);
-
-/* Finalize recursive named lock.  */
-#define __libc_lock_fini_recursive(NAME) __libc_lock_fini (NAME)
-
-/* Lock the named lock variable.  */
-#define __libc_lock_lock(NAME) \
-  (__pthread_mutex_lock != NULL ? __pthread_mutex_lock (&(NAME)) : 0);
-#define __libc_rwlock_rdlock(NAME) \
-  (__pthread_rwlock_rdlock != NULL ? __pthread_rwlock_rdlock (&(NAME)) : 0);
-#define __libc_rwlock_wrlock(NAME) \
-  (__pthread_rwlock_wrlock != NULL ? __pthread_rwlock_wrlock (&(NAME)) : 0);
-
-/* Lock the recursive named lock variable.  */
-#define __libc_lock_lock_recursive(NAME) __libc_lock_lock (NAME)
-
-/* Try to lock the named lock variable.  */
-#define __libc_lock_trylock(NAME) \
-  (__pthread_mutex_trylock != NULL ? __pthread_mutex_trylock (&(NAME)) : 0)
-#define __libc_rwlock_tryrdlock(NAME) \
-  (__pthread_rwlock_tryrdlock != NULL \
-   ? __pthread_rwlock_tryrdlock (&(NAME)) : 0)
-#define __libc_rwlock_trywrlock(NAME) \
-  (__pthread_rwlock_trywrlock != NULL \
-   ? __pthread_rwlock_trywrlock (&(NAME)) : 0)
-
-/* Try to lock the recursive named lock variable.  */
-#define __libc_lock_trylock_recursive(NAME) __libc_lock_trylock (NAME)
-
-/* Unlock the named lock variable.  */
-#define __libc_lock_unlock(NAME) \
-  (__pthread_mutex_unlock != NULL ? __pthread_mutex_unlock (&(NAME)) : 0);
-#define __libc_rwlock_unlock(NAME) \
-  (__pthread_rwlock_unlock != NULL ? __pthread_rwlock_unlock (&(NAME)) : 0);
-
-/* Unlock the recursive named lock variable.  */
-#define __libc_lock_unlock_recursive(NAME) __libc_lock_unlock (NAME)
-
-
-/* Define once control variable.  */
-#if PTHREAD_ONCE_INIT == 0
-/* Special case for static variables where we can avoid the initialization
-   if it is zero.  */
-# define __libc_once_define(CLASS, NAME) \
-  CLASS pthread_once_t NAME
-#else
-# define __libc_once_define(CLASS, NAME) \
-  CLASS pthread_once_t NAME = PTHREAD_ONCE_INIT
-#endif
-
-/* Call handler iff the first call.  */
-#define __libc_once(ONCE_CONTROL, INIT_FUNCTION) \
-  do {									      \
-    if (__pthread_once != NULL)						      \
-      __pthread_once (&(ONCE_CONTROL), (INIT_FUNCTION));		      \
-    else if ((ONCE_CONTROL) == PTHREAD_ONCE_INIT) {			      \
-      INIT_FUNCTION ();							      \
-      (ONCE_CONTROL) = !PTHREAD_ONCE_INIT;				      \
-    }									      \
-  } while (0)
-
-
-/* Start critical region with cleanup.  */
-#define __libc_cleanup_region_start(FCT, ARG) \
-  { struct _pthread_cleanup_buffer _buffer;				      \
-    int _avail = _pthread_cleanup_push_defer != NULL;			      \
-    if (_avail) {							      \
-      _pthread_cleanup_push_defer (&_buffer, (FCT), (ARG));		      \
-    }
-
-/* End critical region with cleanup.  */
-#define __libc_cleanup_region_end(DOIT) \
-    if (_avail) {							      \
-      _pthread_cleanup_pop_restore (&_buffer, (DOIT));			      \
-    }									      \
-  }
-
-/* Sometimes we have to exit the block in the middle.  */
-#define __libc_cleanup_end(DOIT) \
-    if (_avail) {							      \
-      _pthread_cleanup_pop_restore (&_buffer, (DOIT));			      \
-    }
-
-/* Create thread-specific key.  */
-#define __libc_key_create(KEY, DESTRUCTOR) \
-  (__pthread_key_create != NULL ? __pthread_key_create (KEY, DESTRUCTOR) : 1)
-
-/* Get thread-specific data.  */
-#define __libc_getspecific(KEY) \
-  (__pthread_getspecific != NULL ? __pthread_getspecific (KEY) : NULL)
-
-/* Set thread-specific data.  */
-#define __libc_setspecific(KEY, VALUE) \
-  (__pthread_setspecific != NULL ? __pthread_setspecific (KEY, VALUE) : 0)
-
-
-/* Register handlers to execute before and after `fork'.  */
-#define __libc_atfork(PREPARE, PARENT, CHILD) \
-  (__pthread_atfork != NULL ? __pthread_atfork (PREPARE, PARENT, CHILD) : 0)
-
-/* Functions that are used by this file and are internal to the GNU C
-   library.  */
-
-extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
-				 __const pthread_mutexattr_t *__mutex_attr);
-
-extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
-
-extern int __pthread_mutex_trylock (pthread_mutex_t *__mutex);
-
-extern int __pthread_mutex_lock (pthread_mutex_t *__mutex);
-
-extern int __pthread_mutex_unlock (pthread_mutex_t *__mutex);
-
-extern int __pthread_mutexattr_init (pthread_mutexattr_t *__attr);
-
-extern int __pthread_mutexattr_destroy (pthread_mutexattr_t *__attr);
-
-extern int __pthread_mutexattr_settype (pthread_mutexattr_t *__attr,
-					int __kind);
-
-#ifdef __USE_UNIX98
-extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
-				  __const pthread_rwlockattr_t *__attr);
-
-extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_rwlock_unlock (pthread_rwlock_t *__rwlock);
-#endif
-
-extern int __pthread_key_create (pthread_key_t *__key,
-				 void (*__destr_function) (void *));
-
-extern int __pthread_setspecific (pthread_key_t __key,
-				  __const void *__pointer);
-
-extern void *__pthread_getspecific (pthread_key_t __key);
-
-extern int __pthread_once (pthread_once_t *__once_control,
-			   void (*__init_routine) (void));
-
-extern int __pthread_atfork (void (*__prepare) (void),
-			     void (*__parent) (void),
-			     void (*__child) (void));
-
-
-
-/* Make the pthread functions weak so that we can elide them from
-   single-threaded processes.  */
-#ifndef __NO_WEAK_PTHREAD_ALIASES
-# ifdef weak_extern
-#  if _LIBC
-#   include <bp-sym.h>
-#  else
-#   define BP_SYM (sym) sym
-#  endif
-weak_extern (BP_SYM (__pthread_mutex_init))
-weak_extern (BP_SYM (__pthread_mutex_destroy))
-weak_extern (BP_SYM (__pthread_mutex_lock))
-weak_extern (BP_SYM (__pthread_mutex_trylock))
-weak_extern (BP_SYM (__pthread_mutex_unlock))
-weak_extern (BP_SYM (__pthread_mutexattr_init))
-weak_extern (BP_SYM (__pthread_mutexattr_destroy))
-weak_extern (BP_SYM (__pthread_mutexattr_settype))
-weak_extern (BP_SYM (__pthread_rwlock_init))
-weak_extern (BP_SYM (__pthread_rwlock_destroy))
-weak_extern (BP_SYM (__pthread_rwlock_rdlock))
-weak_extern (BP_SYM (__pthread_rwlock_tryrdlock))
-weak_extern (BP_SYM (__pthread_rwlock_wrlock))
-weak_extern (BP_SYM (__pthread_rwlock_trywrlock))
-weak_extern (BP_SYM (__pthread_rwlock_unlock))
-weak_extern (BP_SYM (__pthread_key_create))
-weak_extern (BP_SYM (__pthread_setspecific))
-weak_extern (BP_SYM (__pthread_getspecific))
-weak_extern (BP_SYM (__pthread_once))
-weak_extern (__pthread_initialize)
-weak_extern (__pthread_atfork)
-weak_extern (BP_SYM (_pthread_cleanup_push_defer))
-weak_extern (BP_SYM (_pthread_cleanup_pop_restore))
-# else
-#  pragma weak __pthread_mutex_init
-#  pragma weak __pthread_mutex_destroy
-#  pragma weak __pthread_mutex_lock
-#  pragma weak __pthread_mutex_trylock
-#  pragma weak __pthread_mutex_unlock
-#  pragma weak __pthread_mutexattr_init
-#  pragma weak __pthread_mutexattr_destroy
-#  pragma weak __pthread_mutexattr_settype
-#  pragma weak __pthread_rwlock_destroy
-#  pragma weak __pthread_rwlock_rdlock
-#  pragma weak __pthread_rwlock_tryrdlock
-#  pragma weak __pthread_rwlock_wrlock
-#  pragma weak __pthread_rwlock_trywrlock
-#  pragma weak __pthread_rwlock_unlock
-#  pragma weak __pthread_key_create
-#  pragma weak __pthread_setspecific
-#  pragma weak __pthread_getspecific
-#  pragma weak __pthread_once
-#  pragma weak __pthread_initialize
-#  pragma weak __pthread_atfork
-#  pragma weak _pthread_cleanup_push_defer
-#  pragma weak _pthread_cleanup_pop_restore
-# endif
-#endif
-
-/* We need portable names for some functions.  E.g., when they are
-   used as argument to __libc_cleanup_region_start.  */
-#define __libc_mutex_unlock __pthread_mutex_unlock
-
-#endif	/* bits/libc-lock.h */

+ 0 - 141
libc/sysdeps/linux/arm/bits/posix_opt.h

@@ -1,141 +0,0 @@
-/* Define POSIX options for Linux.
-   Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#ifndef	_POSIX_OPT_H
-#define	_POSIX_OPT_H	1
-
-/* Job control is supported.  */
-#define	_POSIX_JOB_CONTROL	1
-
-/* Processes have a saved set-user-ID and a saved set-group-ID.  */
-#define	_POSIX_SAVED_IDS	1
-
-/* Priority scheduling is supported.  */
-#define	_POSIX_PRIORITY_SCHEDULING	1
-
-/* Synchronizing file data is supported.  */
-#define	_POSIX_SYNCHRONIZED_IO	1
-
-/* The fsync function is present.  */
-#define	_POSIX_FSYNC	1
-
-/* Mapping of files to memory is supported.  */
-#define	_POSIX_MAPPED_FILES	1
-
-/* Locking of all memory is supported.  */
-#define	_POSIX_MEMLOCK	1
-
-/* Locking of ranges of memory is supported.  */
-#define	_POSIX_MEMLOCK_RANGE	1
-
-/* Setting of memory protections is supported.  */
-#define	_POSIX_MEMORY_PROTECTION	1
-
-/* Implementation supports `poll' function.  */
-#define	_POSIX_POLL	1
-
-/* Implementation supports `select' and `pselect' functions.  */
-#define	_POSIX_SELECT	1
-
-/* Only root can change owner of file.  */
-#define	_POSIX_CHOWN_RESTRICTED	1
-
-/* `c_cc' member of 'struct termios' structure can be disabled by
-   using the value _POSIX_VDISABLE.  */
-#define	_POSIX_VDISABLE	'\0'
-
-/* Filenames are not silently truncated.  */
-#define	_POSIX_NO_TRUNC	1
-
-/* X/Open realtime support is available.  */
-#define _XOPEN_REALTIME	1
-
-/* X/Open realtime thread support is available.  */
-#undef _XOPEN_REALTIME_THREADS
-
-/* XPG4.2 shared memory is supported.  */
-#define	_XOPEN_SHM	1
-
-/* Tell we have POSIX threads.  */
-#undef _POSIX_THREADS
-
-/* We have the reentrant functions described in POSIX.  */
-#define _POSIX_REENTRANT_FUNCTIONS      1
-#define _POSIX_THREAD_SAFE_FUNCTIONS	1
-
-/* We provide priority scheduling for threads.  */
-#define	_POSIX_THREAD_PRIORITY_SCHEDULING	1
-
-/* We support user-defined stack sizes.  */
-#define _POSIX_THREAD_ATTR_STACKSIZE	1
-
-/* We support user-defined stacks.  */
-#define _POSIX_THREAD_ATTR_STACKADDR	1
-
-/* We support POSIX.1b semaphores, but only the non-shared form for now.  */
-#define _POSIX_SEMAPHORES	1
-
-/* Real-time signals are supported.  */
-#define _POSIX_REALTIME_SIGNALS	1
-
-/* We support asynchronous I/O.  */
-#define _POSIX_ASYNCHRONOUS_IO	1
-#define _POSIX_ASYNC_IO		1
-/* Alternative name for Unix98.  */
-#define _LFS_ASYNCHRONOUS_IO	1
-
-/* The LFS support in asynchronous I/O is also available.  */
-#define _LFS64_ASYNCHRONOUS_IO	1
-
-/* The rest of the LFS is also available.  */
-#define _LFS_LARGEFILE		1
-#define _LFS64_LARGEFILE	1
-#define _LFS64_STDIO		1
-
-/* POSIX shared memory objects are implemented.  */
-#define _POSIX_SHARED_MEMORY_OBJECTS	1
-
-/* GNU libc provides regular expression handling.  */
-#define _POSIX_REGEXP	1
-
-/* Reader/Writer locks are available.  */
-#define _POSIX_READER_WRITER_LOCKS	200912L
-
-/* We have a POSIX shell.  */
-#define _POSIX_SHELL	1
-
-/* We support the Timeouts option.  */
-#define _POSIX_TIMEOUTS	200912L
-
-/* We support spinlocks.  */
-#define _POSIX_SPIN_LOCKS	200912L
-
-/* The `spawn' function family is supported.  */
-#define _POSIX_SPAWN	200912L
-
-/* We have POSIX timers.  */
-#define _POSIX_TIMERS	1
-
-/* The barrier functions are available.  */
-#define _POSIX_BARRIERS	200912L
-
-/* POSIX message queues are not yet supported.  */
-#undef	_POSIX_MESSAGE_PASSING
-
-#endif /* posix_opt.h */

+ 0 - 142
libc/sysdeps/linux/arm/bits/pthreadtypes.h

@@ -1,142 +0,0 @@
-/* Linuxthreads - a simple clone()-based implementation of Posix        */
-/* threads for Linux.                                                   */
-/* Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr)              */
-/*                                                                      */
-/* This program is free software; you can redistribute it and/or        */
-/* modify it under the terms of the GNU Library General Public License  */
-/* as published by the Free Software Foundation; either version 2       */
-/* of the License, or (at your option) any later version.               */
-/*                                                                      */
-/* This program is distributed in the hope that it will be useful,      */
-/* but WITHOUT ANY WARRANTY; without even the implied warranty of       */
-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        */
-/* GNU Library General Public License for more details.                 */
-
-#if !defined _BITS_TYPES_H && !defined _PTHREAD_H
-# error "Never include <bits/pthreadtypes.h> directly; use <sys/types.h> instead."
-#endif
-
-#ifndef _BITS_PTHREADTYPES_H
-#define _BITS_PTHREADTYPES_H	1
-
-#define __need_schedparam
-#include <bits/sched.h>
-
-/* Fast locks (not abstract because mutexes and conditions aren't abstract). */
-struct _pthread_fastlock
-{
-  long int __status;   /* "Free" or "taken" or head of waiting list */
-  int __spinlock;      /* Used by compare_and_swap emulation. Also,
-			  adaptive SMP lock stores spin count here. */
-};
-
-#ifndef _PTHREAD_DESCR_DEFINED
-/* Thread descriptors */
-typedef struct _pthread_descr_struct *_pthread_descr;
-# define _PTHREAD_DESCR_DEFINED
-#endif
-
-
-/* Attributes for threads.  */
-typedef struct __pthread_attr_s
-{
-  int __detachstate;
-  int __schedpolicy;
-  struct __sched_param __schedparam;
-  int __inheritsched;
-  int __scope;
-  size_t __guardsize;
-  int __stackaddr_set;
-  void *__stackaddr;
-  size_t __stacksize;
-} pthread_attr_t;
-
-
-/* Conditions (not abstract because of PTHREAD_COND_INITIALIZER */
-typedef struct
-{
-  struct _pthread_fastlock __c_lock; /* Protect against concurrent access */
-  _pthread_descr __c_waiting;        /* Threads waiting on this condition */
-} pthread_cond_t;
-
-
-/* Attribute for conditionally variables.  */
-typedef struct
-{
-  int __dummy;
-} pthread_condattr_t;
-
-/* Keys for thread-specific data */
-typedef unsigned int pthread_key_t;
-
-
-/* Mutexes (not abstract because of PTHREAD_MUTEX_INITIALIZER).  */
-/* (The layout is unnatural to maintain binary compatibility
-    with earlier releases of LinuxThreads.) */
-typedef struct
-{
-  int __m_reserved;               /* Reserved for future use */
-  int __m_count;                  /* Depth of recursive locking */
-  _pthread_descr __m_owner;       /* Owner thread (if recursive or errcheck) */
-  int __m_kind;                   /* Mutex kind: fast, recursive or errcheck */
-  struct _pthread_fastlock __m_lock; /* Underlying fast lock */
-} pthread_mutex_t;
-
-
-/* Attribute for mutex.  */
-typedef struct
-{
-  int __mutexkind;
-} pthread_mutexattr_t;
-
-
-/* Once-only execution */
-typedef int pthread_once_t;
-
-
-#ifdef __USE_UNIX98
-/* Read-write locks.  */
-typedef struct _pthread_rwlock_t
-{
-  struct _pthread_fastlock __rw_lock; /* Lock to guarantee mutual exclusion */
-  int __rw_readers;                   /* Number of readers */
-  _pthread_descr __rw_writer;         /* Identity of writer, or NULL if none */
-  _pthread_descr __rw_read_waiting;   /* Threads waiting for reading */
-  _pthread_descr __rw_write_waiting;  /* Threads waiting for writing */
-  int __rw_kind;                      /* Reader/Writer preference selection */
-  int __rw_pshared;                   /* Shared between processes or not */
-} pthread_rwlock_t;
-
-
-/* Attribute for read-write locks.  */
-typedef struct
-{
-  int __lockkind;
-  int __pshared;
-} pthread_rwlockattr_t;
-#endif
-
-#ifdef __USE_XOPEN2K
-/* POSIX spinlock data type.  */
-typedef volatile int pthread_spinlock_t;
-
-/* POSIX barrier. */
-typedef struct {
-  struct _pthread_fastlock __ba_lock; /* Lock to guarantee mutual exclusion */
-  int __ba_required;                  /* Threads needed for completion */
-  int __ba_present;                   /* Threads waiting */
-  _pthread_descr __ba_waiting;        /* Queue of waiting threads */
-} pthread_barrier_t;
-
-/* barrier attribute */
-typedef struct {
-  int __pshared;
-} pthread_barrierattr_t;
-
-#endif
-
-
-/* Thread identifiers */
-typedef unsigned long int pthread_t;
-
-#endif	/* bits/pthreadtypes.h */

+ 0 - 50
libc/sysdeps/linux/arm/bits/stdio-lock.h

@@ -1,50 +0,0 @@
-/* Thread package specific definitions of stream lock type.
-   Copyright (C) 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#include <pthread.h>
-
-typedef pthread_mutex_t _IO_lock_t;
-
-/* We need recursive (counting) mutexes.  */
-#define _IO_lock_initializer PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
-
-
-#define _IO_cleanup_region_start(_fct, _fp) \
-  { struct _pthread_cleanup_buffer _buffer;				      \
-    int _avail = (((_fp)->_flags & _IO_USER_LOCK) == 0			      \
-		  && _pthread_cleanup_push_defer != NULL);		      \
-    if (_avail) {							      \
-      _pthread_cleanup_push_defer (&_buffer, (_fct), (_fp));		      \
-    }
-#define _IO_cleanup_region_start_noarg(_fct) \
-  { struct _pthread_cleanup_buffer _buffer;				      \
-    int _avail = _pthread_cleanup_push_defer != NULL;			      \
-    if (_avail) {							      \
-      _pthread_cleanup_push_defer (&_buffer, (_fct), NULL);		      \
-    }
-#define _IO_cleanup_region_end(_doit) \
-     __libc_cleanup_region_end (_doit)
-#define _IO_lock_init(_name) \
-     __libc_lock_init_recursive (_name)
-#define _IO_lock_fini(_name) \
-     __libc_lock_fini_recursive (_name)
-#define _IO_lock_lock(_name) \
-     __libc_lock_lock (_name)
-#define _IO_lock_unlock(_name) \
-     __libc_lock_unlock (_name)

+ 0 - 24
libc/sysdeps/linux/arm/bits/stdio.h

@@ -1,24 +0,0 @@
-/* Optimizing macros and inline functions for stdio functions.
-   Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifndef _STDIO_H
-# error "Never include <bits/stdio.h> directly; use <stdio.h> instead."
-#endif
-
-/* Nothing to do here.  Move right along */

+ 0 - 1239
libc/sysdeps/linux/arm/bits/string2.h

@@ -1,1239 +0,0 @@
-/* Machine-independant string function optimizations.
-   Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifndef _STRING_H
-# error "Never use <bits/string2.h> directly; include <string.h> instead."
-#endif
-
-#if !defined __NO_STRING_INLINES && !defined __BOUNDED_POINTERS__
-
-/* Unlike the definitions in the header <bits/string.h> the
-   definitions contained here are not optimized down to assembler
-   level.  Those optimizations are not always a good idea since this
-   means the code size increases a lot.  Instead the definitions here
-   optimize some functions in a way which do not dramatically
-   increase the code size and which do not use assembler.  The main
-   trick is to use GNU CC's `__builtin_constant_p' function.
-
-   Every function XXX which has a defined version in
-   <bits/string.h> must be accompanied by a symbol _HAVE_STRING_ARCH_XXX
-   to make sure we don't get redefinitions.
-
-   We must use here macros instead of inline functions since the
-   trick won't work with the latter.  */
-
-#ifndef __STRING_INLINE
-# ifdef __cplusplus
-#  define __STRING_INLINE inline
-# else
-#  define __STRING_INLINE extern __inline
-# endif
-#endif
-
-#if _STRING_ARCH_unaligned
-/* If we can do unaligned memory accesses we must know the endianess.  */
-# include <endian.h>
-# include <bits/types.h>
-
-# if __BYTE_ORDER == __LITTLE_ENDIAN
-#  define __STRING2_SMALL_GET16(src, idx) \
-     (((__const unsigned char *) (__const char *) (src))[idx + 1] << 8	      \
-      | ((__const unsigned char *) (__const char *) (src))[idx])
-#  define __STRING2_SMALL_GET32(src, idx) \
-     (((((__const unsigned char *) (__const char *) (src))[idx + 3] << 8      \
-	| ((__const unsigned char *) (__const char *) (src))[idx + 2]) << 8   \
-       | ((__const unsigned char *) (__const char *) (src))[idx + 1]) << 8    \
-      | ((__const unsigned char *) (__const char *) (src))[idx])
-# else
-#  define __STRING2_SMALL_GET16(src, idx) \
-     (((__const unsigned char *) (__const char *) (src))[idx] << 8	      \
-      | ((__const unsigned char *) (__const char *) (src))[idx + 1])
-#  define __STRING2_SMALL_GET32(src, idx) \
-     (((((__const unsigned char *) (__const char *) (src))[idx] << 8	      \
-	| ((__const unsigned char *) (__const char *) (src))[idx + 1]) << 8   \
-       | ((__const unsigned char *) (__const char *) (src))[idx + 2]) << 8    \
-      | ((__const unsigned char *) (__const char *) (src))[idx + 3])
-# endif
-#else
-/* These are a few types we need for the optimizations if we cannot
-   use unaligned memory accesses.  */
-# define __STRING2_COPY_TYPE(N) \
-  typedef struct { unsigned char __arr[N]; }				      \
-    __STRING2_COPY_ARR##N __attribute__ ((packed))
-__STRING2_COPY_TYPE (2);
-__STRING2_COPY_TYPE (3);
-__STRING2_COPY_TYPE (4);
-__STRING2_COPY_TYPE (5);
-__STRING2_COPY_TYPE (6);
-__STRING2_COPY_TYPE (7);
-__STRING2_COPY_TYPE (8);
-# undef __STRING2_COPY_TYPE
-#endif
-
-/* Dereferencing a pointer arg to run sizeof on it fails for the void
-   pointer case, so we use this instead.
-   Note that __x is evaluated twice. */
-#define __string2_1bptr_p(__x) \
-  ((size_t)(const void *)((__x) + 1) - (size_t)(const void *)(__x) == 1)
-
-/* Set N bytes of S to C.  */
-#ifndef _HAVE_STRING_ARCH_memset
-# if _STRING_ARCH_unaligned
-#  define memset(s, c, n) \
-  (__extension__ (__builtin_constant_p (n) && (n) <= 16			      \
-		  ? ((n) == 1						      \
-		     ? __memset_1 (s, c)				      \
-		     : __memset_gc (s, c, n))				      \
-		  : (__builtin_constant_p (c) && (c) == '\0'		      \
-		     ? ({ void *__s = (s); __bzero (__s, n); __s; })	      \
-		     : memset (s, c, n))))
-
-#  define __memset_1(s, c) ({ void *__s = (s);				      \
-			    *((__uint8_t *) __s) = (__uint8_t) c; __s; })
-
-#  define __memset_gc(s, c, n) \
-  ({ void *__s = (s);							      \
-     union {								      \
-       unsigned int __ui;						      \
-       unsigned short int __usi;					      \
-       unsigned char __uc;						      \
-     } *__u = __s;							      \
-     __uint8_t __c = (__uint8_t) (c);					      \
-									      \
-     /* This `switch' statement will be removed at compile-time.  */	      \
-     switch ((unsigned int) (n))					      \
-       {								      \
-       case 15:								      \
-	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ (void *)((char *) __u + 4);		      \
-       case 11:								      \
-	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ (void *)((char *) __u + 4);		      \
-       case 7:								      \
-	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ (void *)((char *) __u + 4);		      \
-       case 3:								      \
-	 __u->__usi = (unsigned short int) __c * 0x0101;		      \
-	 __u = __extension__ (void *)((char *) __u + 2);		      \
-	 __u->__uc = (unsigned char) __c;				      \
-	 break;								      \
-									      \
-       case 14:								      \
-	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ (void *)((char *) __u + 4);		      \
-       case 10:								      \
-	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ (void *)((char *) __u + 4);		      \
-       case 6:								      \
-	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ (void *)((char *) __u + 4);		      \
-       case 2:								      \
-	 __u->__usi = (unsigned short int) __c * 0x0101;		      \
-	 break;								      \
-									      \
-       case 13:								      \
-	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ (void *)((char *) __u + 4);		      \
-       case 9:								      \
-	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ (void *)((char *) __u + 4);		      \
-       case 5:								      \
-	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ (void *)((char *) __u + 4);		      \
-       case 1:								      \
-	 __u->__uc = (unsigned char) __c;				      \
-	 break;								      \
-									      \
-       case 16:								      \
-	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ (void *)((char *) __u + 4);		      \
-       case 12:								      \
-	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ (void *)((char *) __u + 4);		      \
-       case 8:								      \
-	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ (void *)((char *) __u + 4);		      \
-       case 4:								      \
-	 __u->__ui = __c * 0x01010101;					      \
-       case 0:								      \
-	 break;								      \
-       }								      \
-									      \
-     __s; })
-# else
-#  define memset(s, c, n) \
-  (__extension__ (__builtin_constant_p (c) && (c) == '\0'		      \
-		  ? ({ void *__s = (s); __bzero (__s, n); __s; })	      \
-		  : memset (s, c, n)))
-# endif
-
-/* GCC optimizes memset(s, 0, n) but not bzero(s, n).
-   The optimization is broken before EGCS 1.1.  */
-# if __GNUC_PREREQ (2, 91)
-#  define __bzero(s, n) __builtin_memset (s, '\0', n)
-# endif
-
-#endif
-
-
-/* Copy N bytes from SRC to DEST, returning pointer to byte following the
-   last copied.  */
-#ifdef __USE_GNU
-# if !defined _HAVE_STRING_ARCH_mempcpy || defined _FORCE_INLINES
-#  ifndef _HAVE_STRING_ARCH_mempcpy
-#   define __mempcpy(dest, src, n) \
-  (__extension__ (__builtin_constant_p (src) && __builtin_constant_p (n)      \
-		  && __string2_1bptr_p (src) && n <= 8			      \
-		  ? __mempcpy_small (dest, __mempcpy_args (src), n)	      \
-		  : __mempcpy (dest, src, n)))
-/* In glibc we use this function frequently but for namespace reasons
-   we have to use the name `__mempcpy'.  */
-#   define mempcpy(dest, src, n) __mempcpy (dest, src, n)
-#  endif
-
-#  if _STRING_ARCH_unaligned
-#   ifndef _FORCE_INLINES
-#    define __mempcpy_args(src) \
-     ((__const char *) (src))[0], ((__const char *) (src))[2],		      \
-     ((__const char *) (src))[4], ((__const char *) (src))[6],		      \
-     __extension__ __STRING2_SMALL_GET16 (src, 0),			      \
-     __extension__ __STRING2_SMALL_GET16 (src, 4),			      \
-     __extension__ __STRING2_SMALL_GET32 (src, 0),			      \
-     __extension__ __STRING2_SMALL_GET32 (src, 4)
-#   endif
-__STRING_INLINE void *__mempcpy_small (void *, char, char, char, char,
-				       __uint16_t, __uint16_t, __uint32_t,
-				       __uint32_t, size_t);
-__STRING_INLINE void *
-__mempcpy_small (void *__dest1,
-		 char __src0_1, char __src2_1, char __src4_1, char __src6_1,
-		 __uint16_t __src0_2, __uint16_t __src4_2,
-		 __uint32_t __src0_4, __uint32_t __src4_4,
-		 size_t __srclen)
-{
-  union {
-    __uint32_t __ui;
-    __uint16_t __usi;
-    unsigned char __uc;
-    unsigned char __c;
-  } *__u = __dest1;
-  switch ((unsigned int) __srclen)
-    {
-    case 1:
-      __u->__c = __src0_1;
-      __u = __extension__ (void *)((char *) __u + 1);
-      break;
-    case 2:
-      __u->__usi = __src0_2;
-      __u = __extension__ (void *)((char *) __u + 2);
-      break;
-    case 3:
-      __u->__usi = __src0_2;
-      __u = __extension__ (void *)((char *) __u + 2);
-      __u->__c = __src2_1;
-      __u = __extension__ (void *)((char *) __u + 1);
-      break;
-    case 4:
-      __u->__ui = __src0_4;
-      __u = __extension__ (void *)((char *) __u + 4);
-      break;
-    case 5:
-      __u->__ui = __src0_4;
-      __u = __extension__ (void *)((char *) __u + 4);
-      __u->__c = __src4_1;
-      __u = __extension__ (void *)((char *) __u + 1);
-      break;
-    case 6:
-      __u->__ui = __src0_4;
-      __u = __extension__ (void *)((char *) __u + 4);
-      __u->__usi = __src4_2;
-      __u = __extension__ (void *)((char *) __u + 2);
-      break;
-    case 7:
-      __u->__ui = __src0_4;
-      __u = __extension__ (void *)((char *) __u + 4);
-      __u->__usi = __src4_2;
-      __u = __extension__ (void *)((char *) __u + 2);
-      __u->__c = __src6_1;
-      __u = __extension__ (void *)((char *) __u + 1);
-      break;
-    case 8:
-      __u->__ui = __src0_4;
-      __u = __extension__ (void *)((char *) __u + 4);
-      __u->__ui = __src4_4;
-      __u = __extension__ (void *)((char *) __u + 4);
-      break;
-    }
-  return (void *) __u;
-}
-#  else
-#   ifndef _FORCE_INLINES
-#    define __mempcpy_args(src) \
-     ((__const char *) (src))[0],					      \
-     __extension__ ((__STRING2_COPY_ARR2)				      \
-      { { ((__const char *) (src))[0], ((__const char *) (src))[1] } }),      \
-     __extension__ ((__STRING2_COPY_ARR3)				      \
-      { { ((__const char *) (src))[0], ((__const char *) (src))[1],	      \
-	  ((__const char *) (src))[2] } }),				      \
-     __extension__ ((__STRING2_COPY_ARR4)				      \
-      { { ((__const char *) (src))[0], ((__const char *) (src))[1],	      \
-	  ((__const char *) (src))[2], ((__const char *) (src))[3] } }),      \
-     __extension__ ((__STRING2_COPY_ARR5)				      \
-      { { ((__const char *) (src))[0], ((__const char *) (src))[1],	      \
-	  ((__const char *) (src))[2], ((__const char *) (src))[3],	      \
-	  ((__const char *) (src))[4] } }),				      \
-     __extension__ ((__STRING2_COPY_ARR6)				      \
-      { { ((__const char *) (src))[0], ((__const char *) (src))[1],	      \
-	  ((__const char *) (src))[2], ((__const char *) (src))[3],	      \
-	  ((__const char *) (src))[4], ((__const char *) (src))[5] } }),      \
-     __extension__ ((__STRING2_COPY_ARR7)				      \
-      { { ((__const char *) (src))[0], ((__const char *) (src))[1],	      \
-	  ((__const char *) (src))[2], ((__const char *) (src))[3],	      \
-	  ((__const char *) (src))[4], ((__const char *) (src))[5],	      \
-	  ((__const char *) (src))[6] } }),				      \
-     __extension__ ((__STRING2_COPY_ARR8)				      \
-      { { ((__const char *) (src))[0], ((__const char *) (src))[1],	      \
-	  ((__const char *) (src))[2], ((__const char *) (src))[3],	      \
-	  ((__const char *) (src))[4], ((__const char *) (src))[5],	      \
-	  ((__const char *) (src))[6], ((__const char *) (src))[7] } })
-#   endif
-__STRING_INLINE void *__mempcpy_small (void *, char, __STRING2_COPY_ARR2,
-				       __STRING2_COPY_ARR3,
-				       __STRING2_COPY_ARR4,
-				       __STRING2_COPY_ARR5,
-				       __STRING2_COPY_ARR6,
-				       __STRING2_COPY_ARR7,
-				       __STRING2_COPY_ARR8, size_t);
-__STRING_INLINE void *
-__mempcpy_small (void *__dest, char __src1,
-		 __STRING2_COPY_ARR2 __src2, __STRING2_COPY_ARR3 __src3,
-		 __STRING2_COPY_ARR4 __src4, __STRING2_COPY_ARR5 __src5,
-		 __STRING2_COPY_ARR6 __src6, __STRING2_COPY_ARR7 __src7,
-		 __STRING2_COPY_ARR8 __src8, size_t __srclen)
-{
-  union {
-    char __c;
-    __STRING2_COPY_ARR2 __sca2;
-    __STRING2_COPY_ARR3 __sca3;
-    __STRING2_COPY_ARR4 __sca4;
-    __STRING2_COPY_ARR5 __sca5;
-    __STRING2_COPY_ARR6 __sca6;
-    __STRING2_COPY_ARR7 __sca7;
-    __STRING2_COPY_ARR8 __sca8;
-  } *__u = __dest;
-  switch ((unsigned int) __srclen)
-    {
-    case 1:
-      __u->__c = __src1;
-      break;
-    case 2:
-      __extension__ __u->__sca2 = __src2;
-      break;
-    case 3:
-      __extension__ __u->__sca3 = __src3;
-      break;
-    case 4:
-      __extension__ __u->__sca4 = __src4;
-      break;
-    case 5:
-      __extension__ __u->__sca5 = __src5;
-      break;
-    case 6:
-      __extension__ __u->__sca6 = __src6;
-      break;
-    case 7:
-      __extension__ __u->__sca7 = __src7;
-      break;
-    case 8:
-      __extension__ __u->__sca8 = __src8;
-      break;
-    }
-  return __extension__ (void *)((char *) __u + __srclen);
-}
-#  endif
-# endif
-#endif
-
-
-/* Return pointer to C in S.  */
-#ifndef _HAVE_STRING_ARCH_strchr
-extern void *__rawmemchr (const void *__s, int __c);
-# define strchr(s, c) \
-  (__extension__ (__builtin_constant_p (c) && (c) == '\0'		      \
-		  ? (char *) __rawmemchr (s, c)				      \
-		  : strchr (s, c)))
-#endif
-
-
-/* Copy SRC to DEST.  */
-#if !defined _HAVE_STRING_ARCH_strcpy || defined _FORCE_INLINES
-# ifndef _HAVE_STRING_ARCH_strcpy
-#  define strcpy(dest, src) \
-  (__extension__ (__builtin_constant_p (src)				      \
-		  ? (__string2_1bptr_p (src) && strlen (src) + 1 <= 8	      \
-		     ? __strcpy_small (dest, __strcpy_args (src),	      \
-				       strlen (src) + 1)		      \
-		     : (char *) memcpy (dest, src, strlen (src) + 1))	      \
-		  : strcpy (dest, src)))
-# endif
-
-# if _STRING_ARCH_unaligned
-#  ifndef _FORCE_INLINES
-#   define __strcpy_args(src) \
-     __extension__ __STRING2_SMALL_GET16 (src, 0),			      \
-     __extension__ __STRING2_SMALL_GET16 (src, 4),			      \
-     __extension__ __STRING2_SMALL_GET32 (src, 0),			      \
-     __extension__ __STRING2_SMALL_GET32 (src, 4)
-#  endif
-__STRING_INLINE char *__strcpy_small (char *, __uint16_t, __uint16_t,
-				      __uint32_t, __uint32_t, size_t);
-__STRING_INLINE char *
-__strcpy_small (char *__dest,
-		__uint16_t __src0_2, __uint16_t __src4_2,
-		__uint32_t __src0_4, __uint32_t __src4_4,
-		size_t __srclen)
-{
-  union {
-    __uint32_t __ui;
-    __uint16_t __usi;
-    unsigned char __uc;
-  } *__u = (void *) __dest;
-  switch ((unsigned int) __srclen)
-    {
-    case 1:
-      __u->__uc = '\0';
-      break;
-    case 2:
-      __u->__usi = __src0_2;
-      break;
-    case 3:
-      __u->__usi = __src0_2;
-      __u = __extension__ (void *)((char *) __u + 2);
-      __u->__uc = '\0';
-      break;
-    case 4:
-      __u->__ui = __src0_4;
-      break;
-    case 5:
-      __u->__ui = __src0_4;
-      __u = __extension__ (void *)((char *) __u + 4);
-      __u->__uc = '\0';
-      break;
-    case 6:
-      __u->__ui = __src0_4;
-      __u = __extension__ (void *)((char *) __u + 4);
-      __u->__usi = __src4_2;
-      break;
-    case 7:
-      __u->__ui = __src0_4;
-      __u = __extension__ (void *)((char *) __u + 4);
-      __u->__usi = __src4_2;
-      __u = __extension__ (void *)((char *) __u + 2);
-      __u->__uc = '\0';
-      break;
-    case 8:
-      __u->__ui = __src0_4;
-      __u = __extension__ (void *)((char *) __u + 4);
-      __u->__ui = __src4_4;
-      break;
-    }
-  return __dest;
-}
-# else
-#  ifndef _FORCE_INLINES
-#   define __strcpy_args(src) \
-     __extension__ ((__STRING2_COPY_ARR2)				      \
-      { { ((__const char *) (src))[0], '\0' } }),			      \
-     __extension__ ((__STRING2_COPY_ARR3)				      \
-      { { ((__const char *) (src))[0], ((__const char *) (src))[1],	      \
-	  '\0' } }),							      \
-     __extension__ ((__STRING2_COPY_ARR4)				      \
-      { { ((__const char *) (src))[0], ((__const char *) (src))[1],	      \
-	  ((__const char *) (src))[2], '\0' } }),			      \
-     __extension__ ((__STRING2_COPY_ARR5)				      \
-      { { ((__const char *) (src))[0], ((__const char *) (src))[1],	      \
-	  ((__const char *) (src))[2], ((__const char *) (src))[3],	      \
-	  '\0' } }),							      \
-     __extension__ ((__STRING2_COPY_ARR6)				      \
-      { { ((__const char *) (src))[0], ((__const char *) (src))[1],	      \
-	  ((__const char *) (src))[2], ((__const char *) (src))[3],	      \
-	  ((__const char *) (src))[4], '\0' } }),			      \
-     __extension__ ((__STRING2_COPY_ARR7)				      \
-      { { ((__const char *) (src))[0], ((__const char *) (src))[1],	      \
-	  ((__const char *) (src))[2], ((__const char *) (src))[3],	      \
-	  ((__const char *) (src))[4], ((__const char *) (src))[5],	      \
-	  '\0' } }),							      \
-     __extension__ ((__STRING2_COPY_ARR8)				      \
-      { { ((__const char *) (src))[0], ((__const char *) (src))[1],	      \
-	  ((__const char *) (src))[2], ((__const char *) (src))[3],	      \
-	  ((__const char *) (src))[4], ((__const char *) (src))[5],	      \
-	  ((__const char *) (src))[6], '\0' } })
-#  endif
-__STRING_INLINE char *__strcpy_small (char *, __STRING2_COPY_ARR2,
-				      __STRING2_COPY_ARR3,
-				      __STRING2_COPY_ARR4,
-				      __STRING2_COPY_ARR5,
-				      __STRING2_COPY_ARR6,
-				      __STRING2_COPY_ARR7,
-				      __STRING2_COPY_ARR8, size_t);
-__STRING_INLINE char *
-__strcpy_small (char *__dest,
-		__STRING2_COPY_ARR2 __src2, __STRING2_COPY_ARR3 __src3,
-		__STRING2_COPY_ARR4 __src4, __STRING2_COPY_ARR5 __src5,
-		__STRING2_COPY_ARR6 __src6, __STRING2_COPY_ARR7 __src7,
-		__STRING2_COPY_ARR8 __src8, size_t __srclen)
-{
-  union {
-    char __c;
-    __STRING2_COPY_ARR2 __sca2;
-    __STRING2_COPY_ARR3 __sca3;
-    __STRING2_COPY_ARR4 __sca4;
-    __STRING2_COPY_ARR5 __sca5;
-    __STRING2_COPY_ARR6 __sca6;
-    __STRING2_COPY_ARR7 __sca7;
-    __STRING2_COPY_ARR8 __sca8;
-  } *__u = (void *) __dest;
-  switch ((unsigned int) __srclen)
-    {
-    case 1:
-      __u->__c = '\0';
-      break;
-    case 2:
-      __extension__ __u->__sca2 = __src2;
-      break;
-    case 3:
-      __extension__ __u->__sca3 = __src3;
-      break;
-    case 4:
-      __extension__ __u->__sca4 = __src4;
-      break;
-    case 5:
-      __extension__ __u->__sca5 = __src5;
-      break;
-    case 6:
-      __extension__ __u->__sca6 = __src6;
-      break;
-    case 7:
-      __extension__ __u->__sca7 = __src7;
-      break;
-    case 8:
-      __extension__ __u->__sca8 = __src8;
-      break;
-  }
-  return __dest;
-}
-# endif
-#endif
-
-
-/* Copy SRC to DEST, returning pointer to final NUL byte.  */
-#ifdef __USE_GNU
-# if !defined _HAVE_STRING_ARCH_stpcpy || defined _FORCE_INLINES
-#  ifndef _HAVE_STRING_ARCH_stpcpy
-#   define __stpcpy(dest, src) \
-  (__extension__ (__builtin_constant_p (src)				      \
-		  ? (__string2_1bptr_p (src) && strlen (src) + 1 <= 8	      \
-		     ? __stpcpy_small (dest, __stpcpy_args (src),	      \
-				       strlen (src) + 1)		      \
-		     : ((char *) __mempcpy (dest, src, strlen (src) + 1) - 1))\
-		  : __stpcpy (dest, src)))
-/* In glibc we use this function frequently but for namespace reasons
-   we have to use the name `__stpcpy'.  */
-#   define stpcpy(dest, src) __stpcpy (dest, src)
-#  endif
-
-#  if _STRING_ARCH_unaligned
-#   ifndef _FORCE_INLINES
-#    define __stpcpy_args(src) \
-     __extension__ __STRING2_SMALL_GET16 (src, 0),			      \
-     __extension__ __STRING2_SMALL_GET16 (src, 4),			      \
-     __extension__ __STRING2_SMALL_GET32 (src, 0),			      \
-     __extension__ __STRING2_SMALL_GET32 (src, 4)
-#   endif
-__STRING_INLINE char *__stpcpy_small (char *, __uint16_t, __uint16_t,
-				      __uint32_t, __uint32_t, size_t);
-__STRING_INLINE char *
-__stpcpy_small (char *__dest,
-		__uint16_t __src0_2, __uint16_t __src4_2,
-		__uint32_t __src0_4, __uint32_t __src4_4,
-		size_t __srclen)
-{
-  union {
-    unsigned int __ui;
-    unsigned short int __usi;
-    unsigned char __uc;
-    char __c;
-  } *__u = (void *) __dest;
-  switch ((unsigned int) __srclen)
-    {
-    case 1:
-      __u->__uc = '\0';
-      break;
-    case 2:
-      __u->__usi = __src0_2;
-      __u = __extension__ (void *)((char *) __u + 1);
-      break;
-    case 3:
-      __u->__usi = __src0_2;
-      __u = __extension__ (void *)((char *) __u + 2);
-      __u->__uc = '\0';
-      break;
-    case 4:
-      __u->__ui = __src0_4;
-      __u = __extension__ (void *)((char *) __u + 3);
-      break;
-    case 5:
-      __u->__ui = __src0_4;
-      __u = __extension__ (void *)((char *) __u + 4);
-      __u->__uc = '\0';
-      break;
-    case 6:
-      __u->__ui = __src0_4;
-      __u = __extension__ (void *)((char *) __u + 4);
-      __u->__usi = __src4_2;
-      __u = __extension__ (void *)((char *) __u + 1);
-      break;
-    case 7:
-      __u->__ui = __src0_4;
-      __u = __extension__ (void *)((char *) __u + 4);
-      __u->__usi = __src4_2;
-      __u = __extension__ (void *)((char *) __u + 2);
-      __u->__uc = '\0';
-      break;
-    case 8:
-      __u->__ui = __src0_4;
-      __u = __extension__ (void *)((char *) __u + 4);
-      __u->__ui = __src4_4;
-      __u = __extension__ (void *)((char *) __u + 3);
-      break;
-    }
-  return &__u->__c;
-}
-#  else
-#   ifndef _FORCE_INLINES
-#    define __stpcpy_args(src) \
-     __extension__ ((__STRING2_COPY_ARR2)				      \
-      { { ((__const char *) (src))[0], '\0' } }),			      \
-     __extension__ ((__STRING2_COPY_ARR3)				      \
-      { { ((__const char *) (src))[0], ((__const char *) (src))[1],	      \
-	  '\0' } }),							      \
-     __extension__ ((__STRING2_COPY_ARR4)				      \
-      { { ((__const char *) (src))[0], ((__const char *) (src))[1],	      \
-	  ((__const char *) (src))[2], '\0' } }),			      \
-     __extension__ ((__STRING2_COPY_ARR5)				      \
-      { { ((__const char *) (src))[0], ((__const char *) (src))[1],	      \
-	  ((__const char *) (src))[2], ((__const char *) (src))[3],	      \
-	  '\0' } }),							      \
-     __extension__ ((__STRING2_COPY_ARR6)				      \
-      { { ((__const char *) (src))[0], ((__const char *) (src))[1],	      \
-	  ((__const char *) (src))[2], ((__const char *) (src))[3],	      \
-	  ((__const char *) (src))[4], '\0' } }),			      \
-     __extension__ ((__STRING2_COPY_ARR7)				      \
-      { { ((__const char *) (src))[0], ((__const char *) (src))[1],	      \
-	  ((__const char *) (src))[2], ((__const char *) (src))[3],	      \
-	  ((__const char *) (src))[4], ((__const char *) (src))[5],	      \
-	  '\0' } }),							      \
-     __extension__ ((__STRING2_COPY_ARR8)				      \
-      { { ((__const char *) (src))[0], ((__const char *) (src))[1],	      \
-	  ((__const char *) (src))[2], ((__const char *) (src))[3],	      \
-	  ((__const char *) (src))[4], ((__const char *) (src))[5],	      \
-	  ((__const char *) (src))[6], '\0' } })
-#   endif
-__STRING_INLINE char *__stpcpy_small (char *, __STRING2_COPY_ARR2,
-				      __STRING2_COPY_ARR3,
-				      __STRING2_COPY_ARR4,
-				      __STRING2_COPY_ARR5,
-				      __STRING2_COPY_ARR6,
-				      __STRING2_COPY_ARR7,
-				      __STRING2_COPY_ARR8, size_t);
-__STRING_INLINE char *
-__stpcpy_small (char *__dest,
-		__STRING2_COPY_ARR2 __src2, __STRING2_COPY_ARR3 __src3,
-		__STRING2_COPY_ARR4 __src4, __STRING2_COPY_ARR5 __src5,
-		__STRING2_COPY_ARR6 __src6, __STRING2_COPY_ARR7 __src7,
-		__STRING2_COPY_ARR8 __src8, size_t __srclen)
-{
-  union {
-    char __c;
-    __STRING2_COPY_ARR2 __sca2;
-    __STRING2_COPY_ARR3 __sca3;
-    __STRING2_COPY_ARR4 __sca4;
-    __STRING2_COPY_ARR5 __sca5;
-    __STRING2_COPY_ARR6 __sca6;
-    __STRING2_COPY_ARR7 __sca7;
-    __STRING2_COPY_ARR8 __sca8;
-  } *__u = (void *) __dest;
-  switch ((unsigned int) __srclen)
-    {
-    case 1:
-      __u->__c = '\0';
-      break;
-    case 2:
-      __extension__ __u->__sca2 = __src2;
-      break;
-    case 3:
-      __extension__ __u->__sca3 = __src3;
-      break;
-    case 4:
-      __extension__ __u->__sca4 = __src4;
-      break;
-    case 5:
-      __extension__ __u->__sca5 = __src5;
-      break;
-    case 6:
-      __extension__ __u->__sca6 = __src6;
-      break;
-    case 7:
-      __extension__ __u->__sca7 = __src7;
-      break;
-    case 8:
-      __extension__ __u->__sca8 = __src8;
-      break;
-  }
-  return __dest + __srclen - 1;
-}
-#  endif
-# endif
-#endif
-
-
-/* Copy no more than N characters of SRC to DEST.  */
-#ifndef _HAVE_STRING_ARCH_strncpy
-# if defined _USE_STRING_ARCH_memset && defined _USE_STRING_ARCH_mempcpy
-#  define strncpy(dest, src, n) \
-  (__extension__ ({ char *__dest = (dest);				      \
-		    __builtin_constant_p (src) && __builtin_constant_p (n)    \
-		    ? (strlen (src) + 1 >= ((size_t) (n))		      \
-		       ? (char *) memcpy (__dest, src, n)		      \
-		       : (memset (__mempcpy (__dest, src, strlen (src)),      \
-				  '\0', n - strlen (src)),		      \
-			  __dest))					      \
-		    : strncpy (__dest, src, n); }))
-# else
-#  define strncpy(dest, src, n) \
-  (__extension__ (__builtin_constant_p (src) && __builtin_constant_p (n)      \
-		  ? (strlen (src) + 1 >= ((size_t) (n))			      \
-		     ? (char *) memcpy (dest, src, n)			      \
-		     : strncpy (dest, src, n))				      \
-		  : strncpy (dest, src, n)))
-# endif
-#endif
-
-
-/* Append no more than N characters from SRC onto DEST.  */
-#ifndef _HAVE_STRING_ARCH_strncat
-# ifdef _USE_STRING_ARCH_strchr
-#  define strncat(dest, src, n) \
-  (__extension__ ({ char *__dest = (dest);				      \
-		    __builtin_constant_p (src) && __builtin_constant_p (n)    \
-		    ? (strlen (src) < ((size_t) (n))			      \
-		       ? strcat (__dest, src)				      \
-		       : (*((char *) __mempcpy (strchr (__dest, '\0'),	      \
-						src, n)) = '\0', __dest))     \
-		    : strncat (dest, src, n); }))
-# else
-#  define strncat(dest, src, n) \
-  (__extension__ (__builtin_constant_p (src) && __builtin_constant_p (n)      \
-		  ? (strlen (src) < ((size_t) (n))			      \
-		     ? strcat (dest, src)				      \
-		     : strncat (dest, src, n))				      \
-		  : strncat (dest, src, n)))
-# endif
-#endif
-
-
-/* Compare characters of S1 and S2.  */
-#ifndef _HAVE_STRING_ARCH_strcmp
-# define strcmp(s1, s2) \
-  __extension__								      \
-  ({ size_t __s1_len, __s2_len;						      \
-     (__builtin_constant_p (s1) && __builtin_constant_p (s2)		      \
-      && (__s1_len = strlen (s1), __s2_len = strlen (s2),		      \
-	  (!__string2_1bptr_p (s1) || __s1_len >= 4)			      \
-	  && (!__string2_1bptr_p (s2) || __s2_len >= 4))		      \
-      ? memcmp ((__const char *) (s1), (__const char *) (s2),		      \
-		(__s1_len < __s2_len ? __s1_len : __s2_len) + 1)	      \
-      : (__builtin_constant_p (s1) && __string2_1bptr_p (s1)		      \
-	 && (__s1_len = strlen (s1), __s1_len < 4)			      \
-	 ? (__builtin_constant_p (s2) && __string2_1bptr_p (s2)		      \
-	    ? __strcmp_cc (s1, s2, __s1_len)				      \
-	    : __strcmp_cg (s1, s2, __s1_len))				      \
-	 : (__builtin_constant_p (s2) && __string2_1bptr_p (s2)		      \
-	    && (__s2_len = strlen (s2), __s2_len < 4)			      \
-	    ? (__builtin_constant_p (s1) && __string2_1bptr_p (s1)	      \
-	       ? __strcmp_cc (s1, s2, __s2_len)				      \
-	       : __strcmp_gc (s1, s2, __s2_len))			      \
-	    : strcmp (s1, s2)))); })
-
-# define __strcmp_cc(s1, s2, l) \
-  (__extension__ ({ register int __result =				      \
-		      (((__const unsigned char *) (__const char *) (s1))[0]   \
-		       - ((__const unsigned char *) (__const char *)(s2))[0]);\
-		    if (l > 0 && __result == 0)				      \
-		      {							      \
-			__result = (((__const unsigned char *)		      \
-				     (__const char *) (s1))[1]		      \
-				    - ((__const unsigned char *)	      \
-				       (__const char *) (s2))[1]);	      \
-			if (l > 1 && __result == 0)			      \
-			  {						      \
-			    __result =					      \
-			      (((__const unsigned char *)		      \
-				(__const char *) (s1))[2]		      \
-			       - ((__const unsigned char *)		      \
-				  (__const char *) (s2))[2]);		      \
-			    if (l > 2 && __result == 0)			      \
-			      __result =				      \
-				(((__const unsigned char *)		      \
-				  (__const char *) (s1))[3]		      \
-				 - ((__const unsigned char *)		      \
-				    (__const char *) (s2))[3]);		      \
-			  }						      \
-		      }							      \
-		    __result; }))
-
-# define __strcmp_cg(s1, s2, l1) \
-  (__extension__ ({ __const unsigned char *__s2 =			      \
-		      (__const unsigned char *) (__const char *) (s2);	      \
-		    register int __result =				      \
-		      (((__const unsigned char *) (__const char *) (s1))[0]   \
-		       - __s2[0]);					      \
-		    if (l1 > 0 && __result == 0)			      \
-		      {							      \
-			__result = (((__const unsigned char *)		      \
-				     (__const char *) (s1))[1] - __s2[1]);    \
-			if (l1 > 1 && __result == 0)			      \
-			  {						      \
-			    __result = (((__const unsigned char *)	      \
-					 (__const char *) (s1))[2] - __s2[2]);\
-			    if (l1 > 2 && __result == 0)		      \
-			      __result = (((__const unsigned char *)	      \
-					  (__const char *)  (s1))[3]	      \
-					  - __s2[3]);			      \
-			  }						      \
-		      }							      \
-		    __result; }))
-
-# define __strcmp_gc(s1, s2, l2) \
-  (__extension__ ({ __const unsigned char *__s1 =			      \
-		      (__const unsigned char *) (__const char *) (s1);	      \
-		    register int __result =				      \
-		      __s1[0] - ((__const unsigned char *)		      \
-				 (__const char *) (s2))[0];		      \
-		    if (l2 > 0 && __result == 0)			      \
-		      {							      \
-			__result = (__s1[1]				      \
-				    - ((__const unsigned char *)	      \
-				       (__const char *) (s2))[1]);	      \
-			if (l2 > 1 && __result == 0)			      \
-			  {						      \
-			    __result =					      \
-			      (__s1[2] - ((__const unsigned char *)	      \
-					  (__const char *) (s2))[2]);	      \
-			    if (l2 > 2 && __result == 0)		      \
-			      __result =				      \
-				(__s1[3]				      \
-				 - ((__const unsigned char *)		      \
-				    (__const char *) (s2))[3]);		      \
-			  }						      \
-		      }							      \
-		    __result; }))
-#endif
-
-
-/* Compare N characters of S1 and S2.  */
-#ifndef _HAVE_STRING_ARCH_strncmp
-# define strncmp(s1, s2, n)						      \
-  (__extension__ (__builtin_constant_p (n)				      \
-		  && ((__builtin_constant_p (s1)			      \
-		       && strlen (s1) < ((size_t) (n)))			      \
-		      || (__builtin_constant_p (s2)			      \
-			  && strlen (s2) < ((size_t) (n))))		      \
-		  ? strcmp (s1, s2) : strncmp (s1, s2, n)))
-#endif
-
-
-/* Return the length of the initial segment of S which
-   consists entirely of characters not in REJECT.  */
-#if !defined _HAVE_STRING_ARCH_strcspn || defined _FORCE_INLINES
-# ifndef _HAVE_STRING_ARCH_strcspn
-#  define strcspn(s, reject) \
-  __extension__								      \
-  ({ char __r0, __r1, __r2;						      \
-     (__builtin_constant_p (reject) && __string2_1bptr_p (reject)	      \
-      ? ((__r0 = ((__const char *) (reject))[0], __r0 == '\0')		      \
-	 ? strlen (s)							      \
-	 : ((__r1 = ((__const char *) (reject))[1], __r1 == '\0')	      \
-	    ? __strcspn_c1 (s, __r0)					      \
-	    : ((__r2 = ((__const char *) (reject))[2], __r2 == '\0')	      \
-	       ? __strcspn_c2 (s, __r0, __r1)				      \
-	       : (((__const char *) (reject))[3] == '\0'		      \
-		  ? __strcspn_c3 (s, __r0, __r1, __r2)			      \
-		  : strcspn (s, reject)))))				      \
-		  : strcspn (s, reject)); })
-# endif
-
-__STRING_INLINE size_t __strcspn_c1 (__const char *__s, int __reject);
-__STRING_INLINE size_t
-__strcspn_c1 (__const char *__s, int __reject)
-{
-  register size_t __result = 0;
-  while (__s[__result] != '\0' && __s[__result] != __reject)
-    ++__result;
-  return __result;
-}
-
-__STRING_INLINE size_t __strcspn_c2 (__const char *__s, int __reject1,
-				     int __reject2);
-__STRING_INLINE size_t
-__strcspn_c2 (__const char *__s, int __reject1, int __reject2)
-{
-  register size_t __result = 0;
-  while (__s[__result] != '\0' && __s[__result] != __reject1
-	 && __s[__result] != __reject2)
-    ++__result;
-  return __result;
-}
-
-__STRING_INLINE size_t __strcspn_c3 (__const char *__s, int __reject1,
-				     int __reject2, int __reject3);
-__STRING_INLINE size_t
-__strcspn_c3 (__const char *__s, int __reject1, int __reject2,
-	      int __reject3)
-{
-  register size_t __result = 0;
-  while (__s[__result] != '\0' && __s[__result] != __reject1
-	 && __s[__result] != __reject2 && __s[__result] != __reject3)
-    ++__result;
-  return __result;
-}
-#endif
-
-
-/* Return the length of the initial segment of S which
-   consists entirely of characters in ACCEPT.  */
-#if !defined _HAVE_STRING_ARCH_strspn || defined _FORCE_INLINES
-# ifndef _HAVE_STRING_ARCH_strspn
-#  define strspn(s, accept) \
-  __extension__								      \
-  ({ char __a0, __a1, __a2;						      \
-     (__builtin_constant_p (accept) && __string2_1bptr_p (accept)	      \
-      ? ((__a0 = ((__const char *) (accept))[0], __a0 == '\0')		      \
-	 ? ((void) (s), 0)						      \
-	 : ((__a1 = ((__const char *) (accept))[1], __a1 == '\0')	      \
-	    ? __strspn_c1 (s, __a0)					      \
-	    : ((__a2 = ((__const char *) (accept))[2], __a2 == '\0')	      \
-	       ? __strspn_c2 (s, __a0, __a1)				      \
-	       : (((__const char *) (accept))[3] == '\0'		      \
-		  ? __strspn_c3 (s, __a0, __a1, __a2)			      \
-		  : strspn (s, accept)))))				      \
-      : strspn (s, accept)); })
-# endif
-
-__STRING_INLINE size_t __strspn_c1 (__const char *__s, int __accept);
-__STRING_INLINE size_t
-__strspn_c1 (__const char *__s, int __accept)
-{
-  register size_t __result = 0;
-  /* Please note that __accept never can be '\0'.  */
-  while (__s[__result] == __accept)
-    ++__result;
-  return __result;
-}
-
-__STRING_INLINE size_t __strspn_c2 (__const char *__s, int __accept1,
-				    int __accept2);
-__STRING_INLINE size_t
-__strspn_c2 (__const char *__s, int __accept1, int __accept2)
-{
-  register size_t __result = 0;
-  /* Please note that __accept1 and __accept2 never can be '\0'.  */
-  while (__s[__result] == __accept1 || __s[__result] == __accept2)
-    ++__result;
-  return __result;
-}
-
-__STRING_INLINE size_t __strspn_c3 (__const char *__s, int __accept1,
-				    int __accept2, int __accept3);
-__STRING_INLINE size_t
-__strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3)
-{
-  register size_t __result = 0;
-  /* Please note that __accept1 to __accept3 never can be '\0'.  */
-  while (__s[__result] == __accept1 || __s[__result] == __accept2
-	 || __s[__result] == __accept3)
-    ++__result;
-  return __result;
-}
-#endif
-
-
-/* Find the first occurrence in S of any character in ACCEPT.  */
-#if !defined _HAVE_STRING_ARCH_strpbrk || defined _FORCE_INLINES
-# ifndef _HAVE_STRING_ARCH_strpbrk
-#  define strpbrk(s, accept) \
-  __extension__								      \
-  ({ char __a0, __a1, __a2;						      \
-     (__builtin_constant_p (accept) && __string2_1bptr_p (accept)	      \
-      ? ((__a0 = ((__const char  *) (accept))[0], __a0 == '\0')		      \
-	 ? ((void) (s), NULL)						      \
-	 : ((__a1 = ((__const char *) (accept))[1], __a1 == '\0')	      \
-	    ? strchr (s, __a0)						      \
-	    : ((__a2 = ((__const char *) (accept))[2], __a2 == '\0')	      \
-	       ? __strpbrk_c2 (s, __a0, __a1)				      \
-	       : (((__const char *) (accept))[3] == '\0'		      \
-		  ? __strpbrk_c3 (s, __a0, __a1, __a2)			      \
-		  : strpbrk (s, accept)))))				      \
-      : strpbrk (s, accept)); })
-# endif
-
-__STRING_INLINE char *__strpbrk_c2 (__const char *__s, int __accept1,
-				     int __accept2);
-__STRING_INLINE char *
-__strpbrk_c2 (__const char *__s, int __accept1, int __accept2)
-{
-  /* Please note that __accept1 and __accept2 never can be '\0'.  */
-  while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
-    ++__s;
-  return *__s == '\0' ? NULL : (char *) (size_t) __s;
-}
-
-__STRING_INLINE char *__strpbrk_c3 (__const char *__s, int __accept1,
-				     int __accept2, int __accept3);
-__STRING_INLINE char *
-__strpbrk_c3 (__const char *__s, int __accept1, int __accept2,
-	      int __accept3)
-{
-  /* Please note that __accept1 to __accept3 never can be '\0'.  */
-  while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
-	 && *__s != __accept3)
-    ++__s;
-  return *__s == '\0' ? NULL : (char *) (size_t) __s;
-}
-#endif
-
-
-/* Find the first occurrence of NEEDLE in HAYSTACK.  Newer gcc versions
-   do this itself.  */
-#if !defined _HAVE_STRING_ARCH_strstr && !__GNUC_PREREQ (2, 97)
-# define strstr(haystack, needle) \
-  (__extension__ (__builtin_constant_p (needle) && __string2_1bptr_p (needle) \
-		  ? (((__const char *) (needle))[0] == '\0'		      \
-		     ? (char *) (size_t) (haystack)			      \
-		     : (((__const char *) (needle))[1] == '\0'		      \
-			? strchr (haystack,				      \
-				  ((__const char *) (needle))[0]) 	      \
-			: strstr (haystack, needle)))			      \
-		  : strstr (haystack, needle)))
-#endif
-
-
-#if !defined _HAVE_STRING_ARCH_strtok_r || defined _FORCE_INLINES
-# ifndef _HAVE_STRING_ARCH_strtok_r
-#  define __strtok_r(s, sep, nextp) \
-  (__extension__ (__builtin_constant_p (sep) && __string2_1bptr_p (sep)	      \
-		  ? (((__const char *) (sep))[0] != '\0'		      \
-		     && ((__const char *) (sep))[1] == '\0'		      \
-		     ? __strtok_r_1c (s, ((__const char *) (sep))[0], nextp)  \
-		     : __strtok_r (s, sep, nextp))			      \
-		  : __strtok_r (s, sep, nextp)))
-# endif
-
-__STRING_INLINE char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
-__STRING_INLINE char *
-__strtok_r_1c (char *__s, char __sep, char **__nextp)
-{
-  char *__result;
-  if (__s == NULL)
-    __s = *__nextp;
-  while (*__s == __sep)
-    ++__s;
-  __result = NULL;
-  if (*__s != '\0')
-    {
-      __result = __s++;
-      while (*__s != '\0')
-	if (*__s++ == __sep)
-	  {
-	    __s[-1] = '\0';
-	    break;
-	  }
-      *__nextp = __s;
-    }
-  return __result;
-}
-# if defined __USE_POSIX || defined __USE_MISC
-#  define strtok_r(s, sep, nextp) __strtok_r (s, sep, nextp)
-# endif
-#endif
-
-
-#if !defined _HAVE_STRING_ARCH_strsep || defined _FORCE_INLINES
-# ifndef _HAVE_STRING_ARCH_strsep
-#  define __strsep(s, reject) \
-  __extension__								      \
-  ({ char __r0, __r1, __r2;						      \
-     (__builtin_constant_p (reject) && __string2_1bptr_p (reject)	      \
-      && (__r0 = ((__const char *) (reject))[0],			      \
-	  ((__const char *) (reject))[0] != '\0')			      \
-      ? ((__r1 = ((__const char *) (reject))[1],			      \
-	 ((__const char *) (reject))[1] == '\0')			      \
-	 ? __strsep_1c (s, __r0)					      \
-	 : ((__r2 = ((__const char *) (reject))[2], __r2 == '\0')	      \
-	    ? __strsep_2c (s, __r0, __r1)				      \
-	    : (((__const char *) (reject))[3] == '\0'			      \
-	       ? __strsep_3c (s, __r0, __r1, __r2)			      \
-	       : __strsep (s, reject))))				      \
-      : __strsep (s, reject)); })
-# endif
-
-__STRING_INLINE char *__strsep_1c (char **__s, char __reject);
-__STRING_INLINE char *
-__strsep_1c (char **__s, char __reject)
-{
-  register char *__retval = *__s;
-  if (__retval != NULL && (*__s = strchr (__retval, __reject)) != NULL)
-    *(*__s)++ = '\0';
-  return __retval;
-}
-
-__STRING_INLINE char *__strsep_2c (char **__s, char __reject1, char __reject2);
-__STRING_INLINE char *
-__strsep_2c (char **__s, char __reject1, char __reject2)
-{
-  register char *__retval = *__s;
-  if (__retval != NULL)
-    {
-      register char *__cp = __retval;
-      while (1)
-	{
-	  if (*__cp == '\0')
-	    {
-	      __cp = NULL;
-	  break;
-	    }
-	  if (*__cp == __reject1 || *__cp == __reject2)
-	    {
-	      *__cp++ = '\0';
-	      break;
-	    }
-	  ++__cp;
-	}
-      *__s = __cp;
-    }
-  return __retval;
-}
-
-__STRING_INLINE char *__strsep_3c (char **__s, char __reject1, char __reject2,
-				   char __reject3);
-__STRING_INLINE char *
-__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
-{
-  register char *__retval = *__s;
-  if (__retval != NULL)
-    {
-      register char *__cp = __retval;
-      while (1)
-	{
-	  if (*__cp == '\0')
-	    {
-	      __cp = NULL;
-	  break;
-	    }
-	  if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3)
-	    {
-	      *__cp++ = '\0';
-	      break;
-	    }
-	  ++__cp;
-	}
-      *__s = __cp;
-    }
-  return __retval;
-}
-# ifdef __USE_BSD
-#  define strsep(s, reject) __strsep (s, reject)
-# endif
-#endif
-
-/* We need the memory allocation functions for inline strdup().
-   Referring to stdlib.h (even minimally) is not allowed
-   in any of the tight standards compliant modes.  */
-#ifdef __USE_MISC
-
-# if !defined _HAVE_STRING_ARCH_strdup || !defined _HAVE_STRING_ARCH_strndup
-#  define __need_malloc_and_calloc
-#  include <stdlib.h>
-# endif
-
-# ifndef _HAVE_STRING_ARCH_strdup
-
-extern char *__strdup (__const char *__string) __THROW __attribute_malloc__;
-#  define __strdup(s) \
-  (__extension__ (__builtin_constant_p (s) && __string2_1bptr_p (s)	      \
-		  ? (((__const char *) (s))[0] == '\0'			      \
-		     ? (char *) calloc (1, 1)				      \
-		     : ({ size_t __len = strlen (s) + 1;		      \
-			  char *__retval = (char *) malloc (__len);	      \
-			  if (__retval != NULL)				      \
-			    __retval = (char *) memcpy (__retval, s, __len);  \
-			  __retval; }))					      \
-		  : __strdup (s)))
-
-#  if defined __USE_SVID || defined __USE_BSD || defined __USE_XOPEN_EXTENDED
-#   define strdup(s) __strdup (s)
-#  endif
-# endif
-
-# ifndef _HAVE_STRING_ARCH_strndup
-
-extern char *__strndup (__const char *__string, size_t __n)
-     __THROW __attribute_malloc__;
-#  define __strndup(s, n) \
-  (__extension__ (__builtin_constant_p (s) && __string2_1bptr_p (s)	      \
-		  ? (((__const char *) (s))[0] == '\0'			      \
-		     ? (char *) calloc (1, 1)				      \
-		     : ({ size_t __len = strlen (s) + 1;		      \
-			  size_t __n = (n);				      \
-			  char *__retval;				      \
-			  if (__n < __len)				      \
-			    __len = __n;				      \
-			  __retval = (char *) malloc (__len);		      \
-			  if (__retval != NULL)				      \
-			    {						      \
-			      __retval[__len - 1] = '\0';		      \
-			      __retval = (char *) memcpy (__retval, s,	      \
-							  __len - 1);	      \
-			    }						      \
-			  __retval; }))					      \
-		  : __strndup (s, n)))
-
-#  ifdef __USE_GNU
-#   define strndup(s, n) __strndup (s, n)
-#  endif
-# endif
-
-#endif /* Use misc. or use GNU.  */
-
-#ifndef _FORCE_INLINES
-# undef __STRING_INLINE
-#endif
-
-#endif /* No string inlines.  */

+ 0 - 146
libc/sysdeps/linux/arm/bits/types.h

@@ -1,146 +0,0 @@
-/* Copyright (C) 1991,92,1994-1999,2000,2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-/*
- * Never include this file directly; use <sys/types.h> instead.
- */
-
-#ifndef	_BITS_TYPES_H
-#define	_BITS_TYPES_H	1
-
-#include <features.h>
-
-#define __need_size_t
-#include <stddef.h>
-
-/* Convenience types.  */
-typedef unsigned char __u_char;
-typedef unsigned short __u_short;
-typedef unsigned int __u_int;
-typedef unsigned long __u_long;
-#ifdef __GNUC__
-__extension__ typedef unsigned long long int __u_quad_t;
-__extension__ typedef long long int __quad_t;
-#else
-typedef struct
-  {
-    long int __val[2];
-  } __quad_t;
-typedef struct
-  {
-    __u_long __val[2];
-  } __u_quad_t;
-#endif
-typedef signed char __int8_t;
-typedef unsigned char __uint8_t;
-typedef signed short int __int16_t;
-typedef unsigned short int __uint16_t;
-typedef signed int __int32_t;
-typedef unsigned int __uint32_t;
-#ifdef __GNUC__
-__extension__ typedef signed long long int __int64_t;
-__extension__ typedef unsigned long long int __uint64_t;
-#endif
-typedef __quad_t *__qaddr_t;
-
-typedef __u_quad_t __dev_t;		/* Type of device numbers.  */
-typedef __u_int __uid_t;		/* Type of user identifications.  */
-typedef __u_int __gid_t;		/* Type of group identifications.  */
-typedef __u_long __ino_t;		/* Type of file serial numbers.  */
-typedef __u_int __mode_t;		/* Type of file attribute bitmasks.  */
-typedef __u_int __nlink_t; 		/* Type of file link counts.  */
-typedef long int __off_t;		/* Type of file sizes and offsets.  */
-typedef __quad_t __loff_t;		/* Type of file sizes and offsets.  */
-typedef int __pid_t;			/* Type of process identifications.  */
-typedef int __ssize_t;			/* Type of a byte count, or error.  */
-typedef __u_long __rlim_t;		/* Type of resource counts.  */
-typedef __u_quad_t __rlim64_t;		/* Type of resource counts (LFS).  */
-typedef __u_int __id_t;			/* General type for ID.  */
-
-typedef struct
-  {
-    int __val[2];
-  } __fsid_t;				/* Type of file system IDs.  */
-
-/* Everythin' else.  */
-typedef int __daddr_t;			/* The type of a disk address.  */
-typedef char *__caddr_t;
-typedef long int __time_t;
-typedef unsigned int __useconds_t;
-typedef long int __suseconds_t;
-typedef long int __swblk_t;		/* Type of a swap block maybe?  */
-
-typedef long int __clock_t;
-
-/* Clock ID used in clock and timer functions.  */
-typedef int __clockid_t;
-
-/* Timer ID returned by `timer_create'.  */
-typedef int __timer_t;
-
-
-/* Number of descriptors that can fit in an `fd_set'.  */
-#define __FD_SETSIZE	1024
-
-
-typedef int __key_t;
-
-/* Used in `struct shmid_ds'.  */
-typedef unsigned short int __ipc_pid_t;
-
-
-/* Type to represent block size.  */
-typedef long int __blksize_t;
-
-/* Types from the Large File Support interface.  */
-
-/* Type to count number os disk blocks.  */
-typedef long int __blkcnt_t;
-typedef __quad_t __blkcnt64_t;
-
-/* Type to count file system blocks.  */
-typedef __u_long __fsblkcnt_t;
-typedef __u_quad_t __fsblkcnt64_t;
-
-/* Type to count file system inodes.  */
-typedef __u_long __fsfilcnt_t;
-typedef __u_quad_t __fsfilcnt64_t;
-
-/* Type of file serial numbers.  */
-typedef __u_quad_t __ino64_t;
-
-/* Type of file sizes and offsets.  */
-typedef __loff_t __off64_t;
-
-/* Used in XTI.  */
-typedef long int __t_scalar_t;
-typedef unsigned long int __t_uscalar_t;
-
-/* Duplicates info from stdint.h but this is used in unistd.h.  */
-typedef int __intptr_t;
-
-/* Duplicate info from sys/socket.h.  */
-typedef unsigned int __socklen_t;
-
-
-/* Now add the thread types.  */
-#if defined __USE_POSIX199506 || defined __USE_UNIX98
-# include <bits/pthreadtypes.h>
-#endif
-
-#endif /* bits/types.h */

+ 8 - 9
libc/sysdeps/linux/mips/bits/ustat.h → libc/sysdeps/linux/arm/sys/elf.h

@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1999, 2001 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
@@ -16,12 +16,11 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <sys/types.h>
+#ifndef _SYS_ELF_H
+#define _SYS_ELF_H	1
 
-struct ustat
-  {
-    __daddr_t f_tfree;
-    __ino_t f_tinode;
-    char f_fname[6];
-    char f_fpack[6];
-  };
+#warning "This header is obsolete; use <sys/procfs.h> instead."
+
+#include <sys/procfs.h>
+
+#endif	/* sys/elf.h */

+ 0 - 12
include/sys/io.h → libc/sysdeps/linux/arm/sys/io.h

@@ -34,17 +34,6 @@ extern int ioperm (unsigned long int __from, unsigned long int __num,
    root privileges. */
 extern int iopl (int __level) __THROW;
 
-
-#ifdef __i386__
-/*
- * For i386, glibc defines the in* and out* functions as static inlines
- * in this header file.  For a number of other archs, these appear to be
- * external functions.  Since uClibc shares this header amongst archs,
- * stash the i386 stuff in bits/io_i386.h for now to cut down on clutter
- * and still give expected behavior.
- */
-#include <bits/io_i386.h>
-#else
 /* The functions that actually perform reads and writes.  */
 extern unsigned char inb (unsigned long int port) __THROW;
 extern unsigned short int inw (unsigned long int port) __THROW;
@@ -53,7 +42,6 @@ extern unsigned long int inl (unsigned long int port) __THROW;
 extern void outb (unsigned char value, unsigned long int port) __THROW;
 extern void outw (unsigned short value, unsigned long int port) __THROW;
 extern void outl (unsigned long value, unsigned long int port) __THROW;
-#endif /* __i386__ */
 
 __END_DECLS
 

+ 0 - 0
include/sys/procfs.h → libc/sysdeps/linux/arm/sys/procfs.h


+ 0 - 0
include/sys/ucontext.h → libc/sysdeps/linux/arm/sys/ucontext.h


+ 0 - 0
include/sys/user.h → libc/sysdeps/linux/arm/sys/user.h


+ 6 - 1
libc/sysdeps/linux/mips/bits/byteswap.h → libc/sysdeps/linux/common/bits/byteswap.h

@@ -1,5 +1,5 @@
 /* Macros to swap the order of bytes in integer values.
-   Copyright (C) 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -21,6 +21,9 @@
 # error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
 #endif
 
+#ifndef _BITS_BYTESWAP_H
+#define _BITS_BYTESWAP_H 1
+
 /* Swap bytes in 16 bit value.  */
 #ifdef __GNUC__
 # define __bswap_16(x) \
@@ -77,3 +80,5 @@ __bswap_32 (unsigned int __bsx)
 	   }								      \
 	 __r.__ll; }))
 #endif
+
+#endif /* _BITS_BYTESWAP_H */

+ 0 - 0
libc/sysdeps/linux/arm/bits/cmathcalls.h → libc/sysdeps/linux/common/bits/cmathcalls.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/confname.h → libc/sysdeps/linux/common/bits/confname.h


+ 5 - 1
libc/sysdeps/linux/m68k/bits/dirent.h → libc/sysdeps/linux/common/bits/dirent.h

@@ -52,4 +52,8 @@ struct dirent64
 #undef  _DIRENT_HAVE_D_NAMLEN
 #define _DIRENT_HAVE_D_RECLEN
 #define _DIRENT_HAVE_D_OFF
-#undef _DIRENT_HAVE_D_TYPE
+#ifdef __USE_FILE_OFFSET64
+# define _DIRENT_HAVE_D_TYPE
+#else
+# undef _DIRENT_HAVE_D_TYPE
+#endif

+ 0 - 0
libc/sysdeps/linux/sparc/bits/dlfcn.h → libc/sysdeps/linux/common/bits/dlfcn.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/elfclass.h → libc/sysdeps/linux/common/bits/elfclass.h


+ 13 - 0
libc/sysdeps/linux/common/bits/endian.h

@@ -0,0 +1,13 @@
+/* This file should define __BYTE_ORDER as appropriate for the machine
+   in question.  See string/endian.h for how to define it.
+
+   If only the stub bits/endian.h applies to a particular configuration,
+   bytesex.h is generated by running a program on the host machine.
+   So if cross-compiling to a machine with a different byte order,
+   the bits/endian.h file for that machine must exist.  */
+
+#ifndef _ENDIAN_H
+# error "Never use <bits/endian.h> directly; include <endian.h> instead."
+#endif
+
+#error Machine byte order unknown.

+ 0 - 0
libc/sysdeps/linux/arm/bits/environments.h → libc/sysdeps/linux/common/bits/environments.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/errno.h → libc/sysdeps/linux/common/bits/errno.h


+ 3 - 0
libc/sysdeps/linux/common/bits/fcntl.h

@@ -0,0 +1,3 @@
+/* bits/fcntl.h is architecture specific.  */
+#error "This file must be supplied by every Linux architecture."
+

+ 4 - 9
libc/sysdeps/linux/v850/bits/fenv.h → libc/sysdeps/linux/common/bits/fenv.h

@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2000, 2001 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
@@ -40,13 +40,8 @@
    We define no macro which signals no rounding mode is selectable.  */
 
 
-/* Type representing exception flags.
-   XXX Probably we should also include the signal handler here.  */
-typedef struct
-  {
-    unsigned int __flags;
-  }
-fexcept_t;
+/* Type representing exception flags.  */
+typedef unsigned int fexcept_t;
 
 
 /* Type representing floating-point environment.  */
@@ -58,4 +53,4 @@ typedef struct
 fenv_t;
 
 /* If the default argument is used we use this value.  */
-#define FE_DFL_ENV	((fenv_t *) -1l)
+#define FE_DFL_ENV	((__const fenv_t *) -1l)

+ 0 - 0
libc/sysdeps/linux/arm/bits/fenvinline.h → libc/sysdeps/linux/common/bits/fenvinline.h


+ 0 - 0
libc/sysdeps/linux/mips/bits/huge_val.h → libc/sysdeps/linux/common/bits/huge_val.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/in.h → libc/sysdeps/linux/common/bits/in.h


+ 3 - 4
libc/sysdeps/linux/arm/bits/initspin.h → libc/sysdeps/linux/common/bits/initspin.h

@@ -20,9 +20,8 @@
 /* Initial value of a spinlock.  Most platforms should use zero,
    unless they only implement a "test and clear" operation instead of
    the usual "test and set". */
-#define __LT_SPINLOCK_INIT 0
+#define __ATOMIC_LOCK_INIT  0
 
 /* Macros for lock initializers, using the above definition. */
-#define __LOCK_INITIALIZER { 0, __LT_SPINLOCK_INIT }
-#define __ALT_LOCK_INITIALIZER { 0, __LT_SPINLOCK_INIT }
-#define __ATOMIC_INITIALIZER { 0, __LT_SPINLOCK_INIT }
+#define __LOCK_INITIALIZER { 0, 0 }
+#define __ATOMIC_INITIALIZER { 0, 0 }

+ 0 - 0
libc/sysdeps/linux/arm/bits/ioctl-types.h → libc/sysdeps/linux/common/bits/ioctl-types.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/ioctls.h → libc/sysdeps/linux/common/bits/ioctls.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/ipc.h → libc/sysdeps/linux/common/bits/ipc.h


+ 3 - 3
libc/sysdeps/linux/m68k/bits/libc-lock.h → libc/sysdeps/linux/common/bits/libc-lock.h

@@ -63,12 +63,12 @@ typedef pthread_key_t __libc_key_t;
    initialized locks must be set to one due to the lack of normal
    atomic operations.) */
 
-#if __LT_SPINLOCK_INIT == 0
+#ifdef __LOCK_INITIALISER_NOT_ZERO
 #  define __libc_lock_define_initialized(CLASS,NAME) \
-  CLASS __libc_lock_t NAME;
+  CLASS __libc_lock_t NAME = PTHREAD_MUTEX_INITIALIZER;
 #else
 #  define __libc_lock_define_initialized(CLASS,NAME) \
-  CLASS __libc_lock_t NAME = PTHREAD_MUTEX_INITIALIZER;
+  CLASS __libc_lock_t NAME;
 #endif
 
 #define __libc_rwlock_define_initialized(CLASS,NAME) \

+ 0 - 0
libc/sysdeps/linux/arm/bits/local_lim.h → libc/sysdeps/linux/common/bits/local_lim.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/locale.h → libc/sysdeps/linux/common/bits/locale.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/mathcalls.h → libc/sysdeps/linux/common/bits/mathcalls.h


+ 0 - 0
libc/sysdeps/linux/mips/bits/mathdef.h → libc/sysdeps/linux/common/bits/mathdef.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/mathinline.h → libc/sysdeps/linux/common/bits/mathinline.h


+ 87 - 0
libc/sysdeps/linux/common/bits/mman.h

@@ -0,0 +1,87 @@
+/* Definitions for BSD-style memory management.
+   Copyright (C) 1994-1998,2000,01 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+/* These are the bits used by 4.4 BSD and its derivatives.  On systems
+   (such as GNU) where these facilities are not system services but can be
+   emulated in the C library, these are the definitions we emulate.  */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* Protections are chosen from these bits, OR'd together.  The
+   implementation does not necessarily support PROT_EXEC or PROT_WRITE
+   without PROT_READ.  The only guarantees are that no writing will be
+   allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */
+
+#define	PROT_NONE	 0x00	/* No access.  */
+#define	PROT_READ	 0x04	/* Pages can be read.  */
+#define	PROT_WRITE	 0x02	/* Pages can be written.  */
+#define	PROT_EXEC	 0x01	/* Pages can be executed.  */
+
+/* Flags contain mapping type, sharing type and options.  */
+
+/* Mapping type (must choose one and only one of these).  */
+#ifdef __USE_BSD
+# define MAP_FILE	 0x0001	/* Mapped from a file or device.  */
+# define MAP_ANON	 0x0002	/* Allocated from anonymous virtual memory.  */
+# define MAP_TYPE	 0x000f	/* Mask for type field.  */
+# ifdef __USE_MISC
+#  define MAP_ANONYMOUS  MAP_ANON /* Linux name. */
+# endif
+#endif
+
+/* Sharing types (must choose one and only one of these).  */
+#ifdef __USE_BSD
+# define MAP_COPY	 0x0020	/* Virtual copy of region at mapping time.  */
+#endif
+#define	MAP_SHARED	 0x0010	/* Share changes.  */
+#define	MAP_PRIVATE	 0x0000	/* Changes private; copy pages on write.  */
+
+/* Other flags.  */
+#define	MAP_FIXED	 0x0100	/* Map address must be exactly as requested. */
+#ifdef __USE_BSD
+# define MAP_NOEXTEND	 0x0200	/* For MAP_FILE, don't change file size.  */
+# define MAP_HASSEMPHORE 0x0400	/* Region may contain semaphores.  */
+# define MAP_INHERIT	 0x0800	/* Region is retained after exec.  */
+#endif
+
+/* Advice to `madvise'.  */
+#ifdef __USE_BSD
+# define MADV_NORMAL	 0	/* No further special treatment.  */
+# define MADV_RANDOM	 1	/* Expect random page references.  */
+# define MADV_SEQUENTIAL 2	/* Expect sequential page references.  */
+# define MADV_WILLNEED	 3	/* Will need these pages.  */
+# define MADV_DONTNEED	 4	/* Don't need these pages.  */
+#endif
+
+/* The POSIX people had to invent similar names for the same things.  */
+#ifdef __USE_XOPEN2K
+# define POSIX_MADV_NORMAL	0 /* No further special treatment.  */
+# define POSIX_MADV_RANDOM	1 /* Expect random page references.  */
+# define POSIX_MADV_SEQUENTIAL	2 /* Expect sequential page references.  */
+# define POSIX_MADV_WILLNEED	3 /* Will need these pages.  */
+# define POSIX_MADV_DONTNEED	4 /* Don't need these pages.  */
+#endif
+
+
+/* Flags for `mlockall' (can be OR'd together).  */
+#define MCL_CURRENT	1		/* Lock all currently mapped pages.  */
+#define MCL_FUTURE	2		/* Lock all additions to address
+					   space.  */

+ 0 - 0
libc/sysdeps/linux/arm/bits/msq.h → libc/sysdeps/linux/common/bits/msq.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/nan.h → libc/sysdeps/linux/common/bits/nan.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/netdb.h → libc/sysdeps/linux/common/bits/netdb.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/poll.h → libc/sysdeps/linux/common/bits/poll.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/posix1_lim.h → libc/sysdeps/linux/common/bits/posix1_lim.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/posix2_lim.h → libc/sysdeps/linux/common/bits/posix2_lim.h


+ 63 - 18
libc/sysdeps/linux/i386/bits/posix_opt.h → libc/sysdeps/linux/common/bits/posix_opt.h

@@ -1,4 +1,4 @@
-/* Define POSIX options for Linux/ix86.
+/* Define POSIX options for Linux.
    Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -39,13 +39,25 @@
 #define	_POSIX_MAPPED_FILES	1
 
 /* Locking of all memory is supported.  */
-#define	_POSIX_MEMLOCK	1
+#ifdef __UCLIBC_HAS_MMU__
+# define	_POSIX_MEMLOCK	1
+#else
+# undef		_POSIX_MEMLOCK
+#endif
 
 /* Locking of ranges of memory is supported.  */
-#define	_POSIX_MEMLOCK_RANGE	1
+#ifdef __UCLIBC_HAS_MMU__
+# define	_POSIX_MEMLOCK_RANGE	1
+#else
+# define	_POSIX_MEMLOCK_RANGE
+#endif
 
 /* Setting of memory protections is supported.  */
-#define	_POSIX_MEMORY_PROTECTION	1
+#ifdef __UCLIBC_HAS_MMU__
+# define	_POSIX_MEMORY_PROTECTION	1
+#else
+# undef		_POSIX_MEMORY_PROTECTION
+#endif
 
 /* Implementation supports `poll' function.  */
 #define	_POSIX_POLL	1
@@ -67,17 +79,30 @@
 #define _XOPEN_REALTIME	1
 
 /* X/Open realtime thread support is available.  */
-#undef _XOPEN_REALTIME_THREADS
+#ifdef __UCLIBC_HAS_THREADS__
+# define _XOPEN_REALTIME_THREADS	1
+#else
+# undef _XOPEN_REALTIME_THREADS
+#endif
 
 /* XPG4.2 shared memory is supported.  */
 #define	_XOPEN_SHM	1
 
 /* Tell we have POSIX threads.  */
-#undef _POSIX_THREADS
+#ifdef __UCLIBC_HAS_THREADS__
+# define _POSIX_THREADS	1
+#else
+# undef _POSIX_THREADS
+#endif
 
 /* We have the reentrant functions described in POSIX.  */
-#define _POSIX_REENTRANT_FUNCTIONS      1
-#define _POSIX_THREAD_SAFE_FUNCTIONS	1
+#ifdef __UCLIBC_HAS_THREADS__
+# define _POSIX_REENTRANT_FUNCTIONS      1
+# define _POSIX_THREAD_SAFE_FUNCTIONS	1
+#else
+# undef _POSIX_REENTRANT_FUNCTIONS
+# undef _POSIX_THREAD_SAFE_FUNCTIONS
+#endif
 
 /* We provide priority scheduling for threads.  */
 #define	_POSIX_THREAD_PRIORITY_SCHEDULING	1
@@ -89,7 +114,11 @@
 #define _POSIX_THREAD_ATTR_STACKADDR	1
 
 /* We support POSIX.1b semaphores, but only the non-shared form for now.  */
-#define _POSIX_SEMAPHORES	1
+#ifdef __UCLIBC_HAS_THREADS__
+# define _POSIX_SEMAPHORES	1
+#else
+# undef _POSIX_SEMAPHORES
+#endif
 
 /* Real-time signals are supported.  */
 #define _POSIX_REALTIME_SIGNALS	1
@@ -101,24 +130,40 @@
 #define _LFS_ASYNCHRONOUS_IO	1
 
 /* The LFS support in asynchronous I/O is also available.  */
-#define _LFS64_ASYNCHRONOUS_IO	1
+#ifdef __UCLIBC_HAVE_LFS__
+# define _LFS64_ASYNCHRONOUS_IO	1
+#else
+# undef _LFS64_ASYNCHRONOUS_IO
+#endif
 
 /* The rest of the LFS is also available.  */
-#define _LFS_LARGEFILE		1
-#define _LFS64_LARGEFILE	1
-#define _LFS64_STDIO		1
+#ifdef __UCLIBC_HAVE_LFS__
+# define _LFS_LARGEFILE		1
+# define _LFS64_LARGEFILE	1
+# define _LFS64_STDIO		1
+#else
+# undef _LFS_LARGEFILE
+# undef _LFS64_LARGEFILE
+# undef _LFS64_STDIO
+#endif
 
 /* POSIX shared memory objects are implemented.  */
 #define _POSIX_SHARED_MEMORY_OBJECTS	1
 
+/* GNU libc provides regular expression handling.  */
+#ifdef __UCLIBC_HAS_REGEX__
+# define _POSIX_REGEXP	1
+#else
+# undef _POSIX_REGEXP
+#endif
+
+#if defined(__i386__)
 /* CPU-time clocks supported.  */
-#define _POSIX_CPUTIME	200912L
+#define _POSIX_CPUTIME 200912L
 
 /* We support the clock also in threads.  */
-#define _POSIX_THREAD_CPUTIME	200912L
-
-/* GNU libc provides regular expression handling.  */
-#define _POSIX_REGEXP	1
+#define _POSIX_THREAD_CPUTIME  200912L
+#endif
 
 /* Reader/Writer locks are available.  */
 #define _POSIX_READER_WRITER_LOCKS	200912L

+ 3 - 1
libc/sysdeps/linux/m68k/bits/pthreadtypes.h → libc/sysdeps/linux/common/bits/pthreadtypes.h

@@ -22,11 +22,13 @@
 #define __need_schedparam
 #include <bits/sched.h>
 
+typedef int __atomic_lock_t;
+
 /* Fast locks (not abstract because mutexes and conditions aren't abstract). */
 struct _pthread_fastlock
 {
   long int __status;   /* "Free" or "taken" or head of waiting list */
-  int __spinlock;      /* Used by compare_and_swap emulation. Also,
+  __atomic_lock_t __spinlock;  /* Used by compare_and_swap emulation. Also,
 			  adaptive SMP lock stores spin count here. */
 };
 

+ 0 - 0
libc/sysdeps/linux/v850/bits/resource.h → libc/sysdeps/linux/common/bits/resource.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/sched.h → libc/sysdeps/linux/common/bits/sched.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/select.h → libc/sysdeps/linux/common/bits/select.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/sem.h → libc/sysdeps/linux/common/bits/sem.h


+ 7 - 0
libc/sysdeps/linux/common/bits/setjmp.h

@@ -0,0 +1,7 @@
+/* Define the machine-dependent type `jmp_buf'.  Stub version.  */
+
+#ifndef _SETJMP_H
+# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
+#endif
+
+typedef int __jmp_buf[1];

+ 0 - 0
libc/sysdeps/linux/arm/bits/shm.h → libc/sysdeps/linux/common/bits/shm.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/sigaction.h → libc/sysdeps/linux/common/bits/sigaction.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/sigcontext.h → libc/sysdeps/linux/common/bits/sigcontext.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/siginfo.h → libc/sysdeps/linux/common/bits/siginfo.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/signum.h → libc/sysdeps/linux/common/bits/signum.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/sigset.h → libc/sysdeps/linux/common/bits/sigset.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/sigstack.h → libc/sysdeps/linux/common/bits/sigstack.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/sigthread.h → libc/sysdeps/linux/common/bits/sigthread.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/sockaddr.h → libc/sysdeps/linux/common/bits/sockaddr.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/socket.h → libc/sysdeps/linux/common/bits/socket.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/stab.def → libc/sysdeps/linux/common/bits/stab.def


+ 0 - 0
libc/sysdeps/linux/arm/bits/stat.h → libc/sysdeps/linux/common/bits/stat.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/statfs.h → libc/sysdeps/linux/common/bits/statfs.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/statvfs.h → libc/sysdeps/linux/common/bits/statvfs.h


+ 0 - 0
libc/sysdeps/linux/m68k/bits/stdio-lock.h → libc/sysdeps/linux/common/bits/stdio-lock.h


+ 0 - 1
libc/sysdeps/linux/i386/bits/stdio.h → libc/sysdeps/linux/common/bits/stdio.h

@@ -21,4 +21,3 @@
 # error "Never include <bits/stdio.h> directly; use <stdio.h> instead."
 #endif
 
-/* Nothing to do here.  Move right along */

+ 0 - 0
libc/sysdeps/linux/arm/bits/stdio_lim.h → libc/sysdeps/linux/common/bits/stdio_lim.h


+ 0 - 0
libc/sysdeps/linux/mips/bits/string.h → libc/sysdeps/linux/common/bits/string.h


+ 47 - 23
libc/sysdeps/linux/mips/bits/string2.h → libc/sysdeps/linux/common/bits/string2.h

@@ -1,5 +1,5 @@
 /* Machine-independant string function optimizations.
-   Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -198,26 +198,35 @@ __STRING2_COPY_TYPE (8);
 #ifdef __USE_GNU
 # if !defined _HAVE_STRING_ARCH_mempcpy || defined _FORCE_INLINES
 #  ifndef _HAVE_STRING_ARCH_mempcpy
-#   define __mempcpy(dest, src, n) \
+#   if __GNUC_PREREQ (3, 0)
+#    define __mempcpy(dest, src, n) \
+  (__extension__ (__builtin_constant_p (src) && __builtin_constant_p (n)      \
+		  && __string2_1bptr_p (src) && n <= 8			      \
+		  ? __builtin_memcpy (dest, src, n) + (n)		      \
+		  : __mempcpy (dest, src, n)))
+#   else
+#    define __mempcpy(dest, src, n) \
   (__extension__ (__builtin_constant_p (src) && __builtin_constant_p (n)      \
 		  && __string2_1bptr_p (src) && n <= 8			      \
 		  ? __mempcpy_small (dest, __mempcpy_args (src), n)	      \
 		  : __mempcpy (dest, src, n)))
+#   endif
 /* In glibc we use this function frequently but for namespace reasons
    we have to use the name `__mempcpy'.  */
 #   define mempcpy(dest, src, n) __mempcpy (dest, src, n)
 #  endif
 
-#  if _STRING_ARCH_unaligned
-#   ifndef _FORCE_INLINES
-#    define __mempcpy_args(src) \
+#  if !__GNUC_PREREQ (3, 0) || defined _FORCE_INLINES
+#   if _STRING_ARCH_unaligned
+#    ifndef _FORCE_INLINES
+#     define __mempcpy_args(src) \
      ((__const char *) (src))[0], ((__const char *) (src))[2],		      \
      ((__const char *) (src))[4], ((__const char *) (src))[6],		      \
      __extension__ __STRING2_SMALL_GET16 (src, 0),			      \
      __extension__ __STRING2_SMALL_GET16 (src, 4),			      \
      __extension__ __STRING2_SMALL_GET32 (src, 0),			      \
      __extension__ __STRING2_SMALL_GET32 (src, 4)
-#   endif
+#    endif
 __STRING_INLINE void *__mempcpy_small (void *, char, char, char, char,
 				       __uint16_t, __uint16_t, __uint32_t,
 				       __uint32_t, size_t);
@@ -283,9 +292,9 @@ __mempcpy_small (void *__dest1,
     }
   return (void *) __u;
 }
-#  else
-#   ifndef _FORCE_INLINES
-#    define __mempcpy_args(src) \
+#   else
+#    ifndef _FORCE_INLINES
+#     define __mempcpy_args(src) \
      ((__const char *) (src))[0],					      \
      __extension__ ((__STRING2_COPY_ARR2)				      \
       { { ((__const char *) (src))[0], ((__const char *) (src))[1] } }),      \
@@ -313,7 +322,7 @@ __mempcpy_small (void *__dest1,
 	  ((__const char *) (src))[2], ((__const char *) (src))[3],	      \
 	  ((__const char *) (src))[4], ((__const char *) (src))[5],	      \
 	  ((__const char *) (src))[6], ((__const char *) (src))[7] } })
-#   endif
+#    endif
 __STRING_INLINE void *__mempcpy_small (void *, char, __STRING2_COPY_ARR2,
 				       __STRING2_COPY_ARR3,
 				       __STRING2_COPY_ARR4,
@@ -367,6 +376,7 @@ __mempcpy_small (void *__dest, char __src1,
     }
   return __extension__ (void *)((char *) __u + __srclen);
 }
+#   endif
 #  endif
 # endif
 #endif
@@ -383,8 +393,9 @@ extern void *__rawmemchr (const void *__s, int __c);
 
 
 /* Copy SRC to DEST.  */
-#if !defined _HAVE_STRING_ARCH_strcpy || defined _FORCE_INLINES
-# ifndef _HAVE_STRING_ARCH_strcpy
+#if (!defined _HAVE_STRING_ARCH_strcpy && !__GNUC_PREREQ (3, 0)) \
+    || defined _FORCE_INLINES
+# if !defined _HAVE_STRING_ARCH_strcpy && !__GNUC_PREREQ (3, 0)
 #  define strcpy(dest, src) \
   (__extension__ (__builtin_constant_p (src)				      \
 		  ? (__string2_1bptr_p (src) && strlen (src) + 1 <= 8	      \
@@ -547,26 +558,38 @@ __strcpy_small (char *__dest,
 #ifdef __USE_GNU
 # if !defined _HAVE_STRING_ARCH_stpcpy || defined _FORCE_INLINES
 #  ifndef _HAVE_STRING_ARCH_stpcpy
-#   define __stpcpy(dest, src) \
+#   if __GNUC_PREREQ (3, 0)
+#    define __stpcpy(dest, src) \
+  (__extension__ (__builtin_constant_p (src)				      \
+		  ? (__string2_1bptr_p (src) && strlen (src) + 1 <= 8	      \
+		     ? __builtin_strcpy (dest, src) + strlen (src)	      \
+		     : ((char *) (__mempcpy) (dest, src, strlen (src) + 1)    \
+			- 1))						      \
+		  : __stpcpy (dest, src)))
+#   else
+#    define __stpcpy(dest, src) \
   (__extension__ (__builtin_constant_p (src)				      \
 		  ? (__string2_1bptr_p (src) && strlen (src) + 1 <= 8	      \
 		     ? __stpcpy_small (dest, __stpcpy_args (src),	      \
 				       strlen (src) + 1)		      \
-		     : ((char *) __mempcpy (dest, src, strlen (src) + 1) - 1))\
+		     : ((char *) (__mempcpy) (dest, src, strlen (src) + 1)    \
+			- 1))						      \
 		  : __stpcpy (dest, src)))
+#   endif
 /* In glibc we use this function frequently but for namespace reasons
    we have to use the name `__stpcpy'.  */
 #   define stpcpy(dest, src) __stpcpy (dest, src)
 #  endif
 
-#  if _STRING_ARCH_unaligned
-#   ifndef _FORCE_INLINES
-#    define __stpcpy_args(src) \
+#  if !__GNUC_PREREQ (3, 0) || defined _FORCE_INLINES
+#   if _STRING_ARCH_unaligned
+#    ifndef _FORCE_INLINES
+#     define __stpcpy_args(src) \
      __extension__ __STRING2_SMALL_GET16 (src, 0),			      \
      __extension__ __STRING2_SMALL_GET16 (src, 4),			      \
      __extension__ __STRING2_SMALL_GET32 (src, 0),			      \
      __extension__ __STRING2_SMALL_GET32 (src, 4)
-#   endif
+#    endif
 __STRING_INLINE char *__stpcpy_small (char *, __uint16_t, __uint16_t,
 				      __uint32_t, __uint32_t, size_t);
 __STRING_INLINE char *
@@ -626,9 +649,9 @@ __stpcpy_small (char *__dest,
     }
   return &__u->__c;
 }
-#  else
-#   ifndef _FORCE_INLINES
-#    define __stpcpy_args(src) \
+#   else
+#    ifndef _FORCE_INLINES
+#     define __stpcpy_args(src) \
      __extension__ ((__STRING2_COPY_ARR2)				      \
       { { ((__const char *) (src))[0], '\0' } }),			      \
      __extension__ ((__STRING2_COPY_ARR3)				      \
@@ -655,7 +678,7 @@ __stpcpy_small (char *__dest,
 	  ((__const char *) (src))[2], ((__const char *) (src))[3],	      \
 	  ((__const char *) (src))[4], ((__const char *) (src))[5],	      \
 	  ((__const char *) (src))[6], '\0' } })
-#   endif
+#    endif
 __STRING_INLINE char *__stpcpy_small (char *, __STRING2_COPY_ARR2,
 				      __STRING2_COPY_ARR3,
 				      __STRING2_COPY_ARR4,
@@ -709,6 +732,7 @@ __stpcpy_small (char *__dest,
   }
   return __dest + __srclen - 1;
 }
+#   endif
 #  endif
 # endif
 #endif
@@ -1216,7 +1240,7 @@ extern char *__strndup (__const char *__string, size_t __n)
 			  size_t __n = (n);				      \
 			  char *__retval;				      \
 			  if (__n < __len)				      \
-			    __len = __n;				      \
+			    __len = __n + 1;				      \
 			  __retval = (char *) malloc (__len);		      \
 			  if (__retval != NULL)				      \
 			    {						      \

+ 0 - 0
libc/sysdeps/linux/arm/bits/stropts.h → libc/sysdeps/linux/common/bits/stropts.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/termios.h → libc/sysdeps/linux/common/bits/termios.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/time.h → libc/sysdeps/linux/common/bits/time.h


+ 1 - 1
libc/sysdeps/linux/i386/bits/types.h → libc/sysdeps/linux/common/bits/types.h

@@ -139,7 +139,7 @@ typedef unsigned int __socklen_t;
 
 
 /* Now add the thread types.  */
-#if defined _POSIX_THREADS && (defined __USE_POSIX199506 || defined __USE_UNIX98)
+#if defined __UCLIBC_HAS_THREADS__ && (defined __USE_POSIX199506 || defined __USE_UNIX98)
 # include <bits/pthreadtypes.h>
 #endif
 

+ 0 - 0
libc/sysdeps/linux/arm/bits/uio.h → libc/sysdeps/linux/common/bits/uio.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/ustat.h → libc/sysdeps/linux/common/bits/ustat.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/utmp.h → libc/sysdeps/linux/common/bits/utmp.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/utmpx.h → libc/sysdeps/linux/common/bits/utmpx.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/utsname.h → libc/sysdeps/linux/common/bits/utsname.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/waitflags.h → libc/sysdeps/linux/common/bits/waitflags.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/waitstatus.h → libc/sysdeps/linux/common/bits/waitstatus.h


+ 0 - 0
libc/sysdeps/linux/arm/bits/wchar.h → libc/sysdeps/linux/common/bits/wchar.h


+ 1 - 0
libc/sysdeps/linux/common/bits/wordsize.h

@@ -0,0 +1 @@
+#error "This file must be written based on the data type sizes of the target"

+ 0 - 0
libc/sysdeps/linux/arm/bits/xopen_lim.h → libc/sysdeps/linux/common/bits/xopen_lim.h


+ 0 - 0
include/sys/ptrace.h → libc/sysdeps/linux/common/sys/ptrace.h


+ 1 - 0
libc/sysdeps/linux/common/sys/user.h

@@ -0,0 +1 @@
+#include <linux/user.h>

+ 0 - 5
libc/sysdeps/linux/h8300/Makefile

@@ -61,11 +61,6 @@ $(COBJS): %.o : %.c
 
 headers:
 	@(TOPDIR=$(TOPDIR) CC=$(CC) /bin/sh $(TOPDIR)/extra/scripts/gen_bits_syscall_h.sh > bits/syscall.h ) 
-ifeq ($(strip $(HAVE_ELF)),false)
-	echo "Working around compiler bug in the m68k-pic-coff toolchain"
-	cd $(TOPDIR)/include;ln -fs ../libc/sysdeps/linux/m68k/float.h .
-endif
-
 
 clean:
 	rm -f *.[oa] *~ core

+ 0 - 67
libc/sysdeps/linux/h8300/bits/byteswap.h

@@ -1,67 +0,0 @@
-/* Macros to swap the order of bytes in integer values.  m68k version.
-   Copyright (C) 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#if !defined _BYTESWAP_H && !defined _NETINET_IN_H
-# error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
-#endif
-
-/* Swap bytes in 16 bit value.  We don't provide an assembler version
-   because GCC is smart enough to generate optimal assembler output, and
-   this allows for better cse.  */
-#define __bswap_16(x) \
-  ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))
-
-/* Swap bytes in 32 bit value.  */
-#define __bswap_constant_32(x) \
-  ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >>  8) | \
-   (((x) & 0x0000ff00) <<  8) | (((x) & 0x000000ff) << 24))
-
-#if defined __GNUC__ && __GNUC__ >= 2
-# define __bswap_32(x) \
-  __extension__					\
-  ({ unsigned int __v;				\
-     if (__builtin_constant_p (x))		\
-       __v = __bswap_constant_32 (x);		\
-     else					\
-       __asm__ __volatile__ ("mov.l %0,er0\n\t"	\
-			     "mov.b r0l,r1h\n\t"	\
-			     "mov.b r0h,r1l\n\t"	\
-			     "mov.w r1,e1\n\t"	\
-			     "mov.w e0,r0\n\t"	\
-			     "mov.b r0l,r1h\n\t"	\
-			     "mov.b r0h,r1l\n\t"	\
-			     "mov.l er1,%0"	\
-			     : "=d" (__v)	\
-			     : "0" (x): "er0","er1");	\
-     __v; })
-#else
-# define __bswap_32(x) __bswap_constant_32 (x)
-#endif
-
-#if defined __GNUC__ && __GNUC__ >= 2
-/* Swap bytes in 64 bit value.  */
-# define __bswap_64(x) \
-  __extension__						\
-  ({ union { unsigned long long int __ll;		\
-	     unsigned long int __l[2]; } __v, __r;	\
-     __v.__ll = (x);					\
-     __r.__l[0] = __bswap_32 (__v.__l[1]);		\
-     __r.__l[1] = __bswap_32 (__v.__l[0]);		\
-     __r.__ll; })
-#endif

+ 0 - 159
libc/sysdeps/linux/h8300/bits/cmathcalls.h

@@ -1,159 +0,0 @@
-/* Prototype declarations for complex math functions;
-   helper file for <complex.h>.
-   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-/* NOTE: Because of the special way this file is used by <complex.h>, this
-   file must NOT be protected from multiple inclusion as header files
-   usually are.
-
-   This file provides prototype declarations for the math functions.
-   Most functions are declared using the macro:
-
-   __MATHCALL (NAME, (ARGS...));
-
-   This means there is a function `NAME' returning `double' and a function
-   `NAMEf' returning `float'.  Each place `_Mdouble_' appears in the
-   prototype, that is actually `double' in the prototype for `NAME' and
-   `float' in the prototype for `NAMEf'.  Reentrant variant functions are
-   called `NAME_r' and `NAMEf_r'.
-
-   Functions returning other types like `int' are declared using the macro:
-
-   __MATHDECL (TYPE, NAME, (ARGS...));
-
-   This is just like __MATHCALL but for a function returning `TYPE'
-   instead of `_Mdouble_'.  In all of these cases, there is still
-   both a `NAME' and a `NAMEf' that takes `float' arguments.  */
-
-#ifndef _COMPLEX_H
-#error "Never use <bits/cmathcalls.h> directly; include <complex.h> instead."
-#endif
-
-#define _Mdouble_complex_ _Mdouble_ _Complex
-
-__BEGIN_DECLS
-
-/* Trigonometric functions.  */
-
-/* Arc cosine of Z.  */
-__MATHCALL (cacos, (_Mdouble_complex_ __z));
-/* Arc sine of Z.  */
-__MATHCALL (casin, (_Mdouble_complex_ __z));
-/* Arc tangent of Z.  */
-__MATHCALL (catan, (_Mdouble_complex_ __z));
-
-/* Cosine of Z.  */
-__MATHCALL (ccos, (_Mdouble_complex_ __z));
-/* Sine of Z.  */
-__MATHCALL (csin, (_Mdouble_complex_ __z));
-/* Tangent of Z.  */
-__MATHCALL (ctan, (_Mdouble_complex_ __z));
-
-
-/* Hyperbolic functions.  */
-
-/* Hyperbolic arc cosine of Z.  */
-__MATHCALL (cacosh, (_Mdouble_complex_ __z));
-/* Hyperbolic arc sine of Z.  */
-__MATHCALL (casinh, (_Mdouble_complex_ __z));
-/* Hyperbolic arc tangent of Z.  */
-__MATHCALL (catanh, (_Mdouble_complex_ __z));
-
-/* Hyperbolic cosine of Z.  */
-__MATHCALL (ccosh, (_Mdouble_complex_ __z));
-/* Hyperbolic sine of Z.  */
-__MATHCALL (csinh, (_Mdouble_complex_ __z));
-/* Hyperbolic tangent of Z.  */
-__MATHCALL (ctanh, (_Mdouble_complex_ __z));
-
-
-/* Exponential and logarithmic functions.  */
-
-/* Exponential function of Z.  */
-__MATHCALL (cexp, (_Mdouble_complex_ __z));
-
-/* Natural logarithm of Z.  */
-__MATHCALL (clog, (_Mdouble_complex_ __z));
-
-#ifdef __USE_GNU
-/* The base 10 logarithm is not defined by the standard but to implement
-   the standard C++ library it is handy.  */
-__MATHCALL (clog10, (_Mdouble_complex_ __z));
-#endif
-
-/* Power functions.  */
-
-/* Return X to the Y power.  */
-__MATHCALL (cpow, (_Mdouble_complex_ __x, _Mdouble_complex_ __y));
-
-/* Return the square root of Z.  */
-__MATHCALL (csqrt, (_Mdouble_complex_ __z));
-
-
-/* Absolute value, conjugates, and projection.  */
-
-/* Absolute value of Z.  */
-__MATHDECL (_Mdouble_,cabs, (_Mdouble_complex_ __z));
-
-/* Argument value of Z.  */
-__MATHDECL (_Mdouble_,carg, (_Mdouble_complex_ __z));
-
-/* Complex conjugate of Z.  */
-__MATHCALL (conj, (_Mdouble_complex_ __z));
-
-/* Projection of Z onto the Riemann sphere.  */
-__MATHCALL (cproj, (_Mdouble_complex_ __z));
-
-
-/* Decomposing complex values.  */
-
-/* Imaginary part of Z.  */
-__MATHDECL (_Mdouble_,cimag, (_Mdouble_complex_ __z));
-
-/* Real part of Z.  */
-__MATHDECL (_Mdouble_,creal, (_Mdouble_complex_ __z));
-
-
-/* Now some optimized versions.  GCC has handy notations for these
-   functions.  */
-#if defined __GNUC__ && defined __OPTIMIZE__
-
-/* Imaginary part of Z.  */
-extern __inline _Mdouble_
-__MATH_PRECNAME(cimag) (_Mdouble_complex_ __z)
-{
-  return __imag__ __z;
-}
-
-/* Real part of Z.  */
-extern __inline _Mdouble_
-__MATH_PRECNAME(creal) (_Mdouble_complex_ __z)
-{
-  return __real__ __z;
-}
-
-/* Complex conjugate of Z.  */
-extern __inline _Mdouble_complex_
-__MATH_PRECNAME(conj) (_Mdouble_complex_ __z)
-{
-  return ~__z;
-}
-#endif
-
-__END_DECLS

+ 0 - 566
libc/sysdeps/linux/h8300/bits/confname.h

@@ -1,566 +0,0 @@
-/* `sysconf', `pathconf', and `confstr' NAME values.  Generic version.
-   Copyright (C) 1993, 1995-1998, 2000, 2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifndef _UNISTD_H
-# error "Never use <bits/confname.h> directly; include <unistd.h> instead."
-#endif
-
-/* Values for the NAME argument to `pathconf' and `fpathconf'.  */
-enum
-  {
-    _PC_LINK_MAX,
-#define	_PC_LINK_MAX			_PC_LINK_MAX
-    _PC_MAX_CANON,
-#define	_PC_MAX_CANON			_PC_MAX_CANON
-    _PC_MAX_INPUT,
-#define	_PC_MAX_INPUT			_PC_MAX_INPUT
-    _PC_NAME_MAX,
-#define	_PC_NAME_MAX			_PC_NAME_MAX
-    _PC_PATH_MAX,
-#define	_PC_PATH_MAX			_PC_PATH_MAX
-    _PC_PIPE_BUF,
-#define	_PC_PIPE_BUF			_PC_PIPE_BUF
-    _PC_CHOWN_RESTRICTED,
-#define	_PC_CHOWN_RESTRICTED		_PC_CHOWN_RESTRICTED
-    _PC_NO_TRUNC,
-#define	_PC_NO_TRUNC			_PC_NO_TRUNC
-    _PC_VDISABLE,
-#define _PC_VDISABLE			_PC_VDISABLE
-    _PC_SYNC_IO,
-#define	_PC_SYNC_IO			_PC_SYNC_IO
-    _PC_ASYNC_IO,
-#define	_PC_ASYNC_IO			_PC_ASYNC_IO
-    _PC_PRIO_IO,
-#define	_PC_PRIO_IO			_PC_PRIO_IO
-    _PC_SOCK_MAXBUF,
-#define	_PC_SOCK_MAXBUF			_PC_SOCK_MAXBUF
-    _PC_FILESIZEBITS,
-#define _PC_FILESIZEBITS		_PC_FILESIZEBITS
-    _PC_REC_INCR_XFER_SIZE,
-#define _PC_REC_INCR_XFER_SIZE		_PC_REC_INCR_XFER_SIZE
-    _PC_REC_MAX_XFER_SIZE,
-#define _PC_REC_MAX_XFER_SIZE		_PC_REC_MAX_XFER_SIZE
-    _PC_REC_MIN_XFER_SIZE,
-#define _PC_REC_MIN_XFER_SIZE		_PC_REC_MIN_XFER_SIZE
-    _PC_REC_XFER_ALIGN,
-#define _PC_REC_XFER_ALIGN		_PC_REC_XFER_ALIGN
-    _PC_ALLOC_SIZE_MIN,
-#define _PC_ALLOC_SIZE_MIN		_PC_ALLOC_SIZE_MIN
-    _PC_SYMLINK_MAX
-#define _PC_SYMLINK_MAX			_PC_SYMLINK_MAX
-  };
-
-/* Values for the argument to `sysconf'.  */
-enum
-  {
-    _SC_ARG_MAX,
-#define	_SC_ARG_MAX			_SC_ARG_MAX
-    _SC_CHILD_MAX,
-#define	_SC_CHILD_MAX			_SC_CHILD_MAX
-    _SC_CLK_TCK,
-#define	_SC_CLK_TCK			_SC_CLK_TCK
-    _SC_NGROUPS_MAX,
-#define	_SC_NGROUPS_MAX			_SC_NGROUPS_MAX
-    _SC_OPEN_MAX,
-#define	_SC_OPEN_MAX			_SC_OPEN_MAX
-    _SC_STREAM_MAX,
-#define	_SC_STREAM_MAX			_SC_STREAM_MAX
-    _SC_TZNAME_MAX,
-#define	_SC_TZNAME_MAX			_SC_TZNAME_MAX
-    _SC_JOB_CONTROL,
-#define	_SC_JOB_CONTROL			_SC_JOB_CONTROL
-    _SC_SAVED_IDS,
-#define	_SC_SAVED_IDS			_SC_SAVED_IDS
-    _SC_REALTIME_SIGNALS,
-#define	_SC_REALTIME_SIGNALS		_SC_REALTIME_SIGNALS
-    _SC_PRIORITY_SCHEDULING,
-#define	_SC_PRIORITY_SCHEDULING		_SC_PRIORITY_SCHEDULING
-    _SC_TIMERS,
-#define	_SC_TIMERS			_SC_TIMERS
-    _SC_ASYNCHRONOUS_IO,
-#define	_SC_ASYNCHRONOUS_IO		_SC_ASYNCHRONOUS_IO
-    _SC_PRIORITIZED_IO,
-#define	_SC_PRIORITIZED_IO		_SC_PRIORITIZED_IO
-    _SC_SYNCHRONIZED_IO,
-#define	_SC_SYNCHRONIZED_IO		_SC_SYNCHRONIZED_IO
-    _SC_FSYNC,
-#define	_SC_FSYNC			_SC_FSYNC
-    _SC_MAPPED_FILES,
-#define	_SC_MAPPED_FILES		_SC_MAPPED_FILES
-    _SC_MEMLOCK,
-#define	_SC_MEMLOCK			_SC_MEMLOCK
-    _SC_MEMLOCK_RANGE,
-#define	_SC_MEMLOCK_RANGE		_SC_MEMLOCK_RANGE
-    _SC_MEMORY_PROTECTION,
-#define	_SC_MEMORY_PROTECTION		_SC_MEMORY_PROTECTION
-    _SC_MESSAGE_PASSING,
-#define	_SC_MESSAGE_PASSING		_SC_MESSAGE_PASSING
-    _SC_SEMAPHORES,
-#define	_SC_SEMAPHORES			_SC_SEMAPHORES
-    _SC_SHARED_MEMORY_OBJECTS,
-#define	_SC_SHARED_MEMORY_OBJECTS	_SC_SHARED_MEMORY_OBJECTS
-    _SC_AIO_LISTIO_MAX,
-#define	_SC_AIO_LISTIO_MAX		_SC_AIO_LISTIO_MAX
-    _SC_AIO_MAX,
-#define	_SC_AIO_MAX			_SC_AIO_MAX
-    _SC_AIO_PRIO_DELTA_MAX,
-#define	_SC_AIO_PRIO_DELTA_MAX		_SC_AIO_PRIO_DELTA_MAX
-    _SC_DELAYTIMER_MAX,
-#define	_SC_DELAYTIMER_MAX		_SC_DELAYTIMER_MAX
-    _SC_MQ_OPEN_MAX,
-#define	_SC_MQ_OPEN_MAX			_SC_MQ_OPEN_MAX
-    _SC_MQ_PRIO_MAX,
-#define	_SC_MQ_PRIO_MAX			_SC_MQ_PRIO_MAX
-    _SC_VERSION,
-#define	_SC_VERSION			_SC_VERSION
-    _SC_PAGESIZE,
-#define	_SC_PAGESIZE			_SC_PAGESIZE
-#define	_SC_PAGE_SIZE			_SC_PAGESIZE
-    _SC_RTSIG_MAX,
-#define	_SC_RTSIG_MAX			_SC_RTSIG_MAX
-    _SC_SEM_NSEMS_MAX,
-#define	_SC_SEM_NSEMS_MAX		_SC_SEM_NSEMS_MAX
-    _SC_SEM_VALUE_MAX,
-#define	_SC_SEM_VALUE_MAX		_SC_SEM_VALUE_MAX
-    _SC_SIGQUEUE_MAX,
-#define	_SC_SIGQUEUE_MAX		_SC_SIGQUEUE_MAX
-    _SC_TIMER_MAX,
-#define	_SC_TIMER_MAX			_SC_TIMER_MAX
-
-    /* Values for the argument to `sysconf'
-       corresponding to _POSIX2_* symbols.  */
-    _SC_BC_BASE_MAX,
-#define	_SC_BC_BASE_MAX			_SC_BC_BASE_MAX
-    _SC_BC_DIM_MAX,
-#define	_SC_BC_DIM_MAX			_SC_BC_DIM_MAX
-    _SC_BC_SCALE_MAX,
-#define	_SC_BC_SCALE_MAX		_SC_BC_SCALE_MAX
-    _SC_BC_STRING_MAX,
-#define	_SC_BC_STRING_MAX		_SC_BC_STRING_MAX
-    _SC_COLL_WEIGHTS_MAX,
-#define	_SC_COLL_WEIGHTS_MAX		_SC_COLL_WEIGHTS_MAX
-    _SC_EQUIV_CLASS_MAX,
-#define	_SC_EQUIV_CLASS_MAX		_SC_EQUIV_CLASS_MAX
-    _SC_EXPR_NEST_MAX,
-#define	_SC_EXPR_NEST_MAX		_SC_EXPR_NEST_MAX
-    _SC_LINE_MAX,
-#define	_SC_LINE_MAX			_SC_LINE_MAX
-    _SC_RE_DUP_MAX,
-#define	_SC_RE_DUP_MAX			_SC_RE_DUP_MAX
-    _SC_CHARCLASS_NAME_MAX,
-#define	_SC_CHARCLASS_NAME_MAX		_SC_CHARCLASS_NAME_MAX
-
-    _SC_2_VERSION,
-#define	_SC_2_VERSION			_SC_2_VERSION
-    _SC_2_C_BIND,
-#define	_SC_2_C_BIND			_SC_2_C_BIND
-    _SC_2_C_DEV,
-#define	_SC_2_C_DEV			_SC_2_C_DEV
-    _SC_2_FORT_DEV,
-#define	_SC_2_FORT_DEV			_SC_2_FORT_DEV
-    _SC_2_FORT_RUN,
-#define	_SC_2_FORT_RUN			_SC_2_FORT_RUN
-    _SC_2_SW_DEV,
-#define	_SC_2_SW_DEV			_SC_2_SW_DEV
-    _SC_2_LOCALEDEF,
-#define	_SC_2_LOCALEDEF			_SC_2_LOCALEDEF
-
-    _SC_PII,
-#define	_SC_PII				_SC_PII
-    _SC_PII_XTI,
-#define	_SC_PII_XTI			_SC_PII_XTI
-    _SC_PII_SOCKET,
-#define	_SC_PII_SOCKET			_SC_PII_SOCKET
-    _SC_PII_INTERNET,
-#define	_SC_PII_INTERNET		_SC_PII_INTERNET
-    _SC_PII_OSI,
-#define	_SC_PII_OSI			_SC_PII_OSI
-    _SC_POLL,
-#define	_SC_POLL			_SC_POLL
-    _SC_SELECT,
-#define	_SC_SELECT			_SC_SELECT
-    _SC_UIO_MAXIOV,
-#define	_SC_UIO_MAXIOV			_SC_UIO_MAXIOV
-    _SC_IOV_MAX = _SC_UIO_MAXIOV,
-#define _SC_IOV_MAX			_SC_IOV_MAX
-    _SC_PII_INTERNET_STREAM,
-#define	_SC_PII_INTERNET_STREAM		_SC_PII_INTERNET_STREAM
-    _SC_PII_INTERNET_DGRAM,
-#define	_SC_PII_INTERNET_DGRAM		_SC_PII_INTERNET_DGRAM
-    _SC_PII_OSI_COTS,
-#define	_SC_PII_OSI_COTS		_SC_PII_OSI_COTS
-    _SC_PII_OSI_CLTS,
-#define	_SC_PII_OSI_CLTS		_SC_PII_OSI_CLTS
-    _SC_PII_OSI_M,
-#define	_SC_PII_OSI_M			_SC_PII_OSI_M
-    _SC_T_IOV_MAX,
-#define	_SC_T_IOV_MAX			_SC_T_IOV_MAX
-
-    /* Values according to POSIX 1003.1c (POSIX threads).  */
-    _SC_THREADS,
-#define	_SC_THREADS			_SC_THREADS
-    _SC_THREAD_SAFE_FUNCTIONS,
-#define _SC_THREAD_SAFE_FUNCTIONS	_SC_THREAD_SAFE_FUNCTIONS
-    _SC_GETGR_R_SIZE_MAX,
-#define	_SC_GETGR_R_SIZE_MAX		_SC_GETGR_R_SIZE_MAX
-    _SC_GETPW_R_SIZE_MAX,
-#define	_SC_GETPW_R_SIZE_MAX		_SC_GETPW_R_SIZE_MAX
-    _SC_LOGIN_NAME_MAX,
-#define	_SC_LOGIN_NAME_MAX		_SC_LOGIN_NAME_MAX
-    _SC_TTY_NAME_MAX,
-#define	_SC_TTY_NAME_MAX		_SC_TTY_NAME_MAX
-    _SC_THREAD_DESTRUCTOR_ITERATIONS,
-#define	_SC_THREAD_DESTRUCTOR_ITERATIONS _SC_THREAD_DESTRUCTOR_ITERATIONS
-    _SC_THREAD_KEYS_MAX,
-#define	_SC_THREAD_KEYS_MAX		_SC_THREAD_KEYS_MAX
-    _SC_THREAD_STACK_MIN,
-#define	_SC_THREAD_STACK_MIN		_SC_THREAD_STACK_MIN
-    _SC_THREAD_THREADS_MAX,
-#define	_SC_THREAD_THREADS_MAX		_SC_THREAD_THREADS_MAX
-    _SC_THREAD_ATTR_STACKADDR,
-#define	_SC_THREAD_ATTR_STACKADDR	_SC_THREAD_ATTR_STACKADDR
-    _SC_THREAD_ATTR_STACKSIZE,
-#define	_SC_THREAD_ATTR_STACKSIZE	_SC_THREAD_ATTR_STACKSIZE
-    _SC_THREAD_PRIORITY_SCHEDULING,
-#define	_SC_THREAD_PRIORITY_SCHEDULING	_SC_THREAD_PRIORITY_SCHEDULING
-    _SC_THREAD_PRIO_INHERIT,
-#define	_SC_THREAD_PRIO_INHERIT		_SC_THREAD_PRIO_INHERIT
-    _SC_THREAD_PRIO_PROTECT,
-#define	_SC_THREAD_PRIO_PROTECT		_SC_THREAD_PRIO_PROTECT
-    _SC_THREAD_PROCESS_SHARED,
-#define	_SC_THREAD_PROCESS_SHARED	_SC_THREAD_PROCESS_SHARED
-
-    _SC_NPROCESSORS_CONF,
-#define _SC_NPROCESSORS_CONF		_SC_NPROCESSORS_CONF
-    _SC_NPROCESSORS_ONLN,
-#define _SC_NPROCESSORS_ONLN		_SC_NPROCESSORS_ONLN
-    _SC_PHYS_PAGES,
-#define _SC_PHYS_PAGES			_SC_PHYS_PAGES
-    _SC_AVPHYS_PAGES,
-#define _SC_AVPHYS_PAGES		_SC_AVPHYS_PAGES
-    _SC_ATEXIT_MAX,
-#define _SC_ATEXIT_MAX			_SC_ATEXIT_MAX
-    _SC_PASS_MAX,
-#define _SC_PASS_MAX			_SC_PASS_MAX
-
-    _SC_XOPEN_VERSION,
-#define _SC_XOPEN_VERSION		_SC_XOPEN_VERSION
-    _SC_XOPEN_XCU_VERSION,
-#define _SC_XOPEN_XCU_VERSION		_SC_XOPEN_XCU_VERSION
-    _SC_XOPEN_UNIX,
-#define _SC_XOPEN_UNIX			_SC_XOPEN_UNIX
-    _SC_XOPEN_CRYPT,
-#define _SC_XOPEN_CRYPT			_SC_XOPEN_CRYPT
-    _SC_XOPEN_ENH_I18N,
-#define _SC_XOPEN_ENH_I18N		_SC_XOPEN_ENH_I18N
-    _SC_XOPEN_SHM,
-#define _SC_XOPEN_SHM			_SC_XOPEN_SHM
-
-    _SC_2_CHAR_TERM,
-#define _SC_2_CHAR_TERM			_SC_2_CHAR_TERM
-    _SC_2_C_VERSION,
-#define _SC_2_C_VERSION			_SC_2_C_VERSION
-    _SC_2_UPE,
-#define _SC_2_UPE			_SC_2_UPE
-
-    _SC_XOPEN_XPG2,
-#define _SC_XOPEN_XPG2			_SC_XOPEN_XPG2
-    _SC_XOPEN_XPG3,
-#define _SC_XOPEN_XPG3			_SC_XOPEN_XPG3
-    _SC_XOPEN_XPG4,
-#define _SC_XOPEN_XPG4			_SC_XOPEN_XPG4
-
-    _SC_CHAR_BIT,
-#define	_SC_CHAR_BIT			_SC_CHAR_BIT
-    _SC_CHAR_MAX,
-#define	_SC_CHAR_MAX			_SC_CHAR_MAX
-    _SC_CHAR_MIN,
-#define	_SC_CHAR_MIN			_SC_CHAR_MIN
-    _SC_INT_MAX,
-#define	_SC_INT_MAX			_SC_INT_MAX
-    _SC_INT_MIN,
-#define	_SC_INT_MIN			_SC_INT_MIN
-    _SC_LONG_BIT,
-#define	_SC_LONG_BIT			_SC_LONG_BIT
-    _SC_WORD_BIT,
-#define	_SC_WORD_BIT			_SC_WORD_BIT
-    _SC_MB_LEN_MAX,
-#define	_SC_MB_LEN_MAX			_SC_MB_LEN_MAX
-    _SC_NZERO,
-#define	_SC_NZERO			_SC_NZERO
-    _SC_SSIZE_MAX,
-#define	_SC_SSIZE_MAX			_SC_SSIZE_MAX
-    _SC_SCHAR_MAX,
-#define	_SC_SCHAR_MAX			_SC_SCHAR_MAX
-    _SC_SCHAR_MIN,
-#define	_SC_SCHAR_MIN			_SC_SCHAR_MIN
-    _SC_SHRT_MAX,
-#define	_SC_SHRT_MAX			_SC_SHRT_MAX
-    _SC_SHRT_MIN,
-#define	_SC_SHRT_MIN			_SC_SHRT_MIN
-    _SC_UCHAR_MAX,
-#define	_SC_UCHAR_MAX			_SC_UCHAR_MAX
-    _SC_UINT_MAX,
-#define	_SC_UINT_MAX			_SC_UINT_MAX
-    _SC_ULONG_MAX,
-#define	_SC_ULONG_MAX			_SC_ULONG_MAX
-    _SC_USHRT_MAX,
-#define	_SC_USHRT_MAX			_SC_USHRT_MAX
-
-    _SC_NL_ARGMAX,
-#define	_SC_NL_ARGMAX			_SC_NL_ARGMAX
-    _SC_NL_LANGMAX,
-#define	_SC_NL_LANGMAX			_SC_NL_LANGMAX
-    _SC_NL_MSGMAX,
-#define	_SC_NL_MSGMAX			_SC_NL_MSGMAX
-    _SC_NL_NMAX,
-#define	_SC_NL_NMAX			_SC_NL_NMAX
-    _SC_NL_SETMAX,
-#define	_SC_NL_SETMAX			_SC_NL_SETMAX
-    _SC_NL_TEXTMAX,
-#define	_SC_NL_TEXTMAX			_SC_NL_TEXTMAX
-
-    _SC_XBS5_ILP32_OFF32,
-#define _SC_XBS5_ILP32_OFF32		_SC_XBS5_ILP32_OFF32
-    _SC_XBS5_ILP32_OFFBIG,
-#define _SC_XBS5_ILP32_OFFBIG		_SC_XBS5_ILP32_OFFBIG
-    _SC_XBS5_LP64_OFF64,
-#define _SC_XBS5_LP64_OFF64		_SC_XBS5_LP64_OFF64
-    _SC_XBS5_LPBIG_OFFBIG,
-#define _SC_XBS5_LPBIG_OFFBIG		_SC_XBS5_LPBIG_OFFBIG
-
-    _SC_XOPEN_LEGACY,
-#define _SC_XOPEN_LEGACY		_SC_XOPEN_LEGACY
-    _SC_XOPEN_REALTIME,
-#define _SC_XOPEN_REALTIME		_SC_XOPEN_REALTIME
-    _SC_XOPEN_REALTIME_THREADS,
-#define _SC_XOPEN_REALTIME_THREADS	_SC_XOPEN_REALTIME_THREADS
-
-    _SC_ADVISORY_INFO,
-#define _SC_ADVISORY_INFO		_SC_ADVISORY_INFO
-    _SC_BARRIERS,
-#define _SC_BARRIERS			_SC_BARRIERS
-    _SC_BASE,
-#define _SC_BASE			_SC_BASE
-    _SC_C_LANG_SUPPORT,
-#define _SC_C_LANG_SUPPORT		_SC_C_LANG_SUPPORT
-    _SC_C_LANG_SUPPORT_R,
-#define _SC_C_LANG_SUPPORT_R		_SC_C_LANG_SUPPORT_R
-    _SC_CLOCK_SELECTION,
-#define _SC_CLOCK_SELECTION		_SC_CLOCK_SELECTION
-    _SC_CPUTIME,
-#define _SC_CPUTIME			_SC_CPUTIME
-    _SC_THREAD_CPUTIME,
-#define _SC_THREAD_CPUTIME		_SC_THREAD_CPUTIME
-    _SC_DEVICE_IO,
-#define _SC_DEVICE_IO			_SC_DEVICE_IO
-    _SC_DEVICE_SPECIFIC,
-#define _SC_DEVICE_SPECIFIC		_SC_DEVICE_SPECIFIC
-    _SC_DEVICE_SPECIFIC_R,
-#define _SC_DEVICE_SPECIFIC_R		_SC_DEVICE_SPECIFIC_R
-    _SC_FD_MGMT,
-#define _SC_FD_MGMT			_SC_FD_MGMT
-    _SC_FIFO,
-#define _SC_FIFO			_SC_FIFO
-    _SC_PIPE,
-#define _SC_PIPE			_SC_PIPE
-    _SC_FILE_ATTRIBUTES,
-#define _SC_FILE_ATTRIBUTES		_SC_FILE_ATTRIBUTES
-    _SC_FILE_LOCKING,
-#define _SC_FILE_LOCKING		_SC_FILE_LOCKING
-    _SC_FILE_SYSTEM,
-#define _SC_FILE_SYSTEM			_SC_FILE_SYSTEM
-    _SC_MONOTONIC_CLOCK,
-#define _SC_MONOTONIC_CLOCK		_SC_MONOTONIC_CLOCK
-    _SC_MULTI_PROCESS,
-#define _SC_MULTI_PROCESS		_SC_MULTI_PROCESS
-    _SC_SINGLE_PROCESS,
-#define _SC_SINGLE_PROCESS		_SC_SINGLE_PROCESS
-    _SC_NETWORKING,
-#define _SC_NETWORKING			_SC_NETWORKING
-    _SC_READER_WRITER_LOCKS,
-#define _SC_READER_WRITER_LOCKS		_SC_READER_WRITER_LOCKS
-    _SC_SPIN_LOCKS,
-#define _SC_SPIN_LOCKS			_SC_SPIN_LOCKS
-    _SC_REGEXP,
-#define _SC_REGEXP			_SC_REGEXP
-    _SC_REGEX_VERSION,
-#define _SC_REGEX_VERSION		_SC_REGEX_VERSION
-    _SC_SHELL,
-#define _SC_SHELL			_SC_SHELL
-    _SC_SIGNALS,
-#define _SC_SIGNALS			_SC_SIGNALS
-    _SC_SPAWN,
-#define _SC_SPAWN			_SC_SPAWN
-    _SC_SPORADIC_SERVER,
-#define _SC_SPORADIC_SERVER		_SC_SPORADIC_SERVER
-    _SC_THREAD_SPORADIC_SERVER,
-#define _SC_THREAD_SPORADIC_SERVER	_SC_THREAD_SPORADIC_SERVER
-    _SC_SYSTEM_DATABASE,
-#define _SC_SYSTEM_DATABASE		_SC_SYSTEM_DATABASE
-    _SC_SYSTEM_DATABASE_R,
-#define _SC_SYSTEM_DATABASE_R		_SC_SYSTEM_DATABASE_R
-    _SC_TIMEOUTS,
-#define _SC_TIMEOUTS			_SC_TIMEOUTS
-    _SC_TYPED_MEMORY_OBJECTS,
-#define _SC_TYPED_MEMORY_OBJECTS	_SC_TYPED_MEMORY_OBJECTS
-    _SC_USER_GROUPS,
-#define _SC_USER_GROUPS			_SC_USER_GROUPS
-    _SC_USER_GROUPS_R,
-#define _SC_USER_GROUPS_R		_SC_USER_GROUPS_R
-    _SC_2_PBS,
-#define _SC_2_PBS			_SC_2_PBS
-    _SC_2_PBS_ACCOUNTING,
-#define _SC_2_PBS_ACCOUNTING		_SC_2_PBS_ACCOUNTING
-    _SC_2_PBS_LOCATE,
-#define _SC_2_PBS_LOCATE		_SC_2_PBS_LOCATE
-    _SC_2_PBS_MESSAGE,
-#define _SC_2_PBS_MESSAGE		_SC_2_PBS_MESSAGE
-    _SC_2_PBS_TRACK,
-#define _SC_2_PBS_TRACK			_SC_2_PBS_TRACK
-    _SC_SYMLOOP_MAX,
-#define _SC_SYMLOOP_MAX			_SC_SYMLOOP_MAX
-    _SC_STREAMS,
-#define _SC_STREAMS			_SC_STREAMS
-    _SC_2_PBS_CHECKPOINT,
-#define _SC_2_PBS_CHECKPOINT		_SC_2_PBS_CHECKPOINT
-
-    _SC_V6_ILP32_OFF32,
-#define _SC_V6_ILP32_OFF32		_SC_V6_ILP32_OFF32
-    _SC_V6_ILP32_OFFBIG,
-#define _SC_V6_ILP32_OFFBIG		_SC_V6_ILP32_OFFBIG
-    _SC_V6_LP64_OFF64,
-#define _SC_V6_LP64_OFF64		_SC_V6_LP64_OFF64
-    _SC_V6_LPBIG_OFFBIG,
-#define _SC_V6_LPBIG_OFFBIG		_SC_V6_LPBIG_OFFBIG
-
-    _SC_HOST_NAME_MAX,
-#define _SC_HOST_NAME_MAX		_SC_HOST_NAME_MAX
-    _SC_TRACE,
-#define _SC_TRACE			_SC_TRACE
-    _SC_TRACE_EVENT_FILTER,
-#define _SC_TRACE_EVENT_FILTER		_SC_TRACE_EVENT_FILTER
-    _SC_TRACE_INHERIT,
-#define _SC_TRACE_INHERIT		_SC_TRACE_INHERIT
-    _SC_TRACE_LOG
-#define _SC_TRACE_LOG			_SC_TRACE_LOG
-  };
-
-#if (defined __USE_POSIX2 || defined __USE_UNIX98 \
-     || defined __USE_FILE_OFFSET64 || defined __USE_LARGEFILE64 \
-     || defined __USE_LARGEFILE)
-/* Values for the NAME argument to `confstr'.  */
-enum
-  {
-    _CS_PATH,			/* The default search path.  */
-#define _CS_PATH		_CS_PATH
-
-# if (defined __USE_FILE_OFFSET64 || defined __USE_LARGEFILE64 \
-     || defined __USE_LARGEFILE)
-    _CS_LFS_CFLAGS = 1000,
-#  define _CS_LFS_CFLAGS		_CS_LFS_CFLAGS
-    _CS_LFS_LDFLAGS,
-#  define _CS_LFS_LDFLAGS	_CS_LFS_LDFLAGS
-    _CS_LFS_LIBS,
-#  define _CS_LFS_LIBS		_CS_LFS_LIBS
-    _CS_LFS_LINTFLAGS,
-#  define _CS_LFS_LINTFLAGS	_CS_LFS_LINTFLAGS
-    _CS_LFS64_CFLAGS,
-#  define _CS_LFS64_CFLAGS	_CS_LFS64_CFLAGS
-    _CS_LFS64_LDFLAGS,
-#  define _CS_LFS64_LDFLAGS	_CS_LFS64_LDFLAGS
-    _CS_LFS64_LIBS,
-#  define _CS_LFS64_LIBS		_CS_LFS64_LIBS
-    _CS_LFS64_LINTFLAGS,
-#  define _CS_LFS64_LINTFLAGS	_CS_LFS64_LINTFLAGS
-# endif
-
-# ifdef __USE_UNIX98
-    _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
-#  define _CS_XBS5_ILP32_OFF32_CFLAGS _CS_XBS5_ILP32_OFF32_CFLAGS
-    _CS_XBS5_ILP32_OFF32_LDFLAGS,
-#  define _CS_XBS5_ILP32_OFF32_LDFLAGS _CS_XBS5_ILP32_OFF32_LDFLAGS
-    _CS_XBS5_ILP32_OFF32_LIBS,
-#  define _CS_XBS5_ILP32_OFF32_LIBS _CS_XBS5_ILP32_OFF32_LIBS
-    _CS_XBS5_ILP32_OFF32_LINTFLAGS,
-#  define _CS_XBS5_ILP32_OFF32_LINTFLAGS _CS_XBS5_ILP32_OFF32_LINTFLAGS
-    _CS_XBS5_ILP32_OFFBIG_CFLAGS,
-#  define _CS_XBS5_ILP32_OFFBIG_CFLAGS _CS_XBS5_ILP32_OFFBIG_CFLAGS
-    _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
-#  define _CS_XBS5_ILP32_OFFBIG_LDFLAGS _CS_XBS5_ILP32_OFFBIG_LDFLAGS
-    _CS_XBS5_ILP32_OFFBIG_LIBS,
-#  define _CS_XBS5_ILP32_OFFBIG_LIBS _CS_XBS5_ILP32_OFFBIG_LIBS
-    _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
-#  define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
-    _CS_XBS5_LP64_OFF64_CFLAGS,
-#  define _CS_XBS5_LP64_OFF64_CFLAGS _CS_XBS5_LP64_OFF64_CFLAGS
-    _CS_XBS5_LP64_OFF64_LDFLAGS,
-#  define _CS_XBS5_LP64_OFF64_LDFLAGS _CS_XBS5_LP64_OFF64_LDFLAGS
-    _CS_XBS5_LP64_OFF64_LIBS,
-#  define _CS_XBS5_LP64_OFF64_LIBS _CS_XBS5_LP64_OFF64_LIBS
-    _CS_XBS5_LP64_OFF64_LINTFLAGS,
-#  define _CS_XBS5_LP64_OFF64_LINTFLAGS _CS_XBS5_LP64_OFF64_LINTFLAGS
-    _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
-#  define _CS_XBS5_LPBIG_OFFBIG_CFLAGS _CS_XBS5_LPBIG_OFFBIG_CFLAGS
-    _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
-#  define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
-    _CS_XBS5_LPBIG_OFFBIG_LIBS,
-#  define _CS_XBS5_LPBIG_OFFBIG_LIBS _CS_XBS5_LPBIG_OFFBIG_LIBS
-    _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
-#  define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
-# endif
-# ifdef __USE_XOPEN2K
-    _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
-#  define _CS_POSIX_V6_ILP32_OFF32_CFLAGS _CS_POSIX_V6_ILP32_OFF32_CFLAGS
-    _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
-#  define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
-    _CS_POSIX_V6_ILP32_OFF32_LIBS,
-#  define _CS_POSIX_V6_ILP32_OFF32_LIBS _CS_POSIX_V6_ILP32_OFF32_LIBS
-    _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
-#  define _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
-    _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
-#  define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
-    _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
-#  define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
-    _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
-#  define _CS_POSIX_V6_ILP32_OFFBIG_LIBS _CS_POSIX_V6_ILP32_OFFBIG_LIBS
-    _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
-#  define _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
-    _CS_POSIX_V6_LP64_OFF64_CFLAGS,
-#  define _CS_POSIX_V6_LP64_OFF64_CFLAGS _CS_POSIX_V6_LP64_OFF64_CFLAGS
-    _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
-#  define _CS_POSIX_V6_LP64_OFF64_LDFLAGS _CS_POSIX_V6_LP64_OFF64_LDFLAGS
-    _CS_POSIX_V6_LP64_OFF64_LIBS,
-#  define _CS_POSIX_V6_LP64_OFF64_LIBS _CS_POSIX_V6_LP64_OFF64_LIBS
-    _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
-#  define _CS_POSIX_V6_LP64_OFF64_LINTFLAGS _CS_POSIX_V6_LP64_OFF64_LINTFLAGS
-    _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
-#  define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
-    _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
-#  define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
-    _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
-#  define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
-    _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,
-#  define _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
-# endif
-
-    _CS_V6_WIDTH_RESTRICTED_ENVS
-# define _CS_V6_WIDTH_RESTRICTED_ENVS	_CS_V6_WIDTH_RESTRICTED_ENVS
-  };
-#endif

+ 0 - 62
libc/sysdeps/linux/h8300/bits/dirent.h

@@ -1,62 +0,0 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-/*
- * June 25, 2001
- *
- * Removed d_type support for dirent and undefined _DIRENT_HAVE_D_TYPE;
- * i.e. match the kernel structs and avoid any translation for now.
- * Note: glibc fakes d_type for the dirent case.
- * Note: dirent64 still has the d_type field.
- */
-
-
-#ifndef _DIRENT_H
-# error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
-#endif
-
-struct dirent
-  {
-#ifndef __USE_FILE_OFFSET64
-    __ino_t d_ino;
-    __off_t d_off;
-#else
-    __ino64_t d_ino;
-    __off64_t d_off;
-#endif
-    unsigned short int d_reclen;
-    char d_name[256];		/* We must not include limits.h! */
-  };
-
-#ifdef __USE_LARGEFILE64
-struct dirent64
-  {
-    __ino64_t d_ino;
-    __off64_t d_off;
-    unsigned short int d_reclen;
-    unsigned char d_type;
-    char d_name[256];		/* We must not include limits.h! */
-  };
-#endif
-
-#define d_fileno	d_ino	/* Backwards compatibility.  */
-
-#undef  _DIRENT_HAVE_D_NAMLEN
-#define _DIRENT_HAVE_D_RECLEN
-#define _DIRENT_HAVE_D_OFF
-#undef  _DIRENT_HAVE_D_TYPE

+ 0 - 37
libc/sysdeps/linux/h8300/bits/dlfcn.h

@@ -1,37 +0,0 @@
-/* System dependent definitions for run-time dynamic loading.
-   Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#ifndef _DLFCN_H
-# error "Never use <bits/dlfcn.h> directly; include <dlfcn.h> instead."
-#endif
-
-/* The MODE argument to `dlopen' contains one of the following: */
-#define RTLD_LAZY	0x001	/* Lazy function call binding.  */
-#define RTLD_NOW	0x002	/* Immediate function call binding.  */
-#define	RTLD_BINDING_MASK 0x3	/* Mask of binding time value.  */
-
-/* If the following bit is set in the MODE argument to `dlopen',
-   the symbols of the loaded object and its dependencies are made
-   visible as if the object were linked directly into the program.  */
-#define RTLD_GLOBAL	0x100
-
-/* Unix98 demands the following flag which is the inverse to RTLD_GLOBAL.
-   The implementation does this by default and so we can define the
-   value to zero.  */
-#define RTLD_LOCAL	0

+ 0 - 11
libc/sysdeps/linux/h8300/bits/elfclass.h

@@ -1,11 +0,0 @@
-/* This file specifies the native word size of the machine, which indicates
-   the ELF file class used for executables and shared objects on this
-   machine.  */
-
-#ifndef _LINK_H
-# error "Never use <bits/elfclass.h> directly; include <link.h> instead."
-#endif
-
-#include <bits/wordsize.h>
-
-#define __ELF_NATIVE_CLASS __WORDSIZE

+ 0 - 7
libc/sysdeps/linux/h8300/bits/endian.h

@@ -1,7 +0,0 @@
-/* m68k is big-endian.  */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#define __BYTE_ORDER __BIG_ENDIAN

+ 0 - 59
libc/sysdeps/linux/h8300/bits/environments.h

@@ -1,59 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#ifndef _UNISTD_H
-# error "Never include this file directly.  Use <unistd.h> instead"
-#endif
-
-#include <bits/wordsize.h>
-
-/* This header should define the following symbols under the described
-   situations.  A value `1' means that the model is always supported,
-   `-1' means it is never supported.  Undefined means it cannot be
-   statically decided.
-
-   _XBS5_ILP32_OFF32	32bit int, long, pointers, and off_t type
-   _XBS5_ILP32_OFFBIG	32bit int, long, and pointers and larger off_t type
-
-   _XBS5_LP64_OFF32	64bit long and pointers and 32bit off_t type
-   _XBS5_LPBIG_OFFBIG	64bit long and pointers and large off_t type
-*/
-
-#if __WORDSIZE == 64
-
-/* We can never provide environments with 32-bit wide pointers.  */
-# define _XBS5_ILP32_OFF32	-1
-# define _XBS5_ILP32_OFFBIG	-1
-
-/* By default we have 64-bit wide `long int', pointers and `off_t'.  */
-# define _XBS5_LP64_OFF32	1
-# define _XBS5_LPBIG_OFFBIG	1
-
-#else /* __WORDSIZE == 32 */
-
-/* By default we have 32-bit wide `int', `long int', pointers and `off_t'.  */
-# define _XBS5_ILP32_OFF32	1
-
-/* We optionally provide an environment with the above size but an 64-bit
-   side `off_t'.  Therefore we don't define _XBS5_ILP32_OFFBIG.  */
-
-/* We can never provide environments with 64-bit wide pointers.  */
-# define _XBS5_LP64_OFF64	-1
-# define _XBS5_LPBIG_OFFBIG	-1
-
-#endif /* __WORDSIZE == 32 */

+ 0 - 64
libc/sysdeps/linux/h8300/bits/errno.h

@@ -1,64 +0,0 @@
-/* Error constants.  Linux specific version.
-   Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#ifdef _ERRNO_H
-
-# undef EDOM
-# undef EILSEQ
-# undef ERANGE
-# include <linux/errno.h>
-
-__BEGIN_DECLS
-
-/* Linux has no ENOTSUP error code.  */
-# define ENOTSUP EOPNOTSUPP
-
-/* Linux also has no ECANCELED error code.  Since it is not used here
-   we define it to an invalid value.  */
-# define ECANCELED	125
-
-# ifndef __ASSEMBLER__
-/* We now need a declaration of the `errno' variable.  */
-extern int errno;
-
-/* Function to get address of global `errno' variable.  */
-extern int *__errno_location __P ((void)) __attribute__ ((__const__));
-
-#  if defined _LIBC
-/* We wouldn't need a special macro anymore but it is history.  */
-#   define __set_errno(val) (*__errno_location ()) = (val)
-#  endif /* _LIBC */
-
-#  if !defined _LIBC || defined _LIBC_REENTRANT
-/* When using threads, errno is a per-thread value.  */
-#   define errno (*__errno_location ())
-#  endif
-# endif /* !__ASSEMBLER__ */
-#endif /* _ERRNO_H */
-
-#if !defined _ERRNO_H && defined __need_Emath
-/* This is ugly but the kernel header is not clean enough.  We must
-   define only the values EDOM and ERANGE in case __need_Emath is
-   defined.  The value is the same for all Linux ports.  */
-# define EDOM	33	/* Math argument out of domain of function.  */
-# define EILSEQ	84	/* Illegal byte sequence.  */
-# define ERANGE	34	/* Math result not representable.  */
-#endif /* !_ERRNO_H && __need_Emath */
-
-__END_DECLS

Some files were not shown because too many files changed in this diff