Browse Source

Cleanup some dead wood in the header files

Eric Andersen 20 years ago
parent
commit
5f93ab7005

+ 0 - 9
include/errno.h

@@ -47,15 +47,6 @@ __BEGIN_DECLS
 extern int errno;
 extern int errno;
 #endif
 #endif
 
 
-#if 0
-#ifdef __USE_GNU
-
-/* The full and simple forms of the name with which the program was
-   invoked.  These variables are set up automatically at startup based on
-   the value of ARGV[0] (this works only if you use GNU ld).  */
-extern char *program_invocation_name, *program_invocation_short_name;
-#endif /* __USE_GNU */
-#endif
 #endif /* _ERRNO_H */
 #endif /* _ERRNO_H */
 
 
 __END_DECLS
 __END_DECLS

+ 11 - 30
include/features.h

@@ -256,16 +256,16 @@
  * specific releases.  */
  * specific releases.  */
 #define	__UCLIBC__		1
 #define	__UCLIBC__		1
 
 
-/* Major and minor version number of the uClibc library package are
- * can be used to test for features in specific uClibc releases.
- *
- * Now included from bits/uClibc_config.h */
-#if 0
-/* For uClibc release 0.9.12, these numbers would be: */
-#define	__UCLIBC_MAJOR__	0
-#define	__UCLIBC_MINOR__	9
-#define	__UCLIBC_SUBLEVEL__	12
-#endif
+/* Load up the current set of uClibc supported features along
+ * with the current uClibc major and minor version numbers.
+ * For uClibc release 0.9.26, these numbers would be:
+ *	#define	__UCLIBC_MAJOR__	0
+ *	#define	__UCLIBC_MINOR__	9
+ *	#define	__UCLIBC_SUBLEVEL__	26
+ */
+#define __need_uClibc_config_h
+#include <bits/uClibc_config.h>
+#undef __need_uClibc_config_h
 
 
 /*  There is an unwholesomely huge amount of code out there that depends on the
 /*  There is an unwholesomely huge amount of code out there that depends on the
  *  presence of GNU libc header files.  We have GNU libc header files.  So here
  *  presence of GNU libc header files.  We have GNU libc header files.  So here
@@ -278,7 +278,7 @@
 #   define __GNU_LIBRARY__ 6
 #   define __GNU_LIBRARY__ 6
 #   define __GLIBC__       2
 #   define __GLIBC__       2
 #   define __GLIBC_MINOR__ 2
 #   define __GLIBC_MINOR__ 2
-#endif	
+#endif
 
 
 /* Convenience macros to test the versions of glibc and gcc.
 /* Convenience macros to test the versions of glibc and gcc.
    Use them like this:
    Use them like this:
@@ -318,25 +318,6 @@
 # define __USE_EXTERN_INLINES	1
 # define __USE_EXTERN_INLINES	1
 #endif
 #endif
 
 
-/* This is here only because every header file already includes this one.  */
-#if 0
-/*#ifndef _LIBC*/
-/* Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
-   <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
-   which will always return failure (and set errno to ENOSYS).
-
-   We avoid including <gnu/stubs.h> when compiling the C library itself to
-   avoid a dependency loop.  stubs.h depends on every object file.  If
-   this #include were done for the library source code, then every object
-   file would depend on stubs.h.  */
-
-# include <gnu/stubs.h>
-#endif
-
-/* Load up the current set of uClibc supported features */
-#define __need_uClibc_config_h
-#include <bits/uClibc_config.h>
-#undef __need_uClibc_config_h
 
 
 /* Make sure users large file options agree with uClibc's configuration. */
 /* Make sure users large file options agree with uClibc's configuration. */
 #ifndef __UCLIBC_HAS_LFS__
 #ifndef __UCLIBC_HAS_LFS__

+ 0 - 139
include/inttypes.h

@@ -323,145 +323,6 @@ extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr,
      __THROW;
      __THROW;
 #endif
 #endif
 
 
-#if 0	/* disabled for uClibc */
-#ifdef __USE_EXTERN_INLINES
-
-# if __WORDSIZE == 64
-
-/* Like `strtol' but convert to `intmax_t'.  */
-#  ifndef __strtol_internal_defined
-extern long int __strtol_internal (__const char *__restrict __nptr,
-				   char **__restrict __endptr,
-				   int __base, int __group) __THROW;
-#   define __strtol_internal_defined	1
-#  endif
-extern __inline intmax_t
-strtoimax (__const char *__restrict nptr, char **__restrict endptr,
-	   int base) __THROW
-{
-  return __strtol_internal (nptr, endptr, base, 0);
-}
-
-/* Like `strtoul' but convert to `uintmax_t'.  */
-#  ifndef __strtoul_internal_defined
-extern unsigned long int __strtoul_internal (__const char *
-					     __restrict __nptr,
-					     char ** __restrict __endptr,
-					     int __base, int __group) __THROW;
-#   define __strtoul_internal_defined	1
-#  endif
-extern __inline uintmax_t
-strtoumax (__const char *__restrict nptr, char **__restrict endptr,
-	   int base) __THROW
-{
-  return __strtoul_internal (nptr, endptr, base, 0);
-}
-
-/* Like `wcstol' but convert to `intmax_t'.  */
-#  ifndef __wcstol_internal_defined
-extern long int __wcstol_internal (__const __gwchar_t * __restrict __nptr,
-				   __gwchar_t **__restrict __endptr,
-				   int __base, int __group) __THROW;
-#   define __wcstol_internal_defined	1
-#  endif
-extern __inline intmax_t
-wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr,
-	   int base) __THROW
-{
-  return __wcstol_internal (nptr, endptr, base, 0);
-}
-
-
-/* Like `wcstoul' but convert to `uintmax_t'.  */
-#  ifndef __wcstoul_internal_defined
-extern unsigned long int __wcstoul_internal (__const __gwchar_t *
-					     __restrict __nptr,
-					     __gwchar_t **
-					     __restrict __endptr,
-					     int __base, int __group) __THROW;
-#   define __wcstoul_internal_defined	1
-#  endif
-extern __inline uintmax_t
-wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr,
-	   int base) __THROW
-{
-  return __wcstoul_internal (nptr, endptr, base, 0);
-}
-
-# else /* __WORDSIZE == 32 */
-
-/* Like `strtol' but convert to `intmax_t'.  */
-#  ifndef __strtoll_internal_defined
-__extension__
-extern long long int __strtoll_internal (__const char *__restrict __nptr,
-					 char **__restrict __endptr,
-					 int __base, int __group) __THROW;
-#   define __strtoll_internal_defined	1
-#  endif
-extern __inline intmax_t
-strtoimax (__const char *__restrict nptr, char **__restrict endptr,
-	   int base) __THROW
-{
-  return __strtoll_internal (nptr, endptr, base, 0);
-}
-
-/* Like `strtoul' but convert to `uintmax_t'.  */
-#  ifndef __strtoull_internal_defined
-__extension__
-extern unsigned long long int __strtoull_internal (__const char *
-						   __restrict __nptr,
-						   char **
-						   __restrict __endptr,
-						   int __base,
-						   int __group) __THROW;
-#   define __strtoull_internal_defined	1
-#  endif
-extern __inline uintmax_t
-strtoumax (__const char *__restrict nptr, char **__restrict endptr,
-	   int base) __THROW
-{
-  return __strtoull_internal (nptr, endptr, base, 0);
-}
-
-/* Like `wcstol' but convert to `intmax_t'.  */
-#  ifndef __wcstoll_internal_defined
-__extension__
-extern long long int __wcstoll_internal (__const __gwchar_t *
-					 __restrict __nptr,
-					 __gwchar_t **__restrict __endptr,
-					 int __base, int __group) __THROW;
-#   define __wcstoll_internal_defined	1
-#  endif
-extern __inline intmax_t
-wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr,
-	   int base) __THROW
-{
-  return __wcstoll_internal (nptr, endptr, base, 0);
-}
-
-
-/* Like `wcstoul' but convert to `uintmax_t'.  */
-#  ifndef __wcstoull_internal_defined
-__extension__
-extern unsigned long long int __wcstoull_internal (__const __gwchar_t *
-						   __restrict __nptr,
-						   __gwchar_t **
-						   __restrict __endptr,
-						   int __base,
-						   int __group) __THROW;
-#   define __wcstoull_internal_defined	1
-#  endif
-extern __inline uintmax_t
-wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr,
-	   int base) __THROW
-{
-  return __wcstoull_internal (nptr, endptr, base, 0);
-}
-# endif	/* __WORDSIZE == 32	*/
-#endif	/* Use extern inlines.  */
-#endif	/* disabled for uClibc */
-
-
 __END_DECLS
 __END_DECLS
 
 
 #endif /* inttypes.h */
 #endif /* inttypes.h */

+ 5 - 16
include/stdio.h

@@ -555,11 +555,6 @@ extern void perror (__const char *__s) __THROW;
 extern int sys_nerr;
 extern int sys_nerr;
 extern __const char *__const sys_errlist[];
 extern __const char *__const sys_errlist[];
 #endif
 #endif
-#if 0
-/*  #ifdef	__USE_GNU */
-extern int _sys_nerr;
-extern __const char *__const _sys_errlist[];
-#endif
 #endif /* __UCLIBC_HAS_SYS_ERRLIST__ */
 #endif /* __UCLIBC_HAS_SYS_ERRLIST__ */
 
 
 
 
@@ -596,16 +591,17 @@ extern char *cuserid (char *__s) __THROW;
 #endif /* Use X/Open, but not issue 6.  */
 #endif /* Use X/Open, but not issue 6.  */
 
 
 
 
-#if 0
-/*  #ifdef	__USE_GNU */
+#ifdef	__USE_GNU
 struct obstack;			/* See <obstack.h>.  */
 struct obstack;			/* See <obstack.h>.  */
 
 
 /* Write formatted output to an obstack.  */
 /* Write formatted output to an obstack.  */
 extern int obstack_printf (struct obstack *__restrict __obstack,
 extern int obstack_printf (struct obstack *__restrict __obstack,
-			   __const char *__restrict __format, ...) __THROW;
+			   __const char *__restrict __format, ...)
+     __THROW __attribute__ ((__format__ (__printf__, 2, 3)));
 extern int obstack_vprintf (struct obstack *__restrict __obstack,
 extern int obstack_vprintf (struct obstack *__restrict __obstack,
 			    __const char *__restrict __format,
 			    __const char *__restrict __format,
-			    __gnuc_va_list __args) __THROW;
+			    _G_va_list __args)
+     __THROW __attribute__ ((__format__ (__printf__, 2, 0)));
 #endif /* Use GNU.  */
 #endif /* Use GNU.  */
 
 
 
 
@@ -632,11 +628,6 @@ extern void funlockfile (FILE *__stream) __THROW;
 
 
 /* If we are compiling with optimizing read this file.  It contains
 /* If we are compiling with optimizing read this file.  It contains
    several optimizing inline functions and macros.  */
    several optimizing inline functions and macros.  */
-#if 0
-/*  #ifdef __USE_EXTERN_INLINES */
-# include <bits/stdio.h>
-#elif 1
-
 #define fgetc(_fp)                   __FGETC(_fp)
 #define fgetc(_fp)                   __FGETC(_fp)
 #define fputc(_ch, _fp)              __FPUTC(_ch, _fp)
 #define fputc(_ch, _fp)              __FPUTC(_ch, _fp)
 
 
@@ -664,8 +655,6 @@ extern void funlockfile (FILE *__stream) __THROW;
 #define ferror_unlocked(_fp)         __FERROR_UNLOCKED(_fp)
 #define ferror_unlocked(_fp)         __FERROR_UNLOCKED(_fp)
 #endif
 #endif
 
 
-#endif
-
 __END_DECLS
 __END_DECLS
 
 
 #endif /* <stdio.h> included.  */
 #endif /* <stdio.h> included.  */

+ 0 - 224
include/stdlib.h

@@ -302,152 +302,6 @@ extern long double __strtold_l (__const char *__restrict __nptr,
 #endif /* __UCLIBC_HAS_XLOCALE__ */
 #endif /* __UCLIBC_HAS_XLOCALE__ */
 
 
 
 
-#if 0
-/* The internal entry points for `strtoX' take an extra flag argument
-   saying whether or not to parse locale-dependent number grouping.  */
-
-extern double __strtod_internal (__const char *__restrict __nptr,
-				 char **__restrict __endptr, int __group)
-     __THROW;
-extern float __strtof_internal (__const char *__restrict __nptr,
-				char **__restrict __endptr, int __group)
-     __THROW;
-extern long double __strtold_internal (__const char *__restrict __nptr,
-				       char **__restrict __endptr,
-				       int __group) __THROW;
-#ifndef __strtol_internal_defined
-extern long int __strtol_internal (__const char *__restrict __nptr,
-				   char **__restrict __endptr,
-				   int __base, int __group) __THROW;
-# define __strtol_internal_defined	1
-#endif
-#ifndef __strtoul_internal_defined
-extern unsigned long int __strtoul_internal (__const char *__restrict __nptr,
-					     char **__restrict __endptr,
-					     int __base, int __group) __THROW;
-# define __strtoul_internal_defined	1
-#endif
-#if defined __GNUC__ || defined __USE_ISOC99
-# ifndef __strtoll_internal_defined
-__extension__
-extern long long int __strtoll_internal (__const char *__restrict __nptr,
-					 char **__restrict __endptr,
-					 int __base, int __group) __THROW;
-#  define __strtoll_internal_defined	1
-# endif
-# ifndef __strtoull_internal_defined
-__extension__
-extern unsigned long long int __strtoull_internal (__const char *
-						   __restrict __nptr,
-						   char **__restrict __endptr,
-						   int __base, int __group)
-     __THROW;
-#  define __strtoull_internal_defined	1
-# endif
-#endif /* GCC */
-#endif /* 0 */
-
-#if defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__ \
-    && defined __USE_EXTERN_INLINES
-/* Define inline functions which call the internal entry points.  */
-
-/* __BEGIN_NAMESPACE_STD */
-/* extern __inline double */
-/* strtod (__const char *__restrict __nptr, char **__restrict __endptr) __THROW */
-/* { */
-/*   return __strtod_internal (__nptr, __endptr, 0); */
-/* } */
-/* extern __inline long int */
-/* strtol (__const char *__restrict __nptr, char **__restrict __endptr, */
-/* 	int __base) __THROW */
-/* { */
-/*   return __strtol_internal (__nptr, __endptr, __base, 0); */
-/* } */
-/* extern __inline unsigned long int */
-/* strtoul (__const char *__restrict __nptr, char **__restrict __endptr, */
-/* 	 int __base) __THROW */
-/* { */
-/*   return __strtoul_internal (__nptr, __endptr, __base, 0); */
-/* } */
-/* __END_NAMESPACE_STD */
-
-/* # ifdef __USE_ISOC99 */
-/* __BEGIN_NAMESPACE_C99 */
-/* extern __inline float */
-/* strtof (__const char *__restrict __nptr, char **__restrict __endptr) __THROW */
-/* { */
-/*   return __strtof_internal (__nptr, __endptr, 0); */
-/* } */
-/* extern __inline long double */
-/* strtold (__const char *__restrict __nptr, char **__restrict __endptr) __THROW */
-/* { */
-/*   return __strtold_internal (__nptr, __endptr, 0); */
-/* } */
-/* __END_NAMESPACE_C99 */
-/* # endif */
-
-/* # ifdef __USE_BSD */
-/* __extension__ extern __inline long long int */
-/* strtoq (__const char *__restrict __nptr, char **__restrict __endptr, */
-/* 	int __base) __THROW */
-/* { */
-/*   return __strtoll_internal (__nptr, __endptr, __base, 0); */
-/* } */
-/* __extension__ extern __inline unsigned long long int */
-/* strtouq (__const char *__restrict __nptr, char **__restrict __endptr, */
-/* 	 int __base) __THROW */
-/* { */
-/*   return __strtoull_internal (__nptr, __endptr, __base, 0); */
-/* } */
-/* # endif */
-
-/* # if defined __USE_MISC || defined __USE_ISOC99 */
-/* __BEGIN_NAMESPACE_C99 */
-/* __extension__ extern __inline long long int */
-/* strtoll (__const char *__restrict __nptr, char **__restrict __endptr, */
-/* 	 int __base) __THROW */
-/* { */
-/*   return __strtoll_internal (__nptr, __endptr, __base, 0); */
-/* } */
-/* __extension__ extern __inline unsigned long long int */
-/* strtoull (__const char * __restrict __nptr, char **__restrict __endptr, */
-/* 	  int __base) __THROW */
-/* { */
-/*   return __strtoull_internal (__nptr, __endptr, __base, 0); */
-/* } */
-/* __END_NAMESPACE_C99 */
-/* # endif */
-
-__BEGIN_NAMESPACE_STD
-extern __inline double
-atof (__const char *__nptr) __THROW
-{
-  return strtod (__nptr, (char **) NULL);
-}
-extern __inline int
-atoi (__const char *__nptr) __THROW
-{
-  return (int) strtol (__nptr, (char **) NULL, 10);
-}
-extern __inline long int
-atol (__const char *__nptr) __THROW
-{
-  return strtol (__nptr, (char **) NULL, 10);
-}
-__END_NAMESPACE_STD
-
-# if defined __USE_MISC || defined __USE_ISOC99
-__BEGIN_NAMESPACE_C99
-__extension__ extern __inline long long int
-atoll (__const char *__nptr) __THROW
-{
-  return strtoll (__nptr, (char **) NULL, 10);
-}
-__END_NAMESPACE_C99
-# endif
-#endif /* Optimizing and Inlining.  */
-
-
 #if defined __USE_SVID || defined __USE_XOPEN_EXTENDED
 #if defined __USE_SVID || defined __USE_XOPEN_EXTENDED
 /* Convert N to base 64 using the digits "./0-9A-Za-z", least-significant
 /* Convert N to base 64 using the digits "./0-9A-Za-z", least-significant
    digit first.  Returns a pointer to static storage overwritten by the
    digit first.  Returns a pointer to static storage overwritten by the
@@ -638,20 +492,6 @@ extern void *valloc (size_t __size) __THROW __attribute_malloc__;
 /* Allocate memory of SIZE bytes with an alignment of ALIGNMENT.  */
 /* Allocate memory of SIZE bytes with an alignment of ALIGNMENT.  */
 extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
 extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
      __THROW __attribute_malloc__;
      __THROW __attribute_malloc__;
-#if 0
-/* Cope with autoconf's broken AC_FUNC_MALLOC macro, which
- * redefines malloc to rpl_malloc if it does not detect glibc
- * style returning-a-valid-pointer-for-malloc(0) behavior.  This
- * calls malloc() as usual, but if __size is zero, we allocate and
- * return a 1-byte block instead....  sigh... */ 
-static __inline void *rpl_malloc (size_t __size)
-{
-    if (__size == 0) {
-	__size++; 
-    }
-    return malloc(__size);
-}   
-#endif
 #endif
 #endif
 
 
 __BEGIN_NAMESPACE_STD
 __BEGIN_NAMESPACE_STD
@@ -777,14 +617,6 @@ extern int system (__const char *__command);
 __END_NAMESPACE_STD
 __END_NAMESPACE_STD
 
 
 
 
-#if 0
-/*#ifdef	__USE_GNU*/
-/* Return a malloc'd string containing the canonical absolute name of the
-   named file.  The last file name component need not exist, and may be a
-   symlink to a nonexistent file.  */
-extern char *canonicalize_file_name (__const char *__name) __THROW;
-#endif
-
 #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
 #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
 /* Return the canonical absolute name of file NAME.  The last file name
 /* Return the canonical absolute name of file NAME.  The last file name
    component need not exist, and may be a symlink to a nonexistent file.
    component need not exist, and may be a symlink to a nonexistent file.
@@ -849,60 +681,6 @@ __END_NAMESPACE_C99
 #endif
 #endif
 
 
 
 
-#if 0
-#ifdef __UCLIBC_HAS_FLOATS__
-#if defined __USE_SVID || defined __USE_XOPEN_EXTENDED
-/* Convert floating point numbers to strings.  The returned values are
-   valid only until another call to the same function.  */
-
-/* Convert VALUE to a string with NDIGIT digits and return a pointer to
-   this.  Set *DECPT with the position of the decimal character and *SIGN
-   with the sign of the number.  */
-extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
-		   int *__restrict __sign) __THROW;
-
-/* Convert VALUE to a string rounded to NDIGIT decimal digits.  Set *DECPT
-   with the position of the decimal character and *SIGN with the sign of
-   the number.  */
-extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
-		   int *__restrict __sign) __THROW;
-
-/* If possible convert VALUE to a string with NDIGIT significant digits.
-   Otherwise use exponential representation.  The resulting string will
-   be written to BUF.  */
-extern char *gcvt (double __value, int __ndigit, char *__buf) __THROW;
-
-
-# ifdef __USE_MISC
-/* Long double versions of above functions.  */
-extern char *qecvt (long double __value, int __ndigit,
-		    int *__restrict __decpt, int *__restrict __sign) __THROW;
-extern char *qfcvt (long double __value, int __ndigit,
-		    int *__restrict __decpt, int *__restrict __sign) __THROW;
-extern char *qgcvt (long double __value, int __ndigit, char *__buf) __THROW;
-
-
-/* Reentrant version of the functions above which provide their own
-   buffers.  */
-extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
-		   int *__restrict __sign, char *__restrict __buf,
-		   size_t __len) __THROW;
-extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
-		   int *__restrict __sign, char *__restrict __buf,
-		   size_t __len) __THROW;
-
-extern int qecvt_r (long double __value, int __ndigit,
-		    int *__restrict __decpt, int *__restrict __sign,
-		    char *__restrict __buf, size_t __len) __THROW;
-extern int qfcvt_r (long double __value, int __ndigit,
-		    int *__restrict __decpt, int *__restrict __sign,
-		    char *__restrict __buf, size_t __len) __THROW;
-# endif	/* misc */
-#endif	/* use MISC || use X/Open Unix */
-#endif /* __UCLIBC_HAS_FLOATS__ */
-#endif
-
-  
 #ifdef __UCLIBC_HAS_WCHAR__
 #ifdef __UCLIBC_HAS_WCHAR__
 __BEGIN_NAMESPACE_STD
 __BEGIN_NAMESPACE_STD
 /* Return the length of the multibyte character
 /* Return the length of the multibyte character
@@ -984,9 +762,7 @@ extern char *ptsname (int __fd) __THROW;
 /* Store at most BUFLEN characters of the pathname of the slave pseudo
 /* Store at most BUFLEN characters of the pathname of the slave pseudo
    terminal associated with the master FD is open on in BUF.
    terminal associated with the master FD is open on in BUF.
    Return 0 on success, otherwise an error number.  */
    Return 0 on success, otherwise an error number.  */
-#if 0
 extern int ptsname_r (int __fd, char *__buf, size_t __buflen) __THROW;
 extern int ptsname_r (int __fd, char *__buf, size_t __buflen) __THROW;
-#endif
 
 
 /* Open a master pseudo terminal and return its file descriptor.  */
 /* Open a master pseudo terminal and return its file descriptor.  */
 extern int getpt (void) __THROW;
 extern int getpt (void) __THROW;

+ 0 - 44
include/string.h

@@ -349,11 +349,6 @@ extern char *strsep (char **__restrict __stringp,
 #endif
 #endif
 
 
 #ifdef	__USE_GNU
 #ifdef	__USE_GNU
-#if 0
-/* Compare S1 and S2 as strings holding name & indices/version numbers.  */
-extern int strverscmp (__const char *__s1, __const char *__s2)
-     __THROW __attribute_pure__;
-#endif
 
 
 /* Return a string describing the meaning of the signal number in SIG.  */
 /* Return a string describing the meaning of the signal number in SIG.  */
 extern char *strsignal (int __sig) __THROW;
 extern char *strsignal (int __sig) __THROW;
@@ -371,14 +366,6 @@ extern char *__stpncpy (char *__restrict __dest,
 extern char *stpncpy (char *__restrict __dest,
 extern char *stpncpy (char *__restrict __dest,
 		      __const char *__restrict __src, size_t __n) __THROW;
 		      __const char *__restrict __src, size_t __n) __THROW;
 
 
-#if 0
-/* Sautee STRING briskly.  */
-extern char *strfry (char *__string) __THROW;
-
-/* Frobnicate N bytes of S.  */
-extern void *memfrob (void *__s, size_t __n) __THROW;
-#endif
-
 # ifndef basename
 # ifndef basename
 /* Return the file name within directory of FILENAME.  We don't
 /* Return the file name within directory of FILENAME.  We don't
    declare the function if the `basename' macro is available (defined
    declare the function if the `basename' macro is available (defined
@@ -389,37 +376,6 @@ extern char *basename (__const char *__filename) __THROW;
 #endif
 #endif
 
 
 
 
-#if 0
-#if defined __GNUC__ && __GNUC__ >= 2
-# if defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__ \
-     && !defined __NO_INLINE__ && !defined __cplusplus
-/* When using GNU CC we provide some optimized versions of selected
-   functions from this header.  There are two kinds of optimizations:
-
-   - machine-dependent optimizations, most probably using inline
-     assembler code; these might be quite expensive since the code
-     size can increase significantly.
-     These optimizations are not used unless the symbol
-	__USE_STRING_INLINES
-     is defined before including this header.
-
-   - machine-independent optimizations which do not increase the
-     code size significantly and which optimize mainly situations
-     where one or more arguments are compile-time constants.
-     These optimizations are used always when the compiler is
-     taught to optimize.
-
-   One can inhibit all optimizations by defining __NO_STRING_INLINES.  */
-
-/* Get the machine-dependent optimizations (if any).  */
-#  include <bits/string.h>
-
-/* These are generic optimizations which do not add too much inline code.  */
-#  include <bits/string2.h>
-# endif
-#endif
-#endif
-
 #ifdef	__USE_BSD
 #ifdef	__USE_BSD
 /* Two OpenBSD extension functions. */
 /* Two OpenBSD extension functions. */
 extern size_t strlcat(char *__restrict dst, const char *__restrict src,
 extern size_t strlcat(char *__restrict dst, const char *__restrict src,

+ 6 - 6
include/sys/sysmacros.h

@@ -26,30 +26,30 @@
    not going to hack weird hacks to support the dev_t representation
    not going to hack weird hacks to support the dev_t representation
    they need.  */
    they need.  */
 __extension__
 __extension__
-extern __inline unsigned int gnu_dev_major (unsigned long long int __dev)
+static __inline unsigned int gnu_dev_major (unsigned long long int __dev)
      __THROW;
      __THROW;
 __extension__
 __extension__
-extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev)
+static __inline unsigned int gnu_dev_minor (unsigned long long int __dev)
      __THROW;
      __THROW;
 __extension__
 __extension__
-extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major,
+static __inline unsigned long long int gnu_dev_makedev (unsigned int __major,
 							unsigned int __minor)
 							unsigned int __minor)
      __THROW;
      __THROW;
 
 
 #if defined __GNUC__ && __GNUC__ >= 2
 #if defined __GNUC__ && __GNUC__ >= 2
-__extension__ extern __inline unsigned int
+__extension__ static __inline unsigned int
 gnu_dev_major (unsigned long long int __dev) __THROW
 gnu_dev_major (unsigned long long int __dev) __THROW
 {
 {
   return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
   return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
 }
 }
 
 
-__extension__ extern __inline unsigned int
+__extension__ static __inline unsigned int
 gnu_dev_minor (unsigned long long int __dev) __THROW
 gnu_dev_minor (unsigned long long int __dev) __THROW
 {
 {
   return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
   return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
 }
 }
 
 
-__extension__ extern __inline unsigned long long int
+__extension__ static __inline unsigned long long int
 gnu_dev_makedev (unsigned int __major, unsigned int __minor) __THROW
 gnu_dev_makedev (unsigned int __major, unsigned int __minor) __THROW
 {
 {
   return ((__minor & 0xff) | ((__major & 0xfff) << 8)
   return ((__minor & 0xff) | ((__major & 0xfff) << 8)

+ 0 - 22
include/unistd.h

@@ -259,13 +259,6 @@ typedef __socklen_t socklen_t;
 /* Test for access to NAME using the real UID and real GID.  */
 /* Test for access to NAME using the real UID and real GID.  */
 extern int access (__const char *__name, int __type) __THROW;
 extern int access (__const char *__name, int __type) __THROW;
 
 
-#if 0
-/*#ifdef __USE_GNU*/
-/* Test for access to NAME using the effective UID and GID
-   (as normal file operations use).  */
-extern int euidaccess (__const char *__name, int __type) __THROW;
-#endif
-
 
 
 /* Values for the WHENCE argument to lseek.  */
 /* Values for the WHENCE argument to lseek.  */
 #ifndef	_STDIO_H		/* <stdio.h> has the same definitions.  */
 #ifndef	_STDIO_H		/* <stdio.h> has the same definitions.  */
@@ -454,15 +447,6 @@ extern char **environ;
 extern int execve (__const char *__path, char *__const __argv[],
 extern int execve (__const char *__path, char *__const __argv[],
 		   char *__const __envp[]) __THROW;
 		   char *__const __envp[]) __THROW;
 
 
-#if 0
-/*#ifdef __USE_GNU*/
-/* Execute the file FD refers to, overlaying the running program image.
-   ARGV and ENVP are passed to the new program, as for `execve'.  */
-extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
-     __THROW;
-#endif
-
-
 /* Execute PATH with arguments ARGV and environment from `environ'.  */
 /* Execute PATH with arguments ARGV and environment from `environ'.  */
 extern int execv (__const char *__path, char *__const __argv[]) __THROW;
 extern int execv (__const char *__path, char *__const __argv[]) __THROW;
 
 
@@ -601,12 +585,6 @@ extern __gid_t getegid (void) __THROW;
    of its supplementary groups in LIST and return the number written.  */
    of its supplementary groups in LIST and return the number written.  */
 extern int getgroups (int __size, __gid_t __list[]) __THROW;
 extern int getgroups (int __size, __gid_t __list[]) __THROW;
 
 
-#if 0
-/*#ifdef	__USE_GNU*/
-/* Return nonzero iff the calling process is in group GID.  */
-extern int group_member (__gid_t __gid) __THROW;
-#endif
-
 /* Set the user ID of the calling process to UID.
 /* Set the user ID of the calling process to UID.
    If the calling process is the super-user, set the real
    If the calling process is the super-user, set the real
    and effective user IDs, and the saved set-user-ID to UID;
    and effective user IDs, and the saved set-user-ID to UID;

+ 0 - 98
include/wchar.h

@@ -341,17 +341,7 @@ extern size_t __mbrlen (__const char *__restrict __s, size_t __n,
 			mbstate_t *__restrict __ps) __THROW;
 			mbstate_t *__restrict __ps) __THROW;
 extern size_t mbrlen (__const char *__restrict __s, size_t __n,
 extern size_t mbrlen (__const char *__restrict __s, size_t __n,
 		      mbstate_t *__restrict __ps) __THROW;
 		      mbstate_t *__restrict __ps) __THROW;
-__END_NAMESPACE_C99
-
-#ifdef __USE_EXTERN_INLINES
-/* Define inline function as optimization.  */
-extern __inline size_t mbrlen (__const char *__restrict __s, size_t __n,
-			       mbstate_t *__restrict __ps) __THROW
-{ return (__ps != NULL
-	  ? mbrtowc (NULL, __s, __n, __ps) : __mbrlen (__s, __n, NULL)); }
-#endif
 
 
-__BEGIN_NAMESPACE_C99
 /* Write wide character representation of multibyte character string
 /* Write wide character representation of multibyte character string
    SRC to DST.  */
    SRC to DST.  */
 extern size_t mbsrtowcs (wchar_t *__restrict __dst,
 extern size_t mbsrtowcs (wchar_t *__restrict __dst,
@@ -533,94 +523,6 @@ extern long double __wcstold_l (__const wchar_t *__restrict __nptr,
 #endif /* GNU */
 #endif /* GNU */
 
 
 
 
-#if 0
-#ifdef __UCLIBC_HAS_FLOATS__
-/* The internal entry points for `wcstoX' take an extra flag argument
-   saying whether or not to parse locale-dependent number grouping.  */
-extern double __wcstod_internal (__const wchar_t *__restrict __nptr,
-				 wchar_t **__restrict __endptr, int __group)
-     __THROW;
-extern float __wcstof_internal (__const wchar_t *__restrict __nptr,
-				wchar_t **__restrict __endptr, int __group)
-     __THROW;
-extern long double __wcstold_internal (__const wchar_t *__restrict __nptr,
-				       wchar_t **__restrict __endptr,
-				       int __group) __THROW;
-#endif /* __UCLIBC_HAS_FLOATS__ */
-
-#ifndef __wcstol_internal_defined
-extern long int __wcstol_internal (__const wchar_t *__restrict __nptr,
-				   wchar_t **__restrict __endptr,
-				   int __base, int __group) __THROW;
-# define __wcstol_internal_defined	1
-#endif
-#ifndef __wcstoul_internal_defined
-extern unsigned long int __wcstoul_internal (__const wchar_t *__restrict __npt,
-					     wchar_t **__restrict __endptr,
-					     int __base, int __group) __THROW;
-# define __wcstoul_internal_defined	1
-#endif
-#ifndef __wcstoll_internal_defined
-__extension__
-extern long long int __wcstoll_internal (__const wchar_t *__restrict __nptr,
-					 wchar_t **__restrict __endptr,
-					 int __base, int __group) __THROW;
-# define __wcstoll_internal_defined	1
-#endif
-#ifndef __wcstoull_internal_defined
-__extension__
-extern unsigned long long int __wcstoull_internal (__const wchar_t *
-						   __restrict __nptr,
-						   wchar_t **
-						   __restrict __endptr,
-						   int __base,
-						   int __group) __THROW;
-# define __wcstoull_internal_defined	1
-#endif
-
-
-#if defined __OPTIMIZE__ && __GNUC__ >= 2
-/* Define inline functions which call the internal entry points.  */
-/* __BEGIN_NAMESPACE_C99 */
-
-/* extern __inline double wcstod (__const wchar_t *__restrict __nptr, */
-/* 			       wchar_t **__restrict __endptr) __THROW */
-/* { return __wcstod_internal (__nptr, __endptr, 0); } */
-/* extern __inline long int wcstol (__const wchar_t *__restrict __nptr, */
-/*                                  wchar_t **__restrict __endptr, */
-/* 				 int __base) __THROW */
-/* { return __wcstol_internal (__nptr, __endptr, __base, 0); } */
-/* extern __inline unsigned long int wcstoul (__const wchar_t *__restrict __nptr, */
-/*                                            wchar_t **__restrict __endptr, */
-/* 					   int __base) __THROW */
-/* { return __wcstoul_internal (__nptr, __endptr, __base, 0); } */
-/* __END_NAMESPACE_C99 */
-
-# ifdef __USE_GNU
-/* extern __inline float wcstof (__const wchar_t *__restrict __nptr, */
-/* 			      wchar_t **__restrict __endptr) __THROW */
-/* { return __wcstof_internal (__nptr, __endptr, 0); } */
-/* extern __inline long double wcstold (__const wchar_t *__restrict __nptr, */
-/* 				     wchar_t **__restrict __endptr) __THROW */
-/* { return __wcstold_internal (__nptr, __endptr, 0); } */
-
-
-/* __extension__ */
-/* extern __inline long long int wcstoq (__const wchar_t *__restrict __nptr, */
-/* 				      wchar_t **__restrict __endptr, */
-/* 				      int __base) __THROW */
-/* { return __wcstoll_internal (__nptr, __endptr, __base, 0); } */
-/* __extension__ */
-/* extern __inline unsigned long long int wcstouq (__const wchar_t * */
-/* 						__restrict __nptr, */
-/* 						wchar_t **__restrict __endptr, */
-/* 						int __base) __THROW */
-/* { return __wcstoull_internal (__nptr, __endptr, __base, 0); } */
-# endif /* Use GNU.  */
-#endif /* Optimizing GCC >=2.  */
-#endif /* 0 */
-
-
 #ifdef	__USE_GNU
 #ifdef	__USE_GNU
 /* Copy SRC to DEST, returning the address of the terminating L'\0' in
 /* Copy SRC to DEST, returning the address of the terminating L'\0' in
    DEST.  */
    DEST.  */

+ 0 - 31
libc/sysdeps/linux/arm/bits/string.h

@@ -1,31 +0,0 @@
-/* Optimized, inlined string functions.  ARM version.
-   Copyright (C) 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 _STRING_H
-# error "Never use <bits/string.h> directly; include <string.h> instead."
-#endif
-
-/* We must defeat the generic optimized versions of these functions in
-   <bits/string2.h> since they don't work on the ARM.  This is because
-   the games they play with the __STRING2_COPY_ARR# structures fail
-   when structs are always 32-bit aligned.
-   XXX Should provide suitably optimal replacements.  */
-#define _HAVE_STRING_ARCH_strcpy 1
-#define _HAVE_STRING_ARCH_stpcpy 1
-#define _HAVE_STRING_ARCH_mempcpy 1

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

@@ -1,12 +0,0 @@
-/* This file should provide inline versions of string functions.
-
-   Surround GCC-specific parts with #ifdef __GNUC__, and use `extern __inline'.
-
-   This file should define __STRING_INLINES if functions are actually defined
-   as inlines.  */
-
-#ifndef _BITS_STRING_H
-#define _BITS_STRING_H	1
-
-
-#endif /* bits/string.h */

+ 0 - 1265
libc/sysdeps/linux/common/bits/string2.h

@@ -1,1265 +0,0 @@
-/* Machine-independant string function optimizations.
-   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.
-
-   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
-#   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 !__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
-__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
-#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 && !__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	      \
-		     ? __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
-#   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))						      \
-		  : __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 !__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
-__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
-#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
-
-extern char *__strsep_g (char **__stringp, __const char *__delim);
-#  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_g (s, reject))))				      \
-      : __strsep_g (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 + 1;				      \
-			  __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 - 904
libc/sysdeps/linux/i386/bits/string.h

@@ -1,904 +0,0 @@
-/* Optimized, inlined string functions.  i386 version.
-   Copyright (C) 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 _STRING_H
-# error "Never use <bits/string.h> directly; include <string.h> instead."
-#endif
-
-/* The ix86 processors can access unaligned multi-byte variables.  */
-#define _STRING_ARCH_unaligned	1
-
-
-/* We only provide optimizations if the user selects them and if
-   GNU CC is used.  */
-#if !defined __NO_STRING_INLINES && defined __USE_STRING_INLINES \
-    && defined __GNUC__ && __GNUC__ >= 2 && !__BOUNDED_POINTERS__
-
-#ifndef __STRING_INLINE
-# ifdef __cplusplus
-#  define __STRING_INLINE inline
-# else
-#  define __STRING_INLINE extern __inline
-# endif
-#endif
-
-
-/* Copy N bytes of SRC to DEST.  */
-#define _HAVE_STRING_ARCH_memcpy 1
-#define memcpy(dest, src, n) \
-  (__extension__ (__builtin_constant_p (n)				      \
-		  ? __memcpy_c (dest, src, n)				      \
-		  : memcpy (dest, src, n)))
-/* This looks horribly ugly, but the compiler can optimize it totally,
-   as the count is constant.  */
-__STRING_INLINE void *__memcpy_c (void *__dest, __const void *__src,
-				  size_t __n);
-
-__STRING_INLINE void *
-__memcpy_c (void *__dest, __const void *__src, size_t __n)
-{
-  register unsigned long int __d0, __d1, __d2;
-  union {
-    unsigned int __ui;
-    unsigned short int __usi;
-    unsigned char __uc;
-  } *__u = __dest;
-  switch (__n)
-    {
-    case 0:
-      return __dest;
-    case 1:
-      __u->__uc = *(const unsigned char *) __src;
-      return __dest;
-    case 2:
-      __u->__usi = *(const unsigned short int *) __src;
-      return __dest;
-    case 3:
-      __u->__usi = *(const unsigned short int *) __src;
-      __u = (void *) __u + 2;
-      __u->__uc = *(2 + (const unsigned char *) __src);
-      return __dest;
-    case 4:
-      __u->__ui = *(const unsigned int *) __src;
-      return __dest;
-    case 6:
-      __u->__ui = *(const unsigned int *) __src;
-      __u = (void *) __u + 4;
-      __u->__usi = *(2 + (const unsigned short int *) __src);
-      return __dest;
-    case 8:
-      __u->__ui = *(const unsigned int *) __src;
-      __u = (void *) __u + 4;
-      __u->__ui = *(1 + (const unsigned int *) __src);
-      return __dest;
-    case 12:
-      __u->__ui = *(const unsigned int *) __src;
-      __u = (void *) __u + 4;
-      __u->__ui = *(1 + (const unsigned int *) __src);
-      __u = (void *) __u + 4;
-      __u->__ui = *(2 + (const unsigned int *) __src);
-      return __dest;
-    case 16:
-      __u->__ui = *(const unsigned int *) __src;
-      __u = (void *) __u + 4;
-      __u->__ui = *(1 + (const unsigned int *) __src);
-      __u = (void *) __u + 4;
-      __u->__ui = *(2 + (const unsigned int *) __src);
-      __u = (void *) __u + 4;
-      __u->__ui = *(3 + (const unsigned int *) __src);
-      return __dest;
-    case 20:
-      __u->__ui = *(const unsigned int *) __src;
-      __u = (void *) __u + 4;
-      __u->__ui = *(1 + (const unsigned int *) __src);
-      __u = (void *) __u + 4;
-      __u->__ui = *(2 + (const unsigned int *) __src);
-      __u = (void *) __u + 4;
-      __u->__ui = *(3 + (const unsigned int *) __src);
-      __u = (void *) __u + 4;
-      __u->__ui = *(4 + (const unsigned int *) __src);
-      return __dest;
-    }
-#define __COMMON_CODE(x) \
-  __asm__ __volatile__							      \
-    ("cld\n\t"								      \
-     "rep; movsl"							      \
-     x									      \
-     : "=&c" (__d0), "=&D" (__d1), "=&S" (__d2)				      \
-     : "0" (__n / 4), "1" (&__u->__uc), "2" (__src)			      \
-     : "memory");
-
-  switch (__n % 4)
-    {
-    case 0:
-      __COMMON_CODE ("");
-      break;
-    case 1:
-      __COMMON_CODE ("\n\tmovsb");
-      break;
-    case 2:
-      __COMMON_CODE ("\n\tmovsw");
-      break;
-    case 3:
-      __COMMON_CODE ("\n\tmovsw\n\tmovsb");
-      break;
-  }
-  return __dest;
-#undef __COMMON_CODE
-}
-
-
-/* Copy N bytes of SRC to DEST, guaranteeing
-   correct behavior for overlapping strings.  */
-#define _HAVE_STRING_ARCH_memmove 1
-#ifndef _FORCE_INLINES
-__STRING_INLINE void *
-memmove (void *__dest, __const void *__src, size_t __n)
-{
-  register unsigned long int __d0, __d1, __d2;
-  if (__dest < __src)
-    __asm__ __volatile__
-      ("cld\n\t"
-       "rep\n\t"
-       "movsb"
-       : "=&c" (__d0), "=&S" (__d1), "=&D" (__d2)
-       : "0" (__n), "1" (__src), "2" (__dest)
-       : "memory");
-  else
-    __asm__ __volatile__
-      ("std\n\t"
-       "rep\n\t"
-       "movsb\n\t"
-       "cld"
-       : "=&c" (__d0), "=&S" (__d1), "=&D" (__d2)
-       : "0" (__n), "1" (__n - 1 + (const char *) __src),
-	 "2" (__n - 1 + (char *) __dest)
-       : "memory");
-  return __dest;
-}
-#endif
-
-/* Set N bytes of S to C.  */
-#define _HAVE_STRING_ARCH_memset 1
-#define _USE_STRING_ARCH_memset 1
-#define memset(s, c, n) \
-  (__extension__ (__builtin_constant_p (c)				      \
-		  ? (__builtin_constant_p (n)				      \
-		     ? __memset_cc (s, 0x01010101UL * (unsigned char) (c), n) \
-		     : __memset_cg (s, 0x01010101UL * (unsigned char) (c), n))\
-		  : __memset_gg (s, c, n)))
-
-__STRING_INLINE void *__memset_cc (void *__s, unsigned long int __pattern,
-				   size_t __n);
-
-__STRING_INLINE void *
-__memset_cc (void *__s, unsigned long int __pattern, size_t __n)
-{
-  register unsigned long int __d0, __d1;
-  union {
-    unsigned int __ui;
-    unsigned short int __usi;
-    unsigned char __uc;
-  } *__u = __s;
-  switch (__n)
-    {
-    case 0:
-      return __s;
-    case 1:
-      __u->__uc = __pattern;
-      return __s;
-    case 2:
-      __u->__usi = __pattern;
-      return __s;
-    case 3:
-      __u->__usi = __pattern;
-      __u = __extension__ ((void *) __u + 2);
-      __u->__uc = __pattern;
-      return __s;
-    case 4:
-      __u->__ui = __pattern;
-      return __s;
-	}
-#define __COMMON_CODE(x) \
-  __asm__ __volatile__							      \
-    ("cld\n\t"								      \
-     "rep; stosl"							      \
-     x									      \
-     : "=&c" (__d0), "=&D" (__d1)					      \
-     : "a" (__pattern), "0" (__n / 4), "1" (&__u->__uc)			      \
-     : "memory")
-
-  switch (__n % 4)
-    {
-    case 0:
-      __COMMON_CODE ("");
-      break;
-    case 1:
-      __COMMON_CODE ("\n\tstosb");
-      break;
-    case 2:
-      __COMMON_CODE ("\n\tstosw");
-      break;
-    case 3:
-      __COMMON_CODE ("\n\tstosw\n\tstosb");
-      break;
-    }
-  return __s;
-#undef __COMMON_CODE
-}
-
-__STRING_INLINE void *__memset_cg (void *__s, unsigned long __c, size_t __n);
-
-__STRING_INLINE void *
-__memset_cg (void *__s, unsigned long __c, size_t __n)
-{
-  register unsigned long int __d0, __d1;
-  __asm__ __volatile__
-    ("cld\n\t"
-     "rep; stosl\n\t"
-     "testb	$2,%b3\n\t"
-     "je	1f\n\t"
-     "stosw\n"
-     "1:\n\t"
-     "testb	$1,%b3\n\t"
-     "je	2f\n\t"
-     "stosb\n"
-     "2:"
-     : "=&c" (__d0), "=&D" (__d1)
-     : "a" (__c), "q" (__n), "0" (__n / 4), "1" (__s)
-     : "memory");
-  return __s;
-}
-
-__STRING_INLINE void *__memset_gg (void *__s, char __c, size_t __n);
-
-__STRING_INLINE void *
-__memset_gg (void *__s, char __c, size_t __n)
-{
-  register unsigned long int __d0, __d1;
-  __asm__ __volatile__
-    ("cld\n\t"
-     "rep; stosb"
-     : "=&D" (__d0), "=&c" (__d1)
-     : "a" (__c), "0" (__s), "1" (__n)
-     : "memory");
-  return __s;
-}
-
-
-
-
-/* Search N bytes of S for C.  */
-#define _HAVE_STRING_ARCH_memchr 1
-#ifndef _FORCE_INLINES
-__STRING_INLINE void *
-memchr (__const void *__s, int __c, size_t __n)
-{
-  register unsigned long int __d0;
-  register void *__res;
-  if (__n == 0)
-    return NULL;
-  __asm__ __volatile__
-    ("cld\n\t"
-     "repne; scasb\n\t"
-     "je 1f\n\t"
-     "movl $1,%0\n"
-     "1:"
-     : "=D" (__res), "=&c" (__d0)
-     : "a" (__c), "0" (__s), "1" (__n)
-     : "cc");
-  return __res - 1;
-}
-#endif
-
-#define _HAVE_STRING_ARCH_memrchr 1
-#ifndef _FORCE_INLINES
-__STRING_INLINE void *
-__memrchr (__const void *__s, int __c, size_t __n)
-{
-  register unsigned long int __d0;
-  register void *__res;
-  if (__n == 0)
-    return NULL;
-  __asm__ __volatile__
-    ("std\n\t"
-     "repne; scasb\n\t"
-     "je 1f\n\t"
-     "orl $-1,%0\n"
-     "1:\tcld"
-     : "=D" (__res), "=&c" (__d0)
-     : "a" (__c), "0" (__s + __n - 1), "1" (__n)
-     : "cc");
-  return __res + 1;
-}
-# ifdef __USE_GNU
-#  define memrchr(s, c, n) __memrchr (s, c, n)
-# endif
-#endif
-
-/* Return the length of S.  */
-#define _HAVE_STRING_ARCH_strlen 1
-#ifndef _FORCE_INLINES
-__STRING_INLINE size_t
-strlen (__const char *__str)
-{
-  register unsigned long int __d0;
-  register size_t __res;
-  __asm__ __volatile__
-    ("cld\n\t"
-     "repne; scasb\n\t"
-     "notl %0"
-     : "=c" (__res), "=&D" (__d0)
-     : "1" (__str), "a" (0), "0" (0xffffffff)
-     : "cc");
-  return __res - 1;
-}
-#endif
-
-/* Copy SRC to DEST.  */
-#define _HAVE_STRING_ARCH_strcpy 1
-#ifndef _FORCE_INLINES
-__STRING_INLINE char *
-strcpy (char *__dest, __const char *__src)
-{
-  register unsigned long int __d0, __d1;
-  __asm__ __volatile__
-    ("cld\n"
-     "1:\n\t"
-     "lodsb\n\t"
-     "stosb\n\t"
-     "testb	%%al,%%al\n\t"
-     "jne	1b"
-     : "=&S" (__d0), "=&D" (__d1)
-     : "0" (__src), "1" (__dest)
-     : "ax", "memory", "cc");
-  return __dest;
-}
-#endif
-
-/* Copy no more than N characters of SRC to DEST.  */
-#define _HAVE_STRING_ARCH_strncpy 1
-#ifndef _FORCE_INLINES
-__STRING_INLINE char *
-strncpy (char *__dest, __const char *__src, size_t __n)
-{
-  register unsigned long int __d0, __d1, __d2;
-  __asm__ __volatile__
-    ("cld\n"
-     "1:\n\t"
-     "decl	%2\n\t"
-     "js	2f\n\t"
-     "lodsb\n\t"
-     "stosb\n\t"
-     "testb	%%al,%%al\n\t"
-     "jne	1b\n\t"
-     "rep; stosb\n"
-     "2:"
-     : "=&S" (__d0), "=&D" (__d1), "=&c" (__d2)
-     : "0" (__src), "1" (__dest), "2" (__n)
-     : "ax", "memory", "cc");
-  return __dest;
-}
-#endif
-
-/* Append SRC onto DEST.  */
-#define _HAVE_STRING_ARCH_strcat 1
-#ifndef _FORCE_INLINES
-__STRING_INLINE char *
-strcat (char *__dest, __const char *__src)
-{
-  register unsigned long int __d0, __d1, __d2, __d3;
-  __asm__ __volatile__
-    ("cld\n\t"
-     "repne; scasb\n\t"
-     "decl	%1\n"
-     "1:\n\t"
-     "lodsb\n\t"
-     "stosb\n\t"
-     "testb	%%al,%%al\n\t"
-     "jne	1b"
-     : "=&S" (__d0), "=&D" (__d1), "=&c" (__d2), "=&a" (__d3)
-     : "0" (__src), "1" (__dest), "2" (0xffffffff), "3" (0)
-     : "memory", "cc");
-  return __dest;
-}
-#endif
-
-/* Append no more than N characters from SRC onto DEST.  */
-#define _HAVE_STRING_ARCH_strncat 1
-#ifndef _FORCE_INLINES
-__STRING_INLINE char *
-strncat (char *__dest, __const char *__src, size_t __n)
-{
-  register unsigned long int __d0, __d1, __d2, __d3;
-  __asm__ __volatile__
-    ("cld\n\t"
-     "repne; scasb\n\t"
-     "decl	%1\n\t"
-     "movl	%4,%2\n"
-     "1:\n\t"
-     "decl	%2\n\t"
-     "js	2f\n\t"
-     "lodsb\n\t"
-     "stosb\n\t"
-     "testb	%%al,%%al\n\t"
-     "jne	1b\n\t"
-     "jmp	3f\n"
-     "2:\n\t"
-     "xorl	%3,%3\n\t"
-     "stosb\n"
-     "3:"
-     : "=&S" (__d0), "=&D" (__d1), "=&c" (__d2), "=&a" (__d3)
-     : "g" (__n), "0" (__src), "1" (__dest), "2" (0xffffffff), "3" (0)
-     : "memory", "cc");
-  return __dest;
-}
-#endif
-
-/* Compare S1 and S2.  */
-#define _HAVE_STRING_ARCH_strcmp 1
-#ifndef _FORCE_INLINES
-__STRING_INLINE int
-strcmp (__const char *__s1, __const char *__s2)
-{
-  register unsigned long int __d0, __d1;
-  register int __res;
-  __asm__ __volatile__
-    ("cld\n"
-     "1:\n\t"
-     "lodsb\n\t"
-     "scasb\n\t"
-     "jne	2f\n\t"
-     "testb	%%al,%%al\n\t"
-     "jne	1b\n\t"
-     "xorl	%%eax,%%eax\n\t"
-     "jmp	3f\n"
-     "2:\n\t"
-     "sbbl	%%eax,%%eax\n\t"
-     "orb	$1,%%al\n"
-     "3:"
-     : "=a" (__res), "=&S" (__d0), "=&D" (__d1)
-     : "1" (__s1), "2" (__s2)
-     : "cc");
-  return __res;
-}
-#endif
-
-/* Compare N characters of S1 and S2.  */
-#define _HAVE_STRING_ARCH_strncmp 1
-#ifndef _FORCE_INLINES
-__STRING_INLINE int
-strncmp (__const char *__s1, __const char *__s2, size_t __n)
-{
-  register unsigned long int __d0, __d1, __d2;
-  register int __res;
-  __asm__ __volatile__
-    ("cld\n"
-     "1:\n\t"
-     "decl	%3\n\t"
-     "js	2f\n\t"
-     "lodsb\n\t"
-     "scasb\n\t"
-     "jne	3f\n\t"
-     "testb	%%al,%%al\n\t"
-     "jne	1b\n"
-     "2:\n\t"
-     "xorl	%%eax,%%eax\n\t"
-     "jmp	4f\n"
-     "3:\n\t"
-     "sbbl	%%eax,%%eax\n\t"
-     "orb	$1,%%al\n"
-     "4:"
-     : "=a" (__res), "=&S" (__d0), "=&D" (__d1), "=&c" (__d2)
-     : "1" (__s1), "2" (__s2), "3" (__n)
-     : "cc");
-  return __res;
-}
-#endif
-
-/* Find the first occurrence of C in S.  */
-#define _HAVE_STRING_ARCH_strchr 1
-#define _USE_STRING_ARCH_strchr 1
-#define strchr(s, c) \
-  (__extension__ (__builtin_constant_p (c)				      \
-		  ? __strchr_c (s, ((c) & 0xff) << 8)			      \
-		  : __strchr_g (s, c)))
-
-__STRING_INLINE char *__strchr_g (__const char *__s, int __c);
-
-__STRING_INLINE char *
-__strchr_g (__const char *__s, int __c)
-{
-  register unsigned long int __d0;
-  register char *__res;
-  __asm__ __volatile__
-    ("cld\n\t"
-     "movb	%%al,%%ah\n"
-     "1:\n\t"
-     "lodsb\n\t"
-     "cmpb	%%ah,%%al\n\t"
-     "je	2f\n\t"
-     "testb	%%al,%%al\n\t"
-     "jne	1b\n\t"
-     "movl	$1,%1\n"
-     "2:\n\t"
-     "movl	%1,%0"
-     : "=a" (__res), "=&S" (__d0)
-     : "0" (__c), "1" (__s)
-     : "cc");
-  return __res - 1;
-}
-
-__STRING_INLINE char *__strchr_c (__const char *__s, int __c);
-
-__STRING_INLINE char *
-__strchr_c (__const char *__s, int __c)
-{
-  register unsigned long int __d0;
-  register char *__res;
-  __asm__ __volatile__
-    ("cld\n\t"
-     "1:\n\t"
-     "lodsb\n\t"
-     "cmpb	%%ah,%%al\n\t"
-     "je	2f\n\t"
-     "testb	%%al,%%al\n\t"
-     "jne	1b\n\t"
-     "movl	$1,%1\n"
-     "2:\n\t"
-     "movl	%1,%0"
-     : "=a" (__res), "=&S" (__d0)
-     : "0" (__c), "1" (__s)
-     : "cc");
-  return __res - 1;
-}
-
-
-/* Find the first occurrence of C in S or the final NUL byte.  */
-#define _HAVE_STRING_ARCH_strchrnul 1
-#define __strchrnul(s, c) \
-  (__extension__ (__builtin_constant_p (c)				      \
-		  ? ((c) == '\0'					      \
-		     ? (char *) __rawmemchr (s, c)			      \
-		     : __strchrnul_c (s, ((c) & 0xff) << 8))		      \
-		  : __strchrnul_g (s, c)))
-
-__STRING_INLINE char *__strchrnul_g (__const char *__s, int __c);
-
-__STRING_INLINE char *
-__strchrnul_g (__const char *__s, int __c)
-{
-  register unsigned long int __d0;
-  register char *__res;
-  __asm__ __volatile__
-    ("cld\n\t"
-     "movb	%%al,%%ah\n"
-     "1:\n\t"
-     "lodsb\n\t"
-     "cmpb	%%ah,%%al\n\t"
-     "je	2f\n\t"
-     "testb	%%al,%%al\n\t"
-     "jne	1b\n\t"
-     "2:\n\t"
-     "movl	%1,%0"
-     : "=a" (__res), "=&S" (__d0)
-     : "0" (__c), "1" (__s)
-     : "cc");
-  return __res - 1;
-}
-
-__STRING_INLINE char *__strchrnul_c (__const char *__s, int __c);
-
-__STRING_INLINE char *
-__strchrnul_c (__const char *__s, int __c)
-{
-  register unsigned long int __d0;
-  register char *__res;
-  __asm__ __volatile__
-    ("cld\n\t"
-     "1:\n\t"
-     "lodsb\n\t"
-     "cmpb	%%ah,%%al\n\t"
-     "je	2f\n\t"
-     "testb	%%al,%%al\n\t"
-     "jne	1b\n\t"
-     "2:\n\t"
-     "movl	%1,%0"
-     : "=a" (__res), "=&S" (__d0)
-     : "0" (__c), "1" (__s)
-     : "cc");
-  return __res - 1;
-}
-#ifdef __USE_GNU
-# define strchrnul(s, c) __strchrnul (s, c)
-#endif
-
-
-/* Return the length of the initial segment of S which
-   consists entirely of characters not in REJECT.  */
-#define _HAVE_STRING_ARCH_strcspn 1
-#ifndef _FORCE_INLINES
-# ifdef __PIC__
-__STRING_INLINE size_t
-strcspn (__const char *__s, __const char *__reject)
-{
-  register unsigned long int __d0, __d1, __d2;
-  register char *__res;
-  __asm__ __volatile__
-    ("pushl	%%ebx\n\t"
-     "cld\n\t"
-     "movl	%4,%%edi\n\t"
-     "repne; scasb\n\t"
-     "notl	%%ecx\n\t"
-     "decl	%%ecx\n\t"
-     "movl	%%ecx,%%ebx\n"
-     "1:\n\t"
-     "lodsb\n\t"
-     "testb	%%al,%%al\n\t"
-     "je	2f\n\t"
-     "movl	%4,%%edi\n\t"
-     "movl	%%ebx,%%ecx\n\t"
-     "repne; scasb\n\t"
-     "jne	1b\n"
-     "2:\n\t"
-     "popl	%%ebx"
-     : "=&S" (__res), "=&a" (__d0), "=&c" (__d1), "=&D" (__d2)
-     : "d" (__reject), "0" (__s), "1" (0), "2" (0xffffffff)
-     : "cc");
-  return (__res - 1) - __s;
-}
-# else
-__STRING_INLINE size_t
-strcspn (__const char *__s, __const char *__reject)
-{
-  register unsigned long int __d0, __d1, __d2, __d3;
-  register char *__res;
-  __asm__ __volatile__
-    ("cld\n\t"
-     "movl	%5,%%edi\n\t"
-     "repne; scasb\n\t"
-     "notl	%%ecx\n\t"
-     "decl	%%ecx\n\t"
-     "movl	%%ecx,%%edx\n"
-     "1:\n\t"
-     "lodsb\n\t"
-     "testb	%%al,%%al\n\t"
-     "je	2f\n\t"
-     "movl	%5,%%edi\n\t"
-     "movl	%%edx,%%ecx\n\t"
-     "repne; scasb\n\t"
-     "jne	1b\n"
-     "2:"
-     : "=&S" (__res), "=&a" (__d0), "=&c" (__d1), "=&d" (__d2), "=&D" (__d3)
-     : "g" (__reject), "0" (__s), "1" (0), "2" (0xffffffff)
-     : "cc");
-  return (__res - 1) - __s;
-}
-# endif
-#endif
-
-
-/* Return the length of the initial segment of S which
-   consists entirely of characters in ACCEPT.  */
-#define _HAVE_STRING_ARCH_strspn 1
-#ifndef _FORCE_INLINES
-# ifdef __PIC__
-__STRING_INLINE size_t
-strspn (__const char *__s, __const char *__accept)
-{
-  register unsigned long int __d0, __d1, __d2;
-  register char *__res;
-  __asm__ __volatile__
-    ("pushl	%%ebx\n\t"
-     "cld\n\t"
-     "movl	%4,%%edi\n\t"
-     "repne; scasb\n\t"
-     "notl	%%ecx\n\t"
-     "decl	%%ecx\n\t"
-     "movl	%%ecx,%%ebx\n"
-     "1:\n\t"
-     "lodsb\n\t"
-     "testb	%%al,%%al\n\t"
-     "je	2f\n\t"
-     "movl	%4,%%edi\n\t"
-     "movl	%%ebx,%%ecx\n\t"
-     "repne; scasb\n\t"
-     "je	1b\n"
-     "2:\n\t"
-     "popl	%%ebx"
-     : "=&S" (__res), "=&a" (__d0), "=&c" (__d1), "=&D" (__d2)
-     : "r" (__accept), "0" (__s), "1" (0), "2" (0xffffffff)
-     : "cc");
-  return (__res - 1) - __s;
-}
-# else
-__STRING_INLINE size_t
-strspn (__const char *__s, __const char *__accept)
-{
-  register unsigned long int __d0, __d1, __d2, __d3;
-  register char *__res;
-  __asm__ __volatile__
-    ("cld\n\t"
-     "movl	%5,%%edi\n\t"
-     "repne; scasb\n\t"
-     "notl	%%ecx\n\t"
-     "decl	%%ecx\n\t"
-     "movl	%%ecx,%%edx\n"
-     "1:\n\t"
-     "lodsb\n\t"
-     "testb	%%al,%%al\n\t"
-     "je	2f\n\t"
-     "movl	%5,%%edi\n\t"
-     "movl	%%edx,%%ecx\n\t"
-     "repne; scasb\n\t"
-     "je	1b\n"
-     "2:"
-     : "=&S" (__res), "=&a" (__d0), "=&c" (__d1), "=&d" (__d2), "=&D" (__d3)
-     : "g" (__accept), "0" (__s), "1" (0), "2" (0xffffffff)
-     : "cc");
-  return (__res - 1) - __s;
-}
-# endif
-#endif
-
-
-/* Find the first occurrence in S of any character in ACCEPT.  */
-#define _HAVE_STRING_ARCH_strpbrk 1
-#ifndef _FORCE_INLINES
-# ifdef __PIC__
-__STRING_INLINE char *
-strpbrk (__const char *__s, __const char *__accept)
-{
-  unsigned long int __d0, __d1, __d2;
-  register char *__res;
-  __asm__ __volatile__
-    ("pushl	%%ebx\n\t"
-     "cld\n\t"
-     "movl	%4,%%edi\n\t"
-     "repne; scasb\n\t"
-     "notl	%%ecx\n\t"
-     "decl	%%ecx\n\t"
-     "movl	%%ecx,%%ebx\n"
-     "1:\n\t"
-     "lodsb\n\t"
-     "testb	%%al,%%al\n\t"
-     "je	2f\n\t"
-     "movl	%4,%%edi\n\t"
-     "movl	%%ebx,%%ecx\n\t"
-     "repne; scasb\n\t"
-     "jne	1b\n\t"
-     "decl	%0\n\t"
-     "jmp	3f\n"
-     "2:\n\t"
-     "xorl	%0,%0\n"
-     "3:\n\t"
-     "popl	%%ebx"
-     : "=&S" (__res), "=&a" (__d0), "=&c" (__d1), "=&D" (__d2)
-     : "r" (__accept), "0" (__s), "1" (0), "2" (0xffffffff)
-     : "cc");
-  return __res;
-}
-# else
-__STRING_INLINE char *
-strpbrk (__const char *__s, __const char *__accept)
-{
-  register unsigned long int __d0, __d1, __d2, __d3;
-  register char *__res;
-  __asm__ __volatile__
-    ("cld\n\t"
-     "movl	%5,%%edi\n\t"
-     "repne; scasb\n\t"
-     "notl	%%ecx\n\t"
-     "decl	%%ecx\n\t"
-     "movl	%%ecx,%%edx\n"
-     "1:\n\t"
-     "lodsb\n\t"
-     "testb	%%al,%%al\n\t"
-     "je	2f\n\t"
-     "movl	%5,%%edi\n\t"
-     "movl	%%edx,%%ecx\n\t"
-     "repne; scasb\n\t"
-     "jne	1b\n\t"
-     "decl	%0\n\t"
-     "jmp	3f\n"
-     "2:\n\t"
-     "xorl	%0,%0\n"
-     "3:"
-     : "=&S" (__res), "=&a" (__d0), "=&c" (__d1), "=&d" (__d2), "=&D" (__d3)
-     : "g" (__accept), "0" (__s), "1" (0), "2" (0xffffffff)
-     : "cc");
-  return __res;
-}
-# endif
-#endif
-
-
-/* Find the first occurrence of NEEDLE in HAYSTACK.  */
-#define _HAVE_STRING_ARCH_strstr 1
-#ifndef _FORCE_INLINES
-# ifdef __PIC__
-__STRING_INLINE char *
-strstr (__const char *__haystack, __const char *__needle)
-{
-  register unsigned long int __d0, __d1, __d2;
-  register char *__res;
-  __asm__ __volatile__
-    ("pushl	%%ebx\n\t"
-     "cld\n\t" \
-     "movl	%4,%%edi\n\t"
-     "repne; scasb\n\t"
-     "notl	%%ecx\n\t"
-     "decl	%%ecx\n\t"	/* NOTE! This also sets Z if searchstring='' */
-     "movl	%%ecx,%%ebx\n"
-     "1:\n\t"
-     "movl	%4,%%edi\n\t"
-     "movl	%%esi,%%eax\n\t"
-     "movl	%%ebx,%%ecx\n\t"
-     "repe; cmpsb\n\t"
-     "je	2f\n\t"		/* also works for empty string, see above */
-     "xchgl	%%eax,%%esi\n\t"
-     "incl	%%esi\n\t"
-     "cmpb	$0,-1(%%eax)\n\t"
-     "jne	1b\n\t"
-     "xorl	%%eax,%%eax\n\t"
-     "2:\n\t"
-     "popl	%%ebx"
-     : "=&a" (__res), "=&c" (__d0), "=&S" (__d1), "=&D" (__d2)
-     : "r" (__needle), "0" (0), "1" (0xffffffff), "2" (__haystack)
-     : "cc");
-  return __res;
-}
-# else
-__STRING_INLINE char *
-strstr (__const char *__haystack, __const char *__needle)
-{
-  register unsigned long int __d0, __d1, __d2, __d3;
-  register char *__res;
-  __asm__ __volatile__
-    ("cld\n\t" \
-     "movl	%5,%%edi\n\t"
-     "repne; scasb\n\t"
-     "notl	%%ecx\n\t"
-     "decl	%%ecx\n\t"	/* NOTE! This also sets Z if searchstring='' */
-     "movl	%%ecx,%%edx\n"
-     "1:\n\t"
-     "movl	%5,%%edi\n\t"
-     "movl	%%esi,%%eax\n\t"
-     "movl	%%edx,%%ecx\n\t"
-     "repe; cmpsb\n\t"
-     "je	2f\n\t"		/* also works for empty string, see above */
-     "xchgl	%%eax,%%esi\n\t"
-     "incl	%%esi\n\t"
-     "cmpb	$0,-1(%%eax)\n\t"
-     "jne	1b\n\t"
-     "xorl	%%eax,%%eax\n\t"
-     "2:"
-     : "=&a" (__res), "=&c" (__d0), "=&S" (__d1), "=&d" (__d2), "=&D" (__d3)
-     : "g" (__needle), "0" (0), "1" (0xffffffff), "2" (__haystack)
-     : "cc");
-  return __res;
-}
-# endif
-#endif
-
-#ifndef _FORCE_INLINES
-# undef __STRING_INLINE
-#endif
-
-#endif	/* use string inlines && GNU CC */

+ 0 - 26
libc/sysdeps/linux/sparc/bits/string.h

@@ -1,26 +0,0 @@
-/* Optimized, inlined string functions.  SPARC version.
-   Copyright (C) 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 _STRING_H
-# error "Never use <bits/string.h> directly; include <string.h> instead."
-#endif
-
-/* sparc32 and sparc64 strchr(x, '\0') perform better than
-   __rawmemchr(x, '\0').  */
-#define _HAVE_STRING_ARCH_strchr 1

+ 0 - 40
libpthread/linuxthreads/testrtsig.h

@@ -1,40 +0,0 @@
-/* Test whether RT signals are really available.
-   Copyright (C) 1997 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 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 <limits.h>
-#include <string.h>
-#include <sys/utsname.h>
-
-static int
-kernel_has_rtsig (void)
-{
-  return 0; /* hacked to test old uClibc that doesn't know about RT signals. 0.9.9 should work with RT signals. Make this proper in the end! */
-#ifdef RTSIG_MAX
-  return 1;
-#else
-  return 0;
-#endif
-
-/*
-  struct utsname name;
-
-  return uname (&name) == 0 && __strverscmp (name.release, "2.1.70") >= 0;
-*/
-}