OSDN Git Service

2008-12-31 Andreas Tobler <a.tobler@schweiz.org>
[pf3gnuchains/gcc-fork.git] / fixincludes / inclhack.def
index 04b0c82..63871c4 100644 (file)
@@ -28,37 +28,40 @@ FIXINC_DEBUG = yes;
  * building with g++ and -D_LARGE_FILES
  */
 fix = {
-       hackname  = AAB_aix_stdio;
-       files     = stdio.h;
-       select    = "define fopen fopen64";
-       mach      = "*-*-aix*";
-
-       c_fix     = wrap;
-
-       c_fix_arg = "";
-
-       c_fix_arg = "\n" 
-       "#if defined __GNUG__ && defined _LARGE_FILES && defined __cplusplus\n"
-       "#define __need__aix_stdio_h_fix\n"
-       "#ifdef __need__aix_stdio_h_fix\n"
-       "#undef fseeko\n"
-       "#undef ftello\n"
-       "#undef fgetpos\n"
-       "#undef fsetpos\n"
-       "#undef fopen\n"
-       "#undef freopen\n"
-       "/* Alias the symbols using asm */\n"
-       "extern \"C\" {\n"
-       "extern int fgetpos(FILE *, fpos64_t *) __asm__(\"fgetpos64\");\n"
-       "extern FILE *fopen(const char *, const char *) __asm__(\"fopen64\");\n"
-       "extern FILE *freopen(const char *, const char *, FILE *) __asm__(\"freopen64\");\n"
-       "extern int fseeko(FILE *, off64_t, int) __asm__(\"fseeko64\");\n"
-       "extern int fsetpos(FILE *, const fpos64_t *) __asm__(\"fsetpos64\");\n"
-       "extern off64_t ftello(FILE *) __asm__(\"ftello64\");\n"
-       "}\n"
-       "#endif\n"
-       "#endif\n";
-       test_text = "";
+    hackname  = AAB_aix_stdio;
+    files     = stdio.h;
+    select    = "define fopen fopen64";
+    mach      = "*-*-aix*";
+    test-text = ''; /* no way to test */
+
+    c_fix     = wrap;
+
+    c_fix_arg = "";
+
+    c_fix_arg = <<- _EOArg_
+
+       #if defined __GNUG__ && defined _LARGE_FILES && defined __cplusplus
+       #define __need__aix_stdio_h_fix
+       #ifdef __need__aix_stdio_h_fix
+       #undef fseeko
+       #undef ftello
+       #undef fgetpos
+       #undef fsetpos
+       #undef fopen
+       #undef freopen
+       /* Alias the symbols using asm */
+       extern "C" {
+       extern int fgetpos(FILE *, fpos64_t *) __asm__("fgetpos64");
+       extern FILE *fopen(const char *, const char *) __asm__("fopen64");
+       extern FILE *freopen(const char *, const char *, FILE *) __asm__("freopen64");
+       extern int fseeko(FILE *, off64_t, int) __asm__("fseeko64");
+       extern int fsetpos(FILE *, const fpos64_t *) __asm__("fsetpos64");
+       extern off64_t ftello(FILE *) __asm__("ftello64");
+       }
+       #endif
+       #endif
+
+       _EOArg_;
 };
 
 
@@ -72,86 +75,86 @@ fix = {
   files     = architecture/ppc/math.h;
   bypass    = "powl";
   replace = <<- _EndOfHeader_
-/* This file prototypes the long double functions available on Mac OS
-   10.3.9.  */
-#ifndef __MATH__
-# undef __APPLE_CC__
-# define __APPLE_CC__  1345
-# include_next <architecture/ppc/math.h>
-# undef __APPLE_CC__
-# define __APPLE_CC__ 1
-# ifndef __LIBMLDBL_COMPAT
-#  ifdef __LONG_DOUBLE_128__
-#   define __LIBMLDBL_COMPAT(sym) __asm("_" #sym "$LDBL128")
-#  else
-#   define __LIBMLDBL_COMPAT(sym)
-#  endif /* __LONG_DOUBLE_128__ */
-# endif /* __LIBMLDBL_COMPAT */
-# ifdef __cplusplus
-   extern "C" {
-# endif
-  extern long double acosl( long double ) __LIBMLDBL_COMPAT(acosl);
-  extern long double asinl( long double ) __LIBMLDBL_COMPAT(asinl);
-  extern long double atanl( long double ) __LIBMLDBL_COMPAT(atanl);
-  extern long double atan2l( long double, long double ) __LIBMLDBL_COMPAT(atan2l);
-  extern long double cosl( long double ) __LIBMLDBL_COMPAT(cosl);
-  extern long double sinl( long double ) __LIBMLDBL_COMPAT(sinl);
-  extern long double tanl( long double ) __LIBMLDBL_COMPAT(tanl);
-  extern long double acoshl( long double ) __LIBMLDBL_COMPAT(acoshl);
-  extern long double asinhl( long double ) __LIBMLDBL_COMPAT(asinhl);
-  extern long double atanhl( long double ) __LIBMLDBL_COMPAT(atanhl);
-  extern long double coshl( long double ) __LIBMLDBL_COMPAT(coshl);
-  extern long double sinhl( long double ) __LIBMLDBL_COMPAT(sinhl);
-  extern long double tanhl( long double ) __LIBMLDBL_COMPAT(tanhl);
-  extern long double expl( long double ) __LIBMLDBL_COMPAT(expl);
-  extern long double exp2l( long double ) __LIBMLDBL_COMPAT(exp2l);
-  extern long double expm1l( long double ) __LIBMLDBL_COMPAT(expm1l);
-  extern long double logl( long double ) __LIBMLDBL_COMPAT(logl);
-  extern long double log10l( long double ) __LIBMLDBL_COMPAT(log10l);
-  extern long double log2l( long double ) __LIBMLDBL_COMPAT(log2l);
-  extern long double log1pl( long double ) __LIBMLDBL_COMPAT(log1pl);
-  extern long double logbl( long double ) __LIBMLDBL_COMPAT(logbl);
-  extern long double modfl( long double, long double * ) __LIBMLDBL_COMPAT(modfl);
-  extern long double ldexpl( long double, int ) __LIBMLDBL_COMPAT(ldexpl);
-  extern long double frexpl( long double, int * ) __LIBMLDBL_COMPAT(frexpl);
-  extern int ilogbl( long double ) __LIBMLDBL_COMPAT(ilogbl);
-  extern long double scalbnl( long double, int ) __LIBMLDBL_COMPAT(scalbnl);
-  extern long double scalblnl( long double, long int ) __LIBMLDBL_COMPAT(scalblnl);
-  extern long double fabsl( long double ) __LIBMLDBL_COMPAT(fabsl);
-  extern long double cbrtl( long double ) __LIBMLDBL_COMPAT(cbrtl);
-  extern long double hypotl( long double, long double ) __LIBMLDBL_COMPAT(hypotl);
-  extern long double powl( long double, long double ) __LIBMLDBL_COMPAT(powl);
-  extern long double sqrtl( long double ) __LIBMLDBL_COMPAT(sqrtl);
-  extern long double erfl( long double ) __LIBMLDBL_COMPAT(erfl);
-  extern long double erfcl( long double ) __LIBMLDBL_COMPAT(erfcl);
-  extern long double lgammal( long double ) __LIBMLDBL_COMPAT(lgammal);
-  extern long double tgammal( long double ) __LIBMLDBL_COMPAT(tgammal);
-  extern long double ceill( long double ) __LIBMLDBL_COMPAT(ceill);
-  extern long double floorl( long double ) __LIBMLDBL_COMPAT(floorl);
-  extern long double nearbyintl( long double ) __LIBMLDBL_COMPAT(nearbyintl);
-  extern long double rintl( long double ) __LIBMLDBL_COMPAT(rintl);
-  extern long int lrintl( long double ) __LIBMLDBL_COMPAT(lrintl);
-  extern long long int llrintl( long double ) __LIBMLDBL_COMPAT(llrintl);
-  extern long double roundl( long double ) __LIBMLDBL_COMPAT(roundl);
-  extern long int lroundl( long double ) __LIBMLDBL_COMPAT(lroundl);
-  extern long long int llroundl( long double ) __LIBMLDBL_COMPAT(llroundl);
-  extern long double truncl( long double ) __LIBMLDBL_COMPAT(truncl);
-  extern long double fmodl( long double, long double) __LIBMLDBL_COMPAT(fmodl);
-  extern long double remainderl( long double, long double ) __LIBMLDBL_COMPAT(remainderl);
-  extern long double remquol( long double, long double, int * ) __LIBMLDBL_COMPAT(remquol);
-  extern long double copysignl( long double, long double ) __LIBMLDBL_COMPAT(copysignl);
-  extern long double nanl( const char * ) __LIBMLDBL_COMPAT(nanl);
-  extern long double nextafterl( long double, long double ) __LIBMLDBL_COMPAT(nextafterl);
-  extern long double nexttowardl( long double, long double ) __LIBMLDBL_COMPAT(nexttowardl);
-  extern long double fdiml( long double, long double ) __LIBMLDBL_COMPAT(fdiml);
-  extern long double fmaxl( long double, long double ) __LIBMLDBL_COMPAT(fmaxl);
-  extern long double fminl( long double, long double ) __LIBMLDBL_COMPAT(fminl);
-  extern long double fmal( long double, long double, long double ) __LIBMLDBL_COMPAT(fmal);
-# ifdef __cplusplus
-   }
-# endif
-#endif /* __MATH__ */
-_EndOfHeader_;
+       /* This file prototypes the long double functions available on Mac OS
+          10.3.9.  */
+       #ifndef __MATH__
+       # undef __APPLE_CC__
+       # define __APPLE_CC__  1345
+       # include_next <architecture/ppc/math.h>
+       # undef __APPLE_CC__
+       # define __APPLE_CC__ 1
+       # ifndef __LIBMLDBL_COMPAT
+       #  ifdef __LONG_DOUBLE_128__
+       #   define __LIBMLDBL_COMPAT(sym) __asm("_" #sym "$LDBL128")
+       #  else
+       #   define __LIBMLDBL_COMPAT(sym)
+       #  endif /* __LONG_DOUBLE_128__ */
+       # endif /* __LIBMLDBL_COMPAT */
+       # ifdef __cplusplus
+          extern "C" {
+       # endif
+         extern long double acosl( long double ) __LIBMLDBL_COMPAT(acosl);
+         extern long double asinl( long double ) __LIBMLDBL_COMPAT(asinl);
+         extern long double atanl( long double ) __LIBMLDBL_COMPAT(atanl);
+         extern long double atan2l( long double, long double ) __LIBMLDBL_COMPAT(atan2l);
+         extern long double cosl( long double ) __LIBMLDBL_COMPAT(cosl);
+         extern long double sinl( long double ) __LIBMLDBL_COMPAT(sinl);
+         extern long double tanl( long double ) __LIBMLDBL_COMPAT(tanl);
+         extern long double acoshl( long double ) __LIBMLDBL_COMPAT(acoshl);
+         extern long double asinhl( long double ) __LIBMLDBL_COMPAT(asinhl);
+         extern long double atanhl( long double ) __LIBMLDBL_COMPAT(atanhl);
+         extern long double coshl( long double ) __LIBMLDBL_COMPAT(coshl);
+         extern long double sinhl( long double ) __LIBMLDBL_COMPAT(sinhl);
+         extern long double tanhl( long double ) __LIBMLDBL_COMPAT(tanhl);
+         extern long double expl( long double ) __LIBMLDBL_COMPAT(expl);
+         extern long double exp2l( long double ) __LIBMLDBL_COMPAT(exp2l);
+         extern long double expm1l( long double ) __LIBMLDBL_COMPAT(expm1l);
+         extern long double logl( long double ) __LIBMLDBL_COMPAT(logl);
+         extern long double log10l( long double ) __LIBMLDBL_COMPAT(log10l);
+         extern long double log2l( long double ) __LIBMLDBL_COMPAT(log2l);
+         extern long double log1pl( long double ) __LIBMLDBL_COMPAT(log1pl);
+         extern long double logbl( long double ) __LIBMLDBL_COMPAT(logbl);
+         extern long double modfl( long double, long double * ) __LIBMLDBL_COMPAT(modfl);
+         extern long double ldexpl( long double, int ) __LIBMLDBL_COMPAT(ldexpl);
+         extern long double frexpl( long double, int * ) __LIBMLDBL_COMPAT(frexpl);
+         extern int ilogbl( long double ) __LIBMLDBL_COMPAT(ilogbl);
+         extern long double scalbnl( long double, int ) __LIBMLDBL_COMPAT(scalbnl);
+         extern long double scalblnl( long double, long int ) __LIBMLDBL_COMPAT(scalblnl);
+         extern long double fabsl( long double ) __LIBMLDBL_COMPAT(fabsl);
+         extern long double cbrtl( long double ) __LIBMLDBL_COMPAT(cbrtl);
+         extern long double hypotl( long double, long double ) __LIBMLDBL_COMPAT(hypotl);
+         extern long double powl( long double, long double ) __LIBMLDBL_COMPAT(powl);
+         extern long double sqrtl( long double ) __LIBMLDBL_COMPAT(sqrtl);
+         extern long double erfl( long double ) __LIBMLDBL_COMPAT(erfl);
+         extern long double erfcl( long double ) __LIBMLDBL_COMPAT(erfcl);
+         extern long double lgammal( long double ) __LIBMLDBL_COMPAT(lgammal);
+         extern long double tgammal( long double ) __LIBMLDBL_COMPAT(tgammal);
+         extern long double ceill( long double ) __LIBMLDBL_COMPAT(ceill);
+         extern long double floorl( long double ) __LIBMLDBL_COMPAT(floorl);
+         extern long double nearbyintl( long double ) __LIBMLDBL_COMPAT(nearbyintl);
+         extern long double rintl( long double ) __LIBMLDBL_COMPAT(rintl);
+         extern long int lrintl( long double ) __LIBMLDBL_COMPAT(lrintl);
+         extern long long int llrintl( long double ) __LIBMLDBL_COMPAT(llrintl);
+         extern long double roundl( long double ) __LIBMLDBL_COMPAT(roundl);
+         extern long int lroundl( long double ) __LIBMLDBL_COMPAT(lroundl);
+         extern long long int llroundl( long double ) __LIBMLDBL_COMPAT(llroundl);
+         extern long double truncl( long double ) __LIBMLDBL_COMPAT(truncl);
+         extern long double fmodl( long double, long double) __LIBMLDBL_COMPAT(fmodl);
+         extern long double remainderl( long double, long double ) __LIBMLDBL_COMPAT(remainderl);
+         extern long double remquol( long double, long double, int * ) __LIBMLDBL_COMPAT(remquol);
+         extern long double copysignl( long double, long double ) __LIBMLDBL_COMPAT(copysignl);
+         extern long double nanl( const char * ) __LIBMLDBL_COMPAT(nanl);
+         extern long double nextafterl( long double, long double ) __LIBMLDBL_COMPAT(nextafterl);
+         extern long double nexttowardl( long double, long double ) __LIBMLDBL_COMPAT(nexttowardl);
+         extern long double fdiml( long double, long double ) __LIBMLDBL_COMPAT(fdiml);
+         extern long double fmaxl( long double, long double ) __LIBMLDBL_COMPAT(fmaxl);
+         extern long double fminl( long double, long double ) __LIBMLDBL_COMPAT(fminl);
+         extern long double fmal( long double, long double, long double ) __LIBMLDBL_COMPAT(fmal);
+       # ifdef __cplusplus
+          }
+       # endif
+       #endif /* __MATH__ */
+       _EndOfHeader_;
 };
 
 
@@ -182,6 +185,7 @@ fix = {
     mach     = 'i[34567]86-*-linux*';
     bypass   = '} while';
     bypass   = 'x86_64';
+    bypass   = 'posix_types_64';
 
     /*
      * Define _POSIX_TYPES_H_WRAPPER at the end of the wrapper, not
@@ -201,10 +205,10 @@ fix = {
        #define __FD_ZERO(fdsetp) \
          do { \
            int __d0, __d1; \
-                       __asm__ __volatile__("cld ; rep ; stosl" \
-                               : "=&c" (__d0), "=&D" (__d1) \
-                               : "a" (0), "0" (__FDSET_LONGS), \
-                                 "1" ((__kernel_fd_set *) (fdsetp)) :"memory"); \
+               __asm__ __volatile__("cld ; rep ; stosl" \
+                       : "=&c" (__d0), "=&D" (__d1) \
+                       : "a" (0), "0" (__FDSET_LONGS), \
+                         "1" ((__kernel_fd_set *) (fdsetp)) :"memory"); \
          } while (0)
        #endif
        
@@ -347,255 +351,6 @@ fix = {
          extern int memcmp();
 
        #endif /* __memory_h__ */
-       _EndOfHeader;
-};
-
-
-/*
- *  Completely replace <sys/varargs.h> with a file that includes gcc's
- *  stdarg.h or varargs.h files as appropriate.
- */
-#ifdef SVR4
-fix = {
-    hackname = AAB_svr4_no_varargs;
-    files    = sys/varargs.h;
-    replace  = "/* This file was generated by fixincludes.  */\n"
-               "#ifndef _SYS_VARARGS_H\n"
-               "#define _SYS_VARARGS_H\n\n"
-
-               "#ifdef __STDC__\n"
-               "#include <stdarg.h>\n"
-               "#else\n"
-               "#include <varargs.h>\n"
-               "#endif\n\n"
-
-               "#endif  /* _SYS_VARARGS_H */\n";
-};
-#endif
-
-
-/*
- *  Completely replace <sys/byteorder.h> with a file that implements gcc's
- *  optimized byteswapping.  (The original probably implemented some
- *  incompatible optimized byteswapping.)
- */
-fix = {
-    hackname = AAB_svr4_replace_byteorder;
-    mach     = "*-*-sysv4*";
-    mach     = "i[34567]86-*-sysv5*";
-    mach     = "i[34567]86-*-sco3.2v5*";
-    mach     = "i[34567]86-*-udk*";
-    mach     = "i[34567]86-*-solaris2.[0-4]";
-    mach     = "powerpcle-*-solaris2.[0-4]";
-    mach     = "sparc-*-solaris2.[0-4]";
-    mach     = "i[34567]86-sequent-ptx*";
-    files    = sys/byteorder.h;
-    replace  = <<-  _EndOfHeader_
-       #ifndef _SYS_BYTEORDER_H
-       #define _SYS_BYTEORDER_H
-
-       /* Functions to convert `short' and `long' quantities from host byte order
-          to (internet) network byte order (i.e. big-endian).
-
-          Written by Ron Guilmette (rfg@ncd.com).
-
-          This isn't actually used by GCC.  It is installed by fixinc.svr4.
-
-          For big-endian machines these functions are essentially no-ops.
-
-          For little-endian machines, we define the functions using specialized
-          asm sequences in cases where doing so yields better code (e.g. i386).  */
-
-       #if !defined (__GNUC__) && !defined (__GNUG__)
-         #error You lose!  This file is only useful with GNU compilers.
-       #endif
-
-       #ifndef __BYTE_ORDER__
-         /* Byte order defines.  These are as defined on UnixWare 1.1, but with
-            double underscores added at the front and back.  */
-         #define __LITTLE_ENDIAN__   1234
-         #define __BIG_ENDIAN__      4321
-         #define __PDP_ENDIAN__      3412
-       #endif
-
-       #ifdef __STDC__
-         static __inline__ unsigned long htonl (unsigned long);
-         static __inline__ unsigned short htons (unsigned int);
-         static __inline__ unsigned long ntohl (unsigned long);
-         static __inline__ unsigned short ntohs (unsigned int);
-       #endif /* defined (__STDC__) */
-
-       #if defined (__i386__)
-
-         #ifndef __BYTE_ORDER__
-           #define __BYTE_ORDER__ __LITTLE_ENDIAN__
-         #endif
-
-         /* Convert a host long to a network long.  */
-
-         /* We must use a new-style function definition, so that this will also
-            be valid for C++.  */
-         static __inline__ unsigned long
-         htonl (unsigned long __arg)
-         {
-           register unsigned long __result;
-
-           __asm__ ("xchg%B0 %b0,%h0
-                 ror%L0 $16,%0
-                 xchg%B0 %b0,%h0" : "=q" (__result) : "0" (__arg));
-           return __result;
-         }
-
-         /* Convert a host short to a network short.  */
-
-         static __inline__ unsigned short
-         htons (unsigned int __arg)
-         {
-           register unsigned short __result;
-
-           __asm__ ("xchg%B0 %b0,%h0" : "=q" (__result) : "0" (__arg));
-           return __result;
-         }
-
-       #elif (defined (__ns32k__) || defined (__vax__) || defined (__arm__))
-
-         #ifndef __BYTE_ORDER__
-           #define __BYTE_ORDER__ __LITTLE_ENDIAN__
-         #endif
-
-         /* For other little-endian machines, using C code is just as efficient as
-            using assembly code.  */
-
-         /* Convert a host long to a network long.  */
-
-         static __inline__ unsigned long
-         htonl (unsigned long __arg)
-         {
-           register unsigned long __result;
-
-           __result = (__arg >> 24) & 0x000000ff;
-           __result |= (__arg >> 8) & 0x0000ff00;
-           __result |= (__arg << 8) & 0x00ff0000;
-           __result |= (__arg << 24) & 0xff000000;
-           return __result;
-         }
-
-         /* Convert a host short to a network short.  */
-
-         static __inline__ unsigned short
-         htons (unsigned int __arg)
-         {
-           register unsigned short __result;
-
-           __result = (__arg << 8) & 0xff00;
-           __result |= (__arg >> 8) & 0x00ff;
-           return __result;
-         }
-
-       #else /* must be a big-endian machine */
-
-         #ifndef __BYTE_ORDER__
-           #define __BYTE_ORDER__ __BIG_ENDIAN__
-         #endif
-
-         /* Convert a host long to a network long.  */
-
-         static __inline__ unsigned long
-         htonl (unsigned long __arg)
-         {
-           return __arg;
-         }
-
-         /* Convert a host short to a network short.  */
-
-         static __inline__ unsigned short
-         htons (unsigned int __arg)
-         {
-           return __arg;
-         }
-
-       #endif /* big-endian */
-
-       /* Convert a network long to a host long.  */
-
-       static __inline__ unsigned long
-       ntohl (unsigned long __arg)
-       {
-         return htonl (__arg);
-       }
-
-       /* Convert a network short to a host short.  */
-
-       static __inline__ unsigned short
-       ntohs (unsigned int __arg)
-       {
-         return htons (__arg);
-       }
-       #endif
-       _EndOfHeader_;
-};
-
-
-/*
- *  Cancel out ansi_compat.h on Ultrix.  Replace it with an empty file.
- */
-fix = {
-    hackname = AAB_ultrix_ansi_compat;
-    files    = ansi_compat.h;
-    select   = ULTRIX;
-    replace  = "/* This file intentionally left blank.  */\n";
-};
-
-
-/*
- *  The Ultrix 4.3 file limits.h is a symbolic link to sys/limits.h.
- *  Replace limits.h with a file that includes sys/limits.h.
- */
-fix = {
-    hackname = AAB_ultrix_limits;
-    files    = limits.h;
-    mach     = "*-*-ultrix4.3";
-    replace  = <<-  _EndOfHeader_
-       #ifndef _LIMITS_INCLUDED
-         #define _LIMITS_INCLUDED
-         #include <sys/limits.h>
-       #endif /* _LIMITS_INCLUDED */
-       _EndOfHeader_;
-};
-
-
-/*
- *  The ULTRIX 4.3 version of memory.h duplicates definitions
- *  present in strings.h.  Replace memory.h with a file that includes
- *  strings.h to prevent problems from multiple inclusion.
- */
-fix = {
-    hackname = AAB_ultrix_memory;
-    files    = memory.h;
-    mach     = "*-*-ultrix4.3";
-    replace  = <<-  _EndOfHeader_
-       #ifndef _MEMORY_INCLUDED
-         #define _MEMORY_INCLUDED
-         #include <strings.h>
-       #endif /* _MEMORY_INCLUDED */
-       _EndOfHeader_;
-};
-
-
-/*
- *  The Ultrix 4.3 file string.h is a symbolic link to strings.h.
- *  Replace string.h link with a file that includes strings.h to prevent
- *  problems from multiple inclusion.
- */
-fix = {
-    hackname = AAB_ultrix_string;
-    files    = string.h;
-    mach     = "*-*-ultrix4.3";
-    replace  = <<-  _EndOfHeader_
-       #ifndef _STRING_INCLUDED
-         #define _STRING_INCLUDED
-         #include <strings.h>
-       #endif /* _STRING_INCLUDED */
        _EndOfHeader_;
 };
 
@@ -865,6 +620,7 @@ fix = {
                "#endif";
 };
 
+
 /*
  * Compaq Tru64 v5.1 defines all of its PTHREAD_*_INITIALIZER macros
  * incorrectly, specifying less fields in the initializers than are
@@ -884,32 +640,34 @@ fix = {
                 "s@CVALID\\(.*\\)_}@CVALID\\1_, 0, 0 }@\n"
                 "s@WVALID\\(.*\\)A}@WVALID\\1A, 0, 0, 0, 0, 0, 0, 0, 0, 0 }@\n"
                 "s@WVALID\\(.*\\)_}@WVALID\\1_, 0, 0, 0, 0, 0, 0, 0 }@\n";
-    test_text = "/*\n"
-                " * @(#)_RCSfile: pthread.h,v \\$ "
-                "_Revision: 1.1.33.21 \\$ (DEC) "
-                "_Date: 2000/08/15 15:30:13 \\$\n"
-                " */\n"
-"#ifndef _PTHREAD_NOMETER_STATIC\n"
-"# define PTHREAD_MUTEX_INITIALIZER \\\n"
-"    {_PTHREAD_MSTATE_CONFIG, _PTHREAD_MVALID | _PTHREAD_MVF_STA}\n"
-"# define PTHREAD_COND_INITIALIZER \\\n"
-"    {_PTHREAD_CSTATE_SLOW, _PTHREAD_CVALID | _PTHREAD_CVF_STA}\n"
-"# define PTHREAD_MUTEX_INITWITHNAME_NP(_n_,_a_) \\\n"
-"    {_PTHREAD_MSTATE_CONFIG, _PTHREAD_MVALID | _PTHREAD_MVF_STA, _n_, _a_}\n"
-"# define PTHREAD_COND_INITWITHNAME_NP(_n_,_a_) \\\n"
-"    {_PTHREAD_CSTATE_SLOW, _PTHREAD_CVALID | _PTHREAD_CVF_STA, _n_, _a_}\n"
-"#else\n"
-"# define PTHREAD_MUTEX_INITIALIZER {0, _PTHREAD_MVALID | _PTHREAD_MVF_STA}\n"
-"# define PTHREAD_MUTEX_INITWITHNAME_NP(_n_,_a_) \\\n"
-"    {0, _PTHREAD_MVALID | _PTHREAD_MVF_STA, _n_, _a_}\n"
-"# define PTHREAD_COND_INITWITHNAME_NP(_n_,_a_) \\\n"
-"    {0, _PTHREAD_CVALID | _PTHREAD_CVF_STA, _n_, _a_}\n"
-"#endif\n\n"
-"#define PTHREAD_RWLOCK_INITIALIZER {_PTHREAD_RWVALID | _PTHREAD_RWVF_STA}\n"
-"#define PTHREAD_RWLOCK_INITWITHNAME_NP(_n_,_a_) \\\n"
-"        {_PTHREAD_RWVALID | _PTHREAD_RWVF_STA, _n_, _a_}\n";
+    test_text = <<- _EOText_
+       /*
+        * @(#)_RCSfile: pthread.h,v $ _Revision: 1.1.33.21 $ (DEC) _Date: 2000/08/15 15:30:13 $
+        */
+       #ifndef _PTHREAD_NOMETER_STATIC
+       # define PTHREAD_MUTEX_INITIALIZER \
+           {_PTHREAD_MSTATE_CONFIG, _PTHREAD_MVALID | _PTHREAD_MVF_STA}
+       # define PTHREAD_COND_INITIALIZER \
+           {_PTHREAD_CSTATE_SLOW, _PTHREAD_CVALID | _PTHREAD_CVF_STA}
+       # define PTHREAD_MUTEX_INITWITHNAME_NP(_n_,_a_) \
+           {_PTHREAD_MSTATE_CONFIG, _PTHREAD_MVALID | _PTHREAD_MVF_STA, _n_, _a_}
+       # define PTHREAD_COND_INITWITHNAME_NP(_n_,_a_) \
+           {_PTHREAD_CSTATE_SLOW, _PTHREAD_CVALID | _PTHREAD_CVF_STA, _n_, _a_}
+       #else
+       # define PTHREAD_MUTEX_INITIALIZER {0, _PTHREAD_MVALID | _PTHREAD_MVF_STA}
+       # define PTHREAD_MUTEX_INITWITHNAME_NP(_n_,_a_) \
+           {0, _PTHREAD_MVALID | _PTHREAD_MVF_STA, _n_, _a_}
+       # define PTHREAD_COND_INITWITHNAME_NP(_n_,_a_) \
+           {0, _PTHREAD_CVALID | _PTHREAD_CVF_STA, _n_, _a_}
+       #endif
+
+       #define PTHREAD_RWLOCK_INITIALIZER {_PTHREAD_RWVALID | _PTHREAD_RWVF_STA}
+       #define PTHREAD_RWLOCK_INITWITHNAME_NP(_n_,_a_) \
+               {_PTHREAD_RWVALID | _PTHREAD_RWVF_STA, _n_, _a_}
+       _EOText_;
 };
 
+
 /*
  *  Fix return value of sbrk in unistd.h on Alpha OSF/1 V2.0
  *  And OpenBSD.
@@ -1097,10 +855,10 @@ fix = {
                 "extern long double cabsl( struct __cabsl_s );";
 };
 
+
 /*
  * Fixup Darwin's broken check for __builtin_nanf.
- */ 
-    
+ */    
 fix = {
     hackname  = broken_nan;
     /*
@@ -1116,7 +874,7 @@ fix = {
     c_fix     = format; 
     c_fix_arg = "#if 1";
     test_text = "#if defined(__APPLE_CC__) && (__APPLE_CC__ >= 1345)";
-}; 
+};
 
 
 /*
@@ -1380,11 +1138,11 @@ fix = {
     c_fix     = format;
     c_fix_arg = "%0 && (defined __extern_inline || defined __GNUC_GNU_INLINE__)";
     test_text = <<-EOT
-#if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ \
-    && !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__
-# define __USE_EXTERN_INLINES  1
-#endif
-EOT;
+       #if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ \
+           && !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__
+       # define __USE_EXTERN_INLINES   1
+       #endif
+       EOT;
 };
 
 
@@ -1399,10 +1157,10 @@ fix = {
     c_fix     = format;
     c_fix_arg = "%1 && (defined __extern_inline || defined __GNUC_GNU_INLINE__)\n%2";
     test_text = <<-EOT
-#if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__
-# define __USE_EXTERN_INLINES  1
-#endif
-EOT;
+       #if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__
+       # define __USE_EXTERN_INLINES   1
+       #endif
+       EOT;
 };
 
 
@@ -1473,10 +1231,12 @@ fix = {
     hackname = glibc_mutex_init;
     files    = pthread.h;
     select   = '\{ *\{ *0, *\} *\}';
-    sed      = "/define[ \t]\\+PTHREAD_MUTEX_INITIALIZER[ \t]*\\\\/,+1"
-               "s/{ { 0, } }/{ { 0, 0, 0, 0, 0, 0 } }/";
-    sed      = "s/{ \\(0, 0, 0, 0, PTHREAD_MUTEX_\\(RECURSIVE\\|ERRORCHECK\\|ADAPTIVE\\)_NP\\) }/{ \\1, 0 }/";
-    sed      = "s/{ \\(0, 0, 0, PTHREAD_MUTEX_\\(RECURSIVE\\|ERRORCHECK\\|ADAPTIVE\\)_NP\\) }/{ \\1, 0, 0 }/";
+    sed      = "/define[ \t]\\+PTHREAD_MUTEX_INITIALIZER[ \t]*\\\\/{\n"
+               "N\ns/{ { 0, } }/{ { 0, 0, 0, 0, 0, 0 } }/\n}";
+    sed      = "s/{ \\(0, 0, 0, 0, PTHREAD_MUTEX_"
+               "\\(RECURSIVE\\|ERRORCHECK\\|ADAPTIVE\\)_NP\\) }/{ \\1, 0 }/";
+    sed      = "s/{ \\(0, 0, 0, PTHREAD_MUTEX_"
+               "\\(RECURSIVE\\|ERRORCHECK\\|ADAPTIVE\\)_NP\\) }/{ \\1, 0, 0 }/";
     sed      = "/define[ \t]\\+PTHREAD_RWLOCK_INITIALIZER[ \t]*\\\\/"
                "N;s/^[ \t]*#[ \t]*"
                "\\(define[ \t]\\+PTHREAD_RWLOCK_INITIALIZER[ \t]*\\\\\\)\\n"
@@ -1487,44 +1247,45 @@ fix = {
                "#  \\1\\n"
                "  { { 0, 0, 0, 0, 0, 0, 0, 0 } }\\n"
                "# endif/";
-    sed      = "s/{ \\(0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP\\) }/{ \\1, 0 }/";
+    sed      = "s/{ \\(0, 0, 0, 0, 0, 0, "
+               "PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP\\) }/{ \\1, 0 }/";
     sed      = "/define[ \t]\\+PTHREAD_COND_INITIALIZER/"
                "s/{ { 0, } }/{ { 0, 0, 0, 0, 0, (void *) 0, 0, 0 } }/";
 
     test_text = <<- _EOText_
-#define PTHREAD_MUTEX_INITIALIZER \\
-  { { 0, } }
-#ifdef __USE_GNU
-# if __WORDSIZE == 64
-#  define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \\
-  { { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP } }
-#  define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \\
-  { { 0, 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP } }
-#  define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \\
-  { { 0, 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP } }
-# else
-#  define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \\
-  { { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP } }
-#  define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \\
-  { { 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP } }
-#  define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \\
-  { { 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP } }
-# endif
-#endif
-# define PTHREAD_RWLOCK_INITIALIZER \\
-  { { 0, } }
-# ifdef __USE_GNU
-#  if __WORDSIZE == 64
-#   define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \\
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,                                          \\
-      PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP } }
-#  else
-#   define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \\
-  { { 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP } }
-#  endif
-# endif
-#define PTHREAD_COND_INITIALIZER { { 0, } }
-_EOText_;
+       #define PTHREAD_MUTEX_INITIALIZER \\
+         { { 0, } }
+       #ifdef __USE_GNU
+       # if __WORDSIZE == 64
+       #  define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \\
+         { { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP } }
+       #  define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \\
+         { { 0, 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP } }
+       #  define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \\
+         { { 0, 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP } }
+       # else
+       #  define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \\
+         { { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP } }
+       #  define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \\
+         { { 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP } }
+       #  define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \\
+         { { 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP } }
+       # endif
+       #endif
+       # define PTHREAD_RWLOCK_INITIALIZER \\
+         { { 0, } }
+       # ifdef __USE_GNU
+       #  if __WORDSIZE == 64
+       #   define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \\
+         { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,                           \\
+             PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP } }
+       #  else
+       #   define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \\
+         { { 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP } }
+       #  endif
+       # endif
+       #define PTHREAD_COND_INITIALIZER { { 0, } }
+       _EOText_;
 };
 
 
@@ -1594,6 +1355,40 @@ fix = {
 
 
 /*
+ *  Un-Hide a series of five FP defines from post-1999 compliance GCC:
+ *  FP_NORMAL, FP_ZERO, FP_INFINITE, FP_SUBNORMAL and FP_NAN
+ */
+fix = {
+     hackname  = hppa_hpux_fp_macros;
+     mach      = "hppa*-hp-hpux11*";
+     files     = math.h;
+     select    = "#[ \t]*define[ \t]*FP_NORMAL.*\n"
+                "#[ \t]*define[ \t]*FP_ZERO.*\n"
+                "#[ \t]*define[ \t]*FP_INFINITE.*\n"
+                "#[ \t]*define[ \t]*FP_SUBNORMAL.*\n"
+                "#[ \t]*define[ \t]*FP_NAN.*\n";
+     c_fix     = format;
+     c_fix_arg = <<- _EOFix_
+       #endif /* _INCLUDE_HPUX_SOURCE */
+
+       #if defined(_INCLUDE_HPUX_SOURCE) || \
+          (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L))
+       %0#endif
+
+       #ifdef _INCLUDE_HPUX_SOURCE
+
+       _EOFix_;
+
+     test_text =
+            "#  define FP_NORMAL     0\n"
+            "#  define FP_ZERO       1\n"
+            "#  define FP_INFINITE   2\n"
+            "#  define FP_SUBNORMAL  3\n"
+            "#  define FP_NAN        4\n";
+};
+
+
+/*
  * Delete C++ double pow (double, int) inline function from HP-UX 10 & 11
  * math.h to prevent clash with define in c_std/bits/std_cmath.h.
  */
@@ -1641,27 +1436,6 @@ fix = {
 };
 
 
-fix = {
-     hackname  = hppa_hpux_fp_macros;
-     mach      = "hppa*-hp-hpux11*";
-     files     = math.h;
-     select    = "#[ \t]*define[ \t]*FP_NORMAL.*\n"
-                "#[ \t]*define[ \t]*FP_ZERO.*\n"
-                "#[ \t]*define[ \t]*FP_INFINITE.*\n"
-                "#[ \t]*define[ \t]*FP_SUBNORMAL.*\n"
-                "#[ \t]*define[ \t]*FP_NAN.*\n";
-     c_fix     = format;
-     c_fix_arg = "#endif /* _INCLUDE_HPUX_SOURCE */\n\n#if defined(_INCLUDE_HPUX_SOURCE) || (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L))\n%0#endif\n\n#ifdef _INCLUDE_HPUX_SOURCE\n";
-
-     test_text =
-            "#  define FP_NORMAL     0\n"
-            "#  define FP_ZERO       1\n"
-            "#  define FP_INFINITE   2\n"
-            "#  define FP_SUBNORMAL  3\n"
-            "#  define FP_NAN        4\n";
-};
-
-
 /*
  *  Fix hpux 10.X missing ctype declarations 1
  */
@@ -1757,7 +1531,6 @@ fix = {
     select    = "ifndef _MATH_INCLUDED";
     c_fix     = format;
     c_fix_arg = "if !defined(_MATH_INCLUDED) || defined(__GNUG__)";
-//  sed       = "s/ifndef _MATH_INCLUDED/if !defined(_MATH_INCLUDED) || defined(__GNUG__)/";
     test_text = "#ifndef _MATH_INCLUDED";
 };
 
@@ -1783,6 +1556,21 @@ fix = {
 
 
 /*
+ *  Fix C99 constant in __POINTER_SET define.
+ */
+fix = {
+    hackname  = hpux11_pthread_const;
+    mach      = "*-hp-hpux11.[0-3]*";
+    files     = sys/pthread.h;
+    select    = "^#define[ \t]*__POINTER_SET[ \t]*\\(\\(void \\*\\) 1LL\\)";
+
+    c_fix     = format;
+    c_fix_arg = "#define __POINTER_SET\t\t((void *) 1L)";
+    test_text = "#define __POINTER_SET\t\t((void *) 1LL)";
+};
+
+
+/*
  * Prevent HP-UX 11 from defining __size_t and preventing size_t from
  * being defined by having it define _hpux_size_t instead.
  */
@@ -1968,7 +1756,7 @@ fix = {
 fix = {
     hackname = hpux_spu_info;
     mach     = "*-hp-hpux*";
-    files    = ia64/sys/getppdp.h;
+    files    = "*/sys/getppdp.h";
     select   = "^.*extern.*spu_info.*";
 
     c_fix     = format;
@@ -2008,19 +1796,6 @@ fix = {
     test_text = "   extern int errno;\n";
 };
 
-/*
- *  Fix C99 constant in __POINTER_SET define.
- */
-fix = {
-    hackname  = hpux11_pthread_const;
-    mach      = "*-hp-hpux11.[0-3]*";
-    files     = sys/pthread.h;
-    select    = "^#define[ \t]*__POINTER_SET[ \t]*\\(\\(void \\*\\) 1LL\\)";
-
-    c_fix     = format;
-    c_fix_arg = "#define __POINTER_SET\t\t((void *) 1L)";
-    test_text = "#define __POINTER_SET\t\t((void *) 1LL)";
-};
 
 /*
  *  Add missing braces to pthread initializer defines.
@@ -2357,7 +2132,9 @@ fix = {
     c_fix_arg = "#if _NO_XOPEN5 && !defined(__c99)\n%1";
 
     test_text = "#if _NO_XOPEN5\n"
-               "extern size_t          wcsftime(wchar_t *, __SGI_LIBC_NAMESPACE_QUALIFIER size_t, const char *, const struct tm *);";
+               "extern size_t wcsftime(wchar_t *, "
+               "__SGI_LIBC_NAMESPACE_QUALIFIER size_t, const char *, "
+               "const struct tm *);";
 };
 
 /*
@@ -2422,56 +2199,6 @@ fix = {
 };
 
 
-/*
- *  Fix libc1 _G_va_list definition, used in declarations of several
- *  more-or-less standard functions, for example vasprintf.
- */
-fix = {
-    hackname = libc1_G_va_list;
-    files    = _G_config.h;
-    mach     = '*-*-linux*libc1';
-    select   = 'typedef void \* _G_va_list;';
-    c_fix     = format;
-    c_fix_arg = "typedef __builtin_va_list _G_va_list;";
-    test_text = 'typedef void * _G_va_list;';
-};
-
-
-/*
- *  GNU libc1 string.h does not prototype memcpy and memcmp for gcc
- *  versions > 1.  This fix will open up the declaration for all
- *  versions of GCC and for g++.
- */
-fix = {
-    hackname  = libc1_ifdefd_memx;
-
-    /* The string.h result is overwritten by AAB_ultrix_string when doing
-       "make check" and will fail.  Therefore, we add the following kludgery
-       to insert the test_text into the special testing header.  :-}  */
-    files     = testing.h;
-    files     = string.h;
-
-    c_fix     = format;
-    select    = "' is a built-in function for gcc 2\\.x\\. \\*/";
-    bypass    = __cplusplus;
-    c_fix_arg = "%1";
-    c_fix_arg =
-       '/\* `mem...\' is a built-in function for gcc 2\.x\. \*/' "\n"
-       '#if defined\(__STDC__\) && __GNUC__ < 2'                 "\n"
-       "(/\\* .* \\*/\n"
-       "extern [a-z_]+ mem.*(\n[^#].*)*;)\n"
-       "#endif";
-
-    test_text =
-    "/* \\`memcpy' is a built-in function for gcc 2.x. */\n"
-    "#if defined(__STDC__) && __GNUC__ < 2\n"
-    "/* Copy N bytes of SRC to DEST.  */\n"
-    "extern __ptr_t memcpy __P ((__ptr_t __dest, __const __ptr_t __src,\n"
-    "                         size_t __n));\n"
-    "#endif";
-};
-
-
 /* The /usr/include/sys/ucontext.h on ia64-*linux-gnu systems defines
  * an _SC_GR0_OFFSET macro using an idiom that isn't a compile time
  * constant on recent versions of g++.
@@ -2489,20 +2216,6 @@ fix = {
 };
 
 
-/*
- * Apparently some SVR4 systems typedef longlong_t to long ?
- */
-#ifdef SVR4
-fix = {
-    hackname  = longlong_t;
-    select    = "typedef[ \t]+(unsigned[ \t]+)?long[ \t]+(u_)?longlong_t";
-    c_fix     = format;
-    c_fix_arg = "typedef %1long long %2longlong_t";
-    test_text = "typedef long longlong_t\n"
-                "typedef unsigned long u_longlong_t";
-};
-#endif
-
 /* 
  *  Remove header file warning from sys/time.h.  Autoconf's
  *  AC_HEADER_TIME recommends to include both sys/time.h and time.h
@@ -2587,7 +2300,8 @@ fix = {
      * exception either.  So currently we bypass only for glibc, based on a
      * comment in the fixed glibc header.  Ick.
      */
-    bypass    = 'We have a problem when using C\+\+|for C\+\+, _[a-z0-9A-Z_]+_exception; for C, exception';
+    bypass    = 'We have a problem when using C\+\+|for C\+\+, '
+               '_[a-z0-9A-Z_]+_exception; for C, exception';
     c_fix     = wrap;
 
     c_fix_arg = "#ifdef __cplusplus\n"
@@ -2654,28 +2368,6 @@ fix = {
 
 
 /*
- * Fix nested comments in Motorola's <limits.h> and <sys/limits.h>
- */
-fix = {
-    hackname = nested_motorola;
-    mach     = "m68k-motorola-sysv*";
-    files    = sys/limits.h;
-    files    = limits.h;
-    select   = "max # bytes atomic in write|error value returned by Math lib";
-
-    sed = "s@^\\(#undef[ \t][ \t]*PIPE_BUF[ \t]*"
-                   "/\\* max # bytes atomic in write to a\\)$@\\1 */@";
-    sed = "s@\\(/\\*#define\tHUGE_VAL\t3.[0-9e+]* \\)"
-          "\\(/\\*error value returned by Math lib\\*/\\)$@\\1*/ \\2@";
-
-    test_text =
-    "#undef PIPE_BUF /* max # bytes atomic in write to a\n"
-    "\t\t/* PIPE */\n"
-    "/*#define\tHUGE_VAL\t3.9e+9 /*error value returned by Math lib*/";
-};
-
-
-/*
  * Fixing nested comments in ISC <sys/limits.h>
  */
 fix = {
@@ -2699,7 +2391,11 @@ fix = {
     select    = "extern __inline int";
 
     c_fix     = format;
-    c_fix_arg = "extern\n#ifdef __GNUC_STDC_INLINE__\n__attribute__((__gnu_inline__))\n#endif\n__inline int";
+    c_fix_arg = "extern\n"
+               "#ifdef __GNUC_STDC_INLINE__\n"
+               "__attribute__((__gnu_inline__))\n"
+               "#endif\n"
+               "__inline int";
 
     test_text = "extern __inline int\nsigaddset(sigset_t *set, int signo)\n{}";
 };
@@ -2845,6 +2541,19 @@ fix = {
     test_text = "*((void **) (h)->next_free)++ = (aptr)";
 };
 
+/* 
+ * Fix OpenBSD's va_start define.
+ */
+fix = {
+  hackname  = openbsd_va_start;
+  mach      = "*-*-openbsd*";
+  files     = stdarg.h;
+  select    = '__builtin_stdarg_start';
+  c_fix     = format;
+  c_fix_arg = __builtin_va_start;
+
+  test_text = "#define va_start(v,l)   __builtin_stdarg_start((v),l)";
+};
 
 /*
  *  sys/lc_core.h on some versions of OSF1/4.x pollutes the namespace by
@@ -2919,30 +2628,6 @@ fix = {
 };
 
 /*
- * On DYNIX/ptx, sys/mc_param.h has an embedded asm for the cpuid instruction
- * on the P5. This is not used by anything else so we ifdef it out.
- * Current GCC doesn't seem to complain about the asm, though.
- */
-#ifdef PTX
-fix = {
-    hackname  = ptx_sys_mc_param_h;
-    files     = sys/mc_param.h;
-    sed       = "/__asm/,/}/{"
-                  "/__asm/i\\\n"
-                  "#if !defined (__GNUC__) && !defined (__GNUG__)\n"
-                  "/}/a\\\n"
-                  "#endif\n"
-                "}";
-    test_text = "__asm\n"
-                "int _CPUID()\n"
-                "{\n"
-                "   non-GNU assembly here\n"
-                "}";
-};
-#endif
-
-
-/*
  *  Fix return type of fread and fwrite on sysV68
  */
 fix = {
@@ -3064,89 +2749,6 @@ fix = {
 
 
 /*
- *  On SCO OpenServer prior to 5.0.7UP1, <sys/regset.h> and <ieeefp.h>
- *  have a clash on struct _fpstate and struct fpstate.
- */
-fix = {
-    hackname = sco_regset;
-    files    = sys/regset.h;
-    mach     = "*-*-sco3.2v5*";
-    select   = "(struct[ \t]+.*)fpstate";
-    c_fix     = format;
-    c_fix_arg = "%1rsfpstate";
-
-    test_text =
-    "union u_fps {\n"
-    "    struct\tfpstate\n"
-    "    {\n"
-    "       int whatever;\n"
-    "    }\n"
-    "};\n"
-    "union _u_fps {\n"
-    "    struct _fpstate\n"
-    "    {\n"
-    "       int whatever;\n"
-    "    }\n"
-    "};\n";
-};
-
-
-/*
- *  The static functions lstat() and fchmod() in <sys/stat.h>
- *  cause G++ grief since they're not wrapped in "if __cplusplus".
- *
- *  On SCO OpenServer 5.0.0 through (at least) 5.0.5 <sys/stat.h> contains
- *  tiny static wrappers that aren't C++ safe.
- */
-fix = {
-    hackname = sco_static_func;
-    files    = sys/stat.h;
-    mach     = "i?86-*-sco3.2*";
-    select   = "^static int";
-
-    sed      = "/^static int/i\\\n"
-               "#if __cplusplus\\\n"
-               "extern \"C\" {\\\n"
-               "#endif /* __cplusplus */";
-
-    sed      = "/^}$/a\\\n"
-               "#if __cplusplus\\\n"
-               " }\\\n"
-               "#endif /* __cplusplus */";
-
-    test_text =
-    "#ifdef __STDC__\n"
-    "static int\tstat(const char *__f, struct stat *__p) {\n"
-    "\treturn __stat32(__f, __p);\n"
-    "}\n\n#  else /* !__STDC__ THIS FAILS ON BSD SYSTEMS */\n"
-
-    "static int\tstat(__f, __p)\n"
-    "\tchar *__f;\n"
-    "\tstruct stat *__p;\n"
-    "{\n"
-    "\treturn __stat32(__f, __p);\n"
-    "}\n"
-    "#endif";
-};
-
-
-/*
- *  Fix prototype declaration of utime in sys/times.h.
- *  In 3.2v4.0 the const is missing.
- */
-fix = {
-    hackname  = sco_utime;
-    files     = sys/times.h;
-    mach      = "i?86-*-sco3.2v4*";
-
-    select    = '\(const char \*, struct utimbuf \*\);';
-    c_fix     = format;
-    c_fix_arg = '(const char *, const struct utimbuf *);';
-
-    test_text = "extern int utime(const char *, struct utimbuf *);";
-};
-
-/*
  * Sun Solaris 10 defines several C99 math macros in terms of
  * builtins specific to the Studio compiler, in particular not
  * compatible with the GNU compiler.
@@ -3204,16 +2806,7 @@ fix = {
     files = iso/math_c99.h;
     c_fix = format;
     c_fix_arg = "#define\tfpclassify(x) \\\n"
-                "  __extension__ ({ const __typeof(x) __x_fp = (x); \\\n"
-                "\t\t   isnan(__x_fp) \\\n"
-                "\t\t     ? FP_NAN \\\n"
-                "\t\t     : isinf(__x_fp) \\\n"
-                "\t\t       ? FP_INFINITE \\\n"
-                "\t\t       : isnormal(__x_fp) \\\n"
-                "\t\t\t ? FP_NORMAL \\\n"
-                "\t\t\t : __x_fp == 0.0 \\\n"
-                "\t\t\t   ? FP_ZERO \\\n"
-                "\t\t\t   : FP_SUBNORMAL; })";
+                "  __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, (x))";
     c_fix_arg = "^#define[ \t]+fpclassify\\(x\\)[ \t]+__builtin_fpclassify\\(x\\)";
     test_text =
     '#ident    "@(#)math_c99.h 1.9     04/11/01 SMI"'"\n"
@@ -3288,26 +2881,6 @@ fix = {
 };
 
 /*
- *  Sun Solaris 2.5.1, 2.6 defines PTHREAD_{MUTEX|COND}_INITIALIZER
- *  incorrectly, so we replace them with versions that correspond to
- *  the definition.  We also explicitly name this fix "1" and the next
- *  fix "2" because this one does not deal with the last field.  This
- *  fix needs to run before the next.
- */
-fix = {
-    hackname = solaris_mutex_init_1;
-    select = '@\(#\)pthread.h' "[ \t]+1.1[0-9][ \t]+9[567]/[0-9/]+ SMI";
-    files = pthread.h;
-    sed   = "/define[ \t]*PTHREAD_MUTEX_INI/s/{0, 0,/{{{0}, 0}, {{{0}}},/\n"
-            "/define[ \t]*PTHREAD_COND_INI/s/{0,/{{{0},0},/";
-    test_text =
-    '#ident "@(#)pthread.h  1.16    97/05/05 SMI"'"\n"
-    "#define PTHREAD_MUTEX_INITIALIZER\t{0, 0, 0}\n"
-    "#define PTHREAD_COND_INITIALIZER\t{0, 0} /* */\n";
-};
-
-
-/*
  * Sun Solaris defines PTHREAD_MUTEX_INITIALIZER with a trailing
  * "0" for the last field of the pthread_mutex_t structure, which is
  * of type upad64_t, which itself is typedef'd to int64_t, but with
@@ -3426,26 +2999,6 @@ fix = {
 
 
 /*
- * Solaris 2.5.1 and 2.6 use an outdated prototype for send & recv
- * in sys/socket.h.  This is corrected in Solaris 7 and up.
- */
-fix = {
-    hackname = solaris_socket;
-    files = sys/socket.h;
-    select = '@\(#\)socket.h' "[ \t]+1.[123][0-9][ \t]+9[567]/[0-9/]+ SMI";
-    c_fix = format;
-    c_fix_arg = "extern int %1(int, %2void *, int, int);";
-    c_fix_arg = '^extern int (recv|send)\(int,'
-                ' (const )*char '
-                '\*, int, int\);';
-
-    test_text = '#ident   "@(#)socket.h   1.30    97/01/20 SMI"'"\n"
-                "extern int recv(int, char *, int, int);\n"
-                "extern int send(int, const char *, int, int);";
-};
-
-
-/*
  * Solaris 2.8 has what appears to be some gross workaround for 
  * some old version of their c++ compiler.  G++ doesn't want it
  * either, but doesn't want to be tied to SunPRO version numbers.
@@ -3465,43 +3018,6 @@ fix = {
 
 
 /*
- * Sun Solaris 2.5.1 doesn't define 'getpagesize' in <unistd.h>, as is done
- * on Solaris 2.6 and up.
- */
-fix = {
-    hackname  = solaris_unistd;
-    files = unistd.h;
-    select = '@\(#\)unistd.h' "[ \t]+1.3[0-9][ \t]+9[567]/[0-9/]+ SMI";
-    bypass = "getpagesize";
-    c_fix = format;
-    c_fix_arg = "extern int getpagesize();\n%0";
-    c_fix_arg = '^extern (pid_t|int) getpgid\(.*\);';
-    test_text = '#ident "@(#)unistd.h   1.33    95/08/28 SMI"'"\n"
-                "extern pid_t getpgid(pid_t);\n"
-                "extern int getpgid();";
-};
-
-
-/*
- * <widec.h> until Solaris 2.5.1 defines macros for a couple of <wchar.h>
- * functions, breaking their prototypes if that file is included afterwards.
- * Include <wchar.h> early to avoid this issue, as is done on Solaris 2.6
- * and up.
- */
-fix = {
-    hackname  = solaris_widec;
-    files     = widec.h;
-    mach      = '*-*-solaris2.[0-5]';
-    mach      = '*-*-solaris2.[0-5].*';
-    bypass    = "include.*wchar\\.h";
-    select    = "#include <euc.h>";
-    c_fix     = format;
-    c_fix_arg = "%0\n#include <wchar.h>";
-    test_text = "#include <euc.h>";
-};
-
-
-/*
  *  a missing semi-colon at the end of the statsswtch structure definition.
  */
 fix = {
@@ -3902,98 +3418,6 @@ fix = {
 
 
 /*
- *  Conditionalize some of <sys/endian.h> on __GNUC__ and __GNUG__.
- *  On some systems (UnixWare 2, UnixWare 7), the file is byteorder.h
- *  but we still "hijack" it and redirect it to the GNU byteorder.h..
- */
-#ifdef SVR5
-fix = {
-    hackname = svr4_endian;
-    files    = sys/endian.h;
-#ifdef LATER
-    /*
-     * since we emit our own sys/byteorder.h,
-     * this fix can never be applied to that file.
-     */
-    files    = sys/byteorder.h;
-#endif
-    bypass   = '__GNUC__';
-
-    sed      = "/#\tifdef\t__STDC__/i\\\n"
-               "#   if !defined (__GNUC__) && !defined (__GNUG__)\n";
-
-    sed      = "/#\t\tinclude\t<sys\\/byteorder.h>/s/\t\t/   /";
-
-    sed      = "/#   include\t<sys\\/byteorder.h>/i\\\n"
-               "#   endif /* !defined (__GNUC__) && !defined (__GNUG__) */\n";
-};
-#endif /* SVR5 */
-
-
-/*
- *  Remove useless extern keyword from struct forward declarations
- *  in <sys/stream.h> and <sys/strsubr.h>
- */
-#ifdef SVR4
-fix = {
-    hackname = svr4_extern_struct;
-    files    = sys/stream.h;
-    files    = sys/strsubr.h;
-    select   = 'extern struct [a-z_]*;';
-    sed      = 's/extern struct \([a-z][a-z_]*\)/struct \1/';
-};
-#endif
-
-/*
- *  Fix declarations of `ftw' and `nftw' in <ftw.h>.  On some/most SVR4
- *  systems the file <ftw.h> contains extern declarations of these
- *  functions followed by explicitly `static' definitions of these
- *  functions... and that's not allowed according to ANSI C.  (Note
- *  however that on Solaris, this header file glitch has been pre-fixed by
- *  Sun.  In the Solaris version of <ftw.h> there are no static
- *  definitions of any function so we don't need to do any of this stuff
- *  when on Solaris.
- */
-#ifdef SVR4
-#ifndef SOLARIS
-fix = {
-    hackname = svr4_ftw;
-    files    = ftw.h;
-    select   = '^extern int ftw\(const';
-
-    sed = '/^extern int ftw(const/i' "\\\n"
-            "#if !defined(_STYPES)\\\n"
-            "static\\\n"
-            "#else\\\n"
-            "extern\\\n"
-            "#endif";
-    sed = 's/extern \(int ftw(const.*\)$/\1/';
-    sed = "/^extern int nftw/i\\\n"
-            "#if defined(_STYPES)\\\n"
-            "static\\\n"
-            "#else\\\n"
-            "extern\\\n"
-            "#endif";
-    sed = 's/extern \(int nftw.*\)$/\1/';
-    sed = "/^extern int ftw(),/c\\\n"
-            "#if !defined(_STYPES)\\\n"
-            "static\\\n"
-            "#else\\\n"
-            "extern\\\n"
-            "#endif\\\n"
-            "  int ftw();\\\n"
-            "#if defined(_STYPES)\\\n"
-            "static\\\n"
-            "#else\\\n"
-            "extern\\\n"
-            "#endif\\\n"
-            "  int nftw();";
-};
-#endif
-#endif
-
-
-/*
  *   Fix broken decl of getcwd present on some svr4 systems.
  */
 fix = {
@@ -4011,135 +3435,6 @@ fix = {
 
 
 /*
- *  Wrap some files on System V r4 and DYNIX/ptx systems with
- *  #ifdef _KERNEL, presumably to prevent kernel headers from
- *  leaking into userspace.  This may not be necessary at all,
- *  but it was in the old scripts, so it seems safest to keep it for now.
- */
-fix = {
-    /* Can't name this with _kernel, or the test case will hit the bypass! */
-    hackname = svr4_krnl;
-    /* Since I'm rather unsure about the validity of this, limit it
-     * to the specific systems it was operating on before.  It should
-     * also be bypassed for i?86-*-sysv4.3uw2, by that rule, but I didn't
-     * see an easy way to do that.  Hopefully it will be harmless
-     * in any case. -- Nathanael */
-    mach     = '*-*-sysv4*';
-    mach     = 'i?86-sequent-ptx*';
-    files    = fs/rfs/rf_cache.h;
-    files    = sys/erec.h;
-    files    = sys/err.h;
-    files    = sys/char.h;
-    files    = sys/getpages.h;
-    files    = sys/map.h;
-    files    = sys/cmn_err.h;
-    files    = sys/kdebugger.h;
-
-    /* This bypass will match _KERNEL, __KERNEL, __KERNEL__, etc.
-     * It will also match SVR4_KERNEL_CHECK, which means that the
-     * testsuite case will always be bypassed.  Which is fine with me. */
-    bypass   = '_KERNEL';
-
-    c_fix     = wrap;
-    c_fix_arg = "#ifdef _KERNEL\n";
-    c_fix_arg = "#endif /* _KERNEL */\n";
-
-    /* There's no reasonable test for this given that we don't know exactly
-     * what problem inspired it in the first place. */
-    test_text = "";
-};
-
-
-/*
- *  Delete any #defines of `__i386' which may be present in <ieeefp.h>.  They
- *  tend to conflict with the compiler's own definition of this symbol.  (We
- *  will use the compiler's definition.)
- *  Likewise __sparc, for Solaris, and __i860, and a few others
- *  (guessing it is necessary for all of them).
- */
-#ifdef SVR4
-fix = {
-    hackname = svr4_mach_defines;
-    files    = ieeefp.h;
-    select   = "#define[ \t]*__(i386|mips|sparc|m88k|m68k)[ \t]";
-    sed      = "/#define[ \t]*__\\(i386|mips|sparc|m88k|m68k\\)[ \t]/d";
-};
-#endif
-
-
-/*
- *  Fix declarations of `makedev', `major', and `minor' in <sys/mkdev.h>.
- *  They are declared as non-static then immediately redeclared as static.
- */
-#ifdef SVR5
-fix = {
-    hackname = svr4_mkdev;
-    files    = sys/mkdev.h;
-    select   = '^static';
-
-    sed      = "/^dev_t makedev(/s/^/static /";
-    sed      = "/^major_t major(/s/^/static /";
-    sed      = "/^minor_t minor(/s/^/static /";
-};
-#endif /* SVR5 */
-
-
-/*
- *  Fix reference to NC_NPI_RAW in <sys/netcspace.h>.
- *  Also fix types of array initializers.
- */
-#ifdef SVR4
-fix = {
-    hackname = svr4_netcspace;
-    files    = sys/netcspace.h;
-    select   = 'NC_NPI_RAW';
-    sed      = 's/NC_NPI_RAW/NC_TPI_RAW/g';
-    sed      = 's/NC_/(unsigned long) NC_/';
-};
-#endif
-
-/*
- *  Fix reference to NMSZ in <sys/adv.h>.
- */
-#ifdef SVR4
-fix = {
-    hackname = svr4_nmsz;
-    files    = sys/adv.h;
-    select   = '\[NMSZ\]';
-    sed      = 's/\[NMSZ\]/\[RFS_NMSZ\]/g';
-};
-#endif
-
-
-/*
- * Some SVR4 systems supposedly use these non-ANSI preprocessor directives.
- */
-#ifdef SVR4
-fix = {
-    hackname  = svr4_preproc_lint_on;
-    select    = '#lint\(on\)';
-    c_fix     = format;
-    c_fix_arg = 'defined(lint)';
-    test_text = "#if #lint(on)";
-};
-fix = {
-    hackname  = svr4_preproc_lint_off;
-    select    = '#lint\(off\)';
-    c_fix     = format;
-    c_fix_arg = '!defined(lint)';
-    test_text = "#if #lint(off)";
-};
-fix = {
-    hackname  = svr4_preproc_machine;
-    select    = '#(machine|system|cpu)\(([^)]*)\)';
-    c_fix     = format;
-    c_fix_arg = 'defined(__%1__)';
-    test_text = "#if #machine(i386) || #system(vax) || #cpu(sparc)";
-};
-#endif
-
-
-/*
  *   Fix broken decl of profil present on some svr4 systems.
  */
 fix = {
@@ -4161,75 +3456,6 @@ fix = {
 
 
 /*
- *  Convert functions to prototype form, and fix arg names in <sys/stat.h>.
- */
-#ifdef SVR4
-fix = {
-    hackname = svr4_proto_form;
-    files    = sys/stat.h;
-    select   = 'const extern';
-
-    sed      = "/^stat([ \t]*[^c]/ {\nN\nN\n"
-                   "s/(.*)\\n/( /\n"
-                   "s/;\\n/, /\n"
-                   "s/;$/)/\n"  "}";
-
-    sed      = "/^lstat([ \t]*[^c]/ {\nN\nN\n"
-                   "s/(.*)\\n/( /\n"
-                   "s/;\\n/, /\n"
-                   "s/;$/)/\n"  "}";
-
-    sed      = "/^fstat([ \t]*[^i]/ {\nN\nN\n"
-                   "s/(.*)\\n/( /\n"
-                   "s/;\\n/, /\n"
-                   "s/;$/)/\n"  "}";
-
-    sed      = "/^mknod([ \t]*[^c]/{\nN\nN\nN\n"
-                   "s/(.*)\\n/( /\n"
-                   "s/;\\n/, /g\n"
-                   "s/;$/)/\n"  "}";
-
-    sed      = "1,$s/\\([^A-Za-z]\\)path\\([^A-Za-z]\\)/\\1__path\\2/g";
-    sed      = "1,$s/\\([^A-Za-z]\\)buf\\([^A-Za-z]\\)/\\1__buf\\2/g";
-    sed      = "1,$s/\\([^A-Za-z]\\)fd\\([^A-Za-z]\\)/\\1__fd\\2/g";
-    sed      = "1,$s/ret\\([^u]\\)/__ret\\1/g";
-    sed      = "1,$s/\\([^_]\\)mode\\([^_]\\)/\\1__mode\\2/g";
-    sed      = "1,$s/\\([^_r]\\)dev\\([^_]\\)/\\1__dev\\2/g";
-};
-#endif
-
-/*
- *  Add a prototyped declaration of mmap to <sys/mman.h>.
- */
-#ifdef SVR4
-fix = {
-    hackname = svr4_proto_mmap;
-    files    = sys/mman.h;
-    select   = '^extern caddr_t mmap();$';
-    sed = '/^extern caddr_t mmap();$/c' "\\\n"
-          "#ifdef __STDC__\\\n"
-          "extern caddr_t mmap (caddr_t, size_t, int, int, int, off_t);\\\n"
-          "#else /* !defined(__STDC__) */\\\n"
-          "extern caddr_t mmap ();\\\n"
-          "#endif /* !defined(__STDC__) */\\\n";
-};
-#endif
-
-/*
- *  Add a #define of _SIGACTION_ into <sys/signal.h>.
- */
-#ifdef SVR4
-fix = {
-    hackname = svr4_sigaction;
-    files    = sys/signal.h;
-    sed      = "/^struct sigaction {/i\\\n"
-               "#define _SIGACTION_";
-    sed      = 's/(void *(\*)())/(void (*)(int))/';
-};
-#endif
-
-
-/*
  * Correct types for signal handler constants like SIG_DFL; they might be
  * void (*) (), and should be void (*) (int).  C++ doesn't like the
  * old style.
@@ -4244,18 +3470,6 @@ fix = {
                 "#define SIG_IGN (void (*)())0\n";
 };
 
-/*
- *  Put storage class at start of decl, to avoid warning.
- */
-#ifdef SVR4
-fix = {
-    hackname = svr4_storage_class;
-    files    = rpc/types.h;
-    select   = 'const extern';
-    sed      = 's/const extern/extern const/g';
-};
-#endif
-
 
 /*
  *  Some SysV r4 systems, including Sequent's DYNIX/ptx, use the local
@@ -4287,20 +3501,6 @@ fix = {
 
 
 /*
- *  Like svr4_mach_defines, but with newfangled syntax.
- *  Source lines are of #define __i386 #machine(i386).   Delete them.
- */
-#ifdef SVR5
-fix = {
-    hackname = svr5_mach_defines;
-    files    = ieeefp.h;
-    select   = "#define[ \t]*__i386.*\(i386\)";
-    sed      = "/#define[ \t]*__i386.*/d";
-};
-#endif /*  SVR5 */
-
-
-/*
  *  Fix return value of mem{ccpy,chr,cpy,set} and str{len,spn,cspn}
  *  in string.h on sysV68
  *  Correct the return type for strlen in string.h on Lynx.
@@ -4401,36 +3601,6 @@ fix = {
 
 
 /*
- *  function parameter to atexit is missing "void" on VAX Ultrix 4.3.
- */
-fix = {
-    hackname = ultrix_atexit_param;
-    files    = stdlib.h;
-    select   = 'atexit\(.*\(\)';
-
-    c_fix     = format;
-    c_fix_arg = "atexit( void (*__func)( void )";
-
-    test_text = "int atexit( void (*__func)() );\n";
-};
-
-
-/*
- *  parameter to atof not const on DECstation Ultrix V4.0 and NEWS-OS 4.2R.
- */
-fix = {
-    hackname = ultrix_atof_param;
-    files    = math.h;
-    select   = "atof\\([ \t]*char";
-
-    c_fix     = format;
-    c_fix_arg = "atof(const char";
-
-    test_text = "extern double atof( char *__nptr);\n";
-};
-
-
-/*
  *  parameters not const on DECstation Ultrix V4.0 and OSF/1.
  */
 fix = {
@@ -4475,322 +3645,6 @@ fix = {
 
 
 /*
- *  parameters not const on Ultrix V4.3.
- */
-fix = {
-    hackname  = ultrix_const3;
-    files     = stdio.h;
-    select    = 'fdopen\( .*, char \*';
-
-    c_fix     = format;
-    c_fix_arg = "%1 const %3 *__";
-    c_fix_arg = "([ \t*](fdopen)\\(.*)"
-                "[ \t]+(char|void) \\*__";
-
-    test_text =
-    "extern FILE *     fdopen( int __filedes, char *__type );\n";
-};
-
-
-/*
- * Ultrix V4.[35] puts the declaration of uname before the definition
- * of struct utsname, so the prototype (added by fixproto) causes havoc.
- */
-fix = {
-    hackname = ultrix_fix_fixproto;
-    files    = sys/utsname.h;
-    select   = ULTRIX;
-
-    c_fix     = format;
-    c_fix_arg = "struct utsname;\n%0";
-    c_fix_arg = "^[ \t]*extern[ \t]*int[ \t]*uname\\(\\);";
-
-    test_text =
-    "/* ULTRIX's uname */\nextern\tint\tuname();";
-};
-
-
-/*
- *  Check for bad #ifdef line (in Ultrix 4.1)
- */
-fix = {
-    hackname = ultrix_ifdef;
-    select   = "^#ifdef KERNEL[ \t]+&&";
-    files    = sys/file.h;
-
-    c_fix     = format;
-    c_fix_arg = "#if defined(KERNEL) &&";
-
-    test_text =
-    "#ifdef KERNEL\t&& defined( mumbojumbo )\nint oops;\n#endif";
-};
-
-
-/*
- *  Add once-only latch to Ultrix V4.3 locale.h.
- */
-fix = {
-    hackname = ultrix_locale;
-    files  = locale.h;
-    select = "@\\(#\\)locale\\.h.*6\\.1.*\\(ULTRIX\\)";
-    c_fix  = wrap;
-    test_text =
-    "@(#)locale.h   6.1     (ULTRIX)\n";
-};
-
-
-/*
- * Strip "|| CC$gfloat" from Ultrix math headers.
- */
-fix = {
-    hackname  = ultrix_math_ifdef;
-    files     = sys/limits.h;
-    files     = float.h;
-    files     = math.h;
-    select    = "^(#if.*)\\|\\|[ \t]+CC\\$[a-z]+";
-    c_fix     = format;
-    c_fix_arg = "%1";
-
-    test_text = '#if     defined(__GFLOAT) || CC\$gfloat';
-};
-
-
-/*
- *  Avoid nested comments on Ultrix 4.3.
- */
-fix = {
-    hackname = ultrix_nested_ioctl;
-    files    = sys/ioctl.h;
-    select   = "^/\\* #define SIOCSCREEN";
-    sed      = "/^\\/\\* #define SIOCSCREEN/s@/\\* screend@*//* screend@";
-    test_text =
-    "/* #define SIOCSCREENON _IOWR('i', 49, int)"
-    "/* screend, net/gw_screen.h */\n";
-};
-
-
-fix = {
-    hackname = ultrix_nested_svc;
-    files    = rpc/svc.h;
-    select   = "^ \\*[ \t]*int protocol;  */\\*";
-    sed      = "s@^\\( \\*\tint protocol;  \\)/\\*@\\1*/ /*@";
-    test_text =
-    " *\tint protocol;  /* like TCP or UDP\n";
-};
-
-
-/*
- *  Add missing prototype for lstat and define for S_ISLNK
- *  in Ultrix V4.3 sys/stat.h.
- */
-fix = {
-    hackname = ultrix_stat;
-    files  = sys/stat.h;
-    select = "@\\(#\\)stat\\.h.*6\\.1.*\\(ULTRIX\\)";
-    sed    = "/^#define[ \t]S_IFPORT[ \t]*S_IFIFO$/a\\\n"
-               "\\\n"
-               "/* macro to test for symbolic link */\\\n"
-               "#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK)\\\n"
-               "\n";
-    sed    = "/^[ \t]*fstat(),$/a\\\n"
-               "\tlstat(),\n";
-    test_text =
-    "@(#)stat.h      6.1     (ULTRIX)\n"
-    "#define S_IFPORT S_IFIFO\n"
-    "\tfstat(),\n/* THE INSERTION LINE FAILS ON BSD SYSTEMS */";
-};
-
-
-/*
- *  Check for superfluous `static' (in Ultrix 4.2)
- *  On Ultrix 4.3, includes of other files (r3_cpu.h,r4_cpu.h) is broken.
- */
-fix = {
-    hackname = ultrix_static;
-    files  = machine/cpu.h;
-    select = '#include "r[34]_cpu';
-    sed    = "s/^static struct tlb_pid_state/struct tlb_pid_state/";
-    sed    = 's/^#include "r3_cpu\.h"$/#include <machine\/r3_cpu\.h>/';
-    sed    = 's/^#include "r4_cpu\.h"$/#include <machine\/r4_cpu\.h>/';
-    test_text =
-    "static struct tlb_pid_state {\n"
-    "#include \"r3_cpu.h\"\n";
-};
-
-
-/*
- *  Add missing declarations to Ultrix V4.3 stdlib.h.
- */
-fix = {
-    hackname = ultrix_stdlib;
-    files  = stdlib.h;
-    select = "@\\(#\\)stdlib\\.h.*6\\.1.*\\(ULTRIX\\)";
-
-    sed    = "/^char.*getenv( const char .* );.*$/a\\\n"
-    "int\t\tsetenv( const char *__name, const char *__val, int __ovrwrt );\\\n"
-    "void\t\tunsetenv( const char *__name );\\\n"
-    "int\t\tputenv( char *__s );\n";
-
-    sed    = "/^char.*getenv();.*$/a\\\n"
-    "int\tsetenv();\\\n"
-    "void\tunsetenv();\\\n"
-    "int\tputenv();\n";
-
-    test_text =
-    "@(#)stdlib.h      6.1     (ULTRIX)\n"
-    "char *            getenv( const char *__name );\n"
-    "char      *getenv();\n";
-};
-
-
-/*
- *  Add once-only latch to Ultrix V4.3 strings.h.
- */
-fix = {
-    hackname = ultrix_strings;
-    files  = strings.h;
-    select = "@\\(#\\)strings\\.h.*6\\.1.*\\(ULTRIX\\)";
-    c_fix  = wrap;
-    test_text =
-    "@(#)strings.h   6.1     (ULTRIX)\n";
-};
-
-
-/*
- *  Add missing declarations to Ultrix V4.3 strings.h.
- */
-fix = {
-    hackname = ultrix_strings2;
-    files  = strings.h;
-    select = "@\\(#\\)strings\\.h.*6\\.1.*\\(ULTRIX\\)";
-
-    sed    = "/^.*strncmp( const .* );.*/a\\\n"
-    "\\\n"
-    "extern int\\\n"
-    "\tstrcasecmp( const char *__s1, const char *__s2),\\\n"
-    "\tstrncasecmp( const char *__s1, const char *__s2, size_t __n );\n";
-
-    sed    = "/^.*strncmp();.*/a\\\n"
-    "extern int\\\n"
-    "\tstrcasecmp(),\\\n"
-    "\tstrncasecmp();\n";
-
-    test_text =
-    "@(#)strings.h      6.1     (ULTRIX)\n"
-    "\tstrncmp( const char *__s1, const char *__s2, size_t __n );\n"
-    "\tstrncmp();\n";
-};
-
-
-/*
- *  Add missing declarations to Ultrix V4.3 sys/time.h.
- */
-fix = {
-    hackname = ultrix_sys_time;
-    files  = sys/time.h;
-    select = "@\\(#\\)time\\.h.*6\\.1.*\\(ULTRIX\\)";
-
-    sed    = "/^extern.*time_t.*time( time_t .* );.*$/a\\\n"
-    "\\\n"
-    "extern int adjtime(struct timeval *, struct timeval *);\\\n"
-    "extern int getitimer(int, struct itimerval *);\\\n"
-    "extern int setitimer(int, struct itimerval *, struct itimerval *);\\\n"
-    "extern int gettimeofday(struct timeval *, struct timezone *);\\\n"
-    "extern int settimeofday(struct timeval *, struct timezone *);\\\n"
-    "extern void profil(const void *, size_t, size_t, unsigned int);\\\n"
-    "extern int stime(const time_t *);\\\n"
-    "extern int utimes(const char *, const struct timeval[2]);\\\n"
-    "extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);\n";
-
-    sed    = "/^extern.*double.*difftime();.*$/a\\\n"
-    "extern\tint adjtime();\\\n"
-    "extern\tint getitimer();\\\n"
-    "extern\tint setitimer();\\\n"
-    "extern\tint gettimeofday();\\\n"
-    "extern\tint settimeofday();\\\n"
-    "extern\tvoid profil();\\\n"
-    "extern\tint stime();\\\n"
-    "extern\tint utimes();\\\n"
-    "extern\tint select();\n";
-
-    test_text =
-    "@(#)time.h      6.1     (ULTRIX)\n"
-    "extern time_t             time( time_t *__tloc );\n"
-    "extern double difftime();\n";
-};
-
-
-/*
- *  Add missing declarations to Ultrix V4.3 unistd.h.
- */
-fix = {
-    hackname = ultrix_unistd;
-    files  = unistd.h;
-    select = "@\\(#\\)unistd\\.h.*6\\.1.*\\(ULTRIX\\)";
-
-    sed    = "/^[ \t]*getgroups(),.*$/a\\\n"
-    "\tgetpagesize(),\n";
-
-    sed    = "/^[ \t]*fork(),.*$/a\\\n"
-    "\tvfork(),\n";
-
-    test_text =
-    "@(#)unistd.h      6.1     (ULTRIX)\n"
-    "\tgetgroups(),\n"
-    "\tfork(),\n";
-};
-
-
-/*
- * On Cray Unicos/Mk some standard headers use the C99 keyword "restrict"
- * which must be replaced by __restrict__ for GCC.
- */
-fix = {
-    hackname = unicosmk_restrict;
-    files    = stdio.h;
-    files    = stdlib.h;
-    files    = wchar.h;
-    mach     = "*-*-unicosmk*";
-    select   = "(\\*[ \t]*)restrict([ \t]+)";
-
-    c_fix     = format;
-    c_fix_arg = "%1__restrict__%2";
-
-    test_text = "void f (char * restrict x);";
-};
-
-/*
- * If arpa/inet.h prototypes are incompatible with the ones we just
- * installed in <sys/byteorder.h>, just remove the protos.
- * Because of this close association, this patch must be applied only
- * on those systems where the replacement byteorder header is installed.
- */
-fix = {
-    hackname = uw7_byteorder_fix;
-    files    = arpa/inet.h;
-    select   = "in_port_t";
-    test     = "-f sys/byteorder.h";
-#ifndef SVR5
-       mach = "*-*-sysv4*";
-       mach = "i?86-*-sysv5*";
-       mach = "i?86-*-udk*";
-       mach = "i?86-*-solaris2.[0-4]";
-       mach = "powerpcle-*-solaris2.[0-4]";
-       mach = "sparc-*-solaris2.[0-4]";
-#endif /* SVR5 */
-
-    c_fix     = format;
-    c_fix_arg = "";
-    c_fix_arg = "^extern.*[ \t](htons|ntohs).*\\(in_port_t\\).*;";
-
-    test_text = "extern in_port_t\thtons __P((in_port_t));\n"
-                "extern in_port_t\tntohs __P((in_port_t));"
-                "`[ ! -d $DESTDIR/sys ] && mkdir $DESTDIR/sys\n"
-                "echo '/* DUMMY */' >> sys/byteorder.h`";
-};
-
-
-/*
  *  Fix definitions of macros used by va-i960.h in VxWorks header file.
  */
 fix = {
@@ -4936,41 +3790,6 @@ fix = {
 };
 
 
-/* 
- * WindISS math.h headers include bogus extern declarations of 
- * numerous math functions that conflict with libstdc++-v3.
- */
-fix = {
-    hackname  = windiss_math1;
-    files     = math.h;
-    mach      = "*-*-windiss";
-    sed       = "s|inline long double cosl.*|#ifndef __GNUC__|";
-
-    test_text = "inline long double cosl(long double);";
-};
-
-fix = {
-    hackname  = windiss_math2;
-    files     = math.h;
-    mach      = "*-*-windiss";
-    sed       = "s|/\\* long double declarations \\*/|"
-                  "#endif /* __GNUC__ */|";
-
-    test_text = "/* long double declarations */";
-};
-
-/*
- * WindISS headers include "diab/va_list.h" instead of "stdarg.h"
- */
-fix = {
-    select    = '(#include.*)diab/va_list.h';
-    hackname  = windiss_valist;
-    sed       = "s|diab/va_list.h|stdarg.h|";
-    mach      = "*-*-windiss";
-
-    test_text = "#include <diab/va_list.h>";
-};
-
 /*
  *  There are several name conflicts with C++ reserved words in X11 header
  *  files.  These are fixed in some versions, so don't do the fixes if