summaryrefslogtreecommitdiff
path: root/fixincludes
diff options
context:
space:
mode:
authorupstream source tree <ports@midipix.org>2015-03-15 20:14:05 -0400
committerupstream source tree <ports@midipix.org>2015-03-15 20:14:05 -0400
commit554fd8c5195424bdbcabf5de30fdc183aba391bd (patch)
tree976dc5ab7fddf506dadce60ae936f43f58787092 /fixincludes
downloadcbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.bz2
cbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.xz
obtained gcc-4.6.4.tar.bz2 from upstream website;upstream
verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository.
Diffstat (limited to 'fixincludes')
-rw-r--r--fixincludes/ChangeLog1230
-rw-r--r--fixincludes/Makefile.in205
-rw-r--r--fixincludes/README331
-rw-r--r--fixincludes/README-fixinc14
-rw-r--r--fixincludes/aclocal.m417
-rw-r--r--fixincludes/check.tpl177
-rw-r--r--fixincludes/config.h.in412
-rwxr-xr-xfixincludes/configure6434
-rw-r--r--fixincludes/configure.ac117
-rw-r--r--fixincludes/fixfixes.c806
-rwxr-xr-xfixincludes/fixinc.in498
-rw-r--r--fixincludes/fixincl.c1358
-rw-r--r--fixincludes/fixincl.tpl237
-rw-r--r--fixincludes/fixincl.x9825
-rw-r--r--fixincludes/fixlib.c280
-rw-r--r--fixincludes/fixlib.h248
-rw-r--r--fixincludes/fixopts.c50
-rw-r--r--fixincludes/fixtests.c154
-rwxr-xr-xfixincludes/genfixes76
-rw-r--r--fixincludes/inclhack.def4590
-rwxr-xr-xfixincludes/mkfixinc.sh36
-rw-r--r--fixincludes/mkheaders.in104
-rw-r--r--fixincludes/procopen.c218
-rw-r--r--fixincludes/server.c305
-rw-r--r--fixincludes/server.h74
-rw-r--r--fixincludes/system.h228
-rw-r--r--fixincludes/tests/base/AvailabilityMacros.h15
-rw-r--r--fixincludes/tests/base/X11/ShellP.h21
-rw-r--r--fixincludes/tests/base/X11/Xmu.h16
-rw-r--r--fixincludes/tests/base/Xm/BaseClassI.h15
-rw-r--r--fixincludes/tests/base/Xm/Traversal.h21
-rw-r--r--fixincludes/tests/base/ansi/math.h14
-rw-r--r--fixincludes/tests/base/ansi/stdlib.h14
-rw-r--r--fixincludes/tests/base/arch/i960/archI960.h17
-rw-r--r--fixincludes/tests/base/architecture/ppc/math.h88
-rw-r--r--fixincludes/tests/base/assert.h43
-rw-r--r--fixincludes/tests/base/bits/huge_val.h27
-rw-r--r--fixincludes/tests/base/bits/string2.h23
-rw-r--r--fixincludes/tests/base/bsd/libc.h14
-rw-r--r--fixincludes/tests/base/c_asm.h20
-rw-r--r--fixincludes/tests/base/com_err.h14
-rw-r--r--fixincludes/tests/base/complex.h45
-rw-r--r--fixincludes/tests/base/ctrl-quotes-def-1.h14
-rw-r--r--fixincludes/tests/base/ctype.h65
-rw-r--r--fixincludes/tests/base/curses.h35
-rw-r--r--fixincludes/tests/base/errno.h21
-rw-r--r--fixincludes/tests/base/features.h23
-rw-r--r--fixincludes/tests/base/fixinc-test-limits.h19
-rw-r--r--fixincludes/tests/base/hsfs/hsfs_spec.h14
-rw-r--r--fixincludes/tests/base/ia64/sys/getppdp.h16
-rw-r--r--fixincludes/tests/base/internal/math_core.h30
-rw-r--r--fixincludes/tests/base/internal/sgimacros.h17
-rw-r--r--fixincludes/tests/base/internal/wchar_core.h15
-rw-r--r--fixincludes/tests/base/inttypes.h18
-rw-r--r--fixincludes/tests/base/io-quotes-def-1.h14
-rw-r--r--fixincludes/tests/base/iso/math_c99.h77
-rw-r--r--fixincludes/tests/base/locale.h25
-rw-r--r--fixincludes/tests/base/mach-o/dyld.h17
-rw-r--r--fixincludes/tests/base/mach-o/swap.h26
-rw-r--r--fixincludes/tests/base/malloc.h18
-rw-r--r--fixincludes/tests/base/math.h104
-rw-r--r--fixincludes/tests/base/net/if.h14
-rw-r--r--fixincludes/tests/base/netdnet/dnetdb.h14
-rw-r--r--fixincludes/tests/base/netinet/in.h24
-rw-r--r--fixincludes/tests/base/netinet/ip.h19
-rw-r--r--fixincludes/tests/base/obstack.h14
-rw-r--r--fixincludes/tests/base/pixrect/memvar.h18
-rw-r--r--fixincludes/tests/base/pthread.h185
-rw-r--r--fixincludes/tests/base/reg_types.h20
-rw-r--r--fixincludes/tests/base/regex.h17
-rw-r--r--fixincludes/tests/base/regexp.h18
-rw-r--r--fixincludes/tests/base/rpc/auth.h26
-rw-r--r--fixincludes/tests/base/rpc/rpc.h14
-rw-r--r--fixincludes/tests/base/rpc/xdr.h25
-rw-r--r--fixincludes/tests/base/rpcsvc/rstat.h16
-rw-r--r--fixincludes/tests/base/rpcsvc/rusers.h16
-rw-r--r--fixincludes/tests/base/signal.h29
-rw-r--r--fixincludes/tests/base/sparc/asm_linkage.h14
-rw-r--r--fixincludes/tests/base/standards.h14
-rw-r--r--fixincludes/tests/base/stdarg.h14
-rw-r--r--fixincludes/tests/base/stdint-aix.h48
-rw-r--r--fixincludes/tests/base/stdint-darwin.h79
-rw-r--r--fixincludes/tests/base/stdint-hpux11.h36
-rw-r--r--fixincludes/tests/base/stdint-irix65.h40
-rw-r--r--fixincludes/tests/base/stdint-newlib.h42
-rw-r--r--fixincludes/tests/base/stdint.h23
-rw-r--r--fixincludes/tests/base/stdio.h96
-rw-r--r--fixincludes/tests/base/stdio_tag.h14
-rw-r--r--fixincludes/tests/base/stdlib.h58
-rw-r--r--fixincludes/tests/base/string.h14
-rw-r--r--fixincludes/tests/base/strings.h14
-rw-r--r--fixincludes/tests/base/sundev/vuid_event.h14
-rw-r--r--fixincludes/tests/base/sunwindow/win_lock.h16
-rw-r--r--fixincludes/tests/base/sym.h16
-rw-r--r--fixincludes/tests/base/sys/_inttypes.h16
-rw-r--r--fixincludes/tests/base/sys/asm.h14
-rw-r--r--fixincludes/tests/base/sys/cdefs.h24
-rw-r--r--fixincludes/tests/base/sys/feature_tests.h18
-rw-r--r--fixincludes/tests/base/sys/file.h14
-rw-r--r--fixincludes/tests/base/sys/int_const.h16
-rw-r--r--fixincludes/tests/base/sys/int_limits.h27
-rw-r--r--fixincludes/tests/base/sys/int_types.h20
-rw-r--r--fixincludes/tests/base/sys/machine.h16
-rw-r--r--fixincludes/tests/base/sys/mman.h25
-rw-r--r--fixincludes/tests/base/sys/pthread.h27
-rw-r--r--fixincludes/tests/base/sys/signal.h30
-rw-r--r--fixincludes/tests/base/sys/socket.h37
-rw-r--r--fixincludes/tests/base/sys/spinlock.h14
-rw-r--r--fixincludes/tests/base/sys/stat.h40
-rw-r--r--fixincludes/tests/base/sys/sysmacros.h15
-rw-r--r--fixincludes/tests/base/sys/time.h19
-rw-r--r--fixincludes/tests/base/sys/types.h30
-rw-r--r--fixincludes/tests/base/sys/ucontext.h16
-rw-r--r--fixincludes/tests/base/sys/va_list.h22
-rw-r--r--fixincludes/tests/base/sys/wait.h19
-rw-r--r--fixincludes/tests/base/testing.h122
-rw-r--r--fixincludes/tests/base/tgmath.h14
-rw-r--r--fixincludes/tests/base/time.h27
-rw-r--r--fixincludes/tests/base/tinfo.h16
-rw-r--r--fixincludes/tests/base/types/vxTypesBase.h30
-rw-r--r--fixincludes/tests/base/unistd.h14
121 files changed, 30702 insertions, 0 deletions
diff --git a/fixincludes/ChangeLog b/fixincludes/ChangeLog
new file mode 100644
index 000000000..0ff992e79
--- /dev/null
+++ b/fixincludes/ChangeLog
@@ -0,0 +1,1230 @@
+2013-04-12 Release Manager
+
+ * GCC 4.6.4 released.
+
+2012-03-01 Release Manager
+
+ * GCC 4.6.3 released.
+
+2011-10-26 Release Manager
+
+ * GCC 4.6.2 released.
+
+2011-06-27 Release Manager
+
+ * GCC 4.6.1 released.
+
+2011-03-25 Release Manager
+
+ * GCC 4.6.0 released.
+
+2010-11-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR other/46202
+ * Makefile.in (install-strip): New phony target.
+ (all, check, install): Also mark as phony.
+
+2010-11-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * inclhack.def (irix_pthread_init): New fix.
+ * fixincl.x: Regenerate.
+ * tests/base/pthread.h [IRIX_PTHREAD_INIT_CHECK]: New test.
+
+2010-10-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR c++/46024
+ * inclhack.def (solaris_sys_va_list): New fix.
+ * fixincl.x: Regenerate.
+ * tests/base/sys/va_list.h: New test.
+
+2010-09-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * inclhack.def (hpux_htonl): Allow trailing whitespace in select.
+ * fixincl.x: Regenerate.
+
+2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * inclhack.def (solaris_cond_init): New fix.
+ * fixincl.x: Regenerate.
+ * tests/base/pthread.h [SOLARIS_COND_INIT_CHECK]: New test.
+ [SOLARIS_MUTEX_INIT_2_CHECK]: Adapt.
+
+2010-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * inclhack.def (solaris__restrict, solaris_complex_cxx): New fixes
+ * fixincl.x: Regenerate.
+ * tests/base/complex.h [SOLARIS_COMPLEX_CXX_CHECK]: New test.
+ * tests/base/sys/feature_tests.h: New file.
+
+2010-06-03 Joern Rennecke <joern.rennecke@embecosm.com>
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR bootstrap/42798
+ * configure.ac: Check for declaration of 'basename(char *)'.
+ * configure: Regenerate.
+
+2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * inclhack.def (alpha_wchar): Remove.
+ * fixincl.x: Regenerate.
+ * tests/base/wchar.h: Remove.
+
+2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * aclocal.m4: Regenerate.
+
+2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * inclhack.def (alpha_assert): Allow for more whitespace in
+ select.
+ * fixincl.x: Regenerate.
+
+2010-03-28 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/40722
+ * mkfixinc.sh: Revert the last change for mingw.
+
+2010-03-24 Joseph Myers <joseph@codesourcery.com>
+
+ * inclhack.def (glibc_strncpy): New fix.
+ * fixincl.x: Regenerate.
+ * tests/base/bits/string2.h: Update.
+
+2010-03-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/40722
+ * mkfixinc.sh: Fix stdlib.h for mingw.
+
+2010-02-19 Bruce Korb <bkorb@gnu.org>
+
+ * inclhack.def: remove vestiges of inadvertently committed changes
+
+2010-02-10 Bruce Korb <bkorb@gnu.org>
+
+ * README: fix up references to old gcc/fixinc directory
+
+2010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * inclhack.def (solaris_int_limits_3): New fix.
+ * fixincl.x: Regenerate.
+ * tests/base/sys/int_limits.h [SOLARIS_INT_LIMITS_3_CHECK]: New
+ test.
+
+ * inclhack.def (solaris_int_const, solaris_int_limits_1,
+ solaris_int_limits_2 ): Applies to Solaris 2 in general.
+ Remove select.
+ Add mach for *-*-solaris2*.
+ Change second c_fix_arg to select.
+ Remove #pragma ident from test_text.
+ * fixincl.x: Regenerate.
+ * tests/base/sys/int_const.h [SOLARIS_INT_CONST_CHECK]: Remove
+ #pragma trigger text.
+ * tests/base/sys/int_limits.h [SOLARIS_INT_LIMITS_1_CHECK,
+ SOLARIS_INT_LIMITS_2_CHECK]: Likewise.
+
+2010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * inclhack.def (aix_stdint_1): Add stdint-aix.h to files.
+ (aix_stdint_2): Likewise.
+ (aix_stdint_3): Likewise.
+ (aix_stdint_4): Likewise.
+ (aix_stdint_5): Likewise.
+ (darwin_stdint_1): Add stdint-darwin.h to files.
+ (darwin_stdint_2): Likewise.
+ (darwin_stdint_3): Likewise.
+ (darwin_stdint_4): Likewise.
+ (darwin_stdint_5): Likewise.
+ (darwin_stdint_6): Likewise.
+ (darwin_stdint_7): Likewise.
+ (hpux_c99_intptr): Add stdint-hpux11.h to files.
+ (hpux_c99_inttypes): Likewise.
+ (hpux_c99_inttypes2): Likewise.
+ (hpux_stdint_least_fast): Likewise.
+ (irix_stdint_c99): Renamed to irix_stdint_c99_mode.
+ (irix_stdint_c99_types): New fix.
+ (irix_stdint_c99_macros): New fix.
+ (newlib_stdint_1): Add stdint-newlib.h to files.
+ (newlib_stdint_2): Likewise.
+ fixincl.x: Regenerate.
+ tests/base/stdint-aix.h: New file.
+ tests/base/stdint.h [AIX_STDINT_1_CHECK, AIX_STDINT_2_CHECK,
+ AIX_STDINT_3_CHECK, AIX_STDINT_4_CHECK, AIX_STDINT_5_CHECK]: Moved ...
+ tests/base/stdint-aix.h: ... here.
+ [AIX_STDINT_3_CHECK]: Updated to match aix_stdint_3 fix.
+ [AIX_STDINT_4_CHECK]: Updated to match aix_stdint_4 fix.
+ [AIX_STDINT_5_CHECK]: Updated to match aix_stdint_5 fix.
+ tests/base/stdint-darwin.h: New file.
+ tests/base/stdint.h [DARWIN_STDINT_1_CHECK, DARWIN_STDINT_2_CHECK,
+ DARWIN_STDINT_3_CHECK, DARWIN_STDINT_4_CHECK,
+ DARWIN_STDINT_5_CHECK, DARWIN_STDINT_6_CHECK]: Moved ...
+ tests/base/stdint-darwin.h: ... here.
+ [DARWIN_STDINT_1_CHECK]: Updated to match darwin_stdint_1 fix.
+ [DARWIN_STDINT_4_CHECK]: Updated to match darwin_stdint_4 fix.
+ [DARWIN_STDINT_6_CHECK]: Updated to match darwin_stdint_6 fix.
+ tests/base/stdint-hpux11.h: New file.
+ tests/base/stdint.h [HPUX_C99_INTPTR_CHECK,
+ HPUX_C99_INTTYPES2_CHECK, HPUX_STDINT_LEAST_FAST_CHECK]: Moved ...
+ tests/base/stdint-hpux11.h: ... here.
+ [HPUX_C99_INTPTR_CHECK]: Updated to match hpux_c99_intptr fix.
+ [HPUX_C99_INTTYPES2_CHECK]: Updated to match hpux_c99_inttypes2 fix.
+ tests/base/stdint.h [IRIX_STDINT_C99_CHECK]: Renamed guard to
+ IRIX_STDINT_C99_MODE_CHECK.
+ tests/base/stdint-irix65.h: New file.
+ tests/base/stdint-newlib.h: New file.
+ tests/base/stdint.h [NEWLIB_STDINT_1_CHECK,
+ NEWLIB_STDINT_2_CHECK]: Moved ...
+ tests/base/stdint-newlib.h: ... here.
+
+2009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure: Regenerate.
+
+2009-10-21 Steve Ellcey <sje@cup.hp.com>
+
+ * inclhack.def (hpux_stdint_least_fast): Simplify.
+ * fixincl.x: Regenerate.
+ * tests/base/stdint.h: Update.
+
+2009-09-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * inclhack.def (isc_fmod, isc_omits_with_stdc)
+ (nested_sys_limits, sco_math): Remove.
+ * tests/base/math.h (ISC_FMOD_CHECK, SCO_MATH_CHECK): Remove.
+ * tests/base/stdio.h (ISC_OMITS_WITH_STDC_CHECK): Remove.
+ * tests/base/sys/limits.h: Remove.
+ * fixincl.x: Regenerate.
+
+2009-09-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR testsuite/29737
+ PR bootstrap/35938
+ PR testsuite/39655
+ * check.tpl: Fix typos.
+ * README: Likewise. Also, document that 'select' uses ERE.
+ * mkheaders.in: Update copyright years in --version output.
+ * inclhack.def (sco_math): Add missing final newline in sed
+ script 'a', 'c', or 'i' commands, for BSD sed.
+ (sco_math): In the text of 'a', 'c', or 'i' sed
+ commands, prepend leading white space with a backslash to avoid
+ the whitespace to be removed by BSD sed.
+ (sco_math): Match plain 'C++' instead of 'C\+\+' in sed regex.
+ (x11_new): Fix sed expression, for BSD sed.
+ (glibc_mutex_init): Fix newlines in sed 's' command replacement
+ part, for GNU sed 3.02 and Solaris sed.
+ (glibc_mutex_init): Replace unportable \+ sed regex operator
+ with \{1,\}.
+ (glibc_c99_inline_2, glibc_mutex_init): Avoid unportable sed
+ alternation \| regex operator.
+ (solaris_complex): Remove superfluous backslashes from
+ replacement string. Replace \+ operator with \{1,\}.
+ * tests/base/Xm/Traversal.h: This is fixed for BSD sed now.
+ * fixincl.x: Regenerate.
+
+2009-09-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR libfortran/41169
+ * inclhack.def (irix_complex): New fix.
+ (solaris_complex): Likewise.
+ * fixincl.x: Regenerate.
+ * tests/base/complex.h [IRIX_COMPLEX_CHECK, SOLARIS_COMPLEX_CHECK]:
+ New tests.
+
+2009-08-28 Bruce Korb <bkorb@gnu.org>
+ Steve Ellcey <sje@cup.hp.com>
+
+ * README (files): Describe files entry.
+ * inclhack.def (hpux_stdint_least): Remove.
+ (hpux_stdint_fast): Remove.
+ (hpux_stdint_fast): Remove.
+ (hpux_stdint_least_fast): New.
+ (hpux_inttype_int_least8_t): Remove.
+ (hpux_inttype_int8_t): Modify.
+ * fixincl.x: Regenerate.
+ * tests/base/stdint.h: Update.
+ * tests/base/sys/_inttypes.h: Update.
+
+2009-08-28 Steve Ellcey <sje@cup.hp.com>
+
+ * inclhack.def (hpux_imaginary_i): Remove spaces.
+ * fixincl.x: Regenerate.
+ * tests/base/stdint.h: Update AIX fixes.
+ * tests/base/complex.h: Change HPUX_IMAGINARY_I_CHECK fix.
+
+2009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure.ac (AC_PREREQ): Bump to 2.64.
+
+2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+ * config.h.in: Regenerate.
+
+2009-08-17 David Edelsohn <edelsohn@gnu.org>
+
+ * inclhack.def (aix_complex): Redefine _Complex_I. Do not
+ redefine I.
+ * (aix_stdint_[12345]): New fixes.
+ * fixincl.x: Regenerate.
+ * tests/base/complex.h: Update check.
+ * tests/base/stdint.h: Add AIX stdint.h checks.
+
+2009-08-14 Steve Ellcey <sje@cup.hp.com>
+
+ * inclhack.def (hpux_imaginary_i): New fix.
+ * fixincl.x: Regenerate.
+ * tests/base/complex.h: New file.
+
+2009-08-12 David Edelsohn <edelsohn@gnu.org>
+
+ * inclhack.def (aix_complex): New fix.
+ * fixincl.x: Regenerate.
+
+2009-08-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * inclhack.def (hpux_inttype_int_least8_t): Also apply on hpux10*.
+ (hpux_inttype_int8_t): Likewise.
+ * fixincl.x: Regenerate.
+
+2009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * Makefile.in (AUTOCONF, AUTOHEADER, ACLOCAL, ACLOCAL_AMFLAGS):
+ New variables.
+ ($(srcdir)/configure, $(srcdir)/config.h.in, $(srcdir)/aclocal.m4):
+ Use them.
+
+2009-07-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * inclhack.def (darwin_stdint_5, darwin_stdint_6,
+ darwin_stdint_7): New fixes.
+ * fixincl.x: Regenerate.
+ * tests/base/stdint.h: Adjust test for new fixes.
+
+2009-07-03 Eric Botcazou <ebotcazou@adacore.com>
+
+ * inclhack.def (solaris_int_types): New fix.
+ * fixincl.x: Regenerate.
+ * tests/base/sys/int_types.h: New file.
+
+2009-06-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * inclhack.def (darwin_stdint_1, darwin_stdint_2, darwin_stdint_3,
+ darwin_stdint_4): New fixes.
+ * tests/base/stdint.h: Adjust test results for new fixes.
+ * fixincl.x: Regenerate.
+
+2009-05-29 Eric Botcazou <ebotcazou@adacore.com>
+
+ * inclhack.def (solaris_int_const): New fix.
+ (solaris_int_limits_1): Likewise.
+ (solaris_int_limits_2): Likewise.
+ * fixincl.x: Regenerate.
+ * tests/base/sys/int_const.h: New file.
+ * tests/base/sys/int_limits.h: Likewise.
+
+2009-05-15 Joseph Myers <joseph@codesourcery.com>
+
+ * inclhack.def (glibc_tgmath): Correct bypass.
+ * fixincl.x: Regenerate.
+
+2009-04-28 Steve Ellcey <sje@cup.hp.com>
+
+ * inclhack.def (hpux11_uint32_c): Remove.
+ (hpux_long_double): Disable on hpux11.3*.
+ (hpux_long_double_2): New.
+ (hpux_c99_intptr): New.
+ (hpux_c99_inttypes): New.
+ (hpux_c99_inttypes2): New.
+ (hpux_stdint_least): New.
+ (hpux_stdint_fast): New.
+ (hpux_inttype_int_least8_t): New.
+ (hpux_inttype_int8_t): New.
+ * fixincl.x: Regenerate.
+ * tests/base/sys/_inttypes.h: New.
+ * tests/base/inttypes.h: Update.
+ * tests/base/stdlib.h: Update.
+ * tests/base/stdint.h: Update.
+
+2009-04-28 Joseph Myers <joseph@codesourcery.com>
+
+ * inclhack.def (glibc_stdint): New fix.
+ * fixincl.x: Regenerate.
+ * tests/base/stdint.h: Update.
+
+2009-04-09 Jakub Jelinek <jakub@redhat.com>
+
+ * Makefile.in: Change copyright header to refer to version
+ 3 of the GNU General Public License and to point readers at the
+ COPYING3 file and the FSF's license web page.
+ * fixfixes.c: Likewise.
+ * fixinc.in: Likewise.
+ * fixincl.c: Likewise.
+ * fixlib.c: Likewise.
+ * fixlib.h: Likewise.
+ * fixopts.c: Likewise.
+ * fixtests.c: Likewise.
+ * genfixes: Likewise.
+ * mkheaders.in: Likewise.
+ * system.h: Likewise.
+
+2009-03-31 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/448
+ * inclhack.def (newlib_stdint_1, newlib_stdint_2): New fixes.
+ * fixincl.x: Regenerate.
+ * tests/base/stdint.h: Update.
+
+2009-03-29 Joseph Myers <joseph@codesourcery.com>
+
+ * tests/base/math.h, tests/base/pthread.h, tests/base/sys/wait.h:
+ Update.
+
+2009-03-29 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/456
+ PR c/5675
+ PR c/19976
+ PR c/29116
+ PR c/31871
+ PR c/35198
+ * inclhack.def (glibc_tgmath): New fix.
+ * fixincl.x: Regenerate.
+ * tests/base/tgmath.h: New.
+
+2009-03-28 Joseph Myers <joseph@codesourcery.com>
+
+ * inclhack.def (aix_syswait, exception_structure,
+ pthread_page_size): Remove.
+ (math_exception): Remove mention of fixproto in comment.
+ * fixincl.x: Regenerate.
+ * mkheaders.in: Do not handle STMP_FIXPROTO.
+
+2009-03-27 Sandra Loosemore <sandra@codesourcery.com>
+
+ * server.c (run_shell): Quote directory name passed to cd.
+
+2009-03-01 Bruce Korb <bkorb@gnu.org>
+ Apply a positively ancient patch:
+
+ 2004-10-15 Giovanni Bajo <giovannibajo@libero.it>
+
+ * inclhack.def (alpha_if_semicolon): new fix from long, long ago
+ * tests/base/net/if.h: Add new test.
+
+2009-01-06 Andreas Tobler <a.tobler@schweiz.org>
+
+ * tests/base/locale.h: Add new test.
+ * tests/base/stdarg.h: Likewise.
+
+2009-01-05 Steve Ellcey <sje@cup.hp.com>
+
+ * inclhack.def (hpux_spu_info): Add files line.
+ * fixincl.x: Regenerate.
+
+2009-01-01 Andreas Tobler <a.tobler@schweiz.org>
+
+ * inclhack.def (openbsd_null_definition): Redefine NULL to (void *)0
+ in case of C.
+ * fixincl.x: Regenerate.
+
+2008-12-31 Andreas Tobler <a.tobler@schweiz.org>
+
+ PR target/35460
+ * inclhack.def (openbsd_va_start): Use __builtin_va_start
+ for OpenBSD.
+ * fixincl.x: Regenerate.
+
+2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure: Regenerate.
+
+2008-12-15 Steve Ellcey <sje@cup.hp.com>
+
+ * inclhack.def (hpux_spu_info): Match PA as well as IA64.
+ * fixincl.x: Regenerate.
+
+2008-09-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * configure.ac: Fix a typo.
+ * configured: Regenerate.
+
+2008-09-06 Bruce Korb <bkorb@gnu.org>
+
+ * fixincl.tpl (sed): make the program executable configurable.
+ Some platforms have some rather oddball defaults.
+ * config.h.in (SED_PROGRAM): define the default sed.
+ * fixincl.x: regenerated
+ * tests/base/internal/wchar_core.h: fix bad sample text
+ * tests/base/math.h: fix bad sample text
+ * configure.ac: search for working sed
+ * inclhack.def (glibc_mutex_init): fix non-portable construct
+ and re-order a few misordered entries.
+
+2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure: Regenerate.
+
+2008-06-07 Joseph Myers <joseph@codesourcery.com>
+
+ * inclhack.def (AAB_svr4_replace_byteorder,
+ AAB_ultrix_ansi_compat, AAB_ultrix_limits, AAB_ultrix_memory,
+ libc1_G_va_list, libc1_ifdefd_memx, nested_motorola,
+ ptx_sys_mc_param_h, sco_regset, sco_static_func, sco_utime,
+ solaris_mutex_init_1, solaris_socket, solaris_unistd,
+ solaris_widec, svr4_krnl, ultrix_atexit_param, ultrix_atof_param,
+ ultrix_const3, ultrix_fix_fixproto, ultrix_ifdef, ultrix_locale,
+ ultrix_math_ifdef, ultrix_nested_ioctl, ultrix_nested_svc,
+ ultrix_stat, ultrix_static, ultrix_stdlib, ultrix_strings,
+ ultrix_strings2, ultrix_sys_time, ultrix_unistd,
+ unicosmk_restrict, uw7_byteorder_fix, windiss_math1,
+ windiss_math2, windiss_valist): Remove.
+ * fixincl.x: Regenerate.
+ * mkfixinc.sh: (arm-semi-aof, hppa1.1-*-osf*, hppa1.1-*-bsd*,
+ i370-*-openedition, i?86-*-moss*, i?86-*-uwin*,
+ powerpc-*-eabiaix*): Remove.
+ * tests/base/math.h: Update.
+ * tests/base/pthread.h: Update.
+ * tests/base/stdio.h: Update.
+ * tests/base/stdlib.h: Update.
+ * tests/base/string.h: Update.
+ * tests/base/strings.h: Update.
+ * tests/base/sys/file.h: Update.
+ * tests/base/sys/limits.h: Update.
+ * tests/base/sys/socket.h: Update.
+ * tests/base/sys/stat.h: Update.
+ * tests/base/sys/time.h: Update.
+ * tests/base/testing.h: Update.
+ * tests/base/unistd.h: Update.
+ * tests/base/_G_config.h: Remove.
+ * tests/base/arpa: Remove directory.
+ * tests/base/fs: Remove directory.
+ * tests/base/locale.h: Remove.
+ * tests/base/machine: Remove directory.
+ * tests/base/rpc/svc.h: Remove.
+ * tests/base/sys/ioctl.h: Remove.
+ * tests/base/sys/regset.h: Remove.
+ * tests/base/sys/times.h: Remove.
+ * tests/base/sys/utsname.h: Remove.
+ * tests/base/widec.h: Remove.
+
+2008-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * inclhack.def (solaris_math_4): Use GCC's __builtin_fpclassify.
+ * tests/base/iso/math_c99.h: Update.
+ * fixincl.x: Regenerate.
+
+2008-05-14 Joseph Myers <joseph@codesourcery.com>
+
+ * inclhack.def (AAB_fd_zero_asm_posix_types_h): Bypass on
+ posix_types_64.
+ * fixincl.x: Regenerate.
+
+2008-04-25 Kai Tietz <kai.tietz@onvision.com>
+
+ * fixincl.c (fix_with_system): Cast pointer difference to long.
+ * fixlib.c (make_raw_shell_str): Cast compare to avoid sign warning.
+
+2008-04-18 Paolo Bonzini <bonzini@gnu.org>
+
+ PR bootstrap/35457
+ * Makefile.in: Rewrite aclocal.m4 rule.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+
+2008-03-07 Peter O'Gorman <pogma@thewrittenword.com>
+
+ PR c++/20366
+ * inclhack.def (AAB_aix_stdio): Hack stdio.h for -D_LARGE_FILES.
+ * fixincl.x: Regenerate.
+ * tests/base/stdio.h: Add test.
+
+2008-02-25 Ben Elliston <bje@au.ibm.com>
+
+ PR other/32948
+ * fixincl.c (fix_applies): Remove unused variable `name_len'.
+
+2008-02-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * inclhack.def (solaris_math_10): New.
+ * tests/base/iso/math_c99.h: Update.
+
+ * fixincl.x: Regenerate.
+
+2008-02-04 Ismail Dönmez <ismail@pardus.org.tr>
+
+ * inclhack.def: (bsd_stdio_attrs_conflict, freebsd_gcc3_breakage,
+ freebsd_gcc4_breakage, hppa_hpux_fp_macros, hpux11_abs,
+ netbsd_c99_inline_1, netbsd_c99_inline_2, netbsd_extra_semicolon): Add
+ quotes around mach entries.
+ * fixincl.x: Regenerate with latest autogen (5.9.4), updating license
+ to GPLv3.
+
+2008-02-04 Hans-Peter Nilsson <hp@axis.com>
+
+ PR other/31405
+ * inclhack.def: (glibc_c99_inline_1a): Re-add last change.
+ (glibc_c99_inline_3) <bypass>: Change from __STDC_VERSION__ to
+ __extern_inline|__GNU_STDC_INLINE__.
+ (glibc_c99_inline_4) <files>: Add wchar.h and */wchar.h.
+ <bypass>: Change from __STDC_VERSION__ to
+ __extern_inline|__GNU_STDC_INLINE__.
+ <first c_fix_arg>: Change from #ifdef-wrapping the extern part to
+ appending attribute-gnu_inline.
+ <second c_fix_arg>: Remove.
+ <test_text>: Remove __extern_inline line.
+ * tests/base/features.h: Re-add.
+ * tests/base/sys/sysmacros.h: Adjust.
+ * fixincl.x: Regenerate.
+
+2008-01-06 Hans-Peter Nilsson <hp@axis.com>
+
+ Revert last change.
+
+2007-12-18 Hans-Peter Nilsson <hp@axis.com>
+
+ * inclhack.def: (glibc_c99_inline_1a, glibc_c99_inline_5): New.
+ * fixincl.x: Regenerate.
+ * tests/base/wchar.h: Update.
+ * tests/base/features.h: New.
+
+2007-10-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/33700
+ * inclhack.def (hpux11_pthread_const): New.
+ * fixincl.x: Regenerate.
+ * tests/base/sys/pthread.h: Update.
+
+2007-10-12 Kai Tietz <kai.tietz@onevision.com>
+
+ * configure.ac: x86_64 mingw target uses twoprocess.
+ * mkfixinc.sh: Add x86_64 mingw target.
+ * configure: Regenerate.
+
+2007-10-09 Geoffrey Keating <geoffk@apple.com>
+
+ * inclhack.def (darwin_externc): New.
+ * fixincl.x: Regenerate.
+ * tests/base/mach-o/swap.h: New.
+
+2007-08-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * inclhack.def (solaris_math_5, solaris_math_6, solaris_math_7):
+ Delete fixes.
+ * tests/base/iso/math_c99.h: Delete associated test baselines.
+ * fixincl.x: Regenerate.
+
+2007-07-24 Krister Walfridsson <cato@df.lth.se>
+
+ PR target/30058
+ * inclhack.def (netbsd_c99_inline_2): New.
+ * fixincl.x: Regenerate.
+ * tests/base/signal.h: Update.
+
+2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR target/32641
+
+ * inclhack.def (solaris_math_4, solaris_math_5, solaris_math_6,
+ solaris_math_7): Constify and make FP exception-safe.
+ * tests/base/iso/math_c99.h: Update.
+
+ * fixincl.x: Regenerate.
+
+2007-07-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ PR libgcj/28190
+ * inclhack.def (irix_stdint_c99): New fix.
+ * fixincl.x: Regenerate.
+ * tests/base/stdint.h: New test.
+
+2007-06-06 Steve Ellcey <sje@cup.hp.com>
+
+ PR testsuite/31828
+ * inclhack.def (hppa_hpux_fp_macros): New.
+ * fixincl.x: Regenerate.
+ * tests/base/math.h: Update.
+
+2007-03-26 Jakub Jelinek <jakub@redhat.com>
+
+ * inclhack.def (glibc_c99_inline_1): Define __USE_EXTERN_INLINES
+ if __extern_inline or __GNUC_GNU_INLINE__ is defined rather than
+ __STDC_VERSION__ < 199901L.
+ (glibc_c99_inline_2): Replace #if __STDC_VERSION__ < 199901L
+ with #ifdef __GNUC_GNU_INLINE__.
+ (glibc_c99_inline_3): Add select. Replace __STDC_VERSION__ >= 199901L
+ with defined(__GNUC_STDC_INLINE__).
+ (glibc_c99_inline_4): Change select, add second c_fix_arg.
+ Replace #if __STDC_VERSION__ < 199901L with
+ #ifdef __GNUC_GNU_INLINE__.
+ * fixincl.x: Regenerated.
+ * tests/base/bits/string2.h: Update.
+ * tests/base/sys/sysmacros.h: Update.
+ * tests/base/sys/stat.h: Update.
+
+2007-03-18 Krister Walfridsson <cato@df.lth.se>
+
+ PR target/30058
+ * inclhack.def (netbsd_c99_inline_1): New.
+ * fixincl.x: Regenerate.
+ * tests/base/signal.h: New.
+
+2007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
+
+ * Makefile.in: Add dummy "install-info" target.
+
+2007-03-06 Joseph Myers <joseph@codesourcery.com>
+
+ * mkheaders.in: Fix headers for each multilib required.
+
+2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
+
+ * Makefile.in: Add dummy install-pdf target.
+
+2007-02-27 Joseph Myers <joseph@codesourcery.com>
+
+ * mkheaders.in (incdir): Use include-fixed not include.
+
+2007-02-15 Brooks Moses <brooks.moses@codesourcery.com>
+
+ * Makefile.in: Added "pdf" target to .PHONY.
+
+2007-02-05 Richard Guenther <rguenther@suse.de>
+
+ * inclhack.def (glibc_c99_inline_4): Adjust selector to cope
+ with older glibc. Adjust version number for C99.
+ * fixincl.x: Regenerated.
+
+2007-02-04 Mike Stump <mrs@apple.com>
+
+ * mkheaders.in: Allow optional isysroot parameter.
+
+2007-02-03 Bruce Korb <bkorb@gnu.org>
+
+ * inclhack.def (glibc_c99_inline_4): replace "extern" only if
+ surrounded by space characters.
+
+2007-01-25 Daniel Franke <franke.daniel@gmail.com>
+
+ PR target/30272
+ * inclhack.def(broken_cabs): Also remove definition of cabsl.
+ * fixincl.x: Regenerate.
+ * tests/base/math.h: Update.
+
+2007-01-05 Bruce Korb <bkorb@gnu.org>,
+ Daniel Franke <franke.daniel@gmail.com>
+
+ PR target/30008
+ * fixincl.tpl (List): separate file name patterns with a NUL byte instead
+ of a vertical bar ("|").
+ * fixincl.c (fix_applies, machine_matches): Use fnmatch for name
+ matching. Set SKIP_TEST flag if we are not to run a test.
+ * fixincl.x: Regenerate.
+ * inclhack.def (glibc_c99_inline_[1234], broken_cabs, broken_nan,
+ kandr_concat, sco_math): Replace lists of specfic file names by search
+ patterns.
+
+2006-12-12 Olivier Hainque <hainque@adacore.com>
+
+ * fixincludes/mkfixinc.sh: Add "*-*-vxworks*" to the list of
+ targets for which a no-op fixer is appropriate.
+
+2006-11-07 Richard Guenther <rguenther@suse.de>
+
+ * inclhack.def (glibc_c99_inline_2): Adjust for glibc 2.3
+ systems.
+ * fixincl.x: Regenerate.
+
+2006-11-02 Geoffrey Keating <geoffk@apple.com>
+
+ * inclhack.def (glibc_c99_inline_1): New.
+ * inclhack.def (glibc_c99_inline_2): New.
+ * inclhack.def (glibc_c99_inline_3): New.
+ * inclhack.def (glibc_c99_inline_4): New.
+ * fixincl.x: Regenerate.
+ * tests/base/bits/string2.h: New.
+ * tests/base/sys/sysmacros.h: New.
+ * tests/base/sys/stat.h: Update.
+
+2006-11-01 Steve Ellcey <sje@cup.hp.com>
+
+ * tests/base/sys/socket.h: Update.
+
+2006-10-31 Steve Ellcey <sje@cup.hp.com>
+
+ * inclhack.def (hpux11_extern_sendfile): New.
+ (hpux11_extern_sendpath): New.
+ * fixincl.x: Regenerate.
+
+2006-10-29 Joseph Myers <joseph@codesourcery.com>
+
+ * inclhack.def (AAB_fd_zero_asm_posix_types_h): Bypass on x86_64.
+ * fixincl.x: Regenerate.
+
+2006-10-10 Brooks Moses <bmoses@stanford.edu>
+
+ * Makefile.in: Added empty "pdf" target.
+
+2006-10-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/29300
+ * inclhack.def (hpux_pthread_initializers): New hack.
+ * tests/base/sys/pthread.h: New file.
+
+ * fixincl.x: Regenerate.
+
+2006-10-03 Uros Bizjak <uros@kss-loka.si>
+
+ * inclhack.def (glibc_mutex_init): Also fix
+ PTHREAD_MUTEX_(RECURSIVE|ERRORCHECK|ADAPTIVE)_NP and
+ PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP initializers.
+ * tests/base/pthread.h: Update.
+
+ * fixincl.x: Regenerate.
+
+2006-10-01 Uros Bizjak <uros@kss-loka.si>
+
+ * inclhack.def (glibc_mutex_init): New fix.
+ * tests/base/pthread.h: Update.
+
+ * fixincl.x: Regenerate.
+
+2006-09-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * inclhack.def (solaris_mutex_init_2): Update for Solaris9.
+ Prevent it from running on solaris10 or later.
+ (solaris_once_init_2): Fix comment.
+ * tests/base/pthread.h: Update.
+
+ * fixincl.x: Regenerate.
+
+2006-09-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * inclhack.def (solaris_once_init_2): New fix.
+ * tests/base/pthread.h: Update.
+
+ * fixincl.x: Regenerate.
+
+2006-09-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * inclhack.def (solaris_mutex_init_2): Remove test for
+ PTHREAD_RWLOCK_INITIALIZER.
+ (solaris_rwlock_init_1): New.
+ * tests/base/pthread.h: Update.
+
+ * inclhack.def (solaris_once_init_1): New.
+ * tests/base/pthread.h: Adjust for new fix.
+
+ * fixincl.x: Regenerate.
+
+2006-07-17 Roger Sayle <roger@eyesopen.com>
+
+ * tests/base/errno.h: New file.
+ * tests/base/architecture/ppc/math.h: Likewise.
+ * tests/base/ia64/sys/getppdp.h: Likewise.
+
+2006-07-10 Laurynas Biveinis <laurynas.biveinis@gmail.com>
+
+ PR bootstrap/20437
+ * Makefile.in (configure, config.h.in): Change into $(srcdir)
+ before autoconf or autoheader call.
+
+2006-06-23 Steve Ellcey <sje@cup.hp.com>
+
+ PR target/28084
+ * inclhack.def (hpux_extern_errno): New.
+ * fixincl.x: Regenerate.
+
+2006-05-23 Carlos O'Donell <carlos@codesourcery.com>
+
+ * Makefile.in: Add dvi info html and install-html to .PHONY
+ Add install-html target.
+
+2006-05-16 Mike Stump <mrs@apple.com>
+
+ * configure.ac: Add -Wno-overlength-strings.
+ * configure: Regenerate.
+
+2006-05-14 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * README: Fix typo.
+
+2006-02-18 Steve Ellcey <sje@cup.hp.com>
+
+ PR target/26189
+ * inclhack.def (hpux_spu_info): New.
+ * fixincl.x: Regenerate
+
+2006-01-31 Marcin Dalecki <martin@dalecki.de>
+
+ * configure.ac: Check for asprintf, basename, vasprintf.
+ * config.h.in: Regenerate.
+ * configure: Regenerate.
+
+2006-01-19 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR target/15642
+ * inclhack.def (AAB_darwin7_9_long_double_funcs [replace]): Define
+ __APPLE_CC_ as 1345.
+ (broken_nan): New.
+ * fixincl.x: Regenerate.
+
+2005-11-24 Bruce Korb <bkorb@gnu.org>
+
+ * fixincl.c (write_replacement): "here strings" in AutoGen
+ often/generally don't have a terminating newline. Check the
+ last byte for '\n'.
+
+2005-11-13 Andreas Jaeger <aj@suse.de>
+
+ * check.tpl: Handle CVS additionally.
+
+2005-11-05 Andreas Jaeger <aj@suse.de>
+
+ * check.tpl: Adopt for move to subversion.
+
+2005-09-15 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c++/23139
+ * inclhack.def (huge_val_hex, huge_valf_hex, huge_vall_hex): New
+ fixes.
+ * fixincl.x: Regenerate.
+ * tests/base/bits/huge_val.h: New file.
+
+2005-08-14 Kelley Cook <kcook@gcc.gnu.org>
+
+ * All files: Update with new FSF address.
+
+2005-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * Makefile.in (WARN_CFLAGS): New.
+ (.c.o): Add $(WARN_CFLAGS).
+ * aclocal.m4: Include ../config/warnings.m4.
+ * configure.ac: Invoke ACX_PROG_CC_WARNING_OPTS,
+ ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and
+ ACX_PROG_CC_WARNINGS_ARE_ERRORS.
+ * fixopts.c (initialize_opts): Fix old-style definintion.
+
+ * configure: Regenerate.
+
+2005-06-24 Geoffrey Keating <geoffk@geoffk.org>
+
+ * inclhack.def (AAB_darwin7_9_long_double_funcs): New.
+ (AAB_darwin7_9_long_double_funcs_2): New.
+ * fixincl.x: Regenerate.
+
+2005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ PR libfortran/15266
+ * inclhack.def (broken_cabs): Mention IRIX 5/6 problem.
+ Use double quotes in select so \t matches tabs.
+ Add IRIX testcase.
+ * fixincl.x: Regenerate.
+ * tests/base/math.h [BROKEN_CABS_CHECK]: Adapt for new testcase.
+
+2005-05-22 Danny Smith <dannysmith@users.souceforge.net>
+
+ PR target/21683
+ * fixincl.c: Don't include <sys/wait.h> if SEPARATE_FIX_PROC.
+
+2005-05-19 Eric Botcazou <ebotcazou@libertysurf.fr>
+ Joseph S. Myers <joseph@codesourcery.com>
+
+ PR target/19933
+ PR target/21315
+ * inclhack.def: New fixes solaris_math_[1-9].
+ * fixincl.x: Regenerate.
+ * tests/base/iso/math_c99.h: New.
+
+2005-05-19 Kelley Cook <kcook@gcc.gnu.org>
+
+ * aclocal.m4: Remove superfluous reference to accross.m4.
+
+2005-05-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * fixlib.c (load_file_data): Use XRESIZVEC in lieu of xrealloc.
+ * server.c (load_data): Likewise.
+ (run_shell): Use XCNEW (char) in lieu of xcalloc (1, 1).
+ * fixincl.c: #include <sys/wait.h>
+ (run_compiles): Use XCNEWVEC instead of xcalloc.
+ (fix_with_system, start_fixer): Use XNEWVEC instead of xmalloc.
+ * fixfixes.c (FIX_PROC_HEAD, main): Likewise.
+
+2005-05-10 Joseph S. Myers <joseph@codesourcery.com>
+
+ * inclhack.def (stdio_stdarg_h, stdio_va_list): Bypass on
+ *-*-solaris2.1[0-9]*, not just *-*-solaris2.1[0-9].
+ * fixincl.x: Regenerate.
+
+2005-05-06 Bruce Korb <bkorb@gnu.org>
+ Joseph S. Myers <joseph@codesourcery.com>
+
+ * fixinc/inclhack.def: Correct backslashes
+ * fixinc/fixincl.x: regen
+
+2005-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * system.h (fopen, fdopen, freopen): Define these to the unlocked
+ libiberty functions.
+
+2005-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * configure.ac (fixincludes_UNLOCKED_FUNCS): New.
+ (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for fixincludes_UNLOCKED_FUNCS.
+ * system.h (putchar, getc, getchar, clearerr, feof, fileno,
+ fflush, fgetc, fgets, ferror, fread): Redefine to the associated
+ _unlocked function.
+ (fwrite_unlocked): Fix prototype.
+
+ * configure, config.h.in: Regenerate.
+
+2005-03-21 Zack Weinberg <zack@codesourcery.com>
+
+ * Makefile.in: Set gcc_version directly, not via substitution.
+ (libsubdir): Use $(gcc_version), not $(version).
+ (mkheaders.almost): New rule.
+ (mkheaders): Generate from mkheaders.almost.
+ (clean): Also delete mkheaders.almost.
+ * aclocal.m4: Do not include ../config/gcc-version.m4.
+ * configure.ac: Do not invoke TL_AC_GCC_VERSION. Generate
+ mkheaders.almost from mkheaders.in.
+ * configure: Regenerate.
+
+2005-03-21 Richard Guenther <rguenth@gcc.gnu.org>
+
+ PR target/20166
+ * inclhack.def: Add fix for array of incomplete structures
+ in function prototype in pthread.h.
+ * fixincl.x: Regenerate.
+ * tests/base/pthread.h: Adjust.
+
+2005-03-15 Joseph S. Myers <joseph@codesourcery.com>
+
+ * inclhack.def (hpux_htonl): New fix.
+ * tests/base/netinet/in.h: New test.
+ * fixincl.x: Regenerate.
+
+2005-02-23 James E Wilson <wilson@specifixinc.com>
+
+ * Makefile.in (full-stamp, test-stamp, $(AF)): Add $(CFLAGS) to link.
+
+2004-12-13 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR 18458
+ * Makefile.in (install): Add @EXEEXT@ to the end of the program name,
+ fixincl.
+
+2004-12-02 Richard Sandiford <rsandifo@redhat.com>
+
+ * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
+ * aclocal.m4: Include ../config/gcc-version.m4.
+ * configure: Regenerate.
+
+2004-11-26 Mark Mitchell <mark@codesourcery.com>
+
+ * inclhack.def (gnu_types): Do not use on Solaris 2.1x.
+ (stdio_va_list): Likewise.
+ (stdio_stdarg.h): Likewise.
+ (solaris_stdio_tag): Add bypass.
+ * fixincl.x: Regenerated.
+
+2004-11-23 Geoffrey Keating <geoffk@apple.com>
+
+ * mkfixinc.sh: Check error code from 'cat'. Don't try running
+ built fixincl program.
+ * mkheaders.in: Use @SHELL@ rather than ${SHELL} to avoid picking
+ up csh from user.
+
+2004-11-20 Roger Sayle <roger@eyesopen.com>
+
+ * inclhack.def (alpha_pthread_init): Fix technical problems with
+ the last check-in caused by CVS variable substitution.
+ * fixincl.x: Likewise.
+ * tests/base/pthread.h: Likewise.
+
+2004-11-20 Roger Sayle <roger@eyesopen.com>
+ Bruce Korb <bkorb@gnu.org>
+
+ * inclhack.def (alpha_pthread_init): New fix.
+ * fixincl.x: Regenerate.
+ * tests/base/pthread.h: Update for new test.
+
+2004-11-15 Bruce Korb <bkorb@gnu.org>
+
+ * fixincl.c(fix_with_system): correct misuse of variables and
+ incorrect application of "sizeof()".
+
+2004-11-13 Joseph S. Myers <joseph@codesourcery.com>
+
+ * inclhack.def (hpux_maxint, limits_ifndefs, math_huge_val_ifndef,
+ svr4__p, undefine_null): Remove.
+ * fixincl.x: Regenerate.
+ * tests/base/AvailabilityMacros.h, tests/base/com_err.h: New.
+ * tests/base/sys/param.h: Remove.
+ * tests/base/curses.h, tests/base/math.h, tests/base/testing.h,
+ tests/base/sys/limits.h: Update.
+
+2004-11-12 Mike Stump <mrs@apple.com>
+
+ * Makefile.in (html): Add html generation support.
+
+2004-11-12 Joseph S. Myers <joseph@codesourcery.com>
+
+ * inclhack.def (sco_math): Bypass on __GNUG__.
+ (sysz_stdlib_for_sun): Bypass on _CLASSIC_ANSI_TYPES.
+ * fixincl.x: Regenerate.
+
+2004-11-09 Joseph S. Myers <joseph@codesourcery.com>
+
+ * inclhack.def (hpux8_bogus_inlines): Bypass on __GNUG__.
+ (int_abort_free_and_exit, sun_malloc, sysv68_string): Bypass on
+ _CLASSIC_ANSI_TYPES.
+ (sun_auth_proto): Bypass on __cplusplus.
+ * fixincl.x: Regenerate.
+
+2004-11-05 Geoffrey Keating <geoffk@apple.com>
+
+ * Makefile.in (mostlyclean): Add fixinc.sh.
+ (clean): Add mkheaders.
+ (distclean): New.
+ (dvi): New.
+ (info): New.
+ (installcheck): New.
+
+2004-11-05 Paolo Bonzini <bonzini@gnu.org>
+
+ * Makefile.in (mostlyclean, distclean): New targets.
+
+2004-11-04 Geoffrey Keating <geoffk@apple.com>
+
+ * configure.ac: Add code to determine noncanonical_target,
+ local_prefix, gcc_version; process mkheaders.in to make mkheaders.
+ * configure: Regenerate.
+ * fixinc.in: Move here from gcc/; fix many cross-hosting bugs.
+ * mkfixinc.sh: Move here from gcc/; update for changes to fixinc.in.
+ * mkheaders.in: Move here from gcc/; remove some unnecessary macros;
+ update for changes to fixinc.in.
+ * Makefile.in: Add many new macros.
+ (install): New target.
+ (mkheaders): New target.
+ (fixinc.sh): New target.
+ (all): Add mkheaders and fixinc.sh.
+ * README-fixinc: Move here from gcc/.
+
+2004-11-01 Mike Stump <mrs@apple.com>
+
+ * inclhack.def (stdio_va_list): Break out clients from here...
+ (stdio_va_list_clients): ...to here. Also, don't fix if stdarg.h is
+ included or ifdef va_start.
+ * fixincl.x: Regenerate.
+
+2004-10-28 Mike Stump <mrs@apple.com>
+
+ * inclhack.def (void_null): Avoid changing NULL on C++ friendly
+ systems.
+ * fixincl.x: Regenerate.
+
+2004-10-27 Geoffrey Keating <geoffk@apple.com>
+
+ * inclhack.def (darwin_gcc4_breakage): New.
+ * fixincl.x: Regenerate.
+
+2004-10-27 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
+
+ PR bootstrap/17832
+
+ * fixfixes.c (main): Check for _PC_NAME_MAX.
+
+2004-10-27 Paolo Bonzini <bonzini@gnu.org>
+
+ PR other/17991
+
+ * configure.ac: Fix typo.
+ * configure: Regenerate.
+ * fixincl.c (fix_with_system): tSCC is not a pointer. Fix.
+
+2004-10-20 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
+
+ PR bootstrap/17832
+
+ * fixincl.c (SIGCHLD): Remove definition.
+ (initialize): Remove SIGIOT and SIGPIPE checks.
+ (create_file): Fix mkdir() for Win32.
+ (internal_fix): Use dup2() instead of fcntl().
+
+ * fixlib.h (SIGQUIT): Define if undefined.
+ (SIGIOT): Same.
+ (SIGPIPE): Same.
+ (SIGALRM): Same.
+ (SIGKILL): Same.
+
+ * procopen.c (chain_open): Use dup2() instead of fcntl().
+
+2004-08-14 Paolo Bonzini <bonzini@gnu.org>
+
+ PR other/17991
+
+ * Makefile.in (ALLOBJ, TESTOBJ, FIXOBJ): Add fixopts.o.
+ Update copyright year.
+ * fixfixes.c (main): Call initialize_opts from fixopts.c.
+ * fixincl.c (initialize): Call initialize_opts from fixopts.c,
+ do not include code for parsing options (environment vars).
+ (fix_with_system): Use a search path for applyfix, so that you
+ can run the test suite with two-process fixincludes.
+ * fixopts.c: New file.
+ * configure.ac: Add --enable-twoprocess. Export ac_exeext
+ to config.h. Default to --enable-twoprocess for MinGW32.
+ * config.h.in: Regenerate.
+ * configure: Regenerate.
+
+2004-10-04 Loren J. Rittle <ljrittle@acm.org>
+
+ * tests/base/sys/cdefs.h: Update from test area.
+
+2004-09-17 Roger Sayle <roger@eyesopen.com>
+
+ * inclhack.def (linux_ia64_ucontext): New fix.
+ * fixincl.x: Regenerate.
+ * tests/base/sys/ucontext.h: New file.
+
+2004-09-15 Roger Sayle <roger@eyesopen.com>
+
+ * tests/base/sys/time.h: Correct mismatch in 2004-09-10 check-in.
+ * tests/base/stdlib.h: Likewise.
+
+2004-09-13 Loren J. Rittle <ljrittle@acm.org>
+
+ * inclhack.def (freebsd_gcc4_breakage): Add.
+ * fixincl.x: Regenerate.
+ * tests/base/sys/cdefs.h: Update for new test.
+
+2004-09-10 Adam Nemet <anemet@lnxw.com>
+
+ * inclhack.def (lynx_void_int): Remove.
+ (lynxos_fcntl_proto): Remove.
+ (lynxos_no_warning_in_sys_time_h): New fix.
+ (lynxos_missing_putenv): New fix.
+ * fixincl.x: Regenerate.
+ * tests/base/fcntl.h: Remove.
+ * tests/base/sys/time.h: Update from test area.
+ * tests/base/curses.h: Likewise.
+ * tests/base/stdlib.h: Likewise.
+
+2004-09-03 Jan Beulich <jbeulich@novell.com>
+
+ * inclhack.def: Suppress exception_structure and math_exception
+ for NetWare headers.
+ * fixincl.x: Regenerate.
+
+2004-08-31 Paolo Bonzini <bonzini@gnu.org>
+
+ * .cvsignore: New.
+ * Makefile.in: From gcc/fixinc/Makefile.in, making it fully
+ autoconfiscated.
+ * configure.ac: New.
+ * config.h.in: Generate.
+ * configure: Generate.
+ * aclocal.m4: New.
+ * fixlib.h: Remove inclusions of gcc files.
+ * system.h: New.
+
+ Other files copied from gcc/fixinc.
diff --git a/fixincludes/Makefile.in b/fixincludes/Makefile.in
new file mode 100644
index 000000000..b9857b957
--- /dev/null
+++ b/fixincludes/Makefile.in
@@ -0,0 +1,205 @@
+# Makefile for fixincludes.
+#
+# Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2009, 2010
+# Free Software Foundation, Inc.
+
+#This file is part of fixincludes.
+
+#fixincludes is free software; you can redistribute it and/or modify
+#it under the terms of the GNU General Public License as published by
+#the Free Software Foundation; either version 3, or (at your option)
+#any later version.
+
+#fixincludes 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 General Public License for more details.
+
+#You should have received a copy of the GNU General Public License
+#along with fixincludes; see the file COPYING3. If not see
+#<http://www.gnu.org/licenses/>.
+
+SHELL=@SHELL@
+
+# Some versions of `touch' (such as the version on Solaris 2.8)
+# do not correctly set the timestamp due to buggy versions of `utime'
+# in the kernel. So, we use `echo' instead.
+STAMP = echo timestamp >
+
+CC = @CC@
+CFLAGS = @CFLAGS@
+WARN_CFLAGS = @WARN_CFLAGS@ @WARN_PEDANTIC@ @WERROR@
+LDFLAGS = @LDFLAGS@
+INCLUDES = -I. -I$(srcdir) -I../include -I$(srcdir)/../include
+FIXINC_CFLAGS = -DHAVE_CONFIG_H $(INCLUDES)
+
+# Directory where sources are, from where we are.
+srcdir = @srcdir@
+VPATH = $(srcdir)
+
+# Directory in which to put the directories used by the compiler.
+libdir = @libdir@
+# Directory in which GCC puts its executables.
+libexecdir = @libexecdir@
+
+# End of variables for you to override.
+
+# The target that we're configured for.
+target = @target@
+target_noncanonical:=@target_noncanonical@
+
+# The version of GCC in this tree
+gcc_version := $(shell cat $(srcdir)/../gcc/BASE-VER)
+
+# Directory in which the compiler finds libraries etc.
+libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)
+# Directory in which the compiler finds executables
+libexecsubdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version)
+# Where our executable files go
+itoolsdir = $(libexecsubdir)/install-tools
+# Where our data files go
+itoolsdatadir = $(libsubdir)/install-tools
+
+# Locate mkinstalldirs.
+mkinstalldirs=$(SHELL) $(srcdir)/../mkinstalldirs
+
+AUTOCONF = autoconf
+AUTOHEADER = autoheader
+ACLOCAL = aclocal
+ACLOCAL_AMFLAGS = -I ../gcc -I .. -I ../config
+
+default : all
+
+# Now figure out from those variables how to compile and link.
+
+.c.o:
+ $(CC) -c $(CFLAGS) $(WARN_CFLAGS) $(CPPFLAGS) $(FIXINC_CFLAGS) $<
+
+# The only suffixes we want for implicit rules are .c and .o.
+.SUFFIXES:
+.SUFFIXES: .c .o
+
+#
+
+## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+##
+## Makefile for constructing the "best" include fixer we can
+##
+## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+LIBIBERTY=../libiberty/libiberty.a
+
+ALLOBJ = fixincl.o fixtests.o fixfixes.o server.o procopen.o \
+ fixlib.o fixopts.o
+
+TESTOBJ = fixincl.o fixlib.o fixtests.o fixopts.o
+FIXOBJ = fixfixes.o fixlib.o fixopts.o
+
+HDR = server.h fixlib.h
+FI = fixincl@EXEEXT@
+AF = applyfix@EXEEXT@
+
+all : @TARGET@ fixinc.sh mkheaders
+gen : $(srcdir)/fixincl.x
+
+
+oneprocess : full-stamp
+twoprocess : test-stamp $(AF)
+
+full-stamp : $(ALLOBJ) $(LIBIBERTY)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $(FI) $(ALLOBJ) $(LIBIBERTY)
+ $(STAMP) $@
+
+test-stamp : $(TESTOBJ) $(LIBIBERTY)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $(FI) $(TESTOBJ) $(LIBIBERTY)
+ $(STAMP) $@
+
+$(AF): $(FIXOBJ) $(LIBIBERTY)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(FIXOBJ) $(LIBIBERTY)
+
+$(ALLOBJ) : $(HDR)
+fixincl.o : fixincl.c $(srcdir)/fixincl.x
+fixtests.o : fixtests.c
+fixfixes.o : fixfixes.c $(srcdir)/fixincl.x
+server.o : server.c
+procopen.o : procopen.c
+fixlib.o : fixlib.c
+
+fixinc.sh : fixinc.in mkfixinc.sh Makefile
+ srcdir="$(srcdir)" $(SHELL) $(srcdir)/mkfixinc.sh $(target)
+
+$(srcdir)/fixincl.x: @MAINT@ fixincl.tpl inclhack.def
+ cd $(srcdir) ; $(SHELL) ./genfixes
+
+mostlyclean :
+ rm -f *.o *-stamp $(AF) $(FI) *~ fixinc.sh
+
+clean: mostlyclean
+ rm -f mkheaders mkheaders.almost
+
+distclean: clean
+ rm -f Makefile config.h config.log config.status stamp-h
+
+maintainer-clean: distclean
+ rm -f $(srcdir)/fixincl.x
+
+distclean : clean
+
+Makefile: $(srcdir)/Makefile.in config.status
+ $(SHELL) ./config.status Makefile
+
+mkheaders.almost: $(srcdir)/mkheaders.in config.status
+ CONFIG_FILES=mkheaders.almost:mkheaders.in \
+ CONFIG_HEADERS= ./config.status
+
+mkheaders: mkheaders.almost $(srcdir)/../gcc/BASE-VER
+ sed -e 's/@gcc_version@/$(gcc_version)/' < $< > $@T
+ mv -f $@T $@
+
+config.h: stamp-h
+stamp-h: $(srcdir)/config.h.in config.status
+ $(SHELL) ./config.status config.h
+
+config.status: $(srcdir)/configure
+ $(SHELL) ./config.status --recheck
+
+$(srcdir)/configure: @MAINT@ $(srcdir)/configure.ac $(srcdir)/aclocal.m4
+ cd $(srcdir) && $(AUTOCONF)
+
+$(srcdir)/config.h.in: @MAINT@ $(srcdir)/configure.ac
+ cd $(srcdir) && $(AUTOHEADER)
+
+$(srcdir)/aclocal.m4: @MAINT@ $(srcdir)/configure.ac
+ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+
+check : all
+ autogen -T $(srcdir)/check.tpl $(srcdir)/inclhack.def
+ $(SHELL) ./check.sh $(srcdir)/tests/base
+ @rm -f ./check.sh
+
+install : all
+ -rm -rf $(DESTDIR)$(itoolsdir)
+ $(mkinstalldirs) $(DESTDIR)$(itoolsdir)
+ $(mkinstalldirs) $(DESTDIR)$(itoolsdatadir)/include
+ $(INSTALL_DATA) $(srcdir)/README-fixinc \
+ $(DESTDIR)$(itoolsdatadir)/include/README
+ $(INSTALL_SCRIPT) fixinc.sh $(DESTDIR)$(itoolsdir)/fixinc.sh
+ $(INSTALL_PROGRAM) fixincl@EXEEXT@ \
+ $(DESTDIR)$(itoolsdir)/fixincl@EXEEXT@
+ $(INSTALL_SCRIPT) mkheaders $(DESTDIR)$(itoolsdir)/mkheaders
+
+install-strip: install
+ test -z '$(STRIP)' \
+ || $(STRIP) $(DESTDIR)$(itoolsdir)/fixincl@EXEEXT@
+
+.PHONY: all check install install-strip
+.PHONY: dvi pdf info html install-pdf install-info install-html
+
+dvi :
+pdf :
+info :
+html :
+install-pdf :
+install-info :
+install-html :
+installcheck :
diff --git a/fixincludes/README b/fixincludes/README
new file mode 100644
index 000000000..07a3964a2
--- /dev/null
+++ b/fixincludes/README
@@ -0,0 +1,331 @@
+
+FIXINCLUDES OPERATION
+=====================
+
+See also: http://autogen.SourceForge.net/fixinc.html
+
+The set of fixes required was distilled down to just the data required
+to specify what needed to happen for each fix. Those data were edited
+into a file named fixincludes/inclhack.def. A program called AutoGen
+(http://autogen.SourceForge.net) uses these definitions to instantiate
+several different templates that then produces code for a fixinclude
+program (fixincl.x) and a shell script to test its functioning. On
+certain platforms (viz. those that do not have functional bidirectional
+pipes), the fixincl program is split into two. This should only concern
+you on DOS and BeOS.
+
+Regards,
+ Bruce <bkorb@gnu.org>
+
+
+
+GCC MAINTAINER INFORMATION
+==========================
+
+If you are having some problem with a system header that is either
+broken by the manufacturer, or is broken by the fixinclude process,
+then you will need to alter or add information to the include fix
+definitions file, ``inclhack.def''. Please also send relevant
+information to gcc-bugs@gcc.gnu.org, gcc-patches@gcc.gnu.org and,
+please, to me: bkorb@gnu.org.
+
+To make your fix, you will need to do several things:
+
+1. Obtain access to the AutoGen program on some platform. It does
+ not have to be your build platform, but it is more convenient.
+
+2. Edit "inclhack.def" to reflect the changes you need to make.
+ See below for information on how to make those changes.
+
+3. Run the "genfixes" shell script to produce a new copy of
+ the "fixincl.x" file.
+
+4. Rebuild the compiler and check the header causing the issue.
+ Make sure it is now properly handled. Add tests to the
+ "test_text" entry(ies) that validate your fix. This will
+ help ensure that future fixes won't negate your work.
+
+5. Go into the fixincludes build directory and type, "make check".
+ You are guaranteed to have issues printed out as a result.
+ Look at the diffs produced. Make sure you have not clobbered
+ the proper functioning of a different fix. Make sure your
+ fix is properly tested and it does what it is supposed to do.
+
+6. Now that you have the right things happening, synchronize the
+ $(srcdir)/tests/base directory with the $(builddir)/tests/res
+ directory. The output of "make check" will be some diffs that
+ should give you some hints about what to do.
+
+7. Rerun "make check" and verify that there are no issues left.
+
+
+MAKING CHANGES TO INCLHACK.DEF
+==============================
+
+0. If you are not the fixincludes maintainer, please send that
+ person email about any changes you may want to make. Thanks!
+
+1. Every fix must have a "hackname" that is compatible with C syntax
+ for variable names and is unique without regard to alphabetic case.
+ Please keep them alphabetical by this name. :-)
+
+2. If the problem is known to exist only in certain files, then
+ identify the files with "files = " entries. If you use fnmatch(3C)
+ wild card characters in a "files" entry, be certain that the first
+ "files" entry has no such character. Otherwise, the "make check"
+ machinery will attempt to create files with those characters in the
+ name. That is inconvenient.
+
+3. It is relatively expensive to fire off a process to fix a source
+ file, therefore write apply tests to avoid unnecessary fix
+ processes. The preferred apply tests are "select", "bypass", "mach"
+ and "c-test" because they are performed internally:
+
+ * select - Run a regex on the contents of the file being considered.
+ All such regex-es must match. Matching is done with
+ extended regular expressions.
+
+ * bypass - Run a regex on the contents of the file being considered.
+ No such regex may match.
+
+ * c_test - call a function in fixtests.c. See that file.
+
+ * files - the "fnmatch" pattern of the file(s) to examine for
+ the issue. There may be several copies of this attribute.
+ If the header lives in a /usr/include subdirectory, be
+ sure to include that subdirectory in the name. e.g. net/if.h
+
+ * mach - Match the output of config.guess against a series of fnmatch
+ patterns. It must match at least one of the patterns, unless
+ "not-machine" has also been specified. In that case, the
+ config.guess output must not match any of the patterns.
+
+ The next test is relatively slow because it must be handled in a
+ separate shell process. Some platforms do not support server shells,
+ so the whole process is even slower and more cumbersome there.
+
+ * test - These should be arguments to the program, "/bin/test".
+ You may perform multiple commands, if you enclose them
+ in backquotes and echo out valid test arguments. For
+ example, you might echo out '0 -eq 1' if you want a false
+ result, or '0 -eq 0' for a true result.
+
+ These tests are required to:
+
+ 1. Be positive for all header files that require the fix.
+
+ It is desirable to:
+
+ 2. Be negative as often as possible whenever the fix is not
+ required, avoiding the process overhead.
+
+ It is nice if:
+
+ 3. The expression is as simple as possible to both
+ process and understand by people. :-)
+
+ Please take advantage of the fact AutoGen will glue
+ together string fragments. It helps. Also take note
+ that double quote strings and single quote strings have
+ different formation rules. Double quote strings are a
+ tiny superset of ANSI-C string syntax. Single quote
+ strings follow shell single quote string formation
+ rules, except that the backslash is processed before
+ '\\', '\'' and '#' characters (using C character syntax).
+
+ Each test must pass or the fix is not applied. For example,
+ all "select" expressions must be found and not one "bypass"
+ selection may be found.
+
+ Examples of test specifications:
+
+ hackname = broken_assert_stdio;
+ files = assert.h;
+ select = stderr;
+ bypass = "include.*stdio.h";
+
+ The ``broken_assert_stdio'' fix will be applied only to a file
+ named "assert.h" if it contains the string "stderr" _and_ it
+ does _not_ contain the expression "include.*stdio.h".
+
+ hackname = no_double_slash;
+ c_test = "double_slash";
+
+ The ``no_double_slash'' fix will be applied if the
+ ``double_slash_test()'' function says to. See ``fixtests.c''
+ for documentation on how to include new functions into that
+ module.
+
+4. There are currently four methods of fixing a file:
+
+ 1. a series of sed expressions. Each will be an individual
+ "-e" argument to a single invocation of sed.
+
+ 2. a shell script. These scripts are _required_ to read all
+ of stdin in order to avoid pipe stalls. They may choose to
+ discard the input.
+
+ 3. Replacement text. If the replacement is empty, then no
+ fix is applied. Otherwise, the replacement text is
+ written to the output file and no further fixes are
+ applied. If you really want a no-op file, replace the
+ file with a comment.
+
+ Replacement text "fixes" must be first in this file!!
+
+ 4. A C language subroutine method for both tests and fixes.
+ See ``fixtests.c'' for instructions on writing C-language
+ applicability tests and ``fixfixes.c'' for C-language fixing.
+ These files also contain tables that describe the currently
+ implemented fixes and tests.
+
+ If at all possible, you should try to use one of the C language
+ fixes as it is far more efficient. There are currently five
+ such fixes, three of which are very special purpose:
+
+ i) char_macro_def - This function repairs the definition of an
+ ioctl macro that presumes CPP macro substitution within
+ pairs of single quote characters.
+
+ ii) char_macro_use - This function repairs the usage of ioctl
+ macros that no longer can wrap an argument with single quotes.
+
+ iii) machine_name - This function will look at "#if", "#ifdef",
+ "#ifndef" and "#elif" directive lines and replace the first
+ occurrence of a non-reserved name that is traditionally
+ pre-defined by the native compiler.
+
+ The next two are for general use:
+
+ iv) wrap - wraps the entire file with "#ifndef", "#define" and
+ "#endif" self-exclusionary text. It also, optionally, inserts
+ a prolog after the "#define" and an epilog just before the
+ "#endif". You can use this for a fix as follows:
+
+ c_fix = wrap;
+ c_fix_arg = "/* prolog text */";
+ c_fix_arg = "/* epilog text */";
+
+ If you want an epilog without a prolog, set the first "c_fix_arg"
+ to the empty string. Both or the second "c_fix_arg"s may be
+ omitted and the file will still be wrapped.
+
+ THERE IS A SPECIAL EXCEPTION TO THIS, HOWEVER:
+
+ If the regular expression '#if.*__need' is found, then it is
+ assumed that the file needs to be read and interpreted more
+ than once. However, the prolog and epilog text (if any) will
+ be inserted.
+
+ v) format - Replaces text selected with a regular expression with
+ a specialized formating string. The formatting works as follows:
+ The format text is copied to the output until a '%' character
+ is found. If the character after the '%' is another '%', then
+ one '%' is output and processing continues. If the following
+ character is not a digit, then the '%' and that character are
+ copied and processing continues. Finally, if the '%' *is*
+ followed by a digit, that digit is used as an index into the
+ regmatch_t array to replace the two characters with the matched
+ text. i.e.: "%0" is replaced by the full matching text, "%1"
+ is the first matching sub-expression, etc.
+
+ This is used as follows:
+
+ c_fix = format;
+ c_fix_arg = "#ifndef %1\n%0\n#endif";
+ c_fix_arg = "#define[ \t]+([A-Z][A-Z0-9a-z_]*).*";
+
+ This would wrap a one line #define inside of a "#ifndef"/"#endif"
+ pair. The second "c_fix_arg" may be omitted *IF* there is at least
+ one select clause and the first one identifies the text you wish to
+ reformat. It will then be used as the second "c_fix_arg". You may
+ delete the selected text by supplying an empty string for the
+ replacement format (the first "c_fix_arg").
+
+ Note: In general, a format c_fix may be used in place of one
+ sed expression. However, it will need to be rewritten by
+ hand. For example:
+
+ sed = 's@^#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7$'
+ '@& || __GNUC__ >= 3@';
+
+ may be rewritten using a format c_fix as:
+
+ c_fix = format;
+ c_fix_arg = '%0 || __GNUC__ >= 3';
+ c_fix_arg = '^#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7$';
+
+ Multiple sed substitution expressions probably ought to remain sed
+ expressions in order to maintain clarity. Also note that if the
+ second sed expression is the same as the first select expression,
+ then you may omit the second c_fix_arg. The select expression will
+ be picked up and used in its absence.
+
+EXAMPLES OF FIXES:
+==================
+
+ hackname = AAA_ki_iface;
+ replace; /* empty replacement -> no fixing the file */
+
+ When this ``fix'' is invoked, it will prevent any fixes
+ from being applied.
+
+ ------------------
+
+ hackname = AAB_svr4_no_varargs;
+ 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";
+
+ When this ``fix'' is invoked, the replacement text will be
+ emitted into the replacement include file. No further fixes
+ will be applied.
+
+ ------------------
+
+ hackname = hpux11_fabsf;
+ files = math.h;
+ select = "^[ \t]*#[ \t]*define[ \t]+fabsf\\(.*";
+ bypass = "__cplusplus";
+
+ c_fix = format;
+ c_fix_arg = "#ifndef __cplusplus\n%0\n#endif";
+
+ test_text =
+ "# define fabsf(x) ((float)fabs((double)(float)(x)))\n";
+
+ This fix will ensure that the #define for fabs is wrapped
+ with C++ protection, providing the header is not already
+ C++ aware.
+
+ ------------------
+
+5. Testing fixes.
+
+ The brute force method is, of course, to configure and build
+ GCC. But you can also:
+
+ cd ${top_builddir}/gcc
+ rm -rf fixinc.sh include/ stmp-fixinc
+ make stmp-fixinc
+
+ I would really recommend, however:
+
+ cd ${top_builddir}/fixincludes
+ make check
+
+ To do this, you *must* have autogen installed on your system.
+ The "check" step will proceed to construct a shell script that
+ will exercise all the fixes, using the sample test_text
+ provided with each fix. Once done, the changes made will
+ be compared against the changes saved in the source directory.
+ If you are changing the tests or fixes, the change will likely
+ be highlighted.
diff --git a/fixincludes/README-fixinc b/fixincludes/README-fixinc
new file mode 100644
index 000000000..7086a7782
--- /dev/null
+++ b/fixincludes/README-fixinc
@@ -0,0 +1,14 @@
+This README file is copied into the directory for GCC-only header files
+when fixincludes is run by the makefile for GCC.
+
+Many of the files in this directory were automatically edited from the
+standard system header files by the fixincludes process. They are
+system-specific, and will not work on any other kind of system. They
+are also not part of GCC. The reason we have to do this is because
+GCC requires ANSI C headers and many vendors supply ANSI-incompatible
+headers.
+
+Because this is an automated process, sometimes headers get "fixed"
+that do not, strictly speaking, need a fix. As long as nothing is broken
+by the process, it is just an unfortunate collateral inconvenience.
+We would like to rectify it, if it is not "too inconvenient".
diff --git a/fixincludes/aclocal.m4 b/fixincludes/aclocal.m4
new file mode 100644
index 000000000..b23541c34
--- /dev/null
+++ b/fixincludes/aclocal.m4
@@ -0,0 +1,17 @@
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_include([../config/acx.m4])
+m4_include([../config/override.m4])
+m4_include([../config/warnings.m4])
+m4_include([../gcc/acinclude.m4])
diff --git a/fixincludes/check.tpl b/fixincludes/check.tpl
new file mode 100644
index 000000000..b239d8b55
--- /dev/null
+++ b/fixincludes/check.tpl
@@ -0,0 +1,177 @@
+[= autogen5 template sh=check.sh =]
+[=
+#
+# This file contains the shell template to run tests on the fixes
+#
+=]#!/bin/sh
+
+set -e
+TESTDIR=tests
+TESTBASE=`cd $1;${PWDCMD-pwd}`
+
+[ -d ${TESTDIR} ] || mkdir ${TESTDIR}
+cd ${TESTDIR}
+TESTDIR=`${PWDCMD-pwd}`
+
+TARGET_MACHINE='*'
+DESTDIR=`${PWDCMD-pwd}`/res
+SRCDIR=`${PWDCMD-pwd}`/inc
+FIND_BASE='.'
+VERBOSE=[=` echo ${VERBOSE-1} `=]
+INPUT=`${PWDCMD-pwd}`
+ORIGDIR=${INPUT}
+
+export TARGET_MACHINE DESTDIR SRCDIR FIND_BASE VERBOSE INPUT ORIGDIR
+
+rm -rf ${DESTDIR} ${SRCDIR}
+mkdir ${DESTDIR} ${SRCDIR}
+(
+[=
+ (shellf
+ "for f in %s
+ do case $f in
+ */* ) echo $f | sed 's;/[^/]*$;;' ;;
+ esac
+ done | sort -u | \
+ while read g
+ do echo \" mkdir \\${SRCDIR}/$g || mkdir -p \\${SRCDIR}/$g || exit 1\"
+ done" (join " " (stack "fix.files")) ) =]
+) 2> /dev/null[= # suppress 'No such file or directory' messages =]
+cd inc
+[=
+(define sfile "")
+(define HACK "")
+(define dfile "") =][=
+
+FOR fix =][=
+
+ IF (> (count "test_text") 1) =][=
+ (set! HACK (string-upcase! (get "hackname")))
+ (set! sfile (if (exist? "files") (get "files[]") "testing.h"))
+ (set! dfile (string-append
+ (if (*==* sfile "/")
+ (shellf "echo \"%s\"|sed 's,/[^/]*,/,'" sfile )
+ "" )
+ (string-tr! (get "hackname") "_A-Z" "-a-z")
+ ) ) =][=
+
+ FOR test_text (for-from 1) =]
+cat >> [=(. sfile)=] <<_HACK_EOF_
+
+
+#if defined( [=(. HACK)=]_CHECK_[=(for-index)=] )
+[=test_text=]
+#endif /* [=(. HACK)=]_CHECK_[=(for-index)=] */
+_HACK_EOF_
+echo [=(. sfile)=] | ../../fixincl
+mv -f [=(. sfile)=] [=(. dfile)=]-[=(for-index)=].h
+[ -f ${DESTDIR}/[=(. sfile)=] ] && [=#
+ =]mv ${DESTDIR}/[=(. sfile)=] ${DESTDIR}/[=(. dfile)=]-[=(for-index)=].h[=
+
+ ENDFOR test_text =][=
+
+ ENDIF multi-test =][=
+
+ENDFOR fix
+
+=][=
+
+FOR fix =][=
+ (set! HACK (string-upcase! (get "hackname"))) =][=
+
+ IF (not (exist? "test_text")) =][=
+ (if (not (exist? "replace"))
+ (error (sprintf "include fix '%s' has no test text"
+ (get "hackname") )) )
+ =][=
+ ELSE =]
+cat >> [=
+ IF (exist? "files") =][=
+ files[0] =][=
+ ELSE =]testing.h[=
+ ENDIF =] <<_HACK_EOF_
+
+
+#if defined( [=(. HACK)=]_CHECK )
+[=test_text=]
+#endif /* [=(. HACK)=]_CHECK */
+_HACK_EOF_
+[=ENDIF =][=
+
+ENDFOR fix
+
+=]
+
+find . -type f | sed 's;^\./;;' | sort | ../../fixincl
+cd ${DESTDIR}
+
+exitok=true
+
+find * -type f -print > ${TESTDIR}/LIST
+
+# Special hack for sys/types.h: the #define-d types for size_t,
+# ptrdiff_t and wchar_t are different for each port. Therefore,
+# strip off the defined-to type so that the test results are the
+# same for all platforms.
+#
+sed 's/\(#define __[A-Z_]*_TYPE__\).*/\1/' sys/types.h > XX
+mv -f XX sys/types.h
+
+# The following subshell weirdness is for saving an exit
+# status from within a while loop that reads input. If you can
+# think of a cleaner way, suggest away, please...
+#
+exitok=`
+exec < ${TESTDIR}/LIST
+while read f
+do
+ if [ ! -f ${TESTBASE}/$f ]
+ then
+ echo "Newly fixed header: $f" >&2
+ exitok=false
+
+ elif cmp $f ${TESTBASE}/$f >&2
+ then
+ :
+
+ else
+ ${DIFF:-diff} -c $f ${TESTBASE}/$f >&2 || :
+ exitok=false
+ fi
+done
+echo $exitok`
+
+cd $TESTBASE
+
+find * -type f -print | \
+fgrep -v 'CVS/' | \
+fgrep -v '.svn/' > ${TESTDIR}/LIST
+
+exitok=`
+exec < ${TESTDIR}/LIST
+while read f
+do
+ if [ -s $f ] && [ ! -f ${DESTDIR}/$f ]
+ then
+ echo "Missing header fix: $f" >&2
+ exitok=false
+ fi
+done
+echo $exitok`
+
+echo
+if $exitok
+then
+ cd ${TESTDIR}
+ rm -rf inc res LIST
+ cd ..
+ rmdir ${TESTDIR} > /dev/null 2>&1 || :
+ echo All fixinclude tests pass >&2
+else
+ echo There were fixinclude test FAILURES >&2
+fi
+$exitok[=
+
+(if (defined? 'set-writable) (set-writable))
+
+=]
diff --git a/fixincludes/config.h.in b/fixincludes/config.h.in
new file mode 100644
index 000000000..07cfb60e0
--- /dev/null
+++ b/fixincludes/config.h.in
@@ -0,0 +1,412 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Defined to the executable file extension on the host system */
+#ifndef USED_FOR_TARGET
+#undef EXE_EXT
+#endif
+
+
+/* Define to 1 if you have the `clearerr_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_CLEARERR_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the declaration of `abort', and to 0 if you don't.
+ */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_ABORT
+#endif
+
+
+/* Define to 1 if you have the declaration of `asprintf', and to 0 if you
+ don't. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_ASPRINTF
+#endif
+
+
+/* Define to 1 if you have the declaration of `basename', and to 0 if you
+ don't. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_BASENAME
+#endif
+
+
+/* Define to 1 if you have the declaration of `clearerr_unlocked', and to 0 if
+ you don't. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_CLEARERR_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the declaration of `errno', and to 0 if you don't.
+ */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_ERRNO
+#endif
+
+
+/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you
+ don't. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_FEOF_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the declaration of `ferror_unlocked', and to 0 if
+ you don't. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_FERROR_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the declaration of `fflush_unlocked', and to 0 if
+ you don't. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_FFLUSH_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the declaration of `fgetc_unlocked', and to 0 if
+ you don't. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_FGETC_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if
+ you don't. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_FGETS_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the declaration of `fileno_unlocked', and to 0 if
+ you don't. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_FILENO_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the declaration of `fprintf_unlocked', and to 0 if
+ you don't. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_FPRINTF_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the declaration of `fputc_unlocked', and to 0 if
+ you don't. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_FPUTC_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the declaration of `fputs_unlocked', and to 0 if
+ you don't. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_FPUTS_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the declaration of `fread_unlocked', and to 0 if
+ you don't. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_FREAD_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the declaration of `fwrite_unlocked', and to 0 if
+ you don't. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_FWRITE_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the declaration of `getchar_unlocked', and to 0 if
+ you don't. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_GETCHAR_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you
+ don't. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_GETC_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the declaration of `putchar_unlocked', and to 0 if
+ you don't. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_PUTCHAR_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the declaration of `putc_unlocked', and to 0 if you
+ don't. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_PUTC_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the declaration of `vasprintf', and to 0 if you
+ don't. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_VASPRINTF
+#endif
+
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_FCNTL_H
+#endif
+
+
+/* Define to 1 if you have the `feof_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_FEOF_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the `ferror_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_FERROR_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the `fflush_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_FFLUSH_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the `fgetc_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_FGETC_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the `fgets_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_FGETS_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the `fileno_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_FILENO_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the `fprintf_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_FPRINTF_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the `fputc_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_FPUTC_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the `fputs_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_FPUTS_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the `fread_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_FREAD_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the `fwrite_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_FWRITE_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the `getchar_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_GETCHAR_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the `getc_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_GETC_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_INTTYPES_H
+#endif
+
+
+/* Define to 1 if you have the <memory.h> header file. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_MEMORY_H
+#endif
+
+
+/* Define if mmap with MAP_ANON(YMOUS) works. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_MMAP_ANON
+#endif
+
+
+/* Define if mmap of /dev/zero works. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_MMAP_DEV_ZERO
+#endif
+
+
+/* Define if read-only mmap of a plain file works. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_MMAP_FILE
+#endif
+
+
+/* Define to 1 if you have the `putchar_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_PUTCHAR_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the `putc_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_PUTC_UNLOCKED
+#endif
+
+
+/* Define to 1 if you have the <stddef.h> header file. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_STDDEF_H
+#endif
+
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_STDINT_H
+#endif
+
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_STDLIB_H
+#endif
+
+
+/* Define to 1 if you have the <strings.h> header file. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_STRINGS_H
+#endif
+
+
+/* Define to 1 if you have the <string.h> header file. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_STRING_H
+#endif
+
+
+/* Define to 1 if you have the <sys/file.h> header file. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_SYS_FILE_H
+#endif
+
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_SYS_STAT_H
+#endif
+
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_SYS_TYPES_H
+#endif
+
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_UNISTD_H
+#endif
+
+
+/* Define to the address where bug reports for this package should be sent. */
+#ifndef USED_FOR_TARGET
+#undef PACKAGE_BUGREPORT
+#endif
+
+
+/* Define to the full name of this package. */
+#ifndef USED_FOR_TARGET
+#undef PACKAGE_NAME
+#endif
+
+
+/* Define to the full name and version of this package. */
+#ifndef USED_FOR_TARGET
+#undef PACKAGE_STRING
+#endif
+
+
+/* Define to the one symbol short name of this package. */
+#ifndef USED_FOR_TARGET
+#undef PACKAGE_TARNAME
+#endif
+
+
+/* Define to the home page for this package. */
+#ifndef USED_FOR_TARGET
+#undef PACKAGE_URL
+#endif
+
+
+/* Define to the version of this package. */
+#ifndef USED_FOR_TARGET
+#undef PACKAGE_VERSION
+#endif
+
+
+/* Defined to the best working sed program on the host system */
+#ifndef USED_FOR_TARGET
+#undef SED_PROGRAM
+#endif
+
+
+/* Define if testing and fixing are done by separate process */
+#ifndef USED_FOR_TARGET
+#undef SEPARATE_FIX_PROC
+#endif
+
+
+/* Define to 1 if you have the ANSI C header files. */
+#ifndef USED_FOR_TARGET
+#undef STDC_HEADERS
+#endif
+
+
+/* Define to xatexit if the host system does not support atexit */
+#ifndef USED_FOR_TARGET
+#undef atexit
+#endif
+
+
+/* Define to empty if `const' does not conform to ANSI C. */
+#ifndef USED_FOR_TARGET
+#undef const
+#endif
+
+
+/* Define to xexit if the host system does not support atexit */
+#ifndef USED_FOR_TARGET
+#undef exit
+#endif
+
diff --git a/fixincludes/configure b/fixincludes/configure
new file mode 100755
index 000000000..7b7109a93
--- /dev/null
+++ b/fixincludes/configure
@@ -0,0 +1,6434 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.64 for fixincludes .
+#
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
+# Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ # We cannot yet assume a decent shell, so we have to provide a
+ # neutralization value for shells without unset; and this also
+ # works around shells that cannot unset nonexistent variables.
+ BASH_ENV=/dev/null
+ ENV=/dev/null
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with status $?, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$?; test $as_status -eq 0 && as_status=1
+ if test "$3"; then
+ as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ fi
+ $as_echo "$as_me: error: $1" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 7<&0 </dev/null 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='fixincludes'
+PACKAGE_TARNAME='fixincludes'
+PACKAGE_VERSION=' '
+PACKAGE_STRING='fixincludes '
+PACKAGE_BUGREPORT=''
+PACKAGE_URL=''
+
+ac_unique_file="inclhack.def"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='LTLIBOBJS
+LIBOBJS
+MAINT
+EGREP
+GREP
+CPP
+TARGET
+target_noncanonical
+WERROR
+WARN_PEDANTIC
+WARN_CFLAGS
+SED
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+target_os
+target_vendor
+target_cpu
+target
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_werror_always
+with_local_prefix
+enable_twoprocess
+enable_maintainer_mode
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information."
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used." >&2
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures fixincludes to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/fixincludes]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+ --target=TARGET configure for building compilers for TARGET [HOST]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of fixincludes :";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-werror-always enable -Werror despite compiler version
+ --enable-twoprocess Use a separate process to apply the fixes
+ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-local-prefix=DIR specifies directory to put local include
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ CPP C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to the package provider.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+fixincludes configure
+generated by GNU Autoconf 2.64
+
+Copyright (C) 2009 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ return $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } >/dev/null && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ return $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ return $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+ yes:no: )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ return $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_func
+
+# ac_fn_c_check_decl LINENO SYMBOL VAR
+# ------------------------------------
+# Tests whether SYMBOL is declared, setting cache variable VAR accordingly.
+ac_fn_c_check_decl ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ as_decl_name=`echo $2|sed 's/ *(.*//'`
+ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+#ifndef $as_decl_name
+#ifdef __cplusplus
+ (void) $as_decl_use;
+#else
+ (void) $as_decl_name;
+#endif
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_decl
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by fixincludes $as_me , which was
+generated by GNU Autoconf 2.64. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ cat <<\_ASBOX
+## ------------------- ##
+## File substitutions. ##
+## ------------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ ac_site_file1=$CONFIG_SITE
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special
+ # files actually), so we avoid doing that.
+ if test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+ac_aux_dir=
+for ac_dir in .. "$srcdir"/..; do
+ for ac_t in install-sh install.sh shtool; do
+ if test -f "$ac_dir/$ac_t"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/$ac_t -c"
+ break 2
+ fi
+ done
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error "cannot find install-sh, install.sh, or shtool in .. \"$srcdir\"/.." "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# Written by Gordon Matzigkeit, 1996
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+
+
+# serial 56 LT_INIT
+
+
+# LT_PREREQ(VERSION)
+# ------------------
+# Complain and exit if this libtool version is less that VERSION.
+
+
+
+# _LT_CHECK_BUILDDIR
+# ------------------
+# Complain if the absolute build directory name contains unusual characters
+
+
+
+# LT_INIT([OPTIONS])
+# ------------------
+# LT_INIT
+
+# Old names:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+
+
+
+# _LT_FILEUTILS_DEFAULTS
+# ----------------------
+# It is okay to use these file commands and assume they have been set
+# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
+# _LT_FILEUTILS_DEFAULTS
+
+
+# _LT_SETUP
+# ---------
+# _LT_SETUP
+
+
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+
+
+# _LT_PROG_LTMAIN
+# ---------------
+# Note that this code is called both from `configure', and `config.status'
+# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably,
+# `config.status' has no value for ac_aux_dir unless we are using Automake,
+# so we pass a copy along to make sure it has a sensible value anyway.
+# _LT_PROG_LTMAIN
+
+
+## ------------------------------------- ##
+## Accumulate code for creating libtool. ##
+## ------------------------------------- ##
+
+# So that we can recreate a full libtool script including additional
+# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
+# in macros and then make a single call at the end using the `libtool'
+# label.
+
+
+# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
+# ----------------------------------------
+# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+
+
+# Initialize.
+
+
+
+# _LT_CONFIG_LIBTOOL([COMMANDS])
+# ------------------------------
+# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+
+
+# Initialize.
+
+
+
+# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
+# -----------------------------------------------------
+
+
+
+# _LT_FORMAT_COMMENT([COMMENT])
+# -----------------------------
+# Add leading comment marks to the start of each line, and a trailing
+# full-stop to the whole comment if one is not present already.
+
+
+
+
+## ------------------------ ##
+## FIXME: Eliminate VARNAME ##
+## ------------------------ ##
+
+
+# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
+# -------------------------------------------------------------------
+# CONFIGNAME is the name given to the value in the libtool script.
+# VARNAME is the (base) name used in the configure script.
+# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
+# VARNAME. Any other value will be used directly.
+
+
+
+# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
+# --------------------------------------------------------
+
+
+
+# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+
+
+
+# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
+# ---------------------------------------------------------
+
+
+
+# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
+# --------------------------------------------------
+
+
+
+# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+
+
+
+# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+
+
+
+
+# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+
+
+
+
+# _LT_CONFIG_STATUS_DECLARE([VARNAME])
+# ------------------------------------
+# Quote a variable value, and forward it to `config.status' so that its
+# declaration there will have the same value as in `configure'. VARNAME
+# must have a single quote delimited value for this to work.
+
+
+
+# _LT_CONFIG_STATUS_DECLARATIONS
+# ------------------------------
+# We delimit libtool config variables with single quotes, so when
+# we write them to config.status, we have to be sure to quote all
+# embedded single quotes properly. In configure, this macro expands
+# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
+#
+# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
+
+
+
+# _LT_LIBTOOL_TAGS
+# ----------------
+# Output comment and list of tags supported by the script
+
+
+
+# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
+# -----------------------------------
+# Extract the dictionary values for VARNAME (optionally with TAG) and
+# expand to a commented shell variable setting:
+#
+# # Some comment about what VAR is for.
+# visible_name=$lt_internal_name
+
+
+
+# _LT_LIBTOOL_CONFIG_VARS
+# -----------------------
+# Produce commented declarations of non-tagged libtool config variables
+# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
+# script. Tagged libtool config variables (even for the LIBTOOL CONFIG
+# section) are produced by _LT_LIBTOOL_TAG_VARS.
+
+
+
+# _LT_LIBTOOL_TAG_VARS(TAG)
+# -------------------------
+
+
+
+# _LT_TAGVAR(VARNAME, [TAGNAME])
+# ------------------------------
+
+
+
+# _LT_CONFIG_COMMANDS
+# -------------------
+# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of
+# variables for single and double quote escaping we saved from calls
+# to _LT_DECL, we can put quote escaped variables declarations
+# into `config.status', and then the shell code to quote escape them in
+# for loops in `config.status'. Finally, any additional code accumulated
+# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
+#_LT_CONFIG_COMMANDS
+
+
+# Initialize.
+
+
+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
+# ------------------------------------
+# Generate a child script FILE with all initialization necessary to
+# reuse the environment learned by the parent script, and make the
+# file executable. If COMMENT is supplied, it is inserted after the
+# `#!' sequence but before initialization text begins. After this
+# macro, additional text can be appended to FILE to form the body of
+# the child script. The macro ends with non-zero status if the
+# file could not be fully written (such as if the disk is full).
+# _LT_GENERATED_FILE_INIT
+
+# LT_OUTPUT
+# ---------
+# This macro allows early generation of the libtool script (before
+# AC_OUTPUT is called), incase it is used in configure for compilation
+# tests.
+# LT_OUTPUT
+
+
+# _LT_CONFIG(TAG)
+# ---------------
+# If TAG is the built-in tag, create an initial libtool script with a
+# default configuration from the untagged config vars. Otherwise add code
+# to config.status for appending the configuration named by TAG from the
+# matching tagged config vars.
+# _LT_CONFIG
+
+
+# LT_SUPPORTED_TAG(TAG)
+# ---------------------
+# Trace this macro to discover what tags are supported by the libtool
+# --tag option, using:
+# autoconf --trace 'LT_SUPPORTED_TAG:$1'
+
+
+
+# C support is built-in for now
+
+
+
+
+# LT_LANG(LANG)
+# -------------
+# Enable libtool support for the given language if not already enabled.
+# LT_LANG
+
+
+# _LT_LANG(LANGNAME)
+# ------------------
+# _LT_LANG
+
+
+# _LT_LANG_DEFAULT_CONFIG
+# -----------------------
+# _LT_LANG_DEFAULT_CONFIG
+
+# Obsolete macros:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_TAG_COMPILER
+# ----------------
+# _LT_TAG_COMPILER
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# -------------------------
+
+
+
+# _LT_DARWIN_LINKER_FEATURES
+# --------------------------
+# Checks for linker and compiler features on darwin
+
+
+# _LT_SYS_MODULE_PATH_AIX
+# -----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+# _LT_SYS_MODULE_PATH_AIX
+
+
+# _LT_SHELL_INIT(ARG)
+# -------------------
+# _LT_SHELL_INIT
+
+
+
+# _LT_PROG_ECHO_BACKSLASH
+# -----------------------
+# Find how we can fake an echo command that does not interpret backslash.
+# In particular, with Autoconf 2.60 or later we add some code to the start
+# of the generated configure script which will find a shell with a builtin
+# printf (which we can use as an echo command).
+# _LT_PROG_ECHO_BACKSLASH
+
+
+# _LT_ENABLE_LOCK
+# ---------------
+# _LT_ENABLE_LOCK
+
+
+# _LT_CMD_OLD_ARCHIVE
+# -------------------
+# _LT_CMD_OLD_ARCHIVE
+
+
+# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+# _LT_COMPILER_OPTION
+
+# Old name:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+# [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------
+# Check whether the given linker option works
+# _LT_LINKER_OPTION
+
+# Old name:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# LT_CMD_MAX_LEN
+#---------------
+# LT_CMD_MAX_LEN
+
+# Old name:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_HEADER_DLFCN
+# ----------------
+# _LT_HEADER_DLFCN
+
+
+# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ----------------------------------------------------------------
+# _LT_TRY_DLOPEN_SELF
+
+
+# LT_SYS_DLOPEN_SELF
+# ------------------
+# LT_SYS_DLOPEN_SELF
+
+# Old name:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_COMPILER_C_O([TAGNAME])
+# ---------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler.
+# This macro does not hard code the compiler like AC_PROG_CC_C_O.
+# _LT_COMPILER_C_O
+
+
+# _LT_COMPILER_FILE_LOCKS([TAGNAME])
+# ----------------------------------
+# Check to see if we can do hard links to lock some files if needed
+# _LT_COMPILER_FILE_LOCKS
+
+
+# _LT_CHECK_OBJDIR
+# ----------------
+# _LT_CHECK_OBJDIR
+
+
+# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
+# --------------------------------------
+# Check hardcoding attributes.
+# _LT_LINKER_HARDCODE_LIBPATH
+
+
+# _LT_CMD_STRIPLIB
+# ----------------
+# _LT_CMD_STRIPLIB
+
+
+# _LT_SYS_DYNAMIC_LINKER([TAG])
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+# _LT_SYS_DYNAMIC_LINKER
+
+
+# _LT_PATH_TOOL_PREFIX(TOOL)
+# --------------------------
+# find a file program which can recognize shared library
+# _LT_PATH_TOOL_PREFIX
+
+# Old name:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_PATH_MAGIC
+# --------------
+# find a file program which can recognize a shared library
+# _LT_PATH_MAGIC
+
+
+# LT_PATH_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+# LT_PATH_LD
+
+# Old names:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_PATH_LD_GNU
+#- --------------
+# _LT_PATH_LD_GNU
+
+
+# _LT_CMD_RELOAD
+# --------------
+# find reload flag for linker
+# -- PORTME Some linkers may need a different reload flag.
+# _LT_CMD_RELOAD
+
+
+# _LT_CHECK_MAGIC_METHOD
+# ----------------------
+# how to check for library dependencies
+# -- PORTME fill in with the dynamic library characteristics
+# _LT_CHECK_MAGIC_METHOD
+
+
+# LT_PATH_NM
+# ----------
+# find the pathname to a BSD- or MS-compatible name lister
+# LT_PATH_NM
+
+# Old names:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# LT_LIB_M
+# --------
+# check for math library
+# LT_LIB_M
+
+# Old name:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------
+# _LT_COMPILER_NO_RTTI
+
+
+# _LT_CMD_GLOBAL_SYMBOLS
+# ----------------------
+ # _LT_CMD_GLOBAL_SYMBOLS
+
+
+# _LT_COMPILER_PIC([TAGNAME])
+# ---------------------------
+# _LT_COMPILER_PIC
+
+
+# _LT_LINKER_SHLIBS([TAGNAME])
+# ----------------------------
+# See if the linker supports building shared libraries.
+# _LT_LINKER_SHLIBS
+
+
+# _LT_LANG_C_CONFIG([TAG])
+# ------------------------
+# Ensure that the configuration variables for a C compiler are suitably
+# defined. These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+# _LT_LANG_C_CONFIG
+
+
+# _LT_LANG_CXX_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a C++ compiler are suitably
+# defined. These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+# _LT_LANG_CXX_CONFIG
+
+
+# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
+# ---------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+# _LT_SYS_HIDDEN_LIBDEPS
+
+
+# _LT_LANG_F77_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a Fortran 77 compiler are
+# suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+# _LT_LANG_F77_CONFIG
+
+
+# _LT_LANG_FC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for a Fortran compiler are
+# suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+# _LT_LANG_FC_CONFIG
+
+
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+# _LT_LANG_GCJ_CONFIG
+
+
+# _LT_LANG_RC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for the Windows resource compiler
+# are suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+# _LT_LANG_RC_CONFIG
+
+
+# LT_PROG_GCJ
+# -----------
+
+
+# Old name:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# LT_PROG_RC
+# ----------
+
+
+# Old name:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_DECL_EGREP
+# --------------
+# If we don't have a new enough Autoconf to choose the best grep
+# available, choose the one first in the user's PATH.
+
+
+
+# _LT_DECL_OBJDUMP
+# --------------
+# If we don't have a new enough Autoconf to choose the best objdump
+# available, choose the one first in the user's PATH.
+
+
+
+# _LT_DECL_SED
+# ------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible. Prefer GNU sed if found.
+# _LT_DECL_SED
+
+#m4_ifndef
+
+# Old name:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_CHECK_SHELL_FEATURES
+# ------------------------
+# Find out whether the shell is Bourne or XSI compatible,
+# or has some other useful features.
+# _LT_CHECK_SHELL_FEATURES
+
+
+# _LT_PROG_XSI_SHELLFNS
+# ---------------------
+# Bourne and XSI compatible variants of some useful shell functions.
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if test "${ac_cv_build+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if test "${ac_cv_host+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
+$as_echo_n "checking target system type... " >&6; }
+if test "${ac_cv_target+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$target_alias" = x; then
+ ac_cv_target=$ac_cv_host
+else
+ ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
+$as_echo "$ac_cv_target" >&6; }
+case $ac_cv_target in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical target" "$LINENO" 5;;
+esac
+target=$ac_cv_target
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_target
+shift
+target_cpu=$1
+target_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+target_os=$*
+IFS=$ac_save_IFS
+case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
+
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "no acceptable C compiler found in \$PATH
+See \`config.log' for more details." "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ rm -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+if test -z "$ac_file"; then :
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "C compiler cannot create executables
+See \`config.log' for more details." "$LINENO" 5; }; }
+fi
+ac_exeext=$ac_cv_exeext
+
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+ if { ac_try='./$ac_file'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out
+ac_clean_files=$ac_clean_files_save
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+rm -f conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if test "${ac_cv_objext+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if test "${ac_cv_path_SED+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+ for ac_i in 1 2 3 4 5 6 7; do
+ ac_script="$ac_script$as_nl$ac_script"
+ done
+ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+ { ac_script=; unset ac_script;}
+ if test -z "$SED"; then
+ ac_path_SED_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
+# Check for GNU ac_path_SED and select it if it is found.
+ # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo '' >> "conftest.nl"
+ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_SED_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_SED="$ac_path_SED"
+ ac_path_SED_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_SED_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_SED"; then
+ as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
+ fi
+else
+ ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+ rm -f conftest.sed
+
+
+# Figure out what compiler warnings we can enable.
+# See config/warnings.m4 for details.
+
+
+WARN_CFLAGS=
+save_CFLAGS="$CFLAGS"
+for option in -W -Wall -Wwrite-strings -Wstrict-prototypes \
+ -Wmissing-prototypes -Wold-style-definition \
+ -Wmissing-format-attribute -Wno-overlength-strings; do
+ as_acx_Woption=`$as_echo "acx_cv_prog_cc_warning_$option" | $as_tr_sh`
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $option" >&5
+$as_echo_n "checking whether $CC supports $option... " >&6; }
+if { as_var=$as_acx_Woption; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ CFLAGS="$option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_acx_Woption=yes"
+else
+ eval "$as_acx_Woption=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+eval ac_res=\$$as_acx_Woption
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if test `eval 'as_val=${'$as_acx_Woption'};$as_echo "$as_val"'` = yes; then :
+ WARN_CFLAGS="$WARN_CFLAGS${WARN_CFLAGS:+ }$option"
+fi
+ done
+CFLAGS="$save_CFLAGS"
+
+WARN_PEDANTIC=
+if test "$GCC" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -pedantic -Wno-long-long" >&5
+$as_echo_n "checking whether $CC supports -pedantic -Wno-long-long... " >&6; }
+if test "${acx_cv_prog_cc_pedantic__Wno_long_long+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ save_CFLAGS="$CFLAGS"
+CFLAGS="-pedantic -Wno-long-long"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ acx_cv_prog_cc_pedantic__Wno_long_long=yes
+else
+ acx_cv_prog_cc_pedantic__Wno_long_long=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+CFLAGS="$save_CFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_prog_cc_pedantic__Wno_long_long" >&5
+$as_echo "$acx_cv_prog_cc_pedantic__Wno_long_long" >&6; }
+if test $acx_cv_prog_cc_pedantic__Wno_long_long = yes; then :
+ WARN_PEDANTIC="$WARN_PEDANTIC${WARN_PEDANTIC:+ }-pedantic -Wno-long-long"
+fi
+
+fi
+
+
+# Only enable with --enable-werror-always until existing warnings are
+# corrected.
+WERROR=
+# Check whether --enable-werror-always was given.
+if test "${enable_werror_always+set}" = set; then :
+ enableval=$enable_werror_always;
+else
+ enable_werror_always=no
+fi
+
+if test $enable_werror_always = yes; then :
+ WERROR="$WERROR${WERROR:+ }-Werror"
+fi
+
+
+
+# Determine the noncanonical target name, for directory use.
+ case ${build_alias} in
+ "") build_noncanonical=${build} ;;
+ *) build_noncanonical=${build_alias} ;;
+esac
+
+ case ${host_alias} in
+ "") host_noncanonical=${build_noncanonical} ;;
+ *) host_noncanonical=${host_alias} ;;
+esac
+
+ case ${target_alias} in
+ "") target_noncanonical=${host_noncanonical} ;;
+ *) target_noncanonical=${target_alias} ;;
+esac
+
+
+
+
+# Specify the local prefix
+local_prefix=
+
+# Check whether --with-local-prefix was given.
+if test "${with_local_prefix+set}" = set; then :
+ withval=$with_local_prefix; case "${withval}" in
+yes) as_fn_error "bad value ${withval} given for local include directory prefix" "$LINENO" 5 ;;
+no) ;;
+*) local_prefix=$with_local_prefix ;;
+esac
+fi
+
+
+# Default local prefix if it is empty
+if test x$local_prefix = x; then
+ local_prefix=/usr/local
+fi
+
+# Choose one or two-process fix methodology. Systems that cannot handle
+# bi-directional pipes must use the two process method.
+#
+# Check whether --enable-twoprocess was given.
+if test "${enable_twoprocess+set}" = set; then :
+ enableval=$enable_twoprocess; if test "x$enable_twoprocess" = xyes; then
+ TARGET=twoprocess
+else
+ TARGET=oneprocess
+fi
+else
+ case $host in
+ i?86-*-msdosdjgpp* | \
+ i?86-*-mingw32* | \
+ x86_64-*-mingw32* | \
+ *-*-beos* )
+ TARGET=twoprocess
+ ;;
+
+ * )
+ TARGET=oneprocess
+ ;;
+esac
+fi
+
+
+
+if test $TARGET = twoprocess; then
+
+$as_echo "#define SEPARATE_FIX_PROC 1" >>confdefs.h
+
+fi
+
+case $host in
+ vax-dec-bsd* )
+
+$as_echo "#define exit xexit" >>confdefs.h
+
+
+$as_echo "#define atexit xatexit" >>confdefs.h
+
+ ;;
+esac
+
+
+cat >>confdefs.h <<_ACEOF
+#define EXE_EXT "$ac_exeext"
+_ACEOF
+
+
+# Checks for header files.
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if test "${ac_cv_prog_CPP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if test "${ac_cv_path_EGREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if test "${ac_cv_header_stdc+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+eval as_val=\$$as_ac_Header
+ if test "x$as_val" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in stddef.h stdlib.h strings.h unistd.h fcntl.h sys/file.h \
+ sys/stat.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+ if test "x$as_val" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_func in clearerr_unlocked feof_unlocked ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked putchar_unlocked putc_unlocked
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+eval as_val=\$$as_ac_var
+ if test "x$as_val" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ac_fn_c_check_decl "$LINENO" "abort" "ac_cv_have_decl_abort" "$ac_includes_default"
+if test "x$ac_cv_have_decl_abort" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ABORT $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "asprintf" "ac_cv_have_decl_asprintf" "$ac_includes_default"
+if test "x$ac_cv_have_decl_asprintf" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ASPRINTF $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "basename(char *)" "ac_cv_have_decl_basename_char_p_" "$ac_includes_default"
+if test "x$ac_cv_have_decl_basename_char_p_" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_BASENAME $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "errno" "ac_cv_have_decl_errno" "$ac_includes_default"
+if test "x$ac_cv_have_decl_errno" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ERRNO $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "vasprintf" "ac_cv_have_decl_vasprintf" "$ac_includes_default"
+if test "x$ac_cv_have_decl_vasprintf" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_VASPRINTF $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "clearerr_unlocked" "ac_cv_have_decl_clearerr_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_clearerr_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_CLEARERR_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "feof_unlocked" "ac_cv_have_decl_feof_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_feof_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FEOF_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "ferror_unlocked" "ac_cv_have_decl_ferror_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_ferror_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FERROR_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "fflush_unlocked" "ac_cv_have_decl_fflush_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fflush_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FFLUSH_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "fgetc_unlocked" "ac_cv_have_decl_fgetc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fgetc_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FGETC_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "fgets_unlocked" "ac_cv_have_decl_fgets_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fgets_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FGETS_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "fileno_unlocked" "ac_cv_have_decl_fileno_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fileno_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FILENO_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "fprintf_unlocked" "ac_cv_have_decl_fprintf_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fprintf_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FPRINTF_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "fputc_unlocked" "ac_cv_have_decl_fputc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fputc_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FPUTC_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "fputs_unlocked" "ac_cv_have_decl_fputs_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fputs_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FPUTS_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "fread_unlocked" "ac_cv_have_decl_fread_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fread_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FREAD_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "fwrite_unlocked" "ac_cv_have_decl_fwrite_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fwrite_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FWRITE_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "getchar_unlocked" "ac_cv_have_decl_getchar_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getchar_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETCHAR_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getc_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "putchar_unlocked" "ac_cv_have_decl_putchar_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_putchar_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PUTCHAR_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "putc_unlocked" "ac_cv_have_decl_putc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_putc_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PUTC_UNLOCKED $ac_have_decl
+_ACEOF
+
+
+# Checks for typedefs, structures, and compiler characteristics.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
+$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
+if test "${ac_cv_c_const+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+/* FIXME: Include the comments suggested by Paul. */
+#ifndef __cplusplus
+ /* Ultrix mips cc rejects this. */
+ typedef int charset[2];
+ const charset cs;
+ /* SunOS 4.1.1 cc rejects this. */
+ char const *const *pcpcc;
+ char **ppc;
+ /* NEC SVR4.0.2 mips cc rejects this. */
+ struct point {int x, y;};
+ static struct point const zero = {0,0};
+ /* AIX XL C 1.02.0.0 rejects this.
+ It does not let you subtract one const X* pointer from another in
+ an arm of an if-expression whose if-part is not a constant
+ expression */
+ const char *g = "string";
+ pcpcc = &g + (g ? g-g : 0);
+ /* HPUX 7.0 cc rejects these. */
+ ++pcpcc;
+ ppc = (char**) pcpcc;
+ pcpcc = (char const *const *) ppc;
+ { /* SCO 3.2v4 cc rejects this. */
+ char *t;
+ char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+ *t++ = 0;
+ if (s) return 0;
+ }
+ { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
+ int x[] = {25, 17};
+ const int *foo = &x[0];
+ ++foo;
+ }
+ { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+ typedef const int *iptr;
+ iptr p = 0;
+ ++p;
+ }
+ { /* AIX XL C 1.02.0.0 rejects this saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; };
+ struct s *b; b->j = 5;
+ }
+ { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+ const int foo = 10;
+ if (!foo) return 0;
+ }
+ return !cs[0] && !zero.x;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_const=yes
+else
+ ac_cv_c_const=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
+$as_echo "$ac_cv_c_const" >&6; }
+if test $ac_cv_c_const = no; then
+
+$as_echo "#define const /**/" >>confdefs.h
+
+fi
+
+
+# Checks for library functions.
+
+ac_fn_c_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_mman_h" = x""yes; then :
+ gcc_header_sys_mman_h=yes
+else
+ gcc_header_sys_mman_h=no
+fi
+
+
+ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = x""yes; then :
+ gcc_func_mmap=yes
+else
+ gcc_func_mmap=no
+fi
+
+if test "$gcc_header_sys_mman_h" != yes \
+ || test "$gcc_func_mmap" != yes; then
+ gcc_cv_func_mmap_file=no
+ gcc_cv_func_mmap_dev_zero=no
+ gcc_cv_func_mmap_anon=no
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether read-only mmap of a plain file works" >&5
+$as_echo_n "checking whether read-only mmap of a plain file works... " >&6; }
+if test "${gcc_cv_func_mmap_file+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Add a system to this blacklist if
+ # mmap(0, stat_size, PROT_READ, MAP_PRIVATE, fd, 0) doesn't return a
+ # memory area containing the same data that you'd get if you applied
+ # read() to the same fd. The only system known to have a problem here
+ # is VMS, where text files have record structure.
+ case "$host_os" in
+ vms* | ultrix*)
+ gcc_cv_func_mmap_file=no ;;
+ *)
+ gcc_cv_func_mmap_file=yes;;
+ esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_func_mmap_file" >&5
+$as_echo "$gcc_cv_func_mmap_file" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mmap from /dev/zero works" >&5
+$as_echo_n "checking whether mmap from /dev/zero works... " >&6; }
+if test "${gcc_cv_func_mmap_dev_zero+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Add a system to this blacklist if it has mmap() but /dev/zero
+ # does not exist, or if mmapping /dev/zero does not give anonymous
+ # zeroed pages with both the following properties:
+ # 1. If you map N consecutive pages in with one call, and then
+ # unmap any subset of those pages, the pages that were not
+ # explicitly unmapped remain accessible.
+ # 2. If you map two adjacent blocks of memory and then unmap them
+ # both at once, they must both go away.
+ # Systems known to be in this category are Windows (all variants),
+ # VMS, and Darwin.
+ case "$host_os" in
+ vms* | cygwin* | pe | mingw* | darwin* | ultrix* | hpux10* | hpux11.00)
+ gcc_cv_func_mmap_dev_zero=no ;;
+ *)
+ gcc_cv_func_mmap_dev_zero=yes;;
+ esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_func_mmap_dev_zero" >&5
+$as_echo "$gcc_cv_func_mmap_dev_zero" >&6; }
+
+ # Unlike /dev/zero, the MAP_ANON(YMOUS) defines can be probed for.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANON(YMOUS)" >&5
+$as_echo_n "checking for MAP_ANON(YMOUS)... " >&6; }
+if test "${gcc_cv_decl_map_anon+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/mman.h>
+#include <unistd.h>
+
+#ifndef MAP_ANONYMOUS
+#define MAP_ANONYMOUS MAP_ANON
+#endif
+
+int
+main ()
+{
+int n = MAP_ANONYMOUS;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gcc_cv_decl_map_anon=yes
+else
+ gcc_cv_decl_map_anon=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_decl_map_anon" >&5
+$as_echo "$gcc_cv_decl_map_anon" >&6; }
+
+ if test $gcc_cv_decl_map_anon = no; then
+ gcc_cv_func_mmap_anon=no
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mmap with MAP_ANON(YMOUS) works" >&5
+$as_echo_n "checking whether mmap with MAP_ANON(YMOUS) works... " >&6; }
+if test "${gcc_cv_func_mmap_anon+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Add a system to this blacklist if it has mmap() and MAP_ANON or
+ # MAP_ANONYMOUS, but using mmap(..., MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
+ # doesn't give anonymous zeroed pages with the same properties listed
+ # above for use of /dev/zero.
+ # Systems known to be in this category are Windows, VMS, and SCO Unix.
+ case "$host_os" in
+ vms* | cygwin* | pe | mingw* | sco* | udk* )
+ gcc_cv_func_mmap_anon=no ;;
+ *)
+ gcc_cv_func_mmap_anon=yes;;
+ esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_func_mmap_anon" >&5
+$as_echo "$gcc_cv_func_mmap_anon" >&6; }
+ fi
+fi
+
+if test $gcc_cv_func_mmap_file = yes; then
+
+$as_echo "#define HAVE_MMAP_FILE 1" >>confdefs.h
+
+fi
+if test $gcc_cv_func_mmap_dev_zero = yes; then
+
+$as_echo "#define HAVE_MMAP_DEV_ZERO 1" >>confdefs.h
+
+fi
+if test $gcc_cv_func_mmap_anon = yes; then
+
+$as_echo "#define HAVE_MMAP_ANON 1" >>confdefs.h
+
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+# Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=no
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+if test "$USE_MAINTAINER_MODE" = yes; then
+ MAINT=
+else
+ MAINT='#'
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+#define SED_PROGRAM "${SED}"
+_ACEOF
+
+
+ac_config_headers="$ac_config_headers config.h"
+
+ac_config_files="$ac_config_files Makefile mkheaders.almost:mkheaders.in"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ test "x$cache_file" != "x/dev/null" &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ cat confcache >$cache_file
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+: ${CONFIG_STATUS=./config.status}
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with status $?, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$?; test $as_status -eq 0 && as_status=1
+ if test "$3"; then
+ as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ fi
+ $as_echo "$as_me: error: $1" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by fixincludes $as_me , which was
+generated by GNU Autoconf 2.64. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Report bugs to the package provider."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_version="\\
+fixincludes config.status
+configured by $0, generated by GNU Autoconf 2.64,
+ with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright (C) 2009 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "mkheaders.almost") CONFIG_FILES="$CONFIG_FILES mkheaders.almost:mkheaders.in" ;;
+
+ *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp=
+ trap 'exit_status=$?
+ { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\).*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\).*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+ || as_fn_error "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
+s/:*\$(srcdir):*/:/
+s/:*\${srcdir}:*/:/
+s/:*@srcdir@:*/:/
+s/^\([^=]*=[ ]*\):*/\1/
+s/:*$//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+ ac_t=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_t"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any. Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[ ]*#[ ]*define[ ][ ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ for (key in D) D_is_set[key] = 1
+ FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+ line = \$ 0
+ split(line, arg, " ")
+ if (arg[1] == "#") {
+ defundef = arg[2]
+ mac1 = arg[3]
+ } else {
+ defundef = substr(arg[1], 2)
+ mac1 = arg[2]
+ }
+ split(mac1, mac2, "(") #)
+ macro = mac2[1]
+ prefix = substr(line, 1, index(line, defundef) - 1)
+ if (D_is_set[macro]) {
+ # Preserve the white space surrounding the "#".
+ print prefix "define", macro P[macro] D[macro]
+ next
+ } else {
+ # Replace #undef with comments. This is necessary, for example,
+ # in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+ if (defundef == "undef") {
+ print "/*", prefix defundef, macro, "*/"
+ next
+ }
+ }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ as_fn_error "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS "
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$tmp/stdin" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined." >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined." >&2;}
+
+ rm -f "$tmp/stdin"
+ case $ac_file in
+ -) cat "$tmp/out" && rm -f "$tmp/out";;
+ *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
+ } >"$tmp/config.h" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$tmp/config.h" "$ac_file" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error "could not create -" "$LINENO" 5
+ fi
+ ;;
+
+
+ esac
+
+
+ case $ac_file$ac_mode in
+ "config.h":H) echo timestamp > stamp-h ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit $?
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
diff --git a/fixincludes/configure.ac b/fixincludes/configure.ac
new file mode 100644
index 000000000..2c488e703
--- /dev/null
+++ b/fixincludes/configure.ac
@@ -0,0 +1,117 @@
+AC_PREREQ(2.64)
+
+AC_INIT(fixincludes, [ ])
+AC_CONFIG_SRCDIR(inclhack.def)
+AC_CONFIG_AUX_DIR(..)
+m4_sinclude(../libtool.m4)
+AC_CANONICAL_SYSTEM
+AC_PROG_CC
+AC_PROG_SED
+
+# Figure out what compiler warnings we can enable.
+# See config/warnings.m4 for details.
+
+ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings -Wstrict-prototypes \
+ -Wmissing-prototypes -Wold-style-definition \
+ -Wmissing-format-attribute -Wno-overlength-strings])
+ACX_PROG_CC_WARNING_ALMOST_PEDANTIC([-Wno-long-long])
+
+# Only enable with --enable-werror-always until existing warnings are
+# corrected.
+ACX_PROG_CC_WARNINGS_ARE_ERRORS([manual])
+
+# Determine the noncanonical target name, for directory use.
+ACX_NONCANONICAL_TARGET
+
+# Specify the local prefix
+local_prefix=
+AC_ARG_WITH(local-prefix,
+[ --with-local-prefix=DIR specifies directory to put local include],
+[case "${withval}" in
+yes) AC_MSG_ERROR(bad value ${withval} given for local include directory prefix) ;;
+no) ;;
+*) local_prefix=$with_local_prefix ;;
+esac])
+
+# Default local prefix if it is empty
+if test x$local_prefix = x; then
+ local_prefix=/usr/local
+fi
+
+# Choose one or two-process fix methodology. Systems that cannot handle
+# bi-directional pipes must use the two process method.
+#
+AC_ARG_ENABLE([twoprocess],
+[ --enable-twoprocess Use a separate process to apply the fixes],
+[if test "x$enable_twoprocess" = xyes; then
+ TARGET=twoprocess
+else
+ TARGET=oneprocess
+fi],
+[case $host in
+ i?86-*-msdosdjgpp* | \
+ i?86-*-mingw32* | \
+ x86_64-*-mingw32* | \
+ *-*-beos* )
+ TARGET=twoprocess
+ ;;
+
+ * )
+ TARGET=oneprocess
+ ;;
+esac])
+AC_SUBST(TARGET)
+
+if test $TARGET = twoprocess; then
+ AC_DEFINE(SEPARATE_FIX_PROC, 1,
+ [Define if testing and fixing are done by separate process])
+fi
+
+case $host in
+ vax-dec-bsd* )
+ AC_DEFINE(exit, xexit, [Define to xexit if the host system does not support atexit])
+ AC_DEFINE(atexit, xatexit, [Define to xatexit if the host system does not support atexit])
+ ;;
+esac
+
+AC_DEFINE_UNQUOTED([EXE_EXT], "$ac_exeext",
+ [Defined to the executable file extension on the host system])
+
+# Checks for header files.
+AC_HEADER_STDC
+AC_CHECK_HEADERS([stddef.h stdlib.h strings.h unistd.h fcntl.h sys/file.h \
+ sys/stat.h])
+define(fixincludes_UNLOCKED_FUNCS, clearerr_unlocked feof_unlocked dnl
+ ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked dnl
+ fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked dnl
+ fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked dnl
+ putchar_unlocked putc_unlocked)
+AC_CHECK_FUNCS(fixincludes_UNLOCKED_FUNCS)
+AC_CHECK_DECLS([abort, asprintf, basename(char *), errno, vasprintf])
+AC_CHECK_DECLS(m4_split(m4_normalize(fixincludes_UNLOCKED_FUNCS)))
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+
+# Checks for library functions.
+gcc_AC_FUNC_MMAP_BLACKLIST
+
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+AC_ARG_ENABLE(maintainer-mode,
+[ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer],
+ USE_MAINTAINER_MODE=$enableval,
+ USE_MAINTAINER_MODE=no)
+AC_MSG_RESULT($USE_MAINTAINER_MODE)
+if test "$USE_MAINTAINER_MODE" = yes; then
+ MAINT=
+else
+ MAINT='#'
+fi
+AC_SUBST(MAINT)
+AC_DEFINE_UNQUOTED([SED_PROGRAM], "${SED}",
+ [Defined to the best working sed program on the host system])
+
+AC_CONFIG_HEADERS(config.h, [echo timestamp > stamp-h])
+AC_CONFIG_FILES(Makefile mkheaders.almost:mkheaders.in)
+AC_OUTPUT
diff --git a/fixincludes/fixfixes.c b/fixincludes/fixfixes.c
new file mode 100644
index 000000000..5616bf149
--- /dev/null
+++ b/fixincludes/fixfixes.c
@@ -0,0 +1,806 @@
+
+/*
+
+ Test to see if a particular fix should be applied to a header file.
+
+ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2009
+ Free Software Foundation, Inc.
+
+= = = = = = = = = = = = = = = = = = = = = = = = =
+
+NOTE TO DEVELOPERS
+
+The routines you write here must work closely with fixincl.c.
+
+Here are the rules:
+
+1. Every test procedure name must be suffixed with "_fix".
+ These routines will be referenced from inclhack.def, sans the suffix.
+
+2. Use the "FIX_PROC_HEAD()" macro _with_ the "_fix" suffix
+ (I cannot use the ## magic from ANSI C) for defining your entry point.
+
+3. Put your test name into the FIXUP_TABLE.
+
+4. Do not read anything from stdin. It is closed.
+
+5. Write to stderr only in the event of a reportable error
+ In such an event, call "exit (EXIT_FAILURE)".
+
+6. You have access to the fixDescList entry for the fix in question.
+ This may be useful, for example, if there are interesting strings
+ or pre-compiled regular expressions stored there.
+
+= = = = = = = = = = = = = = = = = = = = = = = = =
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#include "fixlib.h"
+#define GTYPE_SE_CT 1
+
+#ifdef SEPARATE_FIX_PROC
+#include "fixincl.x"
+#endif
+
+tSCC zNeedsArg[] = "fixincl error: `%s' needs %s argument (c_fix_arg[%d])\n";
+
+typedef void t_fix_proc (const char *, const char *, tFixDesc *) ;
+typedef struct {
+ const char* fix_name;
+ t_fix_proc* fix_proc;
+} fix_entry_t;
+
+#define FIXUP_TABLE \
+ _FT_( "char_macro_def", char_macro_def_fix ) \
+ _FT_( "char_macro_use", char_macro_use_fix ) \
+ _FT_( "format", format_fix ) \
+ _FT_( "machine_name", machine_name_fix ) \
+ _FT_( "wrap", wrap_fix ) \
+ _FT_( "gnu_type", gnu_type_fix )
+
+
+#define FIX_PROC_HEAD( fix ) \
+static void fix (const char* filname ATTRIBUTE_UNUSED , \
+ const char* text ATTRIBUTE_UNUSED , \
+ tFixDesc* p_fixd ATTRIBUTE_UNUSED )
+
+#ifdef NEED_PRINT_QUOTE
+/*
+ * Skip over a quoted string. Single quote strings may
+ * contain multiple characters if the first character is
+ * a backslash. Especially a backslash followed by octal digits.
+ * We are not doing a correctness syntax check here.
+ */
+static char*
+print_quote(char q, char* text )
+{
+ fputc( q, stdout );
+
+ for (;;)
+ {
+ char ch = *(text++);
+ fputc( ch, stdout );
+
+ switch (ch)
+ {
+ case '\\':
+ if (*text == NUL)
+ goto quote_done;
+
+ fputc( *(text++), stdout );
+ break;
+
+ case '"':
+ case '\'':
+ if (ch != q)
+ break;
+ /*FALLTHROUGH*/
+
+ case '\n':
+ case NUL:
+ goto quote_done;
+ }
+ } quote_done:;
+
+ return text;
+}
+#endif /* NEED_PRINT_QUOTE */
+
+
+/*
+ * Emit the GNU standard type wrapped up in such a way that
+ * this thing can be encountered countless times during a compile
+ * and not cause even a warning.
+ */
+static const char*
+emit_gnu_type (const char* text, regmatch_t* rm )
+{
+ char z_TYPE[ 64 ];
+ char z_type[ 64 ];
+
+ fwrite (text, rm[0].rm_so, 1, stdout);
+
+ {
+ const char* ps = text + rm[1].rm_so;
+ const char* pe = text + rm[1].rm_eo;
+ char* pd = z_type;
+ char* pD = z_TYPE;
+
+ while (ps < pe)
+ *(pD++) = TOUPPER( *(pd++) = *(ps++) );
+
+ *pD = *pd = NUL;
+ }
+
+ /*
+ * Now print out the reformed typedef,
+ * with a C++ guard for WCHAR
+ */
+ {
+ tSCC z_fmt[] = "\
+#if !defined(_GCC_%s_T)%s\n\
+#define _GCC_%s_T\n\
+typedef __%s_TYPE__ %s_t;\n\
+#endif\n";
+
+ const char *const pz_guard = (strcmp (z_type, "wchar") == 0)
+ ? " && ! defined(__cplusplus)" : "";
+
+ printf (z_fmt, z_TYPE, pz_guard, z_TYPE, z_TYPE, z_type);
+ }
+
+ return text += rm[0].rm_eo;
+}
+
+
+/*
+ * Copy the `format' string to std out, replacing `%n' expressions
+ * with the matched text from a regular expression evaluation.
+ * Doubled '%' characters will be replaced with a single copy.
+ * '%' characters in other contexts and all other characters are
+ * copied out verbatim.
+ */
+static void
+format_write (tCC* format, tCC* text, regmatch_t av[] )
+{
+ int c;
+
+ while ((c = (unsigned)*(format++)) != NUL) {
+
+ if (c != '%')
+ {
+ putchar(c);
+ continue;
+ }
+
+ c = (unsigned)*(format++);
+
+ /*
+ * IF the character following a '%' is not a digit,
+ * THEN we will always emit a '%' and we may or may
+ * not emit the following character. We will end on
+ * a NUL and we will emit only one of a pair of '%'.
+ */
+ if (! ISDIGIT ( c ))
+ {
+ putchar( '%' );
+ switch (c) {
+ case NUL:
+ return;
+ case '%':
+ break;
+ default:
+ putchar(c);
+ }
+ }
+
+ /*
+ * Emit the matched subexpression numbered 'c'.
+ * IF, of course, there was such a match...
+ */
+ else {
+ regmatch_t* pRM = av + (c - (unsigned)'0');
+ size_t len;
+
+ if (pRM->rm_so < 0)
+ continue;
+
+ len = pRM->rm_eo - pRM->rm_so;
+ if (len > 0)
+ fwrite(text + pRM->rm_so, len, 1, stdout);
+ }
+ }
+}
+
+
+/*
+ * Search for multiple copies of a regular expression. Each block
+ * of matched text is replaced with the format string, as described
+ * above in `format_write'.
+ */
+FIX_PROC_HEAD( format_fix )
+{
+ tCC* pz_pat = p_fixd->patch_args[2];
+ tCC* pz_fmt = p_fixd->patch_args[1];
+ regex_t re;
+ regmatch_t rm[10];
+ IGNORE_ARG(filname);
+
+ /*
+ * We must have a format
+ */
+ if (pz_fmt == (tCC*)NULL)
+ {
+ fprintf( stderr, zNeedsArg, p_fixd->fix_name, "replacement format", 0 );
+ exit (EXIT_BROKEN);
+ }
+
+ /*
+ * IF we don't have a search text, then go find the first
+ * regular expression among the tests.
+ */
+ if (pz_pat == (tCC*)NULL)
+ {
+ tTestDesc* pTD = p_fixd->p_test_desc;
+ int ct = p_fixd->test_ct;
+ for (;;)
+ {
+ if (ct-- <= 0)
+ {
+ fprintf( stderr, zNeedsArg, p_fixd->fix_name, "search text", 1 );
+ exit (EXIT_BROKEN);
+ }
+
+ if (pTD->type == TT_EGREP)
+ {
+ pz_pat = pTD->pz_test_text;
+ break;
+ }
+
+ pTD++;
+ }
+ }
+
+ /*
+ * Replace every copy of the text we find
+ */
+ compile_re (pz_pat, &re, 1, "format search-text", "format_fix" );
+ while (xregexec (&re, text, 10, rm, 0) == 0)
+ {
+ fwrite( text, rm[0].rm_so, 1, stdout );
+ format_write( pz_fmt, text, rm );
+ text += rm[0].rm_eo;
+ }
+
+ /*
+ * Dump out the rest of the file
+ */
+ fputs (text, stdout);
+}
+
+
+/* Scan the input file for all occurrences of text like this:
+
+ #define TIOCCONS _IO(T, 12)
+
+ and change them to read like this:
+
+ #define TIOCCONS _IO('T', 12)
+
+ which is the required syntax per the C standard. (The definition of
+ _IO also has to be tweaked - see below.) 'IO' is actually whatever you
+ provide as the `c_fix_arg' argument. */
+
+FIX_PROC_HEAD( char_macro_use_fix )
+{
+ /* This regexp looks for a traditional-syntax #define (# in column 1)
+ of an object-like macro. */
+ static const char pat[] =
+ "^#[ \t]*define[ \t]+[_A-Za-z][_A-Za-z0-9]*[ \t]+";
+ static regex_t re;
+
+ const char* str = p_fixd->patch_args[1];
+ regmatch_t rm[1];
+ const char *p, *limit;
+ size_t len;
+ IGNORE_ARG(filname);
+
+ if (str == NULL)
+ {
+ fprintf (stderr, zNeedsArg, p_fixd->fix_name, "ioctl type", 0);
+ exit (EXIT_BROKEN);
+ }
+
+ len = strlen (str);
+ compile_re (pat, &re, 1, "macro pattern", "char_macro_use_fix");
+
+ for (p = text;
+ xregexec (&re, p, 1, rm, 0) == 0;
+ p = limit + 1)
+ {
+ /* p + rm[0].rm_eo is the first character of the macro replacement.
+ Find the end of the macro replacement, and the STR we were
+ sent to look for within the replacement. */
+ p += rm[0].rm_eo;
+ limit = p - 1;
+ do
+ {
+ limit = strchr (limit + 1, '\n');
+ if (!limit)
+ goto done;
+ }
+ while (limit[-1] == '\\');
+
+ do
+ {
+ if (*p == str[0] && !strncmp (p+1, str+1, len-1))
+ goto found;
+ }
+ while (++p < limit - len);
+ /* Hit end of line. */
+ continue;
+
+ found:
+ /* Found STR on this line. If the macro needs fixing,
+ the next few chars will be whitespace or uppercase,
+ then an open paren, then a single letter. */
+ while ((ISSPACE (*p) || ISUPPER (*p)) && p < limit) p++;
+ if (*p++ != '(')
+ continue;
+ if (!ISALPHA (*p))
+ continue;
+ if (ISIDNUM (p[1]))
+ continue;
+
+ /* Splat all preceding text into the output buffer,
+ quote the character at p, then proceed. */
+ fwrite (text, 1, p - text, stdout);
+ putchar ('\'');
+ putchar (*p);
+ putchar ('\'');
+ text = p + 1;
+ }
+ done:
+ fputs (text, stdout);
+}
+
+
+/* Scan the input file for all occurrences of text like this:
+
+ #define xxxIOxx(x, y) (....'x'<<16....)
+
+ and change them to read like this:
+
+ #define xxxIOxx(x, y) (....x<<16....)
+
+ which is the required syntax per the C standard. (The uses of _IO
+ also has to be tweaked - see above.) 'IO' is actually whatever
+ you provide as the `c_fix_arg' argument. */
+FIX_PROC_HEAD( char_macro_def_fix )
+{
+ /* This regexp looks for any traditional-syntax #define (# in column 1). */
+ static const char pat[] =
+ "^#[ \t]*define[ \t]+";
+ static regex_t re;
+
+ const char* str = p_fixd->patch_args[1];
+ regmatch_t rm[1];
+ const char *p, *limit;
+ char arg;
+ size_t len;
+ IGNORE_ARG(filname);
+
+ if (str == NULL)
+ {
+ fprintf (stderr, zNeedsArg, p_fixd->fix_name, "ioctl type", 0);
+ exit (EXIT_BROKEN);
+ }
+
+ len = strlen (str);
+ compile_re (pat, &re, 1, "macro pattern", "fix_char_macro_defines");
+
+ for (p = text;
+ xregexec (&re, p, 1, rm, 0) == 0;
+ p = limit + 1)
+ {
+ /* p + rm[0].rm_eo is the first character of the macro name.
+ Find the end of the macro replacement, and the STR we were
+ sent to look for within the name. */
+ p += rm[0].rm_eo;
+ limit = p - 1;
+ do
+ {
+ limit = strchr (limit + 1, '\n');
+ if (!limit)
+ goto done;
+ }
+ while (limit[-1] == '\\');
+
+ do
+ {
+ if (*p == str[0] && !strncmp (p+1, str+1, len-1))
+ goto found;
+ p++;
+ }
+ while (ISIDNUM (*p));
+ /* Hit end of macro name without finding the string. */
+ continue;
+
+ found:
+ /* Found STR in this macro name. If the macro needs fixing,
+ there may be a few uppercase letters, then there will be an
+ open paren with _no_ intervening whitespace, and then a
+ single letter. */
+ while (ISUPPER (*p) && p < limit) p++;
+ if (*p++ != '(')
+ continue;
+ if (!ISALPHA (*p))
+ continue;
+ if (ISIDNUM (p[1]))
+ continue;
+
+ /* The character at P is the one to look for in the following
+ text. */
+ arg = *p;
+ p += 2;
+
+ while (p < limit)
+ {
+ if (p[-1] == '\'' && p[0] == arg && p[1] == '\'')
+ {
+ /* Remove the quotes from this use of ARG. */
+ p--;
+ fwrite (text, 1, p - text, stdout);
+ putchar (arg);
+ p += 3;
+ text = p;
+ }
+ else
+ p++;
+ }
+ }
+ done:
+ fputs (text, stdout);
+}
+
+/* Fix for machine name #ifdefs that are not in the namespace reserved
+ by the C standard. They won't be defined if compiling with -ansi,
+ and the headers will break. We go to some trouble to only change
+ #ifdefs where the macro is defined by GCC in non-ansi mode; this
+ minimizes the number of headers touched. */
+
+#define SCRATCHSZ 64 /* hopefully long enough */
+
+FIX_PROC_HEAD( machine_name_fix )
+{
+ regmatch_t match[2];
+ const char *line, *base, *limit, *p, *q;
+ regex_t *label_re, *name_re;
+ char scratch[SCRATCHSZ];
+ size_t len;
+ IGNORE_ARG(filname);
+ IGNORE_ARG(p_fixd);
+
+ if (!mn_get_regexps (&label_re, &name_re, "machine_name_fix"))
+ {
+ fputs( "The target machine has no needed machine name fixes\n", stderr );
+ goto done;
+ }
+
+ scratch[0] = '_';
+ scratch[1] = '_';
+
+ for (base = text;
+ xregexec (label_re, base, 2, match, 0) == 0;
+ base = limit)
+ {
+ base += match[0].rm_eo;
+ /* We're looking at an #if or #ifdef. Scan forward for the
+ next non-escaped newline. */
+ line = limit = base;
+ do
+ {
+ limit++;
+ limit = strchr (limit, '\n');
+ if (!limit)
+ goto done;
+ }
+ while (limit[-1] == '\\');
+
+ /* If the 'name_pat' matches in between base and limit, we have
+ a bogon. It is not worth the hassle of excluding comments
+ because comments on #if/#ifdef lines are rare, and strings on
+ such lines are illegal.
+
+ REG_NOTBOL means 'base' is not at the beginning of a line, which
+ shouldn't matter since the name_re has no ^ anchor, but let's
+ be accurate anyway. */
+
+ for (;;)
+ {
+ again:
+ if (base == limit)
+ break;
+
+ if (xregexec (name_re, base, 1, match, REG_NOTBOL))
+ goto done; /* No remaining match in this file */
+
+ /* Match; is it on the line? */
+ if (match[0].rm_eo > limit - base)
+ break;
+
+ p = base + match[0].rm_so;
+ base += match[0].rm_eo;
+
+ /* One more test: if on the same line we have the same string
+ with the appropriate underscores, then leave it alone.
+ We want exactly two leading and trailing underscores. */
+ if (*p == '_')
+ {
+ len = base - p - ((*base == '_') ? 2 : 1);
+ q = p + 1;
+ }
+ else
+ {
+ len = base - p - ((*base == '_') ? 1 : 0);
+ q = p;
+ }
+ if (len + 4 > SCRATCHSZ)
+ abort ();
+ memcpy (&scratch[2], q, len);
+ len += 2;
+ scratch[len++] = '_';
+ scratch[len++] = '_';
+
+ for (q = line; q <= limit - len; q++)
+ if (*q == '_' && !strncmp (q, scratch, len))
+ goto again;
+
+ fwrite (text, 1, p - text, stdout);
+ fwrite (scratch, 1, len, stdout);
+
+ text = base;
+ }
+ }
+ done:
+ fputs (text, stdout);
+}
+
+
+FIX_PROC_HEAD( wrap_fix )
+{
+ tSCC z_no_wrap_pat[] = "^#if.*__need_";
+ static regex_t no_wrapping_re; /* assume zeroed data */
+
+ tCC* pz_name = NULL;
+
+ if (no_wrapping_re.allocated == 0)
+ compile_re( z_no_wrap_pat, &no_wrapping_re, 0, "no-wrap pattern",
+ "wrap-fix" );
+
+ /*
+ * IF we do *not* match the no-wrap re, then we have a double negative.
+ * A double negative means YES.
+ */
+ if (xregexec( &no_wrapping_re, text, 0, NULL, 0 ) != 0)
+ {
+ /*
+ * A single file can get wrapped more than once by different fixes.
+ * A single fix can wrap multiple files. Therefore, guard with
+ * *both* the fix name and the file name.
+ */
+ size_t ln = strlen( filname ) + strlen( p_fixd->fix_name ) + 14;
+ char* pz = XNEWVEC (char, ln);
+ pz_name = pz;
+ sprintf( pz, "FIXINC_WRAP_%s-%s", filname, p_fixd->fix_name );
+
+ for (pz += 12; 1; pz++) {
+ char ch = *pz;
+
+ if (ch == NUL)
+ break;
+
+ if (! ISALNUM( ch )) {
+ *pz = '_';
+ }
+ else {
+ *pz = TOUPPER( ch );
+ }
+ }
+
+ printf( "#ifndef %s\n", pz_name );
+ printf( "#define %s 1\n\n", pz_name );
+ }
+
+ if (p_fixd->patch_args[1] == (tCC*)NULL)
+ fputs( text, stdout );
+
+ else {
+ fputs( p_fixd->patch_args[1], stdout );
+ fputs( text, stdout );
+ if (p_fixd->patch_args[2] != (tCC*)NULL)
+ fputs( p_fixd->patch_args[2], stdout );
+ }
+
+ if (pz_name != NULL) {
+ printf( "\n#endif /* %s */\n", pz_name );
+ free( (void*)pz_name );
+ }
+}
+
+
+/*
+ * Search for multiple copies of a regular expression. Each block
+ * of matched text is replaced with the format string, as described
+ * above in `format_write'.
+ */
+FIX_PROC_HEAD( gnu_type_fix )
+{
+ const char* pz_pat;
+ regex_t re;
+ regmatch_t rm[GTYPE_SE_CT+1];
+ IGNORE_ARG(filname);
+
+ {
+ tTestDesc* pTD = p_fixd->p_test_desc;
+ int ct = p_fixd->test_ct;
+ for (;;)
+ {
+ if (ct-- <= 0)
+ {
+ fprintf (stderr, zNeedsArg, p_fixd->fix_name, "search text", 1);
+ exit (EXIT_BROKEN);
+ }
+
+ if (pTD->type == TT_EGREP)
+ {
+ pz_pat = pTD->pz_test_text;
+ break;
+ }
+
+ pTD++;
+ }
+ }
+
+ compile_re (pz_pat, &re, 1, "gnu type typedef", "gnu_type_fix");
+
+ while (xregexec (&re, text, GTYPE_SE_CT+1, rm, 0) == 0)
+ {
+ text = emit_gnu_type (text, rm);
+ }
+
+ /*
+ * Dump out the rest of the file
+ */
+ fputs (text, stdout);
+}
+
+
+/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
+
+ test for fix selector
+
+ THIS IS THE ONLY EXPORTED ROUTINE
+
+*/
+void
+apply_fix( tFixDesc* p_fixd, tCC* filname )
+{
+#define _FT_(n,p) { n, p },
+ static fix_entry_t fix_table[] = { FIXUP_TABLE { NULL, NULL }};
+#undef _FT_
+#define FIX_TABLE_CT (ARRAY_SIZE (fix_table)-1)
+
+ tCC* fixname = p_fixd->patch_args[0];
+ char* buf;
+ int ct = FIX_TABLE_CT;
+ fix_entry_t* pfe = fix_table;
+
+ for (;;)
+ {
+ if (strcmp (pfe->fix_name, fixname) == 0)
+ break;
+ if (--ct <= 0)
+ {
+ fprintf (stderr, "fixincl error: the `%s' fix is unknown\n",
+ fixname );
+ exit (EXIT_BROKEN);
+ }
+ pfe++;
+ }
+
+ buf = load_file_data (stdin);
+ (*pfe->fix_proc)( filname, buf, p_fixd );
+}
+
+#ifdef SEPARATE_FIX_PROC
+tSCC z_usage[] =
+"USAGE: applyfix <fix-name> <file-to-fix> <file-source> <file-destination>\n";
+tSCC z_reopen[] =
+"FS error %d (%s) reopening %s as std%s\n";
+
+int
+main( int argc, char** argv )
+{
+ tFixDesc* pFix;
+ char* pz_tmptmp;
+ char* pz_tmp_base;
+ char* pz_tmp_dot;
+
+ if (argc != 5)
+ {
+ usage_failure:
+ fputs (z_usage, stderr);
+ return EXIT_FAILURE;
+ }
+
+ initialize_opts ();
+
+ {
+ char* pz = argv[1];
+ long idx;
+
+ if (! ISDIGIT ( *pz ))
+ goto usage_failure;
+
+ idx = strtol (pz, &pz, 10);
+ if ((*pz != NUL) || ((unsigned)idx >= FIX_COUNT))
+ goto usage_failure;
+ pFix = fixDescList + idx;
+ }
+
+ if (freopen (argv[3], "r", stdin) != stdin)
+ {
+ fprintf (stderr, z_reopen, errno, strerror( errno ), argv[3], "in");
+ return EXIT_FAILURE;
+ }
+
+ pz_tmptmp = XNEWVEC (char, strlen (argv[4]) + 5);
+ strcpy( pz_tmptmp, argv[4] );
+
+ /* Don't lose because "12345678" and "12345678X" map to the same
+ file under DOS restricted 8+3 file namespace. Note that DOS
+ doesn't allow more than one dot in the trunk of a file name. */
+ pz_tmp_base = basename( pz_tmptmp );
+ pz_tmp_dot = strchr( pz_tmp_base, '.' );
+#ifdef _PC_NAME_MAX
+ if (pathconf( pz_tmptmp, _PC_NAME_MAX ) <= 12 /* is this DOS or Windows9X? */
+ && pz_tmp_dot != (char*)NULL)
+ strcpy (pz_tmp_dot+1, "X"); /* nuke the original extension */
+ else
+#endif /* _PC_NAME_MAX */
+ strcat (pz_tmptmp, ".X");
+ if (freopen (pz_tmptmp, "w", stdout) != stdout)
+ {
+ fprintf (stderr, z_reopen, errno, strerror( errno ), pz_tmptmp, "out");
+ return EXIT_FAILURE;
+ }
+
+ apply_fix (pFix, argv[1]);
+ fclose (stdout);
+ fclose (stdin);
+ unlink (argv[4]);
+ if (rename (pz_tmptmp, argv[4]) != 0)
+ {
+ fprintf (stderr, "error %d (%s) renaming %s to %s\n", errno,
+ strerror( errno ), pz_tmptmp, argv[4]);
+ return EXIT_FAILURE;
+ }
+
+ return EXIT_SUCCESS;
+}
+#endif
diff --git a/fixincludes/fixinc.in b/fixincludes/fixinc.in
new file mode 100755
index 000000000..e73aed99a
--- /dev/null
+++ b/fixincludes/fixinc.in
@@ -0,0 +1,498 @@
+#!/bin/sh
+#
+# Install modified versions of certain ANSI-incompatible system header
+# files which are fixed to work correctly with ANSI C and placed in a
+# directory that GCC will search.
+#
+# See README-fixinc for more information.
+#
+# fixincludes copyright (c) 1998, 1999, 2000, 2002, 2009
+# The Free Software Foundation, Inc.
+#
+# fixincludes is free software.
+#
+# You may redistribute it and/or modify it under the terms of the
+# GNU General Public License, as published by the Free Software
+# Foundation; either version 3, or (at your option) any later version.
+#
+# fixincludes 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with fixincludes; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+#
+# # # # # # # # # # # # # # # # # # # # #
+
+# Usage: fixinc.sh output-dir input-dir
+#
+# Directory in which to store the results.
+# Fail if no arg to specify a directory for the output.
+if [ "x$1" = "x" ]
+then
+ echo fixincludes: no output directory specified
+ exit 1
+fi
+
+LIB=${1}
+shift
+
+# Make sure it exists.
+if [ ! -d $LIB ]; then
+ mkdir $LIB || {
+ echo fixincludes: output dir '`'$LIB"' cannot be created"
+ exit 1
+ }
+else
+ ( cd $LIB && touch DONE && rm DONE ) || {
+ echo fixincludes: output dir '`'$LIB"' is an invalid directory"
+ exit 1
+ }
+fi
+
+if test -z "$VERBOSE"
+then
+ VERBOSE=2
+ export VERBOSE
+else
+ case "$VERBOSE" in
+ [0-9] ) : ;;
+ * ) VERBOSE=3 ;;
+ esac
+fi
+
+# Define what target system we're fixing.
+#
+if test -r ./Makefile; then
+ target_canonical="`sed -n -e 's,^target[ ]*=[ ]*\(.*\)$,\1,p' < Makefile`"
+fi
+
+# If not from the Makefile, then try config.guess
+#
+if test -z "${target_canonical}" ; then
+ if test -x ./config.guess ; then
+ target_canonical="`config.guess`" ; fi
+ test -z "${target_canonical}" && target_canonical=unknown
+fi
+export target_canonical
+
+# # # # # # # # # # # # # # # # # # # # #
+#
+# Define PWDCMD as a command to use to get the working dir
+# in the form that we want.
+PWDCMD=${PWDCMD-pwd}
+
+case "`$PWDCMD`" in
+//*)
+ # On an Apollo, discard everything before `/usr'.
+ PWDCMD="eval pwd | sed -e 's,.*/usr/,/usr/,'"
+ ;;
+esac
+
+# Original directory.
+ORIGDIR=`${PWDCMD}`
+export ORIGDIR
+FIXINCL=`${PWDCMD}`/fixincl
+if [ ! -x $FIXINCL ] ; then
+ echo "Cannot find fixincl" >&2
+ exit 1
+fi
+export FIXINCL
+
+# Make LIB absolute only if needed to avoid problems with the amd.
+case $LIB in
+/*)
+ ;;
+*)
+ cd $LIB; LIB=`${PWDCMD}`
+ ;;
+esac
+
+if test $VERBOSE -gt 0
+then echo Fixing headers into ${LIB} for ${target_canonical} target ; fi
+
+# Determine whether this system has symbolic links.
+if test -n "$DJDIR"; then
+ LINKS=false
+elif ln -s X $LIB/ShouldNotExist 2>/dev/null; then
+ rm -f $LIB/ShouldNotExist
+ LINKS=true
+elif ln -s X /tmp/ShouldNotExist 2>/dev/null; then
+ rm -f /tmp/ShouldNotExist
+ LINKS=true
+else
+ LINKS=false
+fi
+
+# # # # # # # # # # # # # # # # # # # # #
+#
+# In the file macro_list are listed all the predefined
+# macros that are not in the C89 reserved namespace (the reserved
+# namespace is all identifiers beginnning with two underscores or one
+# underscore followed by a capital letter). A regular expression to find
+# any of those macros in a header file is written to MN_NAME_PAT.
+#
+# Note dependency on ASCII. \012 = newline.
+# tr ' ' '\n' is, alas, not portable.
+
+if test -s ${MACRO_LIST}
+then
+ if test $VERBOSE -gt 0; then
+ echo "Forbidden identifiers: `tr '\012' ' ' < ${MACRO_LIST}`"
+ fi
+ MN_NAME_PAT="`sed 's/^/\\\\</; s/$/\\\\>/; $!s/$/|/' \
+ < ${MACRO_LIST} | tr -d '\012'`"
+ export MN_NAME_PAT
+else
+ if test $VERBOSE -gt 0
+ then echo "No forbidden identifiers defined by this target" ; fi
+fi
+
+# # # # # # # # # # # # # # # # # # # # #
+#
+# Search each input directory for broken header files.
+# This loop ends near the end of the file.
+#
+if test $# -eq 0
+then
+ INPUTLIST="/usr/include"
+else
+ INPUTLIST="$@"
+fi
+
+for INPUT in ${INPUTLIST} ; do
+
+cd ${ORIGDIR}
+
+# Make sure a directory exists before changing into it,
+# otherwise Solaris2 will fail-exit the script.
+#
+if [ ! -d ${INPUT} ]; then
+ continue
+fi
+cd ${INPUT}
+
+INPUT=`${PWDCMD}`
+export INPUT
+
+#
+# # # # # # # # # # # # # # # # # # # # #
+#
+if test $VERBOSE -gt 1
+then echo Finding directories and links to directories ; fi
+
+# Find all directories and all symlinks that point to directories.
+# Put the list in $all_dirs.
+# Each time we find a symlink, add it to newdirs
+# so that we do another find within the dir the link points to.
+# Note that $all_dirs may have duplicates in it;
+# later parts of this file are supposed to ignore them.
+dirs="."
+levels=2
+all_dirs=""
+search_dirs=""
+
+while [ -n "$dirs" ] && [ $levels -gt 0 ]
+do
+ levels=`expr $levels - 1`
+ newdirs=
+ for d in $dirs
+ do
+ if test $VERBOSE -gt 1
+ then echo " Searching $INPUT/$d" ; fi
+
+ # Find all directories under $d, relative to $d, excluding $d itself.
+ # (The /. is needed after $d in case $d is a symlink.)
+ all_dirs="$all_dirs `find $d/. -type d -print | \
+ sed -e '/\/\.$/d' -e 's@/./@/@g'`"
+ # Find all links to directories.
+ # Using `-exec test -d' in find fails on some systems,
+ # and trying to run test via sh fails on others,
+ # so this is the simplest alternative left.
+ # First find all the links, then test each one.
+ theselinks=
+ $LINKS && \
+ theselinks=`find $d/. -type l -print | sed -e 's@/./@/@g'`
+ for d1 in $theselinks --dummy--
+ do
+ # If the link points to a directory,
+ # add that dir to $newdirs
+ if [ -d $d1 ]
+ then
+ all_dirs="$all_dirs $d1"
+ if [ "`ls -ld $d1 | sed -n 's/.*-> //p'`" != "." ]
+ then
+ newdirs="$newdirs $d1"
+ search_dirs="$search_dirs $d1"
+ fi
+ fi
+ done
+ done
+
+ dirs="$newdirs"
+done
+
+# # # # # # # # # # # # # # # # # # # # #
+#
+dirs=
+if test $VERBOSE -gt 2
+then echo "All directories (including links to directories):"
+ echo $all_dirs
+fi
+
+for file in $all_dirs; do
+ rm -rf $LIB/$file
+ if [ ! -d $LIB/$file ]
+ then mkdir $LIB/$file
+ fi
+done
+mkdir $LIB/root
+
+# # # # # # # # # # # # # # # # # # # # #
+#
+# treetops gets an alternating list
+# of old directories to copy
+# and the new directories to copy to.
+treetops=". ${LIB}"
+
+if $LINKS; then
+ if test $VERBOSE -gt 1
+ then echo 'Making symbolic directory links' ; fi
+ cwd=`${PWDCMD}`
+
+ for sym_link in $search_dirs; do
+ cd ${INPUT}
+ dest=`ls -ld ${sym_link} | sed -n 's/.*-> //p'`
+
+ # In case $dest is relative, get to ${sym_link}'s dir first.
+ #
+ cd ./`echo ${sym_link} | sed 's;/[^/]*$;;'`
+
+ # Check that the target directory exists.
+ # Redirections changed to avoid bug in sh on Ultrix.
+ #
+ (cd $dest) > /dev/null 2>&1
+ if [ $? = 0 ]; then
+ cd $dest
+
+ # full_dest_dir gets the dir that the link actually leads to.
+ #
+ full_dest_dir=`${PWDCMD}`
+
+ # Canonicalize ${INPUT} now to minimize the time an
+ # automounter has to change the result of ${PWDCMD}.
+ #
+ cinput=`cd ${INPUT}; ${PWDCMD}`
+
+ # If a link points to ., make a similar link to .
+ #
+ if [ ${full_dest_dir} = ${cinput} ]; then
+ if test $VERBOSE -gt 2
+ then echo ${sym_link} '->' . ': Making self link' ; fi
+ rm -fr ${LIB}/${sym_link} > /dev/null 2>&1
+ ln -s . ${LIB}/${sym_link} > /dev/null 2>&1
+
+ # If link leads back into ${INPUT},
+ # make a similar link here.
+ #
+ elif expr ${full_dest_dir} : "${cinput}/.*" > /dev/null; then
+ # Y gets the actual target dir name, relative to ${INPUT}.
+ y=`echo ${full_dest_dir} | sed -n "s&${cinput}/&&p"`
+ # DOTS is the relative path from ${LIB}/${sym_link} back to ${LIB}.
+ dots=`echo "${sym_link}" |
+ sed -e 's@^./@@' -e 's@/./@/@g' -e 's@[^/][^/]*@..@g' -e 's@..$@@'`
+ if test $VERBOSE -gt 2
+ then echo ${sym_link} '->' $dots$y ': Making local link' ; fi
+ rm -fr ${LIB}/${sym_link} > /dev/null 2>&1
+ ln -s $dots$y ${LIB}/${sym_link} > /dev/null 2>&1
+
+ else
+ # If the link is to a dir $target outside ${INPUT},
+ # repoint the link at ${INPUT}/root$target
+ # and process $target into ${INPUT}/root$target
+ # treat this directory as if it actually contained the files.
+ #
+ if test $VERBOSE -gt 2
+ then echo ${sym_link} '->' root${full_dest_dir} ': Making rooted link'
+ fi
+ if [ -d $LIB/root${full_dest_dir} ]
+ then true
+ else
+ dirname=root${full_dest_dir}/
+ dirmade=.
+ cd $LIB
+ while [ x$dirname != x ]; do
+ component=`echo $dirname | sed -e 's|/.*$||'`
+ mkdir $component >/dev/null 2>&1
+ cd $component
+ dirmade=$dirmade/$component
+ dirname=`echo $dirname | sed -e 's|[^/]*/||'`
+ done
+ fi
+
+ # Duplicate directory structure created in ${LIB}/${sym_link} in new
+ # root area.
+ #
+ for file2 in $all_dirs; do
+ case $file2 in
+ ${sym_link}/*)
+ dupdir=${LIB}/root${full_dest_dir}/`echo $file2 |
+ sed -n "s|^${sym_link}/||p"`
+ if test $VERBOSE -gt 2
+ then echo "Duplicating ${sym_link}'s ${dupdir}" ; fi
+ if [ -d ${dupdir} ]
+ then true
+ else
+ mkdir ${dupdir}
+ fi
+ ;;
+ *)
+ ;;
+ esac
+ done
+
+ # Get the path from ${LIB} to ${sym_link}, accounting for symlinks.
+ #
+ parent=`echo "${sym_link}" | sed -e 's@/[^/]*$@@'`
+ libabs=`cd ${LIB}; ${PWDCMD}`
+ file2=`cd ${LIB}; cd $parent; ${PWDCMD} | sed -e "s@^${libabs}@@"`
+
+ # DOTS is the relative path from ${LIB}/${sym_link} back to ${LIB}.
+ #
+ dots=`echo "$file2" | sed -e 's@/[^/]*@../@g'`
+ rm -fr ${LIB}/${sym_link} > /dev/null 2>&1
+ ln -s ${dots}root${full_dest_dir} ${LIB}/${sym_link} > /dev/null 2>&1
+ treetops="$treetops ${sym_link} ${LIB}/root${full_dest_dir}"
+ fi
+ fi
+ done
+fi
+
+# # # # # # # # # # # # # # # # # # # # #
+#
+required=
+set x $treetops
+shift
+while [ $# != 0 ]; do
+ # $1 is an old directory to copy, and $2 is the new directory to copy to.
+ #
+ SRCDIR=`cd ${INPUT} ; cd $1 ; ${PWDCMD}`
+ export SRCDIR
+
+ FIND_BASE=$1
+ export FIND_BASE
+ shift
+
+ DESTDIR=`cd $1;${PWDCMD}`
+ export DESTDIR
+ shift
+
+ # The same dir can appear more than once in treetops.
+ # There's no need to scan it more than once.
+ #
+ if [ -f ${DESTDIR}/DONE ]
+ then continue ; fi
+
+ touch ${DESTDIR}/DONE
+ if test $VERBOSE -gt 1
+ then echo Fixing directory ${SRCDIR} into ${DESTDIR} ; fi
+
+ # Check files which are symlinks as well as those which are files.
+ #
+ cd ${INPUT}
+ required="$required `if $LINKS; then
+ find ${FIND_BASE}/. -name '*.h' \( -type f -o -type l \) -print
+ else
+ find ${FIND_BASE}/. -name '*.h' -type f -print
+ fi | \
+ sed -e 's;/\./;/;g' -e 's;//*;/;g' | \
+ ${FIXINCL}`"
+done
+
+## Make sure that any include files referenced using double quotes
+## exist in the fixed directory. This comes last since otherwise
+## we might end up deleting some of these files "because they don't
+## need any change."
+set x `echo $required`
+shift
+while [ $# != 0 ]; do
+ newreq=
+ while [ $# != 0 ]; do
+ # $1 is the directory to copy from,
+ # $2 is the unfixed file,
+ # $3 is the fixed file name.
+ #
+ cd ${INPUT}
+ cd $1
+ if [ -f $2 ] ; then
+ if [ -r $2 ] && [ ! -r $3 ]; then
+ cp $2 $3 >/dev/null 2>&1 || echo "Can't copy $2" >&2
+ chmod +w $3 2>/dev/null
+ chmod a+r $3 2>/dev/null
+ if test $VERBOSE -gt 2
+ then echo Copied $2 ; fi
+ for include in `egrep '^[ ]*#[ ]*include[ ]*"[^/]' $3 |
+ sed -e 's/^[ ]*#[ ]*include[ ]*"\([^"]*\)".*$/\1/'`
+ do
+ dir=`echo $2 | sed -e s'|/[^/]*$||'`
+ dir2=`echo $3 | sed -e s'|/[^/]*$||'`
+ newreq="$newreq $1 $dir/$include $dir2/$include"
+ done
+ fi
+ fi
+ shift; shift; shift
+ done
+ set x $newreq
+ shift
+done
+
+if test $VERBOSE -gt 2
+then echo 'Cleaning up DONE files.' ; fi
+cd $LIB
+# Look for files case-insensitively, for the benefit of
+# DOS/Windows filesystems.
+find . -name '[Dd][Oo][Nn][Ee]' -exec rm -f '{}' ';'
+
+if test $VERBOSE -gt 1
+then echo 'Cleaning up unneeded directories:' ; fi
+cd $LIB
+all_dirs=`find . -type d \! -name '.' -print | sort -r`
+for file in $all_dirs; do
+ if rmdir $LIB/$file > /dev/null
+ then
+ test $VERBOSE -gt 3 && echo " removed $file"
+ fi
+done 2> /dev/null
+
+# On systems which don't support symlinks, `find' may barf
+# if called with "-type l" predicate. So only use that if
+# we know we should look for symlinks.
+if $LINKS; then
+ test $VERBOSE -gt 2 && echo "Removing unused symlinks"
+
+ all_dirs=`find . -type l -print`
+ for file in $all_dirs
+ do
+ if test ! -d $file
+ then
+ rm -f $file
+ test $VERBOSE -gt 3 && echo " removed $file"
+ rmdir `dirname $file` > /dev/null && \
+ test $VERBOSE -gt 3 && \
+ echo " removed `dirname $file`"
+ fi
+ done 2> /dev/null
+fi
+
+if test $VERBOSE -gt 0
+then echo fixincludes is done ; fi
+
+# # # # # # # # # # # # # # # # # # # # #
+#
+# End of for INPUT directories
+#
+done
+#
+# # # # # # # # # # # # # # # # # # # # #
diff --git a/fixincludes/fixincl.c b/fixincludes/fixincl.c
new file mode 100644
index 000000000..9f399abdd
--- /dev/null
+++ b/fixincludes/fixincl.c
@@ -0,0 +1,1358 @@
+/* Install modified versions of certain ANSI-incompatible system header
+ files which are fixed to work correctly with ANSI C and placed in a
+ directory that GCC will search.
+
+ Copyright (C) 1997, 1998, 1999, 2000, 2004, 2009
+ Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#include "fixlib.h"
+
+#include <fnmatch.h>
+#include <sys/stat.h>
+#ifndef SEPARATE_FIX_PROC
+#include <sys/wait.h>
+#endif
+
+#if defined( HAVE_MMAP_FILE )
+#include <sys/mman.h>
+#define BAD_ADDR ((void*)-1)
+#endif
+
+#ifndef SEPARATE_FIX_PROC
+#include "server.h"
+#endif
+
+/* The contents of this string are not very important. It is mostly
+ just used as part of the "I am alive and working" test. */
+
+static const char program_id[] = "fixincl version 1.1";
+
+/* This format will be used at the start of every generated file */
+
+static const char z_std_preamble[] =
+"/* DO NOT EDIT THIS FILE.\n\n\
+ It has been auto-edited by fixincludes from:\n\n\
+\t\"%s/%s\"\n\n\
+ This had to be done to correct non-standard usages in the\n\
+ original, manufacturer supplied header file. */\n\n";
+
+int find_base_len = 0;
+
+typedef enum {
+ VERB_SILENT = 0,
+ VERB_FIXES,
+ VERB_APPLIES,
+ VERB_PROGRESS,
+ VERB_TESTS,
+ VERB_EVERYTHING
+} te_verbose;
+
+te_verbose verbose_level = VERB_PROGRESS;
+int have_tty = 0;
+
+#define VLEVEL(l) ((unsigned int) verbose_level >= (unsigned int) l)
+#define NOT_SILENT VLEVEL(VERB_FIXES)
+
+pid_t process_chain_head = (pid_t) -1;
+
+char* pz_curr_file; /* name of the current file under test/fix */
+char* pz_curr_data; /* original contents of that file */
+char* pz_temp_file; /* for DOS, a place to stash the temporary
+ fixed data between system(3) calls */
+t_bool curr_data_mapped;
+int data_map_fd;
+size_t data_map_size;
+size_t ttl_data_size = 0;
+
+#ifdef DO_STATS
+int process_ct = 0;
+int apply_ct = 0;
+int fixed_ct = 0;
+int altered_ct = 0;
+#endif /* DO_STATS */
+
+const char incl_quote_pat[] = "^[ \t]*#[ \t]*include[ \t]*\"[^/]";
+tSCC z_fork_err[] = "Error %d (%s) starting filter process for %s\n";
+regex_t incl_quote_re;
+
+static void do_version (void) ATTRIBUTE_NORETURN;
+char *load_file (const char *);
+void run_compiles (void);
+void initialize (int argc, char** argv);
+void process (void);
+
+/* External Source Code */
+
+#include "fixincl.x"
+
+/* * * * * * * * * * * * * * * * * * *
+ *
+ * MAIN ROUTINE
+ */
+extern int main (int, char **);
+int
+main (int argc, char** argv)
+{
+ char *file_name_buf;
+
+ initialize ( argc, argv );
+
+ have_tty = isatty (fileno (stderr));
+
+ /* Before anything else, ensure we can allocate our file name buffer. */
+ file_name_buf = load_file_data (stdin);
+
+ /* Because of the way server shells work, you have to keep stdin, out
+ and err open so that the proper input file does not get closed
+ by accident */
+
+ freopen ("/dev/null", "r", stdin);
+
+ if (file_name_buf == (char *) NULL)
+ {
+ fputs ("No file names listed for fixing\n", stderr);
+ exit (EXIT_FAILURE);
+ }
+
+ for (;;)
+ {
+ char* pz_end;
+
+ /* skip to start of name, past any "./" prefixes */
+
+ while (ISSPACE (*file_name_buf)) file_name_buf++;
+ while ((file_name_buf[0] == '.') && (file_name_buf[1] == '/'))
+ file_name_buf += 2;
+
+ /* Check for end of list */
+
+ if (*file_name_buf == NUL)
+ break;
+
+ /* Set global file name pointer and find end of name */
+
+ pz_curr_file = file_name_buf;
+ pz_end = strchr( pz_curr_file, '\n' );
+ if (pz_end == (char*)NULL)
+ pz_end = file_name_buf = pz_curr_file + strlen (pz_curr_file);
+ else
+ file_name_buf = pz_end + 1;
+
+ while ((pz_end > pz_curr_file) && ISSPACE( pz_end[-1])) pz_end--;
+
+ /* IF no name is found (blank line) or comment marker, skip line */
+
+ if ((pz_curr_file == pz_end) || (*pz_curr_file == '#'))
+ continue;
+ *pz_end = NUL;
+
+ process ();
+ } /* for (;;) */
+
+#ifdef DO_STATS
+ if (VLEVEL( VERB_PROGRESS )) {
+ tSCC zFmt[] =
+ "\
+Processed %5d files containing %d bytes \n\
+Applying %5d fixes to %d files\n\
+Altering %5d of them\n";
+
+ fprintf (stderr, zFmt, process_ct, ttl_data_size, apply_ct,
+ fixed_ct, altered_ct);
+ }
+#endif /* DO_STATS */
+
+# ifdef SEPARATE_FIX_PROC
+ unlink( pz_temp_file );
+# endif
+ exit (EXIT_SUCCESS);
+}
+
+
+static void
+do_version (void)
+{
+ static const char zFmt[] = "echo '%s'";
+ char zBuf[ 1024 ];
+
+ /* The 'version' option is really used to test that:
+ 1. The program loads correctly (no missing libraries)
+ 2. that we can compile all the regular expressions.
+ 3. we can correctly run our server shell process
+ */
+ run_compiles ();
+ sprintf (zBuf, zFmt, program_id);
+#ifndef SEPARATE_FIX_PROC
+ puts (zBuf + 5);
+ exit (strcmp (run_shell (zBuf), program_id));
+#else
+ exit (system (zBuf));
+#endif
+}
+
+/* * * * * * * * * * * * */
+
+void
+initialize ( int argc, char** argv )
+{
+ xmalloc_set_program_name (argv[0]);
+
+ switch (argc)
+ {
+ case 1:
+ break;
+
+ case 2:
+ if (strcmp (argv[1], "-v") == 0)
+ do_version ();
+ if (freopen (argv[1], "r", stdin) == (FILE*)NULL)
+ {
+ fprintf (stderr, "Error %d (%s) reopening %s as stdin\n",
+ errno, xstrerror (errno), argv[1] );
+ exit (EXIT_FAILURE);
+ }
+ break;
+
+ default:
+ fputs ("fixincl ERROR: too many command line arguments\n", stderr);
+ exit (EXIT_FAILURE);
+ }
+
+#ifdef SIGCHLD
+ /* We *MUST* set SIGCHLD to SIG_DFL so that the wait4() call will
+ receive the signal. A different setting is inheritable */
+ signal (SIGCHLD, SIG_DFL);
+#endif
+
+ initialize_opts ();
+
+ if (ISDIGIT ( *pz_verbose ))
+ verbose_level = (te_verbose)atoi( pz_verbose );
+ else
+ switch (*pz_verbose) {
+ case 's':
+ case 'S':
+ verbose_level = VERB_SILENT; break;
+
+ case 'f':
+ case 'F':
+ verbose_level = VERB_FIXES; break;
+
+ case 'a':
+ case 'A':
+ verbose_level = VERB_APPLIES; break;
+
+ default:
+ case 'p':
+ case 'P':
+ verbose_level = VERB_PROGRESS; break;
+
+ case 't':
+ case 'T':
+ verbose_level = VERB_TESTS; break;
+
+ case 'e':
+ case 'E':
+ verbose_level = VERB_EVERYTHING; break;
+ }
+ if (verbose_level >= VERB_EVERYTHING) {
+ verbose_level = VERB_EVERYTHING;
+ fputs ("fixinc verbosity: EVERYTHING\n", stderr);
+ }
+ while ((pz_find_base[0] == '.') && (pz_find_base[1] == '/'))
+ pz_find_base += 2;
+ if ((pz_find_base[0] != '.') || (pz_find_base[1] != NUL))
+ find_base_len = strlen( pz_find_base );
+
+ /* Compile all the regular expressions now.
+ That way, it is done only once for the whole run.
+ */
+ run_compiles ();
+
+# ifdef SEPARATE_FIX_PROC
+ /* NULL as the first argument to `tempnam' causes it to DTRT
+ wrt the temporary directory where the file will be created. */
+ pz_temp_file = tempnam( NULL, "fxinc" );
+# endif
+
+ signal (SIGQUIT, SIG_IGN);
+ signal (SIGIOT, SIG_IGN);
+ signal (SIGPIPE, SIG_IGN);
+ signal (SIGALRM, SIG_IGN);
+ signal (SIGTERM, SIG_IGN);
+}
+
+/* * * * * * * * * * * * *
+
+ load_file loads all the contents of a file into malloc-ed memory.
+ Its argument is the name of the file to read in; the returned
+ result is the NUL terminated contents of the file. The file
+ is presumed to be an ASCII text file containing no NULs. */
+char *
+load_file ( const char* fname )
+{
+ struct stat stbf;
+ char* res;
+
+ if (stat (fname, &stbf) != 0)
+ {
+ if (NOT_SILENT)
+ fprintf (stderr, "error %d (%s) stat-ing %s\n",
+ errno, xstrerror (errno), fname );
+ return (char *) NULL;
+ }
+ if (stbf.st_size == 0)
+ return (char*)NULL;
+
+ /* Make the data map size one larger than the file size for documentation
+ purposes. Truth is that there will be a following NUL character if
+ the file size is not a multiple of the page size. If it is a multiple,
+ then this adjustment sometimes fails anyway. */
+ data_map_size = stbf.st_size+1;
+ data_map_fd = open (fname, O_RDONLY);
+ ttl_data_size += data_map_size-1;
+
+ if (data_map_fd < 0)
+ {
+ if (NOT_SILENT)
+ fprintf (stderr, "error %d (%s) opening %s for read\n",
+ errno, xstrerror (errno), fname);
+ return (char*)NULL;
+ }
+
+#ifdef HAVE_MMAP_FILE
+ curr_data_mapped = BOOL_TRUE;
+
+ /* IF the file size is a multiple of the page size,
+ THEN sometimes you will seg fault trying to access a trailing byte */
+ if ((stbf.st_size & (getpagesize()-1)) == 0)
+ res = (char*)BAD_ADDR;
+ else
+ res = (char*)mmap ((void*)NULL, data_map_size, PROT_READ,
+ MAP_PRIVATE, data_map_fd, 0);
+ if (res == (char*)BAD_ADDR)
+#endif
+ {
+ FILE* fp = fdopen (data_map_fd, "r");
+ curr_data_mapped = BOOL_FALSE;
+ res = load_file_data (fp);
+ fclose (fp);
+ }
+
+ return res;
+}
+
+static int
+machine_matches( tFixDesc* p_fixd )
+{
+ char const ** papz_machs = p_fixd->papz_machs;
+ int have_match = BOOL_FALSE;
+
+ for (;;)
+ {
+ char const * pz_mpat = *(papz_machs++);
+ if (pz_mpat == NULL)
+ break;
+ if (fnmatch(pz_mpat, pz_machine, 0) == 0)
+ {
+ have_match = BOOL_TRUE;
+ break;
+ }
+ }
+
+ /* Check for sense inversion then set the "skip test" flag, if needed */
+ if (p_fixd->fd_flags & FD_MACH_IFNOT)
+ have_match = ! have_match;
+
+ if (! have_match)
+ p_fixd->fd_flags |= FD_SKIP_TEST;
+
+ return have_match;
+}
+
+/* * * * * * * * * * * * *
+ *
+ * run_compiles run all the regexp compiles for all the fixes once.
+ */
+void
+run_compiles (void)
+{
+ tFixDesc *p_fixd = fixDescList;
+ int fix_ct = FIX_COUNT;
+ regex_t *p_re = XCNEWVEC (regex_t, REGEX_COUNT);
+
+ /* Make sure compile_re does not stumble across invalid data */
+
+ memset (&incl_quote_re, '\0', sizeof (regex_t));
+
+ compile_re (incl_quote_pat, &incl_quote_re, 1,
+ "quoted include", "run_compiles");
+
+ /* Allow machine name tests to be ignored (testing, mainly) */
+
+ if (pz_machine && ((*pz_machine == '\0') || (*pz_machine == '*')))
+ pz_machine = (char*)NULL;
+
+ /* FOR every fixup, ... */
+ do
+ {
+ tTestDesc *p_test = p_fixd->p_test_desc;
+ int test_ct = p_fixd->test_ct;
+
+ /* IF the machine type pointer is not NULL (we are not in test mode)
+ AND this test is for or not done on particular machines
+ THEN ... */
+
+ if ( (pz_machine != NULL)
+ && (p_fixd->papz_machs != (const char**) NULL)
+ && ! machine_matches (p_fixd) )
+ continue;
+
+ /* FOR every test for the fixup, ... */
+
+ while (--test_ct >= 0)
+ {
+ switch (p_test->type)
+ {
+ case TT_EGREP:
+ case TT_NEGREP:
+ p_test->p_test_regex = p_re++;
+ compile_re (p_test->pz_test_text, p_test->p_test_regex, 0,
+ "select test", p_fixd->fix_name);
+ default: break;
+ }
+ p_test++;
+ }
+ }
+ while (p_fixd++, --fix_ct > 0);
+}
+
+
+/* * * * * * * * * * * * *
+
+ create_file Create the output modified file.
+ Input: the name of the file to create
+ Returns: a file pointer to the new, open file */
+
+#if defined(S_IRUSR) && defined(S_IWUSR) && \
+ defined(S_IRGRP) && defined(S_IROTH)
+
+# define S_IRALL (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
+#else
+# define S_IRALL 0644
+#endif
+
+#if defined(S_IRWXU) && defined(S_IRGRP) && defined(S_IXGRP) && \
+ defined(S_IROTH) && defined(S_IXOTH)
+
+# define S_DIRALL (S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)
+#else
+# define S_DIRALL 0755
+#endif
+
+
+static FILE *
+create_file (void)
+{
+ int fd;
+ FILE *pf;
+ char fname[MAXPATHLEN];
+
+ sprintf (fname, "%s/%s", pz_dest_dir, pz_curr_file + find_base_len);
+
+ fd = open (fname, O_WRONLY | O_CREAT | O_TRUNC, S_IRALL);
+
+ /* We may need to create the directories needed... */
+ if ((fd < 0) && (errno == ENOENT))
+ {
+ char *pz_dir = strchr (fname + 1, '/');
+ struct stat stbf;
+
+ while (pz_dir != (char *) NULL)
+ {
+ *pz_dir = NUL;
+ if (stat (fname, &stbf) < 0)
+ {
+#ifdef _WIN32
+ mkdir (fname);
+#else
+ mkdir (fname, S_IFDIR | S_DIRALL);
+#endif
+ }
+
+ *pz_dir = '/';
+ pz_dir = strchr (pz_dir + 1, '/');
+ }
+
+ /* Now, lets try the open again... */
+ fd = open (fname, O_WRONLY | O_CREAT | O_TRUNC, S_IRALL);
+ }
+ if (fd < 0)
+ {
+ fprintf (stderr, "Error %d (%s) creating %s\n",
+ errno, xstrerror (errno), fname);
+ exit (EXIT_FAILURE);
+ }
+ if (NOT_SILENT)
+ fprintf (stderr, "Fixed: %s\n", pz_curr_file);
+ pf = fdopen (fd, "w");
+
+ /*
+ * IF pz_machine is NULL, then we are in some sort of test mode.
+ * Do not insert the current directory name. Use a constant string.
+ */
+ fprintf (pf, z_std_preamble,
+ (pz_machine == NULL)
+ ? "fixinc/tests/inc"
+ : pz_input_dir,
+ pz_curr_file);
+
+ return pf;
+}
+
+
+/* * * * * * * * * * * * *
+
+ test_test make sure a shell-style test expression passes.
+ Input: a pointer to the descriptor of the test to run and
+ the name of the file that we might want to fix
+ Result: APPLY_FIX or SKIP_FIX, depending on the result of the
+ shell script we run. */
+#ifndef SEPARATE_FIX_PROC
+static int
+test_test (tTestDesc* p_test, char* pz_test_file)
+{
+ tSCC cmd_fmt[] =
+"file=%s\n\
+if ( test %s ) > /dev/null 2>&1\n\
+then echo TRUE\n\
+else echo FALSE\n\
+fi";
+
+ char *pz_res;
+ int res;
+
+ static char cmd_buf[4096];
+
+ sprintf (cmd_buf, cmd_fmt, pz_test_file, p_test->pz_test_text);
+ pz_res = run_shell (cmd_buf);
+
+ switch (*pz_res) {
+ case 'T':
+ res = APPLY_FIX;
+ break;
+
+ case 'F':
+ res = SKIP_FIX;
+ break;
+
+ default:
+ fprintf (stderr, "Script yielded bogus result of `%s':\n%s\n\n",
+ pz_res, cmd_buf );
+ res = SKIP_FIX;
+ }
+
+ free ((void *) pz_res);
+ return res;
+}
+#else
+/*
+ * IF we are in MS-DOS land, then whatever shell-type test is required
+ * will, by definition, fail
+ */
+#define test_test(t,tf) SKIP_FIX
+#endif
+
+/* * * * * * * * * * * * *
+
+ egrep_test make sure an egrep expression is found in the file text.
+ Input: a pointer to the descriptor of the test to run and
+ the pointer to the contents of the file under suspicion
+ Result: APPLY_FIX if the pattern is found, SKIP_FIX otherwise
+
+ The caller may choose to reverse meaning if the sense of the test
+ is inverted. */
+
+static int
+egrep_test (char* pz_data, tTestDesc* p_test)
+{
+#ifdef DEBUG
+ if (p_test->p_test_regex == 0)
+ fprintf (stderr, "fixincl ERROR RE not compiled: `%s'\n",
+ p_test->pz_test_text);
+#endif
+ if (xregexec (p_test->p_test_regex, pz_data, 0, 0, 0) == 0)
+ return APPLY_FIX;
+ return SKIP_FIX;
+}
+
+
+/* * * * * * * * * * * * *
+
+ quoted_file_exists Make sure that a file exists before we emit
+ the file name. If we emit the name, our invoking shell will try
+ to copy a non-existing file into the destination directory. */
+
+static int
+quoted_file_exists (const char* pz_src_path,
+ const char* pz_file_path,
+ const char* pz_file)
+{
+ char z[ MAXPATHLEN ];
+ char* pz;
+ sprintf (z, "%s/%s/", pz_src_path, pz_file_path);
+ pz = z + strlen ( z );
+
+ for (;;) {
+ char ch = *pz_file++;
+ if (! ISGRAPH( ch ))
+ return 0;
+ if (ch == '"')
+ break;
+ *pz++ = ch;
+ }
+ *pz = '\0';
+ {
+ struct stat s;
+ if (stat (z, &s) != 0)
+ return 0;
+ return S_ISREG( s.st_mode );
+ }
+}
+
+
+/* * * * * * * * * * * * *
+ *
+ extract_quoted_files
+
+ The syntax, `#include "file.h"' specifies that the compiler is to
+ search the local directory of the current file before the include
+ list. Consequently, if we have modified a header and stored it in
+ another directory, any files that are included by that modified
+ file in that fashion must also be copied into this new directory.
+ This routine finds those flavors of #include and for each one found
+ emits a triple of:
+
+ 1. source directory of the original file
+ 2. the relative path file name of the #includ-ed file
+ 3. the full destination path for this file
+
+ Input: the text of the file, the file name and a pointer to the
+ match list where the match information was stored.
+ Result: internally nothing. The results are written to stdout
+ for interpretation by the invoking shell */
+
+
+static void
+extract_quoted_files (char* pz_data,
+ const char* pz_fixed_file,
+ regmatch_t* p_re_match)
+{
+ char *pz_dir_end = strrchr (pz_fixed_file, '/');
+ char *pz_incl_quot = pz_data;
+
+ if (VLEVEL( VERB_APPLIES ))
+ fprintf (stderr, "Quoted includes in %s\n", pz_fixed_file);
+
+ /* Set "pz_fixed_file" to point to the containing subdirectory of the source
+ If there is none, then it is in our current directory, ".". */
+
+ if (pz_dir_end == (char *) NULL)
+ pz_fixed_file = ".";
+ else
+ *pz_dir_end = '\0';
+
+ for (;;)
+ {
+ pz_incl_quot += p_re_match->rm_so;
+
+ /* Skip forward to the included file name */
+ while (*pz_incl_quot != '"')
+ pz_incl_quot++;
+
+ if (quoted_file_exists (pz_src_dir, pz_fixed_file, pz_incl_quot))
+ {
+ /* Print the source directory and the subdirectory
+ of the file in question. */
+ printf ("%s %s/", pz_src_dir, pz_fixed_file);
+ pz_dir_end = pz_incl_quot;
+
+ /* Append to the directory the relative path of the desired file */
+ while (*pz_incl_quot != '"')
+ putc (*pz_incl_quot++, stdout);
+
+ /* Now print the destination directory appended with the
+ relative path of the desired file */
+ printf (" %s/%s/", pz_dest_dir, pz_fixed_file);
+ while (*pz_dir_end != '"')
+ putc (*pz_dir_end++, stdout);
+
+ /* End of entry */
+ putc ('\n', stdout);
+ }
+
+ /* Find the next entry */
+ if (xregexec (&incl_quote_re, pz_incl_quot, 1, p_re_match, 0) != 0)
+ break;
+ }
+}
+
+
+/* * * * * * * * * * * * *
+
+ Somebody wrote a *_fix subroutine that we must call.
+ */
+#ifndef SEPARATE_FIX_PROC
+static int
+internal_fix (int read_fd, tFixDesc* p_fixd)
+{
+ int fd[2];
+
+ if (pipe( fd ) != 0)
+ {
+ fprintf (stderr, "Error %d on pipe(2) call\n", errno );
+ exit (EXIT_FAILURE);
+ }
+
+ for (;;)
+ {
+ pid_t childid = fork();
+
+ switch (childid)
+ {
+ case -1:
+ break;
+
+ case 0:
+ close (fd[0]);
+ goto do_child_task;
+
+ default:
+ /*
+ * Parent process
+ */
+ close (read_fd);
+ close (fd[1]);
+ return fd[0];
+ }
+
+ /*
+ * Parent in error
+ */
+ fprintf (stderr, z_fork_err, errno, xstrerror (errno),
+ p_fixd->fix_name);
+ {
+ static int failCt = 0;
+ if ((errno != EAGAIN) || (++failCt > 10))
+ exit (EXIT_FAILURE);
+ sleep (1);
+ }
+ } do_child_task:;
+
+ /*
+ * Close our current stdin and stdout
+ */
+ close (STDIN_FILENO);
+ close (STDOUT_FILENO);
+ UNLOAD_DATA();
+
+ /*
+ * Make the fd passed in the stdin, and the write end of
+ * the new pipe become the stdout.
+ */
+ dup2 (fd[1], STDOUT_FILENO);
+ dup2 (read_fd, STDIN_FILENO);
+
+ apply_fix (p_fixd, pz_curr_file);
+ exit (0);
+}
+#endif /* !SEPARATE_FIX_PROC */
+
+
+#ifdef SEPARATE_FIX_PROC
+static void
+fix_with_system (tFixDesc* p_fixd,
+ tCC* pz_fix_file,
+ tCC* pz_file_source,
+ tCC* pz_temp_file)
+{
+ char* pz_cmd;
+ char* pz_scan;
+ size_t argsize;
+
+ if (p_fixd->fd_flags & FD_SUBROUTINE)
+ {
+ static const char z_applyfix_prog[] =
+ "/../fixincludes/applyfix" EXE_EXT;
+
+ struct stat buf;
+ argsize = 32
+ + strlen (pz_orig_dir)
+ + sizeof (z_applyfix_prog)
+ + strlen (pz_fix_file)
+ + strlen (pz_file_source)
+ + strlen (pz_temp_file);
+
+ /* Allocate something sure to be big enough for our purposes */
+ pz_cmd = XNEWVEC (char, argsize);
+ strcpy (pz_cmd, pz_orig_dir);
+ pz_scan = pz_cmd + strlen (pz_orig_dir);
+
+ strcpy (pz_scan, z_applyfix_prog);
+
+ /* IF we can't find the "applyfix" executable file at the first guess,
+ try one level higher up */
+ if (stat (pz_cmd, &buf) == -1)
+ {
+ strcpy (pz_scan, "/..");
+ strcpy (pz_scan+3, z_applyfix_prog);
+ }
+
+ pz_scan += strlen (pz_scan);
+
+ /*
+ * Now add the fix number and file names that may be needed
+ */
+ sprintf (pz_scan, " %ld '%s' '%s'", (long) (p_fixd - fixDescList),
+ pz_fix_file, pz_file_source, pz_temp_file);
+ }
+ else /* NOT an "internal" fix: */
+ {
+ size_t parg_size;
+#ifdef __MSDOS__
+ /* Don't use the "src > dstX; rm -f dst; mv -f dstX dst" trick:
+ dst is a temporary file anyway, so we know there's no other
+ file by that name; and DOS's system(3) doesn't mind to
+ clobber existing file in redirection. Besides, with DOS 8+3
+ limited file namespace, we can easily lose if dst already has
+ an extension that is 3 or more characters long.
+
+ I do not think the 8+3 issue is relevant because all the files
+ we operate on are named "*.h", making 8+2 adequate. Anyway,
+ the following bizarre use of 'cat' only works on DOS boxes.
+ It causes the file to be dropped into a temporary file for
+ 'cat' to read (pipes do not work on DOS). */
+ tSCC z_cmd_fmt[] = " '%s' | cat > '%s'";
+#else
+ /* Don't use positional formatting arguments because some lame-o
+ implementations cannot cope :-(. */
+ tSCC z_cmd_fmt[] = " %s > %sX ; rm -f %s; mv -f %sX %s";
+#endif
+ tCC** ppArgs = p_fixd->patch_args;
+
+ argsize = sizeof( z_cmd_fmt ) + strlen( pz_temp_file )
+ + strlen( pz_file_source );
+ parg_size = argsize;
+
+
+ /*
+ * Compute the size of the command line. Add lotsa extra space
+ * because some of the args to sed use lotsa single quotes.
+ * (This requires three extra bytes per quote. Here we allow
+ * for up to 8 single quotes for each argument, including the
+ * command name "sed" itself. Nobody will *ever* need more. :)
+ */
+ for (;;)
+ {
+ tCC* p_arg = *(ppArgs++);
+ if (p_arg == NULL)
+ break;
+ argsize += 24 + strlen( p_arg );
+ }
+
+ /* Estimated buffer size we will need. */
+ pz_scan = pz_cmd = XNEWVEC (char, argsize);
+ /* How much of it do we allot to the program name and its
+ arguments. */
+ parg_size = argsize - parg_size;
+
+ ppArgs = p_fixd->patch_args;
+
+ /*
+ * Copy the program name, unquoted
+ */
+ {
+ tCC* pArg = *(ppArgs++);
+ for (;;)
+ {
+ char ch = *(pArg++);
+ if (ch == NUL)
+ break;
+ *(pz_scan++) = ch;
+ }
+ }
+
+ /*
+ * Copy the program arguments, quoted
+ */
+ for (;;)
+ {
+ tCC* pArg = *(ppArgs++);
+ char* pz_scan_save;
+ if (pArg == NULL)
+ break;
+ *(pz_scan++) = ' ';
+ pz_scan = make_raw_shell_str( pz_scan_save = pz_scan, pArg,
+ parg_size - (pz_scan - pz_cmd) );
+ /*
+ * Make sure we don't overflow the buffer due to sloppy
+ * size estimation.
+ */
+ while (pz_scan == (char*)NULL)
+ {
+ size_t already_filled = pz_scan_save - pz_cmd;
+ pz_cmd = xrealloc (pz_cmd, argsize += 100);
+ pz_scan_save = pz_scan = pz_cmd + already_filled;
+ parg_size += 100;
+ pz_scan = make_raw_shell_str( pz_scan, pArg,
+ parg_size - (pz_scan - pz_cmd) );
+ }
+ }
+
+ /*
+ * add the file machinations.
+ */
+#ifdef __MSDOS__
+ sprintf (pz_scan, z_cmd_fmt, pz_file_source, pz_temp_file );
+#else
+ sprintf (pz_scan, z_cmd_fmt, pz_file_source, pz_temp_file,
+ pz_temp_file, pz_temp_file, pz_temp_file);
+#endif
+ }
+ system( pz_cmd );
+ free( (void*)pz_cmd );
+}
+
+/* * * * * * * * * * * * *
+
+ This loop should only cycle for 1/2 of one loop.
+ "chain_open" starts a process that uses "read_fd" as
+ its stdin and returns the new fd this process will use
+ for stdout. */
+
+#else /* is *NOT* SEPARATE_FIX_PROC */
+static int
+start_fixer (int read_fd, tFixDesc* p_fixd, char* pz_fix_file)
+{
+ tCC* pz_cmd_save;
+ char* pz_cmd;
+
+ if ((p_fixd->fd_flags & FD_SUBROUTINE) != 0)
+ return internal_fix (read_fd, p_fixd);
+
+ if ((p_fixd->fd_flags & FD_SHELL_SCRIPT) == 0)
+ {
+ pz_cmd = NULL;
+ pz_cmd_save = NULL;
+ }
+ else
+ {
+ tSCC z_cmd_fmt[] = "file='%s'\n%s";
+ pz_cmd = XNEWVEC (char, strlen (p_fixd->patch_args[2])
+ + sizeof (z_cmd_fmt) + strlen (pz_fix_file));
+ sprintf (pz_cmd, z_cmd_fmt, pz_fix_file, p_fixd->patch_args[2]);
+ pz_cmd_save = p_fixd->patch_args[2];
+ p_fixd->patch_args[2] = pz_cmd;
+ }
+
+ /* Start a fix process, handing off the previous read fd for its
+ stdin and getting a new fd that reads from the fix process' stdout.
+ We normally will not loop, but we will up to 10 times if we keep
+ getting "EAGAIN" errors.
+
+ */
+ for (;;)
+ {
+ static int failCt = 0;
+ int fd;
+
+ fd = chain_open (read_fd,
+ (tCC **) p_fixd->patch_args,
+ (process_chain_head == -1)
+ ? &process_chain_head : (pid_t *) NULL);
+
+ if (fd != -1)
+ {
+ read_fd = fd;
+ break;
+ }
+
+ fprintf (stderr, z_fork_err, errno, xstrerror (errno),
+ p_fixd->fix_name);
+
+ if ((errno != EAGAIN) || (++failCt > 10))
+ exit (EXIT_FAILURE);
+ sleep (1);
+ }
+
+ /* IF we allocated a shell script command,
+ THEN free it and restore the command format to the fix description */
+ if (pz_cmd != (char*)NULL)
+ {
+ free ((void*)pz_cmd);
+ p_fixd->patch_args[2] = pz_cmd_save;
+ }
+
+ return read_fd;
+}
+#endif
+
+
+/* * * * * * * * * * * * *
+ *
+ * Process the potential fixes for a particular include file.
+ * Input: the original text of the file and the file's name
+ * Result: none. A new file may or may not be created.
+ */
+static t_bool
+fix_applies (tFixDesc* p_fixd)
+{
+ const char *pz_fname = pz_curr_file;
+ const char *pz_scan = p_fixd->file_list;
+ int test_ct;
+ tTestDesc *p_test;
+
+#ifdef SEPARATE_FIX_PROC
+ /*
+ * There is only one fix that uses a shell script as of this writing.
+ * I hope to nuke it anyway, it does not apply to DOS and it would
+ * be painful to implement. Therefore, no "shell" fixes for DOS.
+ */
+ if (p_fixd->fd_flags & (FD_SHELL_SCRIPT | FD_SKIP_TEST))
+ return BOOL_FALSE;
+#else
+ if (p_fixd->fd_flags & FD_SKIP_TEST)
+ return BOOL_FALSE;
+#endif
+
+ /* IF there is a file name restriction,
+ THEN ensure the current file name matches one in the pattern */
+
+ if (pz_scan != (char *) NULL)
+ {
+ while ((pz_fname[0] == '.') && (pz_fname[1] == '/'))
+ pz_fname += 2;
+
+ for (;;)
+ {
+ if (fnmatch (pz_scan, pz_fname, 0) == 0)
+ break;
+ pz_scan += strlen (pz_scan) + 1;
+ if (*pz_scan == NUL)
+ return BOOL_FALSE;
+ }
+ }
+
+ /* FOR each test, see if it fails.
+ IF it does fail, then we go on to the next test */
+
+ for (p_test = p_fixd->p_test_desc, test_ct = p_fixd->test_ct;
+ test_ct-- > 0;
+ p_test++)
+ {
+ switch (p_test->type)
+ {
+ case TT_TEST:
+ if (test_test (p_test, pz_curr_file) != APPLY_FIX) {
+#ifdef DEBUG
+ if (VLEVEL( VERB_EVERYTHING ))
+ fprintf (stderr, z_failed, "TEST", p_fixd->fix_name,
+ pz_fname, p_fixd->test_ct - test_ct);
+#endif
+ return BOOL_FALSE;
+ }
+ break;
+
+ case TT_EGREP:
+ if (egrep_test (pz_curr_data, p_test) != APPLY_FIX) {
+#ifdef DEBUG
+ if (VLEVEL( VERB_EVERYTHING ))
+ fprintf (stderr, z_failed, "EGREP", p_fixd->fix_name,
+ pz_fname, p_fixd->test_ct - test_ct);
+#endif
+ return BOOL_FALSE;
+ }
+ break;
+
+ case TT_NEGREP:
+ if (egrep_test (pz_curr_data, p_test) == APPLY_FIX) {
+#ifdef DEBUG
+ if (VLEVEL( VERB_EVERYTHING ))
+ fprintf (stderr, z_failed, "NEGREP", p_fixd->fix_name,
+ pz_fname, p_fixd->test_ct - test_ct);
+#endif
+ /* Negated sense */
+ return BOOL_FALSE;
+ }
+ break;
+
+ case TT_FUNCTION:
+ if (run_test (p_test->pz_test_text, pz_curr_file, pz_curr_data)
+ != APPLY_FIX) {
+#ifdef DEBUG
+ if (VLEVEL( VERB_EVERYTHING ))
+ fprintf (stderr, z_failed, "FTEST", p_fixd->fix_name,
+ pz_fname, p_fixd->test_ct - test_ct);
+#endif
+ return BOOL_FALSE;
+ }
+ break;
+ }
+ }
+
+ return BOOL_TRUE;
+}
+
+
+/* * * * * * * * * * * * *
+
+ Write out a replacement file */
+
+static void
+write_replacement (tFixDesc* p_fixd)
+{
+ const char* pz_text = p_fixd->patch_args[0];
+
+ if ((pz_text == (char*)NULL) || (*pz_text == NUL))
+ return;
+
+ {
+ FILE* out_fp = create_file ();
+ size_t sz = strlen (pz_text);
+ fwrite (pz_text, sz, 1, out_fp);
+ if (pz_text[ sz-1 ] != '\n')
+ fputc ('\n', out_fp);
+ fclose (out_fp);
+ }
+}
+
+
+/* * * * * * * * * * * * *
+
+ We have work to do. Read back in the output
+ of the filtering chain. Compare each byte as we read it with
+ the contents of the original file. As soon as we find any
+ difference, we will create the output file, write out all
+ the matched text and then copy any remaining data from the
+ output of the filter chain.
+ */
+static void
+test_for_changes (int read_fd)
+{
+ FILE *in_fp = fdopen (read_fd, "r");
+ FILE *out_fp = (FILE *) NULL;
+ unsigned char *pz_cmp = (unsigned char*)pz_curr_data;
+
+#ifdef DO_STATS
+ fixed_ct++;
+#endif
+ for (;;)
+ {
+ int ch;
+
+ ch = getc (in_fp);
+ if (ch == EOF)
+ break;
+ ch &= 0xFF; /* all bytes are 8 bits */
+
+ /* IF we are emitting the output
+ THEN emit this character, too.
+ */
+ if (out_fp != (FILE *) NULL)
+ putc (ch, out_fp);
+
+ /* ELSE if this character does not match the original,
+ THEN now is the time to start the output.
+ */
+ else if (ch != *pz_cmp)
+ {
+ out_fp = create_file ();
+
+#ifdef DO_STATS
+ altered_ct++;
+#endif
+ /* IF there are matched data, write the matched part now. */
+ if ((char*)pz_cmp != pz_curr_data)
+ fwrite (pz_curr_data, (size_t)((char*)pz_cmp - pz_curr_data),
+ 1, out_fp);
+
+ /* Emit the current unmatching character */
+ putc (ch, out_fp);
+ }
+ else
+ /* ELSE the character matches. Advance the compare ptr */
+ pz_cmp++;
+ }
+
+ /* IF we created the output file, ... */
+ if (out_fp != (FILE *) NULL)
+ {
+ regmatch_t match;
+
+ /* Close the file and see if we have to worry about
+ `#include "file.h"' constructs. */
+ fclose (out_fp);
+ if (xregexec (&incl_quote_re, pz_curr_data, 1, &match, 0) == 0)
+ extract_quoted_files (pz_curr_data, pz_curr_file, &match);
+ }
+
+ fclose (in_fp);
+ close (read_fd); /* probably redundant, but I'm paranoid */
+}
+
+
+/* * * * * * * * * * * * *
+
+ Process the potential fixes for a particular include file.
+ Input: the original text of the file and the file's name
+ Result: none. A new file may or may not be created. */
+
+void
+process (void)
+{
+ tFixDesc *p_fixd = fixDescList;
+ int todo_ct = FIX_COUNT;
+ int read_fd = -1;
+# ifndef SEPARATE_FIX_PROC
+ int num_children = 0;
+# else /* is SEPARATE_FIX_PROC */
+ char* pz_file_source = pz_curr_file;
+# endif
+
+ if (access (pz_curr_file, R_OK) != 0)
+ {
+ int erno = errno;
+ fprintf (stderr, "Cannot access %s from %s\n\terror %d (%s)\n",
+ pz_curr_file, getcwd ((char *) NULL, MAXPATHLEN),
+ erno, xstrerror (erno));
+ return;
+ }
+
+ pz_curr_data = load_file (pz_curr_file);
+ if (pz_curr_data == (char *) NULL)
+ return;
+
+#ifdef DO_STATS
+ process_ct++;
+#endif
+ if (VLEVEL( VERB_PROGRESS ) && have_tty)
+ fprintf (stderr, "%6lu %-50s \r",
+ (unsigned long) data_map_size, pz_curr_file);
+
+# ifndef SEPARATE_FIX_PROC
+ process_chain_head = NOPROCESS;
+
+ /* For every fix in our fix list, ... */
+ for (; todo_ct > 0; p_fixd++, todo_ct--)
+ {
+ if (! fix_applies (p_fixd))
+ continue;
+
+ if (VLEVEL( VERB_APPLIES ))
+ fprintf (stderr, "Applying %-24s to %s\n",
+ p_fixd->fix_name, pz_curr_file);
+
+ if (p_fixd->fd_flags & FD_REPLACEMENT)
+ {
+ write_replacement (p_fixd);
+ UNLOAD_DATA();
+ return;
+ }
+
+ /* IF we do not have a read pointer,
+ THEN this is the first fix for the current file.
+ Open the source file. That will be used as stdin for
+ the first fix. Any subsequent fixes will use the
+ stdout descriptor of the previous fix for its stdin. */
+
+ if (read_fd == -1)
+ {
+ read_fd = open (pz_curr_file, O_RDONLY);
+ if (read_fd < 0)
+ {
+ fprintf (stderr, "Error %d (%s) opening %s\n", errno,
+ xstrerror (errno), pz_curr_file);
+ exit (EXIT_FAILURE);
+ }
+
+ /* Ensure we do not get duplicate output */
+
+ fflush (stdout);
+ }
+
+ read_fd = start_fixer (read_fd, p_fixd, pz_curr_file);
+ num_children++;
+ }
+
+ /* IF we have a read-back file descriptor,
+ THEN check for changes and write output if changed. */
+
+ if (read_fd >= 0)
+ {
+ test_for_changes (read_fd);
+#ifdef DO_STATS
+ apply_ct += num_children;
+#endif
+ /* Wait for child processes created by chain_open()
+ to avoid leaving zombies. */
+ do {
+ wait ((int *) NULL);
+ } while (--num_children > 0);
+ }
+
+# else /* is SEPARATE_FIX_PROC */
+
+ for (; todo_ct > 0; p_fixd++, todo_ct--)
+ {
+ if (! fix_applies (p_fixd))
+ continue;
+
+ if (VLEVEL( VERB_APPLIES ))
+ fprintf (stderr, "Applying %-24s to %s\n",
+ p_fixd->fix_name, pz_curr_file);
+
+ if (p_fixd->fd_flags & FD_REPLACEMENT)
+ {
+ write_replacement (p_fixd);
+ UNLOAD_DATA();
+ return;
+ }
+ fix_with_system (p_fixd, pz_curr_file, pz_file_source, pz_temp_file);
+ pz_file_source = pz_temp_file;
+ }
+
+ read_fd = open (pz_temp_file, O_RDONLY);
+ if (read_fd < 0)
+ {
+ if (errno != ENOENT)
+ fprintf (stderr, "error %d (%s) opening output (%s) for read\n",
+ errno, xstrerror (errno), pz_temp_file);
+ }
+ else
+ {
+ test_for_changes (read_fd);
+ /* Unlinking a file while it is still open is a Bad Idea on
+ DOS/Windows. */
+ close (read_fd);
+ unlink (pz_temp_file);
+ }
+
+# endif
+ UNLOAD_DATA();
+}
diff --git a/fixincludes/fixincl.tpl b/fixincludes/fixincl.tpl
new file mode 100644
index 000000000..c8d4b2ce1
--- /dev/null
+++ b/fixincludes/fixincl.tpl
@@ -0,0 +1,237 @@
+[= AutoGen5 Template -*- Mode: C -*-
+x=fixincl.x =]
+[= (dne " * " "/* ")=]
+ */
+/* DO NOT SVN-MERGE THIS FILE, EITHER [=
+ (define re-ct 0) (define max-mach 0) (define ct 0)
+ (define HACK "") (define Hack "") (define tmp "")
+ (shell "date") =]
+ *
+ * You must regenerate it. Use the ./genfixes script.
+ *
+ *
+ * This is part of the fixincl program used to install modified versions of
+ * certain ANSI-incompatible system header files which are fixed to work
+ * correctly with ANSI C and placed in a directory that GNU C will search.
+ *
+ * This file contains [=(count "fix")=] fixup descriptions.
+ *
+ * See README for more information.
+ *
+ * inclhack copyright (c) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+ * 2006, 2007, 2008
+ * The Free Software Foundation, Inc.
+ *
+ * inclhack is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * inclhack 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#ifndef SED_PROGRAM
+#define SED_PROGRAM "/usr/bin/sed"
+#endif
+static char const sed_cmd_z[] = SED_PROGRAM;
+[=
+
+FOR fix =]
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of [=
+ (set! Hack (string-capitalize! (get "hackname")))
+ (set! HACK (string-upcase! (get "hackname")))
+ (if (and (not (exist? "test_text")) (not (exist? "replace")))
+ (error (sprintf "include fix '%s' has no test text" Hack )) )
+ (. Hack)=] fix
+ */[=
+
+# Note that this is not just for debugging purposes, but in case
+ some C fix wishes to refer to the regexps it is paired with.
+ See commentary at the top of fixfixes.c.
+=]
+tSCC z[=(. Hack)=]Name[] =
+ "[=hackname=]";
+
+/*
+ * File name selection pattern
+ */[=
+
+ IF (exist? "files")=]
+tSCC z[=(. Hack)=]List[] =
+ "[= (join "\\0" (stack "files")) =]\0";[=
+
+ ELSE =]
+#define z[=(. Hack)=]List (char*)NULL[=
+ ENDIF (exist? "files") =]
+/*
+ * Machine/OS name selection pattern
+ */[=
+
+ IF (exist? "mach")=]
+tSCC* apz[=(. Hack)=]Machs[] = {[=
+ (set! ct 0) =][=
+
+ FOR mach =]
+ [=
+ (set! tmp (get "mach"))
+ (set! ct (+ ct (string-length tmp) 5))
+ (kr-string tmp)=],[=
+ ENDFOR=]
+ (const char*)NULL };[=
+
+ (if (> ct max-mach) (set! max-mach ct)) =][=
+
+ ELSE =]
+#define apz[=(. Hack)=]Machs (const char**)NULL[=
+ ENDIF (exist? "mach") =][=
+
+ IF (exist? "select")=]
+
+/*
+ * content selection pattern - do fix if pattern found
+ */[=
+ FOR select =]
+tSCC z[=(. Hack)=]Select[=(for-index)=][] =
+ [=(kr-string (get "select"))=];[=
+ ENDFOR select =][=
+ ENDIF =][=
+
+ IF (exist? "bypass")=]
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */[=
+ FOR bypass =]
+tSCC z[=(. Hack)=]Bypass[=(for-index)=][] =
+ [=(kr-string (get "bypass"))=];[=
+ ENDFOR bypass =][=
+ ENDIF =][=
+
+ IF (exist? "test")=]
+
+/*
+ * perform the 'test' shell command - do fix on success
+ */[=
+ FOR test =]
+tSCC z[=(. Hack)=]Test[=(for-index)=][] =
+ [=(kr-string (get "test"))=];[=
+ ENDFOR =][=
+ ENDIF =][=
+
+ IF (exist? "c_test")=]
+
+/*
+ * perform the C function call test
+ */[=
+ FOR c_test =]
+tSCC z[=(. Hack)=]FTst[=(for-index)=][] = "[=c_test=]";[=
+ ENDFOR c_test =][=
+ ENDIF =][=
+
+ IF (set! ct (+ (count "select") (count "bypass")
+ (count "test") (count "c_test")))
+
+ (= ct 0)
+=]
+#define [=(. HACK)=]_TEST_CT 0
+#define a[=(. Hack)=]Tests (tTestDesc*)NULL[=
+ ELSE =]
+
+#define [=(. HACK)=]_TEST_CT [=(. ct)=][=
+ (set! re-ct (+ re-ct (count "select") (count "bypass"))) =]
+static tTestDesc a[=(. Hack)=]Tests[] = {[=
+
+ FOR test =]
+ { TT_TEST, z[=(. Hack)=]Test[=(for-index)=], 0 /* unused */ },[=
+ ENDFOR test =][=
+
+ FOR c_test =]
+ { TT_FUNCTION, z[=(. Hack)=]FTst[=(for-index)=], 0 /* unused */ },[=
+ ENDFOR c_test =][=
+
+ FOR bypass =]
+ { TT_NEGREP, z[=(. Hack)=]Bypass[=(for-index)=], (regex_t*)NULL },[=
+ ENDFOR bypass =][=
+
+ FOR select =]
+ { TT_EGREP, z[=(. Hack)=]Select[=(for-index)=], (regex_t*)NULL },[=
+ ENDFOR select =] };[=
+ ENDIF =]
+
+/*
+ * Fix Command Arguments for [=(. Hack)=]
+ */
+static const char* apz[=(. Hack)=]Patch[] = {[=
+ IF (exist? "sed")=] sed_cmd_z[=
+ FOR sed=],
+ "-e", [=(kr-string (get "sed"))=][=
+ ENDFOR sed=],[=
+
+ ELIF (exist? "shell")=] "sh", "-c",
+ [=(kr-string (get "shell"))=],[=
+
+ ELIF (exist? "c_fix")=]
+ [=(kr-string (get "c_fix"))=],[=
+
+ FOR c_fix_arg =]
+ [=(kr-string (get "c_fix_arg"))=],[=
+ ENDFOR c_fix_arg =][=
+
+ ELIF (> (len "replace") 0) =]
+[=(kr-string (get "replace"))=],[=
+
+ ENDIF=]
+ (char*)NULL };
+[=ENDFOR fix=]
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * List of all fixes
+ */[=
+# as of this writing, 49 bytes are needed by the case statement format.
+ We also must allow for the size of the target machine machine name.
+ This allows for a 79 byte machine name. Better be enough.
+=]
+#define REGEX_COUNT [= (. re-ct) =]
+#define MACH_LIST_SIZE_LIMIT [= (+ 128 max-mach) =]
+#define FIX_COUNT [= (count "fix") =]
+
+/*
+ * Enumerate the fixes[= # in a way that minimizes diffs :-) =]
+ */
+typedef enum {[=
+
+FOR fix "," =]
+ [=(string-upcase! (get "hackname"))=]_FIXIDX[=
+ENDFOR
+
+=]
+} t_fixinc_idx;
+
+tFixDesc fixDescList[ FIX_COUNT ] = {[=
+
+
+FOR fix ",\n" =][=
+ (set! Hack (string-capitalize! (get "hackname")))
+ (set! HACK (string-upcase! (get "hackname"))) =]
+ { z[=(. Hack)=]Name, z[=(. Hack)=]List,
+ apz[=(. Hack)=]Machs,
+ [=(. HACK)=]_TEST_CT, [=
+ IF (exist? "not_machine") =]FD_MACH_IFNOT[=
+ ELSE =]FD_MACH_ONLY[=
+ ENDIF =][=
+ IF (exist? "shell") =] | FD_SHELL_SCRIPT[=
+ ELIF (exist? "c_fix") =] | FD_SUBROUTINE[=
+ ELIF (exist? "replace") =] | FD_REPLACEMENT[=
+ ENDIF =],
+ a[=(. Hack)=]Tests, apz[=(. Hack)=]Patch, 0 }[=
+
+ENDFOR =]
+};
diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x
new file mode 100644
index 000000000..d9117d8e3
--- /dev/null
+++ b/fixincludes/fixincl.x
@@ -0,0 +1,9825 @@
+/* -*- buffer-read-only: t -*- vi: set ro:
+ *
+ * DO NOT EDIT THIS FILE (fixincl.x)
+ *
+ * It has been AutoGen-ed Monday November 8, 2010 at 08:33:47 PM MET
+ * From the definitions inclhack.def
+ * and the template file fixincl
+ */
+/* DO NOT SVN-MERGE THIS FILE, EITHER Mon Nov 8 20:33:47 MET 2010
+ *
+ * You must regenerate it. Use the ./genfixes script.
+ *
+ *
+ * This is part of the fixincl program used to install modified versions of
+ * certain ANSI-incompatible system header files which are fixed to work
+ * correctly with ANSI C and placed in a directory that GNU C will search.
+ *
+ * This file contains 210 fixup descriptions.
+ *
+ * See README for more information.
+ *
+ * inclhack copyright (c) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+ * 2006, 2007, 2008
+ * The Free Software Foundation, Inc.
+ *
+ * inclhack is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * inclhack 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#ifndef SED_PROGRAM
+#define SED_PROGRAM "/usr/bin/sed"
+#endif
+static char const sed_cmd_z[] = SED_PROGRAM;
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Aab_Aix_Stdio fix
+ */
+tSCC zAab_Aix_StdioName[] =
+ "AAB_aix_stdio";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAab_Aix_StdioList[] =
+ "stdio.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAab_Aix_StdioMachs[] = {
+ "*-*-aix*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAab_Aix_StdioSelect0[] =
+ "define fopen fopen64";
+
+#define AAB_AIX_STDIO_TEST_CT 1
+static tTestDesc aAab_Aix_StdioTests[] = {
+ { TT_EGREP, zAab_Aix_StdioSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Aab_Aix_Stdio
+ */
+static const char* apzAab_Aix_StdioPatch[] = {
+ "wrap",
+ "",
+ "\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",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Aab_Darwin7_9_Long_Double_Funcs fix
+ */
+tSCC zAab_Darwin7_9_Long_Double_FuncsName[] =
+ "AAB_darwin7_9_long_double_funcs";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAab_Darwin7_9_Long_Double_FuncsList[] =
+ "architecture/ppc/math.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAab_Darwin7_9_Long_Double_FuncsMachs[] = {
+ "*-*-darwin7.9*",
+ (const char*)NULL };
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zAab_Darwin7_9_Long_Double_FuncsBypass0[] =
+ "powl";
+
+#define AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_TEST_CT 1
+static tTestDesc aAab_Darwin7_9_Long_Double_FuncsTests[] = {
+ { TT_NEGREP, zAab_Darwin7_9_Long_Double_FuncsBypass0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Aab_Darwin7_9_Long_Double_Funcs
+ */
+static const char* apzAab_Darwin7_9_Long_Double_FuncsPatch[] = {
+"/* This file prototypes the long double functions available on Mac OS\n\
+ 10.3.9. */\n\
+#ifndef __MATH__\n\
+# undef __APPLE_CC__\n\
+# define __APPLE_CC__ 1345\n\
+# include_next <architecture/ppc/math.h>\n\
+# undef __APPLE_CC__\n\
+# define __APPLE_CC__ 1\n\
+# ifndef __LIBMLDBL_COMPAT\n\
+# ifdef __LONG_DOUBLE_128__\n\
+# define __LIBMLDBL_COMPAT(sym) __asm(\"_\" #sym \"$LDBL128\")\n\
+# else\n\
+# define __LIBMLDBL_COMPAT(sym)\n\
+# endif /* __LONG_DOUBLE_128__ */\n\
+# endif /* __LIBMLDBL_COMPAT */\n\
+# ifdef __cplusplus\n\
+ extern \"C\" {\n\
+# endif\n\
+ extern long double acosl( long double ) __LIBMLDBL_COMPAT(acosl);\n\
+ extern long double asinl( long double ) __LIBMLDBL_COMPAT(asinl);\n\
+ extern long double atanl( long double ) __LIBMLDBL_COMPAT(atanl);\n\
+ extern long double atan2l( long double, long double ) __LIBMLDBL_COMPAT(atan2l);\n\
+ extern long double cosl( long double ) __LIBMLDBL_COMPAT(cosl);\n\
+ extern long double sinl( long double ) __LIBMLDBL_COMPAT(sinl);\n\
+ extern long double tanl( long double ) __LIBMLDBL_COMPAT(tanl);\n\
+ extern long double acoshl( long double ) __LIBMLDBL_COMPAT(acoshl);\n\
+ extern long double asinhl( long double ) __LIBMLDBL_COMPAT(asinhl);\n\
+ extern long double atanhl( long double ) __LIBMLDBL_COMPAT(atanhl);\n\
+ extern long double coshl( long double ) __LIBMLDBL_COMPAT(coshl);\n\
+ extern long double sinhl( long double ) __LIBMLDBL_COMPAT(sinhl);\n\
+ extern long double tanhl( long double ) __LIBMLDBL_COMPAT(tanhl);\n\
+ extern long double expl( long double ) __LIBMLDBL_COMPAT(expl);\n\
+ extern long double exp2l( long double ) __LIBMLDBL_COMPAT(exp2l);\n\
+ extern long double expm1l( long double ) __LIBMLDBL_COMPAT(expm1l);\n\
+ extern long double logl( long double ) __LIBMLDBL_COMPAT(logl);\n\
+ extern long double log10l( long double ) __LIBMLDBL_COMPAT(log10l);\n\
+ extern long double log2l( long double ) __LIBMLDBL_COMPAT(log2l);\n\
+ extern long double log1pl( long double ) __LIBMLDBL_COMPAT(log1pl);\n\
+ extern long double logbl( long double ) __LIBMLDBL_COMPAT(logbl);\n\
+ extern long double modfl( long double, long double * ) __LIBMLDBL_COMPAT(modfl);\n\
+ extern long double ldexpl( long double, int ) __LIBMLDBL_COMPAT(ldexpl);\n\
+ extern long double frexpl( long double, int * ) __LIBMLDBL_COMPAT(frexpl);\n\
+ extern int ilogbl( long double ) __LIBMLDBL_COMPAT(ilogbl);\n\
+ extern long double scalbnl( long double, int ) __LIBMLDBL_COMPAT(scalbnl);\n\
+ extern long double scalblnl( long double, long int ) __LIBMLDBL_COMPAT(scalblnl);\n\
+ extern long double fabsl( long double ) __LIBMLDBL_COMPAT(fabsl);\n\
+ extern long double cbrtl( long double ) __LIBMLDBL_COMPAT(cbrtl);\n\
+ extern long double hypotl( long double, long double ) __LIBMLDBL_COMPAT(hypotl);\n\
+ extern long double powl( long double, long double ) __LIBMLDBL_COMPAT(powl);\n\
+ extern long double sqrtl( long double ) __LIBMLDBL_COMPAT(sqrtl);\n\
+ extern long double erfl( long double ) __LIBMLDBL_COMPAT(erfl);\n\
+ extern long double erfcl( long double ) __LIBMLDBL_COMPAT(erfcl);\n\
+ extern long double lgammal( long double ) __LIBMLDBL_COMPAT(lgammal);\n\
+ extern long double tgammal( long double ) __LIBMLDBL_COMPAT(tgammal);\n\
+ extern long double ceill( long double ) __LIBMLDBL_COMPAT(ceill);\n\
+ extern long double floorl( long double ) __LIBMLDBL_COMPAT(floorl);\n\
+ extern long double nearbyintl( long double ) __LIBMLDBL_COMPAT(nearbyintl);\n\
+ extern long double rintl( long double ) __LIBMLDBL_COMPAT(rintl);\n\
+ extern long int lrintl( long double ) __LIBMLDBL_COMPAT(lrintl);\n\
+ extern long long int llrintl( long double ) __LIBMLDBL_COMPAT(llrintl);\n\
+ extern long double roundl( long double ) __LIBMLDBL_COMPAT(roundl);\n\
+ extern long int lroundl( long double ) __LIBMLDBL_COMPAT(lroundl);\n\
+ extern long long int llroundl( long double ) __LIBMLDBL_COMPAT(llroundl);\n\
+ extern long double truncl( long double ) __LIBMLDBL_COMPAT(truncl);\n\
+ extern long double fmodl( long double, long double) __LIBMLDBL_COMPAT(fmodl);\n\
+ extern long double remainderl( long double, long double ) __LIBMLDBL_COMPAT(remainderl);\n\
+ extern long double remquol( long double, long double, int * ) __LIBMLDBL_COMPAT(remquol);\n\
+ extern long double copysignl( long double, long double ) __LIBMLDBL_COMPAT(copysignl);\n\
+ extern long double nanl( const char * ) __LIBMLDBL_COMPAT(nanl);\n\
+ extern long double nextafterl( long double, long double ) __LIBMLDBL_COMPAT(nextafterl);\n\
+ extern long double nexttowardl( long double, long double ) __LIBMLDBL_COMPAT(nexttowardl);\n\
+ extern long double fdiml( long double, long double ) __LIBMLDBL_COMPAT(fdiml);\n\
+ extern long double fmaxl( long double, long double ) __LIBMLDBL_COMPAT(fmaxl);\n\
+ extern long double fminl( long double, long double ) __LIBMLDBL_COMPAT(fminl);\n\
+ extern long double fmal( long double, long double, long double ) __LIBMLDBL_COMPAT(fmal);\n\
+# ifdef __cplusplus\n\
+ }\n\
+# endif\n\
+#endif /* __MATH__ */",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Aab_Darwin7_9_Long_Double_Funcs_2 fix
+ */
+tSCC zAab_Darwin7_9_Long_Double_Funcs_2Name[] =
+ "AAB_darwin7_9_long_double_funcs_2";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAab_Darwin7_9_Long_Double_Funcs_2List[] =
+ "math.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAab_Darwin7_9_Long_Double_Funcs_2Machs[] = {
+ "*-*-darwin7.9*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAab_Darwin7_9_Long_Double_Funcs_2Select0[] =
+ "#include[ \\t]+\\\"";
+
+#define AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_2_TEST_CT 1
+static tTestDesc aAab_Darwin7_9_Long_Double_Funcs_2Tests[] = {
+ { TT_EGREP, zAab_Darwin7_9_Long_Double_Funcs_2Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Aab_Darwin7_9_Long_Double_Funcs_2
+ */
+static const char* apzAab_Darwin7_9_Long_Double_Funcs_2Patch[] = {
+ "format",
+ "%1<%2.h>",
+ "([ \\t]*#[ \\t]*include[ \\t]+)\"([a-z0-9/]+)\\.h\"",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Aab_Fd_Zero_Asm_Posix_Types_H fix
+ */
+tSCC zAab_Fd_Zero_Asm_Posix_Types_HName[] =
+ "AAB_fd_zero_asm_posix_types_h";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAab_Fd_Zero_Asm_Posix_Types_HList[] =
+ "asm/posix_types.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAab_Fd_Zero_Asm_Posix_Types_HMachs[] = {
+ "i[34567]86-*-linux*",
+ (const char*)NULL };
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zAab_Fd_Zero_Asm_Posix_Types_HBypass0[] =
+ "} while";
+tSCC zAab_Fd_Zero_Asm_Posix_Types_HBypass1[] =
+ "x86_64";
+tSCC zAab_Fd_Zero_Asm_Posix_Types_HBypass2[] =
+ "posix_types_64";
+
+#define AAB_FD_ZERO_ASM_POSIX_TYPES_H_TEST_CT 3
+static tTestDesc aAab_Fd_Zero_Asm_Posix_Types_HTests[] = {
+ { TT_NEGREP, zAab_Fd_Zero_Asm_Posix_Types_HBypass0, (regex_t*)NULL },
+ { TT_NEGREP, zAab_Fd_Zero_Asm_Posix_Types_HBypass1, (regex_t*)NULL },
+ { TT_NEGREP, zAab_Fd_Zero_Asm_Posix_Types_HBypass2, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Aab_Fd_Zero_Asm_Posix_Types_H
+ */
+static const char* apzAab_Fd_Zero_Asm_Posix_Types_HPatch[] = {
+"/* This file fixes a bug in the __FD_ZERO macro\n\
+ for older versions of the Linux kernel. */\n\
+#ifndef _POSIX_TYPES_H_WRAPPER\n\
+#include <features.h>\n\
+ #include_next <asm/posix_types.h>\n\n\
+#if defined(__FD_ZERO) && !defined(__GLIBC__)\n\
+#undef __FD_ZERO\n\
+#define __FD_ZERO(fdsetp) \\\n\
+ do { \\\n\
+ int __d0, __d1; \\\n\
+__asm__ __volatile__(\"cld ; rep ; stosl\" \\\n\
+: \"=&c\" (__d0), \"=&D\" (__d1) \\\n\
+: \"a\" (0), \"0\" (__FDSET_LONGS), \\\n\
+ \"1\" ((__kernel_fd_set *) (fdsetp)) :\"memory\"); \\\n\
+ } while (0)\n\
+#endif\n\n\
+#define _POSIX_TYPES_H_WRAPPER\n\
+#endif /* _POSIX_TYPES_H_WRAPPER */",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Aab_Fd_Zero_Gnu_Types_H fix
+ */
+tSCC zAab_Fd_Zero_Gnu_Types_HName[] =
+ "AAB_fd_zero_gnu_types_h";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAab_Fd_Zero_Gnu_Types_HList[] =
+ "gnu/types.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAab_Fd_Zero_Gnu_Types_HMachs[] = {
+ "i[34567]86-*-linux*",
+ (const char*)NULL };
+#define AAB_FD_ZERO_GNU_TYPES_H_TEST_CT 0
+#define aAab_Fd_Zero_Gnu_Types_HTests (tTestDesc*)NULL
+
+/*
+ * Fix Command Arguments for Aab_Fd_Zero_Gnu_Types_H
+ */
+static const char* apzAab_Fd_Zero_Gnu_Types_HPatch[] = {
+"/* This file fixes a bug in the __FD_ZERO macro present in glibc 1.x. */\n\
+#ifndef _TYPES_H_WRAPPER\n\
+#include <features.h>\n\
+#include_next <gnu/types.h>\n\n\
+#if defined(__FD_ZERO) && !defined(__GLIBC__)\n\
+#undef __FD_ZERO\n\
+# define __FD_ZERO(fdsetp) \\\n\
+ do { \\\n\
+ int __d0, __d1; \\\n\
+ __asm__ __volatile__(\"cld ; rep ; stosl\" \\\n\
+ : \"=&c\" (__d0), \"=&D\" (__d1) \\\n\
+ : \"a\" (0), \"0\" (__FDSET_LONGS), \\\n\
+ \"1\" ((__fd_set *) (fdsetp)) :\"memory\"); \\\n\
+ } while (0)\n\
+#endif\n\n\
+#define _TYPES_H_WRAPPER\n\
+#endif /* _TYPES_H_WRAPPER */",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Aab_Fd_Zero_Selectbits_H fix
+ */
+tSCC zAab_Fd_Zero_Selectbits_HName[] =
+ "AAB_fd_zero_selectbits_h";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAab_Fd_Zero_Selectbits_HList[] =
+ "selectbits.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAab_Fd_Zero_Selectbits_HMachs[] = {
+ "i[34567]86-*-linux*",
+ (const char*)NULL };
+#define AAB_FD_ZERO_SELECTBITS_H_TEST_CT 0
+#define aAab_Fd_Zero_Selectbits_HTests (tTestDesc*)NULL
+
+/*
+ * Fix Command Arguments for Aab_Fd_Zero_Selectbits_H
+ */
+static const char* apzAab_Fd_Zero_Selectbits_HPatch[] = {
+"/* This file fixes a bug in the __FD_ZERO macro present in glibc 2.0.x. */\n\
+#ifndef _SELECTBITS_H_WRAPPER\n\
+ #include <features.h>\n\
+ #include_next <selectbits.h>\n\n\
+ #if defined(__FD_ZERO) && defined(__GLIBC__) \\\\\n\
+ && defined(__GLIBC_MINOR__) && __GLIBC__ == 2 \\\\\n\
+ && __GLIBC_MINOR__ == 0\n\
+ #undef __FD_ZERO\n\
+ #define __FD_ZERO(fdsetp) \\\\\n\
+ do { \\\\\n\
+ int __d0, __d1; \\\\\n\
+ __asm__ __volatile__ (\"cld; rep; stosl\" \\\\\n\
+ : \"=&c\" (__d0), \"=&D\" (__d1) \\\\\n\
+ : \"a\" (0), \"0\" (sizeof (__fd_set) \\\\\n\
+ / sizeof (__fd_mask)), \\\\\n\
+ \"1\" ((__fd_mask *) (fdsetp)) \\\\\n\
+ : \"memory\"); \\\\\n\
+ } while (0)\n\
+ #endif\n\n\
+ #define _SELECTBITS_H_WRAPPER\n\
+#endif /* _SELECTBITS_H_WRAPPER */",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Aab_Solaris_Sys_Varargs_H fix
+ */
+tSCC zAab_Solaris_Sys_Varargs_HName[] =
+ "AAB_solaris_sys_varargs_h";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAab_Solaris_Sys_Varargs_HList[] =
+ "sys/varargs.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAab_Solaris_Sys_Varargs_HMachs[] = {
+ "*-*-solaris*",
+ (const char*)NULL };
+#define AAB_SOLARIS_SYS_VARARGS_H_TEST_CT 0
+#define aAab_Solaris_Sys_Varargs_HTests (tTestDesc*)NULL
+
+/*
+ * Fix Command Arguments for Aab_Solaris_Sys_Varargs_H
+ */
+static const char* apzAab_Solaris_Sys_Varargs_HPatch[] = {
+"#ifdef __STDC__\n\
+ #include <stdarg.h>\n\
+#else\n\
+ #include <varargs.h>\n\
+#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Aab_Sun_Memcpy fix
+ */
+tSCC zAab_Sun_MemcpyName[] =
+ "AAB_sun_memcpy";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAab_Sun_MemcpyList[] =
+ "memory.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzAab_Sun_MemcpyMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAab_Sun_MemcpySelect0[] =
+ "/\\*\t@\\(#\\)(head/memory.h\t50.1\t |memory\\.h 1\\.[2-4] 8./../.. SMI; from S5R2 1\\.2\t)\\*/";
+
+#define AAB_SUN_MEMCPY_TEST_CT 1
+static tTestDesc aAab_Sun_MemcpyTests[] = {
+ { TT_EGREP, zAab_Sun_MemcpySelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Aab_Sun_Memcpy
+ */
+static const char* apzAab_Sun_MemcpyPatch[] = {
+"/* This file was generated by fixincludes */\n\
+#ifndef __memory_h__\n\
+ #define __memory_h__\n\n\
+ #ifdef __STDC__\n\
+ extern void *memccpy();\n\
+ extern void *memchr();\n\
+ extern void *memcpy();\n\
+ extern void *memset();\n\
+ #else\n\
+ extern char *memccpy();\n\
+ extern char *memchr();\n\
+ extern char *memcpy();\n\
+ extern char *memset();\n\
+ #endif /* __STDC__ */\n\n\
+ extern int memcmp();\n\n\
+#endif /* __memory_h__ */",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Aix_Complex fix
+ */
+tSCC zAix_ComplexName[] =
+ "aix_complex";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAix_ComplexList[] =
+ "complex.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAix_ComplexMachs[] = {
+ "*-*-aix*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAix_ComplexSelect0[] =
+ "#define[ \t]_Complex_I[ \t]__I";
+
+#define AIX_COMPLEX_TEST_CT 1
+static tTestDesc aAix_ComplexTests[] = {
+ { TT_EGREP, zAix_ComplexSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Aix_Complex
+ */
+static const char* apzAix_ComplexPatch[] = {
+ "format",
+ "#define _Complex_I (__extension__ 1.0iF)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Aix_Pthread fix
+ */
+tSCC zAix_PthreadName[] =
+ "aix_pthread";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAix_PthreadList[] =
+ "pthread.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzAix_PthreadMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAix_PthreadSelect0[] =
+ "(#define [A-Za-z_0-9]+)(\\\\\n\
+[^A-Za-z_0-9 \t\n\
+(])";
+
+#define AIX_PTHREAD_TEST_CT 1
+static tTestDesc aAix_PthreadTests[] = {
+ { TT_EGREP, zAix_PthreadSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Aix_Pthread
+ */
+static const char* apzAix_PthreadPatch[] = {
+ "format",
+ "%1 %2",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Aix_Stdint_1 fix
+ */
+tSCC zAix_Stdint_1Name[] =
+ "aix_stdint_1";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAix_Stdint_1List[] =
+ "stdint-aix.h\0stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAix_Stdint_1Machs[] = {
+ "*-*-aix*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAix_Stdint_1Select0[] =
+ "#define[ \t]UINT8_MAX[ \t]\\(255U\\)\n\
+#define[ \t]UINT16_MAX[ \t]\\(65535U\\)";
+
+#define AIX_STDINT_1_TEST_CT 1
+static tTestDesc aAix_Stdint_1Tests[] = {
+ { TT_EGREP, zAix_Stdint_1Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Aix_Stdint_1
+ */
+static const char* apzAix_Stdint_1Patch[] = {
+ "format",
+ "#define UINT8_MAX\t(255)\n\
+#define UINT16_MAX\t(65535)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Aix_Stdint_2 fix
+ */
+tSCC zAix_Stdint_2Name[] =
+ "aix_stdint_2";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAix_Stdint_2List[] =
+ "stdint-aix.h\0stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAix_Stdint_2Machs[] = {
+ "*-*-aix*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAix_Stdint_2Select0[] =
+ "#define[ \t]INTPTR_MIN[ \t]INT64_MIN\n\
+#define[ \t]INTPTR_MAX[ \t]INT64_MAX\n\
+#define[ \t]UINTPTR_MAX[ \t]UINT64_MAX\n\
+#else\n\
+#define[ \t]INTPTR_MIN[ \t]INT32_MIN\n\
+#define[ \t]INTPTR_MAX[ \t]INT32_MAX\n\
+#define[ \t]UINTPTR_MAX[ \t]UINT32_MAX";
+
+#define AIX_STDINT_2_TEST_CT 1
+static tTestDesc aAix_Stdint_2Tests[] = {
+ { TT_EGREP, zAix_Stdint_2Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Aix_Stdint_2
+ */
+static const char* apzAix_Stdint_2Patch[] = {
+ "format",
+ "#define INTPTR_MIN\t(-INTPTR_MAX-1)\n\
+#define INTPTR_MAX\t9223372036854775807L\n\
+#define UINTPTR_MAX\t18446744073709551615UL\n\
+#else\n\
+#define INTPTR_MIN\t(-INTPTR_MAX-1)\n\
+#define INTPTR_MAX\t2147483647L\n\
+#define UINTPTR_MAX\t4294967295UL",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Aix_Stdint_3 fix
+ */
+tSCC zAix_Stdint_3Name[] =
+ "aix_stdint_3";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAix_Stdint_3List[] =
+ "stdint-aix.h\0stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAix_Stdint_3Machs[] = {
+ "*-*-aix*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAix_Stdint_3Select0[] =
+ "#define[ \t]PTRDIFF_MIN[ \t]INT64_MIN\n\
+#define[ \t]PTRDIFF_MAX[ \t]INT64_MAX\n\
+#else\n\
+#define[ \t]PTRDIFF_MIN[ \t]*INT32_MIN\n\
+#define[ \t]PTRDIFF_MAX[ \t]*INT32_MAX";
+
+#define AIX_STDINT_3_TEST_CT 1
+static tTestDesc aAix_Stdint_3Tests[] = {
+ { TT_EGREP, zAix_Stdint_3Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Aix_Stdint_3
+ */
+static const char* apzAix_Stdint_3Patch[] = {
+ "format",
+ "#define PTRDIFF_MIN\t(-9223372036854775807L - 1)\n\
+#define PTRDIFF_MAX\t9223372036854775807L\n\
+#else\n\
+#define PTRDIFF_MIN\t(-2147483647L - 1)\n\
+#define PTRDIFF_MAX\t2147483647L",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Aix_Stdint_4 fix
+ */
+tSCC zAix_Stdint_4Name[] =
+ "aix_stdint_4";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAix_Stdint_4List[] =
+ "stdint-aix.h\0stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAix_Stdint_4Machs[] = {
+ "*-*-aix*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAix_Stdint_4Select0[] =
+ "#define[ \t]SIZE_MAX[ \t]UINT64_MAX\n\
+#else\n\
+#define[ \t]SIZE_MAX[ \t]*UINT32_MAX";
+
+#define AIX_STDINT_4_TEST_CT 1
+static tTestDesc aAix_Stdint_4Tests[] = {
+ { TT_EGREP, zAix_Stdint_4Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Aix_Stdint_4
+ */
+static const char* apzAix_Stdint_4Patch[] = {
+ "format",
+ "#define SIZE_MAX\t18446744073709551615UL\n\
+#else\n\
+#define SIZE_MAX\t4294967295UL",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Aix_Stdint_5 fix
+ */
+tSCC zAix_Stdint_5Name[] =
+ "aix_stdint_5";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAix_Stdint_5List[] =
+ "stdint-aix.h\0stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAix_Stdint_5Machs[] = {
+ "*-*-aix*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAix_Stdint_5Select0[] =
+ "#define[ \t]UINT8_C\\(c\\)[ \t]__CONCAT__\\(c,U\\)\n\
+#define[ \t]UINT16_C\\(c\\)[ \t]__CONCAT__\\(c,U\\)";
+
+#define AIX_STDINT_5_TEST_CT 1
+static tTestDesc aAix_Stdint_5Tests[] = {
+ { TT_EGREP, zAix_Stdint_5Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Aix_Stdint_5
+ */
+static const char* apzAix_Stdint_5Patch[] = {
+ "format",
+ "#define UINT8_C(c)\tc\n\
+#define UINT16_C(c)\tc",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Aix_Sysmachine fix
+ */
+tSCC zAix_SysmachineName[] =
+ "aix_sysmachine";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAix_SysmachineList[] =
+ "sys/machine.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzAix_SysmachineMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAix_SysmachineSelect0[] =
+ "\\\\ +\n";
+
+#define AIX_SYSMACHINE_TEST_CT 1
+static tTestDesc aAix_SysmachineTests[] = {
+ { TT_EGREP, zAix_SysmachineSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Aix_Sysmachine
+ */
+static const char* apzAix_SysmachinePatch[] = {
+ "format",
+ "\\\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Aix_Syswait_2 fix
+ */
+tSCC zAix_Syswait_2Name[] =
+ "aix_syswait_2";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAix_Syswait_2List[] =
+ "sys/wait.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzAix_Syswait_2Machs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAix_Syswait_2Select0[] =
+ "\\? (\\(\\(\\(\\(unsigned[^)]*\\)[^)]*\\) >> [^)]*\\) \\& 0xff\\) : -1)";
+
+#define AIX_SYSWAIT_2_TEST_CT 1
+static tTestDesc aAix_Syswait_2Tests[] = {
+ { TT_EGREP, zAix_Syswait_2Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Aix_Syswait_2
+ */
+static const char* apzAix_Syswait_2Patch[] = {
+ "format",
+ "? (int)%1",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Aix_Volatile fix
+ */
+tSCC zAix_VolatileName[] =
+ "aix_volatile";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAix_VolatileList[] =
+ "sys/signal.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzAix_VolatileMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAix_VolatileSelect0[] =
+ "typedef volatile int sig_atomic_t";
+
+#define AIX_VOLATILE_TEST_CT 1
+static tTestDesc aAix_VolatileTests[] = {
+ { TT_EGREP, zAix_VolatileSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Aix_Volatile
+ */
+static const char* apzAix_VolatilePatch[] = {
+ "format",
+ "typedef int sig_atomic_t",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Alpha___Assert fix
+ */
+tSCC zAlpha___AssertName[] =
+ "alpha___assert";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAlpha___AssertList[] =
+ "assert.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzAlpha___AssertMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAlpha___AssertSelect0[] =
+ "__assert\\(char \\*, char \\*, int\\)";
+
+#define ALPHA___ASSERT_TEST_CT 1
+static tTestDesc aAlpha___AssertTests[] = {
+ { TT_EGREP, zAlpha___AssertSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Alpha___Assert
+ */
+static const char* apzAlpha___AssertPatch[] = {
+ "format",
+ "__assert(const char *, const char *, int)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Alpha___Extern_Prefix fix
+ */
+tSCC zAlpha___Extern_PrefixName[] =
+ "alpha___extern_prefix";
+
+/*
+ * File name selection pattern
+ */
+#define zAlpha___Extern_PrefixList (char*)NULL
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAlpha___Extern_PrefixMachs[] = {
+ "alpha*-dec-osf*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAlpha___Extern_PrefixSelect0[] =
+ "(.*)(defined\\(__DECC\\)|def[ \t]*__DECC)[ \t]*\n\
+(#[ \t]*pragma[ \t]*extern_prefix.*)";
+
+#define ALPHA___EXTERN_PREFIX_TEST_CT 1
+static tTestDesc aAlpha___Extern_PrefixTests[] = {
+ { TT_EGREP, zAlpha___Extern_PrefixSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Alpha___Extern_Prefix
+ */
+static const char* apzAlpha___Extern_PrefixPatch[] = {
+ "format",
+ "%1 (defined(__DECC) || defined(__PRAGMA_EXTERN_PREFIX))\n\
+%3",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Alpha___Extern_Prefix_Standards fix
+ */
+tSCC zAlpha___Extern_Prefix_StandardsName[] =
+ "alpha___extern_prefix_standards";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAlpha___Extern_Prefix_StandardsList[] =
+ "standards.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAlpha___Extern_Prefix_StandardsMachs[] = {
+ "alpha*-dec-osf*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAlpha___Extern_Prefix_StandardsSelect0[] =
+ ".*!defined\\(_LIBC_POLLUTION_H_\\) && !defined\\(__DECC\\)";
+
+#define ALPHA___EXTERN_PREFIX_STANDARDS_TEST_CT 1
+static tTestDesc aAlpha___Extern_Prefix_StandardsTests[] = {
+ { TT_EGREP, zAlpha___Extern_Prefix_StandardsSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Alpha___Extern_Prefix_Standards
+ */
+static const char* apzAlpha___Extern_Prefix_StandardsPatch[] = {
+ "format",
+ "%0 && !defined(__PRAGMA_EXTERN_PREFIX)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Alpha___Extern_Prefix_Sys_Stat fix
+ */
+tSCC zAlpha___Extern_Prefix_Sys_StatName[] =
+ "alpha___extern_prefix_sys_stat";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAlpha___Extern_Prefix_Sys_StatList[] =
+ "sys/stat.h\0sys/mount.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAlpha___Extern_Prefix_Sys_StatMachs[] = {
+ "alpha*-dec-osf5*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAlpha___Extern_Prefix_Sys_StatSelect0[] =
+ "#[ \t]*if[ \t]*defined\\(__DECC\\)";
+
+#define ALPHA___EXTERN_PREFIX_SYS_STAT_TEST_CT 1
+static tTestDesc aAlpha___Extern_Prefix_Sys_StatTests[] = {
+ { TT_EGREP, zAlpha___Extern_Prefix_Sys_StatSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Alpha___Extern_Prefix_Sys_Stat
+ */
+static const char* apzAlpha___Extern_Prefix_Sys_StatPatch[] = {
+ "format",
+ "%0 || defined(__PRAGMA_EXTERN_PREFIX)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Alpha_Assert fix
+ */
+tSCC zAlpha_AssertName[] =
+ "alpha_assert";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAlpha_AssertList[] =
+ "assert.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzAlpha_AssertMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAlpha_AssertSelect0[] =
+ "(#[ \t]*define assert\\(EX\\).*)\\(\\(int\\) \\(EX\\)\\)";
+
+#define ALPHA_ASSERT_TEST_CT 1
+static tTestDesc aAlpha_AssertTests[] = {
+ { TT_EGREP, zAlpha_AssertSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Alpha_Assert
+ */
+static const char* apzAlpha_AssertPatch[] = {
+ "format",
+ "%1(EX)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Alpha_Bad_Lval fix
+ */
+tSCC zAlpha_Bad_LvalName[] =
+ "alpha_bad_lval";
+
+/*
+ * File name selection pattern
+ */
+#define zAlpha_Bad_LvalList (char*)NULL
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAlpha_Bad_LvalMachs[] = {
+ "alpha*-dec-osf*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAlpha_Bad_LvalSelect0[] =
+ "^[ \t]*#[ \t]*pragma[ \t]+extern_prefix";
+
+#define ALPHA_BAD_LVAL_TEST_CT 1
+static tTestDesc aAlpha_Bad_LvalTests[] = {
+ { TT_EGREP, zAlpha_Bad_LvalSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Alpha_Bad_Lval
+ */
+static const char* apzAlpha_Bad_LvalPatch[] = { sed_cmd_z,
+ "-e", "s/^[ \t]*#[ \t]*define[ \t][ \t]*\\([^(]*\\)\\(([^)]*)\\)[ \t]*\\(_.*\\)\\1\\2[ \t]*$/#define \\1 \\3\\1/",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Alpha_Getopt fix
+ */
+tSCC zAlpha_GetoptName[] =
+ "alpha_getopt";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAlpha_GetoptList[] =
+ "stdio.h\0stdlib.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzAlpha_GetoptMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAlpha_GetoptSelect0[] =
+ "getopt\\(int, char \\*\\[\\], *char \\*\\)";
+
+#define ALPHA_GETOPT_TEST_CT 1
+static tTestDesc aAlpha_GetoptTests[] = {
+ { TT_EGREP, zAlpha_GetoptSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Alpha_Getopt
+ */
+static const char* apzAlpha_GetoptPatch[] = {
+ "format",
+ "getopt(int, char *const[], const char *)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Alpha_If_Semicolon fix
+ */
+tSCC zAlpha_If_SemicolonName[] =
+ "alpha_if_semicolon";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAlpha_If_SemicolonList[] =
+ "net/if.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzAlpha_If_SemicolonMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAlpha_If_SemicolonSelect0[] =
+ "struct[ \t]+sockaddr[ \t]+vmif_paddr[ \t]+/\\*";
+
+#define ALPHA_IF_SEMICOLON_TEST_CT 1
+static tTestDesc aAlpha_If_SemicolonTests[] = {
+ { TT_EGREP, zAlpha_If_SemicolonSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Alpha_If_Semicolon
+ */
+static const char* apzAlpha_If_SemicolonPatch[] = {
+ "format",
+ "struct sockaddr vmif_paddr;\t/*",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Alpha_Parens fix
+ */
+tSCC zAlpha_ParensName[] =
+ "alpha_parens";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAlpha_ParensList[] =
+ "sym.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzAlpha_ParensMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAlpha_ParensSelect0[] =
+ "#ifndef\\(__mips64\\)";
+
+#define ALPHA_PARENS_TEST_CT 1
+static tTestDesc aAlpha_ParensTests[] = {
+ { TT_EGREP, zAlpha_ParensSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Alpha_Parens
+ */
+static const char* apzAlpha_ParensPatch[] = {
+ "format",
+ "#ifndef __mips64",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Alpha_Pthread fix
+ */
+tSCC zAlpha_PthreadName[] =
+ "alpha_pthread";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAlpha_PthreadList[] =
+ "pthread.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAlpha_PthreadMachs[] = {
+ "alpha*-dec-osf*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAlpha_PthreadSelect0[] =
+ "((#[ \t]*if)([ \t]*defined[ \t]*\\(_PTHREAD_ENV_DECC\\)|def _PTHREAD_ENV_DECC)(.*))\n\
+(#[ \t]*define _PTHREAD_USE_PTDNAM_)";
+
+#define ALPHA_PTHREAD_TEST_CT 1
+static tTestDesc aAlpha_PthreadTests[] = {
+ { TT_EGREP, zAlpha_PthreadSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Alpha_Pthread
+ */
+static const char* apzAlpha_PthreadPatch[] = {
+ "format",
+ "%2 defined (_PTHREAD_ENV_DECC)%4 || defined (__PRAGMA_EXTERN_PREFIX)\n\
+%5",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Alpha_Pthread_Gcc fix
+ */
+tSCC zAlpha_Pthread_GccName[] =
+ "alpha_pthread_gcc";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAlpha_Pthread_GccList[] =
+ "pthread.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAlpha_Pthread_GccMachs[] = {
+ "alpha*-dec-osf*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAlpha_Pthread_GccSelect0[] =
+ "#else\n\
+# error <pthread.h>: unrecognized compiler.";
+
+#define ALPHA_PTHREAD_GCC_TEST_CT 1
+static tTestDesc aAlpha_Pthread_GccTests[] = {
+ { TT_EGREP, zAlpha_Pthread_GccSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Alpha_Pthread_Gcc
+ */
+static const char* apzAlpha_Pthread_GccPatch[] = {
+ "format",
+ "#elif defined (__GNUC__)\n\
+# define _PTHREAD_ENV_GCC\n\
+%0",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Alpha_Pthread_Init fix
+ */
+tSCC zAlpha_Pthread_InitName[] =
+ "alpha_pthread_init";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAlpha_Pthread_InitList[] =
+ "pthread.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAlpha_Pthread_InitMachs[] = {
+ "alpha*-dec-osf*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAlpha_Pthread_InitSelect0[] =
+ " \\* @\\(#\\).RCSfile: pthread\\.h,v \\$ .Revision: 1\\.1\\.33\\.21 \\$ \\(DEC\\) .Date: 2000/08/15 15:30:13 \\$";
+
+#define ALPHA_PTHREAD_INIT_TEST_CT 1
+static tTestDesc aAlpha_Pthread_InitTests[] = {
+ { TT_EGREP, zAlpha_Pthread_InitSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Alpha_Pthread_Init
+ */
+static const char* apzAlpha_Pthread_InitPatch[] = { sed_cmd_z,
+ "-e", "s@MVALID\\(.*\\)A}@MVALID\\1A, 0, 0, 0, 0, 0, 0 }@\n\
+s@MVALID\\(.*\\)_}@MVALID\\1_, 0, 0, 0, 0 }@\n\
+s@CVALID\\(.*\\)A}@CVALID\\1A, 0, 0, 0, 0 }@\n\
+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",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Alpha_Sbrk fix
+ */
+tSCC zAlpha_SbrkName[] =
+ "alpha_sbrk";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAlpha_SbrkList[] =
+ "unistd.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzAlpha_SbrkMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAlpha_SbrkSelect0[] =
+ "char[ \t]*\\*[\t ]*sbrk[ \t]*\\(";
+
+#define ALPHA_SBRK_TEST_CT 1
+static tTestDesc aAlpha_SbrkTests[] = {
+ { TT_EGREP, zAlpha_SbrkSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Alpha_Sbrk
+ */
+static const char* apzAlpha_SbrkPatch[] = {
+ "format",
+ "void *sbrk(",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Avoid_Bool_Define fix
+ */
+tSCC zAvoid_Bool_DefineName[] =
+ "avoid_bool_define";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAvoid_Bool_DefineList[] =
+ "curses.h\0curses_colr/curses.h\0term.h\0tinfo.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzAvoid_Bool_DefineMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAvoid_Bool_DefineSelect0[] =
+ "#[ \t]*define[ \t]+bool[ \t]";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zAvoid_Bool_DefineBypass0[] =
+ "__cplusplus";
+
+#define AVOID_BOOL_DEFINE_TEST_CT 2
+static tTestDesc aAvoid_Bool_DefineTests[] = {
+ { TT_NEGREP, zAvoid_Bool_DefineBypass0, (regex_t*)NULL },
+ { TT_EGREP, zAvoid_Bool_DefineSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Avoid_Bool_Define
+ */
+static const char* apzAvoid_Bool_DefinePatch[] = {
+ "format",
+ "#ifndef __cplusplus\n\
+%0\n\
+#endif",
+ "^[ \t]*#[ \t]*define[ \t]+bool[ \t].*",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Avoid_Bool_Type fix
+ */
+tSCC zAvoid_Bool_TypeName[] =
+ "avoid_bool_type";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAvoid_Bool_TypeList[] =
+ "curses.h\0curses_colr/curses.h\0term.h\0tinfo.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzAvoid_Bool_TypeMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAvoid_Bool_TypeSelect0[] =
+ "^[ \t]*typedef[ \t].*[ \t]bool[ \t]*;";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zAvoid_Bool_TypeBypass0[] =
+ "__cplusplus";
+
+#define AVOID_BOOL_TYPE_TEST_CT 2
+static tTestDesc aAvoid_Bool_TypeTests[] = {
+ { TT_NEGREP, zAvoid_Bool_TypeBypass0, (regex_t*)NULL },
+ { TT_EGREP, zAvoid_Bool_TypeSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Avoid_Bool_Type
+ */
+static const char* apzAvoid_Bool_TypePatch[] = {
+ "format",
+ "#ifndef __cplusplus\n\
+%0\n\
+#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Avoid_Wchar_T_Type fix
+ */
+tSCC zAvoid_Wchar_T_TypeName[] =
+ "avoid_wchar_t_type";
+
+/*
+ * File name selection pattern
+ */
+#define zAvoid_Wchar_T_TypeList (char*)NULL
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzAvoid_Wchar_T_TypeMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAvoid_Wchar_T_TypeSelect0[] =
+ "^[ \t]*typedef[ \t].*[ \t]wchar_t[ \t]*;";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zAvoid_Wchar_T_TypeBypass0[] =
+ "__cplusplus";
+tSCC zAvoid_Wchar_T_TypeBypass1[] =
+ "_LINUX_NLS_H";
+tSCC zAvoid_Wchar_T_TypeBypass2[] =
+ "XFree86: xc/lib/X11/Xlib\\.h";
+
+#define AVOID_WCHAR_T_TYPE_TEST_CT 4
+static tTestDesc aAvoid_Wchar_T_TypeTests[] = {
+ { TT_NEGREP, zAvoid_Wchar_T_TypeBypass0, (regex_t*)NULL },
+ { TT_NEGREP, zAvoid_Wchar_T_TypeBypass1, (regex_t*)NULL },
+ { TT_NEGREP, zAvoid_Wchar_T_TypeBypass2, (regex_t*)NULL },
+ { TT_EGREP, zAvoid_Wchar_T_TypeSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Avoid_Wchar_T_Type
+ */
+static const char* apzAvoid_Wchar_T_TypePatch[] = {
+ "format",
+ "#ifndef __cplusplus\n\
+%0\n\
+#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Bad_Struct_Term fix
+ */
+tSCC zBad_Struct_TermName[] =
+ "bad_struct_term";
+
+/*
+ * File name selection pattern
+ */
+tSCC zBad_Struct_TermList[] =
+ "curses.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzBad_Struct_TermMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zBad_Struct_TermSelect0[] =
+ "^[ \t]*typedef[ \t]+struct[ \t]+term[ \t]*;";
+
+#define BAD_STRUCT_TERM_TEST_CT 1
+static tTestDesc aBad_Struct_TermTests[] = {
+ { TT_EGREP, zBad_Struct_TermSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Bad_Struct_Term
+ */
+static const char* apzBad_Struct_TermPatch[] = {
+ "format",
+ "struct term;",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Badquote fix
+ */
+tSCC zBadquoteName[] =
+ "badquote";
+
+/*
+ * File name selection pattern
+ */
+tSCC zBadquoteList[] =
+ "sundev/vuid_event.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzBadquoteMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zBadquoteSelect0[] =
+ "doesn't";
+
+#define BADQUOTE_TEST_CT 1
+static tTestDesc aBadquoteTests[] = {
+ { TT_EGREP, zBadquoteSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Badquote
+ */
+static const char* apzBadquotePatch[] = {
+ "format",
+ "does not",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Broken_Assert_Stdio fix
+ */
+tSCC zBroken_Assert_StdioName[] =
+ "broken_assert_stdio";
+
+/*
+ * File name selection pattern
+ */
+tSCC zBroken_Assert_StdioList[] =
+ "assert.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzBroken_Assert_StdioMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zBroken_Assert_StdioSelect0[] =
+ "stderr";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zBroken_Assert_StdioBypass0[] =
+ "include.*stdio\\.h";
+
+#define BROKEN_ASSERT_STDIO_TEST_CT 2
+static tTestDesc aBroken_Assert_StdioTests[] = {
+ { TT_NEGREP, zBroken_Assert_StdioBypass0, (regex_t*)NULL },
+ { TT_EGREP, zBroken_Assert_StdioSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Broken_Assert_Stdio
+ */
+static const char* apzBroken_Assert_StdioPatch[] = {
+ "wrap",
+ "#include <stdio.h>\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Broken_Assert_Stdlib fix
+ */
+tSCC zBroken_Assert_StdlibName[] =
+ "broken_assert_stdlib";
+
+/*
+ * File name selection pattern
+ */
+tSCC zBroken_Assert_StdlibList[] =
+ "assert.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzBroken_Assert_StdlibMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zBroken_Assert_StdlibSelect0[] =
+ "exit *\\(|abort *\\(";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zBroken_Assert_StdlibBypass0[] =
+ "include.*stdlib\\.h";
+
+#define BROKEN_ASSERT_STDLIB_TEST_CT 2
+static tTestDesc aBroken_Assert_StdlibTests[] = {
+ { TT_NEGREP, zBroken_Assert_StdlibBypass0, (regex_t*)NULL },
+ { TT_EGREP, zBroken_Assert_StdlibSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Broken_Assert_Stdlib
+ */
+static const char* apzBroken_Assert_StdlibPatch[] = {
+ "wrap",
+ "#ifdef __cplusplus\n\
+#include <stdlib.h>\n\
+#endif\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Broken_Cabs fix
+ */
+tSCC zBroken_CabsName[] =
+ "broken_cabs";
+
+/*
+ * File name selection pattern
+ */
+tSCC zBroken_CabsList[] =
+ "math.h\0architecture/*/math.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzBroken_CabsMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zBroken_CabsSelect0[] =
+ "^extern[ \t]+double[ \t]+cabs";
+
+#define BROKEN_CABS_TEST_CT 1
+static tTestDesc aBroken_CabsTests[] = {
+ { TT_EGREP, zBroken_CabsSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Broken_Cabs
+ */
+static const char* apzBroken_CabsPatch[] = { sed_cmd_z,
+ "-e", "s/^extern[ \t]*double[ \t]*cabs[ \t]*([^\\)]*);//",
+ "-e", "s/^extern[ \t]*long[ \t]*double[ \t]*cabsl[ \t]*([^\\)]*);//",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Broken_Nan fix
+ */
+tSCC zBroken_NanName[] =
+ "broken_nan";
+
+/*
+ * File name selection pattern
+ */
+tSCC zBroken_NanList[] =
+ "architecture/ppc/math.h\0architecture/*/math.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzBroken_NanMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zBroken_NanSelect0[] =
+ "#if defined(__APPLE_CC__) && (__APPLE_CC__ >= 1345)";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zBroken_NanBypass0[] =
+ "powl";
+
+#define BROKEN_NAN_TEST_CT 2
+static tTestDesc aBroken_NanTests[] = {
+ { TT_NEGREP, zBroken_NanBypass0, (regex_t*)NULL },
+ { TT_EGREP, zBroken_NanSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Broken_Nan
+ */
+static const char* apzBroken_NanPatch[] = {
+ "format",
+ "#if 1",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Bsd_Stdio_Attrs_Conflict fix
+ */
+tSCC zBsd_Stdio_Attrs_ConflictName[] =
+ "bsd_stdio_attrs_conflict";
+
+/*
+ * File name selection pattern
+ */
+tSCC zBsd_Stdio_Attrs_ConflictList[] =
+ "stdio.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzBsd_Stdio_Attrs_ConflictMachs[] = {
+ "*-*-*bsd*",
+ "*-*-*darwin*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zBsd_Stdio_Attrs_ConflictSelect0[] =
+ "^#define[ \t]*vfscanf[ \t]*__svfscanf[ \t]*$";
+
+#define BSD_STDIO_ATTRS_CONFLICT_TEST_CT 1
+static tTestDesc aBsd_Stdio_Attrs_ConflictTests[] = {
+ { TT_EGREP, zBsd_Stdio_Attrs_ConflictSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Bsd_Stdio_Attrs_Conflict
+ */
+static const char* apzBsd_Stdio_Attrs_ConflictPatch[] = {
+ "format",
+ "#define _BSD_STRING(_BSD_X) _BSD_STRINGX(_BSD_X)\n\
+#define _BSD_STRINGX(_BSD_X) #_BSD_X\n\
+int vfscanf(FILE *, const char *, __builtin_va_list) __asm__ (_BSD_STRING(__USER_LABEL_PREFIX__) \"__svfscanf\");",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Ctrl_Quotes_Def fix
+ */
+tSCC zCtrl_Quotes_DefName[] =
+ "ctrl_quotes_def";
+
+/*
+ * File name selection pattern
+ */
+#define zCtrl_Quotes_DefList (char*)NULL
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzCtrl_Quotes_DefMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zCtrl_Quotes_DefSelect0[] =
+ "define[ \t]+[A-Z0-9_]+CTRL\\([a-zA-Z][,)]";
+
+#define CTRL_QUOTES_DEF_TEST_CT 1
+static tTestDesc aCtrl_Quotes_DefTests[] = {
+ { TT_EGREP, zCtrl_Quotes_DefSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Ctrl_Quotes_Def
+ */
+static const char* apzCtrl_Quotes_DefPatch[] = {
+ "char_macro_def",
+ "CTRL",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Ctrl_Quotes_Use fix
+ */
+tSCC zCtrl_Quotes_UseName[] =
+ "ctrl_quotes_use";
+
+/*
+ * File name selection pattern
+ */
+#define zCtrl_Quotes_UseList (char*)NULL
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzCtrl_Quotes_UseMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zCtrl_Quotes_UseSelect0[] =
+ "define[ \t]+[A-Z0-9_]+[ \t]+[A-Z0-9_]+CTRL[ \t]*\\( *[^,']";
+
+#define CTRL_QUOTES_USE_TEST_CT 1
+static tTestDesc aCtrl_Quotes_UseTests[] = {
+ { TT_EGREP, zCtrl_Quotes_UseSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Ctrl_Quotes_Use
+ */
+static const char* apzCtrl_Quotes_UsePatch[] = {
+ "char_macro_use",
+ "CTRL",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Cxx_Unready fix
+ */
+tSCC zCxx_UnreadyName[] =
+ "cxx_unready";
+
+/*
+ * File name selection pattern
+ */
+tSCC zCxx_UnreadyList[] =
+ "sys/mman.h\0rpc/types.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzCxx_UnreadyMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zCxx_UnreadySelect0[] =
+ "[^#]+malloc.*;";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zCxx_UnreadyBypass0[] =
+ "\"C\"|__BEGIN_DECLS";
+
+#define CXX_UNREADY_TEST_CT 2
+static tTestDesc aCxx_UnreadyTests[] = {
+ { TT_NEGREP, zCxx_UnreadyBypass0, (regex_t*)NULL },
+ { TT_EGREP, zCxx_UnreadySelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Cxx_Unready
+ */
+static const char* apzCxx_UnreadyPatch[] = {
+ "wrap",
+ "#ifdef __cplusplus\n\
+extern \"C\" {\n\
+#endif\n",
+ "#ifdef __cplusplus\n\
+}\n\
+#endif\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Darwin_Externc fix
+ */
+tSCC zDarwin_ExterncName[] =
+ "darwin_externc";
+
+/*
+ * File name selection pattern
+ */
+tSCC zDarwin_ExterncList[] =
+ "mach-o/swap.h\0mach/mach_time.h\0mach/mach_traps.h\0mach/message.h\0mach/mig.h\0mach/semaphore.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzDarwin_ExterncMachs[] = {
+ "*-*-darwin*",
+ (const char*)NULL };
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zDarwin_ExterncBypass0[] =
+ "extern \"C\"";
+tSCC zDarwin_ExterncBypass1[] =
+ "__BEGIN_DECLS";
+
+#define DARWIN_EXTERNC_TEST_CT 2
+static tTestDesc aDarwin_ExterncTests[] = {
+ { TT_NEGREP, zDarwin_ExterncBypass0, (regex_t*)NULL },
+ { TT_NEGREP, zDarwin_ExterncBypass1, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Darwin_Externc
+ */
+static const char* apzDarwin_ExterncPatch[] = {
+ "wrap",
+ "#ifdef __cplusplus\n\
+extern \"C\" {\n\
+#endif\n",
+ "#ifdef __cplusplus\n\
+}\n\
+#endif\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Darwin_Gcc4_Breakage fix
+ */
+tSCC zDarwin_Gcc4_BreakageName[] =
+ "darwin_gcc4_breakage";
+
+/*
+ * File name selection pattern
+ */
+tSCC zDarwin_Gcc4_BreakageList[] =
+ "AvailabilityMacros.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzDarwin_Gcc4_BreakageMachs[] = {
+ "*-*-darwin*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zDarwin_Gcc4_BreakageSelect0[] =
+ "\\(__GNUC__ >= 3\\) && \\(__GNUC_MINOR__ >= 1\\)";
+
+#define DARWIN_GCC4_BREAKAGE_TEST_CT 1
+static tTestDesc aDarwin_Gcc4_BreakageTests[] = {
+ { TT_EGREP, zDarwin_Gcc4_BreakageSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Darwin_Gcc4_Breakage
+ */
+static const char* apzDarwin_Gcc4_BreakagePatch[] = {
+ "format",
+ "((__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Darwin_Private_Extern fix
+ */
+tSCC zDarwin_Private_ExternName[] =
+ "darwin_private_extern";
+
+/*
+ * File name selection pattern
+ */
+tSCC zDarwin_Private_ExternList[] =
+ "mach-o/dyld.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzDarwin_Private_ExternMachs[] = {
+ "*-*-darwin*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zDarwin_Private_ExternSelect0[] =
+ "__private_extern__ [a-z_]+ _dyld_";
+
+#define DARWIN_PRIVATE_EXTERN_TEST_CT 1
+static tTestDesc aDarwin_Private_ExternTests[] = {
+ { TT_EGREP, zDarwin_Private_ExternSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Darwin_Private_Extern
+ */
+static const char* apzDarwin_Private_ExternPatch[] = {
+ "format",
+ "extern",
+ "__private_extern__",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Darwin_Stdint_1 fix
+ */
+tSCC zDarwin_Stdint_1Name[] =
+ "darwin_stdint_1";
+
+/*
+ * File name selection pattern
+ */
+tSCC zDarwin_Stdint_1List[] =
+ "stdint-darwin.h\0stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzDarwin_Stdint_1Machs[] = {
+ "*-*-darwin*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zDarwin_Stdint_1Select0[] =
+ "#define UINT8_C\\(v\\)[ \t]+\\(v ## U\\)\n\
+#define UINT16_C\\(v\\)[ \t]+\\(v ## U\\)";
+
+#define DARWIN_STDINT_1_TEST_CT 1
+static tTestDesc aDarwin_Stdint_1Tests[] = {
+ { TT_EGREP, zDarwin_Stdint_1Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Darwin_Stdint_1
+ */
+static const char* apzDarwin_Stdint_1Patch[] = {
+ "format",
+ "#define UINT8_C(v)\tv\n\
+#define UINT16_C(v)\tv",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Darwin_Stdint_2 fix
+ */
+tSCC zDarwin_Stdint_2Name[] =
+ "darwin_stdint_2";
+
+/*
+ * File name selection pattern
+ */
+tSCC zDarwin_Stdint_2List[] =
+ "stdint-darwin.h\0stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzDarwin_Stdint_2Machs[] = {
+ "*-*-darwin*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zDarwin_Stdint_2Select0[] =
+ "#if __WORDSIZE == 64\n\
+#define INTPTR_MIN[ \t]+INT64_MIN\n\
+#define INTPTR_MAX[ \t]+INT64_MAX\n\
+#else\n\
+#define INTPTR_MIN[ \t]+INT32_MIN\n\
+#define INTPTR_MAX[ \t]+INT32_MAX\n\
+#endif";
+
+#define DARWIN_STDINT_2_TEST_CT 1
+static tTestDesc aDarwin_Stdint_2Tests[] = {
+ { TT_EGREP, zDarwin_Stdint_2Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Darwin_Stdint_2
+ */
+static const char* apzDarwin_Stdint_2Patch[] = {
+ "format",
+ "#if __WORDSIZE == 64\n\
+#define INTPTR_MAX 9223372036854775807L\n\
+#define INTPTR_MIN (-INTPTR_MAX-1)\n\
+#else\n\
+#define INTPTR_MAX 2147483647L\n\
+#define INTPTR_MIN (-INTPTR_MAX-1)\n\
+#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Darwin_Stdint_3 fix
+ */
+tSCC zDarwin_Stdint_3Name[] =
+ "darwin_stdint_3";
+
+/*
+ * File name selection pattern
+ */
+tSCC zDarwin_Stdint_3List[] =
+ "stdint-darwin.h\0stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzDarwin_Stdint_3Machs[] = {
+ "*-*-darwin*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zDarwin_Stdint_3Select0[] =
+ "#if __WORDSIZE == 64\n\
+#define UINTPTR_MAX[ \t]+UINT64_MAX\n\
+#else\n\
+#define UINTPTR_MAX[ \t]+UINT32_MAX\n\
+#endif";
+
+#define DARWIN_STDINT_3_TEST_CT 1
+static tTestDesc aDarwin_Stdint_3Tests[] = {
+ { TT_EGREP, zDarwin_Stdint_3Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Darwin_Stdint_3
+ */
+static const char* apzDarwin_Stdint_3Patch[] = {
+ "format",
+ "#if __WORDSIZE == 64\n\
+#define UINTPTR_MAX 18446744073709551615UL\n\
+#else\n\
+#define UINTPTR_MAX 4294967295UL\n\
+#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Darwin_Stdint_4 fix
+ */
+tSCC zDarwin_Stdint_4Name[] =
+ "darwin_stdint_4";
+
+/*
+ * File name selection pattern
+ */
+tSCC zDarwin_Stdint_4List[] =
+ "stdint-darwin.h\0stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzDarwin_Stdint_4Machs[] = {
+ "*-*-darwin*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zDarwin_Stdint_4Select0[] =
+ "#if __WORDSIZE == 64\n\
+#define SIZE_MAX[ \t]+UINT64_MAX\n\
+#else\n\
+#define SIZE_MAX[ \t]+UINT32_MAX\n\
+#endif";
+
+#define DARWIN_STDINT_4_TEST_CT 1
+static tTestDesc aDarwin_Stdint_4Tests[] = {
+ { TT_EGREP, zDarwin_Stdint_4Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Darwin_Stdint_4
+ */
+static const char* apzDarwin_Stdint_4Patch[] = {
+ "format",
+ "#if __WORDSIZE == 64\n\
+#define SIZE_MAX 18446744073709551615UL\n\
+#else\n\
+#define SIZE_MAX 4294967295UL\n\
+#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Darwin_Stdint_5 fix
+ */
+tSCC zDarwin_Stdint_5Name[] =
+ "darwin_stdint_5";
+
+/*
+ * File name selection pattern
+ */
+tSCC zDarwin_Stdint_5List[] =
+ "stdint-darwin.h\0stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzDarwin_Stdint_5Machs[] = {
+ "*-*-darwin*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zDarwin_Stdint_5Select0[] =
+ "#define INTMAX_MIN[ \t]+INT64_MIN\n\
+#define INTMAX_MAX[ \t]+INT64_MAX\n\n\
+#define UINTMAX_MAX[ \t]+UINT64_MAX";
+
+#define DARWIN_STDINT_5_TEST_CT 1
+static tTestDesc aDarwin_Stdint_5Tests[] = {
+ { TT_EGREP, zDarwin_Stdint_5Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Darwin_Stdint_5
+ */
+static const char* apzDarwin_Stdint_5Patch[] = {
+ "format",
+ "#if __WORDSIZE == 64\n\
+#define INTMAX_MIN (-9223372036854775807L - 1)\n\
+#define INTMAX_MAX 9223372036854775807L\n\
+#define UINTMAX_MAX 18446744073709551615UL\n\
+#else\n\
+#define INTMAX_MIN (-9223372036854775807LL - 1)\n\
+#define INTMAX_MAX 9223372036854775807LL\n\
+#define UINTMAX_MAX 18446744073709551615ULL\n\
+#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Darwin_Stdint_6 fix
+ */
+tSCC zDarwin_Stdint_6Name[] =
+ "darwin_stdint_6";
+
+/*
+ * File name selection pattern
+ */
+tSCC zDarwin_Stdint_6List[] =
+ "stdint-darwin.h\0stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzDarwin_Stdint_6Machs[] = {
+ "*-*-darwin*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zDarwin_Stdint_6Select0[] =
+ "#if __WORDSIZE == 64\n\
+#define PTRDIFF_MIN[ \t]+INT64_MIN\n\
+#define PTRDIFF_MAX[ \t]+INT64_MAX\n\
+#else\n\
+#define PTRDIFF_MIN[ \t]+INT32_MIN\n\
+#define PTRDIFF_MAX[ \t]+INT32_MAX\n\
+#endif";
+
+#define DARWIN_STDINT_6_TEST_CT 1
+static tTestDesc aDarwin_Stdint_6Tests[] = {
+ { TT_EGREP, zDarwin_Stdint_6Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Darwin_Stdint_6
+ */
+static const char* apzDarwin_Stdint_6Patch[] = {
+ "format",
+ "#if __WORDSIZE == 64\n\
+#define PTRDIFF_MIN (-9223372036854775807L - 1)\n\
+#define PTRDIFF_MAX 9223372036854775807L\n\
+#else\n\
+#define PTRDIFF_MIN (-2147483647 - 1)\n\
+#define PTRDIFF_MAX 2147483647\n\
+#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Darwin_Stdint_7 fix
+ */
+tSCC zDarwin_Stdint_7Name[] =
+ "darwin_stdint_7";
+
+/*
+ * File name selection pattern
+ */
+tSCC zDarwin_Stdint_7List[] =
+ "stdint-darwin.h\0stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzDarwin_Stdint_7Machs[] = {
+ "*-*-darwin*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zDarwin_Stdint_7Select0[] =
+ "#define INTMAX_C\\(v\\)[ \t]+\\(v ## LL\\)\n\
+#define UINTMAX_C\\(v\\)[ \t]+\\(v ## ULL\\)";
+
+#define DARWIN_STDINT_7_TEST_CT 1
+static tTestDesc aDarwin_Stdint_7Tests[] = {
+ { TT_EGREP, zDarwin_Stdint_7Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Darwin_Stdint_7
+ */
+static const char* apzDarwin_Stdint_7Patch[] = {
+ "format",
+ "#if __WORDSIZE == 64\n\
+#define INTMAX_C(v) (v ## L)\n\
+#define UINTMAX_C(v) (v ## UL)\n\
+#else\n\
+#define INTMAX_C(v) (v ## LL)\n\
+#define UINTMAX_C(v) (v ## ULL)\n\
+#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Dec_Intern_Asm fix
+ */
+tSCC zDec_Intern_AsmName[] =
+ "dec_intern_asm";
+
+/*
+ * File name selection pattern
+ */
+tSCC zDec_Intern_AsmList[] =
+ "c_asm.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzDec_Intern_AsmMachs (const char**)NULL
+#define DEC_INTERN_ASM_TEST_CT 0
+#define aDec_Intern_AsmTests (tTestDesc*)NULL
+
+/*
+ * Fix Command Arguments for Dec_Intern_Asm
+ */
+static const char* apzDec_Intern_AsmPatch[] = { sed_cmd_z,
+ "-e", "/^[ \t]*float[ \t]*fasm/i\\\n\
+#ifdef __DECC\n",
+ "-e", "/^[ \t]*#[ \t]*pragma[ \t]*intrinsic([ \t]*dasm/a\\\n\
+#endif\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Djgpp_Wchar_H fix
+ */
+tSCC zDjgpp_Wchar_HName[] =
+ "djgpp_wchar_h";
+
+/*
+ * File name selection pattern
+ */
+#define zDjgpp_Wchar_HList (char*)NULL
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzDjgpp_Wchar_HMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zDjgpp_Wchar_HSelect0[] =
+ "__DJ_wint_t";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zDjgpp_Wchar_HBypass0[] =
+ "sys/djtypes.h";
+
+#define DJGPP_WCHAR_H_TEST_CT 2
+static tTestDesc aDjgpp_Wchar_HTests[] = {
+ { TT_NEGREP, zDjgpp_Wchar_HBypass0, (regex_t*)NULL },
+ { TT_EGREP, zDjgpp_Wchar_HSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Djgpp_Wchar_H
+ */
+static const char* apzDjgpp_Wchar_HPatch[] = {
+ "format",
+ "%0\n\
+#include <sys/djtypes.h>",
+ "#include <stddef.h>",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Ecd_Cursor fix
+ */
+tSCC zEcd_CursorName[] =
+ "ecd_cursor";
+
+/*
+ * File name selection pattern
+ */
+tSCC zEcd_CursorList[] =
+ "sunwindow/win_lock.h\0sunwindow/win_cursor.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzEcd_CursorMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zEcd_CursorSelect0[] =
+ "ecd\\.cursor";
+
+#define ECD_CURSOR_TEST_CT 1
+static tTestDesc aEcd_CursorTests[] = {
+ { TT_EGREP, zEcd_CursorSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Ecd_Cursor
+ */
+static const char* apzEcd_CursorPatch[] = {
+ "format",
+ "ecd_cursor",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Freebsd_Gcc3_Breakage fix
+ */
+tSCC zFreebsd_Gcc3_BreakageName[] =
+ "freebsd_gcc3_breakage";
+
+/*
+ * File name selection pattern
+ */
+tSCC zFreebsd_Gcc3_BreakageList[] =
+ "sys/cdefs.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzFreebsd_Gcc3_BreakageMachs[] = {
+ "*-*-freebsd*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zFreebsd_Gcc3_BreakageSelect0[] =
+ "^#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7$";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zFreebsd_Gcc3_BreakageBypass0[] =
+ "__GNUC__[ \\t]*([>=]=[ \\t]*[3-9]|>[ \\t]*2)";
+
+#define FREEBSD_GCC3_BREAKAGE_TEST_CT 2
+static tTestDesc aFreebsd_Gcc3_BreakageTests[] = {
+ { TT_NEGREP, zFreebsd_Gcc3_BreakageBypass0, (regex_t*)NULL },
+ { TT_EGREP, zFreebsd_Gcc3_BreakageSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Freebsd_Gcc3_Breakage
+ */
+static const char* apzFreebsd_Gcc3_BreakagePatch[] = {
+ "format",
+ "%0 || __GNUC__ >= 3",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Freebsd_Gcc4_Breakage fix
+ */
+tSCC zFreebsd_Gcc4_BreakageName[] =
+ "freebsd_gcc4_breakage";
+
+/*
+ * File name selection pattern
+ */
+tSCC zFreebsd_Gcc4_BreakageList[] =
+ "sys/cdefs.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzFreebsd_Gcc4_BreakageMachs[] = {
+ "*-*-freebsd*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zFreebsd_Gcc4_BreakageSelect0[] =
+ "^#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7 \\|\\| __GNUC__ == 3$";
+
+#define FREEBSD_GCC4_BREAKAGE_TEST_CT 1
+static tTestDesc aFreebsd_Gcc4_BreakageTests[] = {
+ { TT_EGREP, zFreebsd_Gcc4_BreakageSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Freebsd_Gcc4_Breakage
+ */
+static const char* apzFreebsd_Gcc4_BreakagePatch[] = {
+ "format",
+ "#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7 || __GNUC__ >= 3",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Glibc_C99_Inline_1 fix
+ */
+tSCC zGlibc_C99_Inline_1Name[] =
+ "glibc_c99_inline_1";
+
+/*
+ * File name selection pattern
+ */
+tSCC zGlibc_C99_Inline_1List[] =
+ "features.h\0*/features.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzGlibc_C99_Inline_1Machs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zGlibc_C99_Inline_1Select0[] =
+ "^ *&& !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__$";
+
+#define GLIBC_C99_INLINE_1_TEST_CT 1
+static tTestDesc aGlibc_C99_Inline_1Tests[] = {
+ { TT_EGREP, zGlibc_C99_Inline_1Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Glibc_C99_Inline_1
+ */
+static const char* apzGlibc_C99_Inline_1Patch[] = {
+ "format",
+ "%0 && (defined __extern_inline || defined __GNUC_GNU_INLINE__)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Glibc_C99_Inline_1a fix
+ */
+tSCC zGlibc_C99_Inline_1aName[] =
+ "glibc_c99_inline_1a";
+
+/*
+ * File name selection pattern
+ */
+tSCC zGlibc_C99_Inline_1aList[] =
+ "features.h\0*/features.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzGlibc_C99_Inline_1aMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zGlibc_C99_Inline_1aSelect0[] =
+ "(\\) && defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__)\n\
+(#[ \t]*define[ \t]*__USE_EXTERN_INLINES[ \t]*1)";
+
+#define GLIBC_C99_INLINE_1A_TEST_CT 1
+static tTestDesc aGlibc_C99_Inline_1aTests[] = {
+ { TT_EGREP, zGlibc_C99_Inline_1aSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Glibc_C99_Inline_1a
+ */
+static const char* apzGlibc_C99_Inline_1aPatch[] = {
+ "format",
+ "%1 && (defined __extern_inline || defined __GNUC_GNU_INLINE__)\n\
+%2",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Glibc_C99_Inline_2 fix
+ */
+tSCC zGlibc_C99_Inline_2Name[] =
+ "glibc_c99_inline_2";
+
+/*
+ * File name selection pattern
+ */
+tSCC zGlibc_C99_Inline_2List[] =
+ "sys/stat.h\0*/sys/stat.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzGlibc_C99_Inline_2Machs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zGlibc_C99_Inline_2Select0[] =
+ "extern __inline__ int";
+
+#define GLIBC_C99_INLINE_2_TEST_CT 1
+static tTestDesc aGlibc_C99_Inline_2Tests[] = {
+ { TT_EGREP, zGlibc_C99_Inline_2Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Glibc_C99_Inline_2
+ */
+static const char* apzGlibc_C99_Inline_2Patch[] = { sed_cmd_z,
+ "-e", "s/extern int \\(stat\\)/#ifdef __GNUC_GNU_INLINE__\\\n\
+extern\\\n\
+#endif\\\n\
+__inline__ int \\1/",
+ "-e", "s/extern int \\([lf]stat\\)/#ifdef __GNUC_GNU_INLINE__\\\n\
+extern\\\n\
+#endif\\\n\
+__inline__ int \\1/",
+ "-e", "s/extern int \\(mknod\\)/#ifdef __GNUC_GNU_INLINE__\\\n\
+extern\\\n\
+#endif\\\n\
+__inline__ int \\1/",
+ "-e", "s/extern int __REDIRECT\\(_NTH\\)\\{0,1\\} (\\(stat\\)/#ifdef __GNUC_GNU_INLINE__\\\n\
+extern\\\n\
+#endif\\\n\
+__inline__ int __REDIRECT\\1 (\\2/",
+ "-e", "s/extern int __REDIRECT\\(_NTH\\)\\{0,1\\} (\\([lf]stat\\)/#ifdef __GNUC_GNU_INLINE__\\\n\
+extern\\\n\
+#endif\\\n\
+__inline__ int __REDIRECT\\1 (\\2/",
+ "-e", "s/^extern __inline__ int/#ifdef __GNUC_GNU_INLINE__\\\n\
+extern\\\n\
+#endif\\\n\
+__inline__ int/",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Glibc_C99_Inline_3 fix
+ */
+tSCC zGlibc_C99_Inline_3Name[] =
+ "glibc_c99_inline_3";
+
+/*
+ * File name selection pattern
+ */
+tSCC zGlibc_C99_Inline_3List[] =
+ "bits/string2.h\0*/bits/string2.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzGlibc_C99_Inline_3Machs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zGlibc_C99_Inline_3Select0[] =
+ "extern __inline";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zGlibc_C99_Inline_3Bypass0[] =
+ "__extern_inline|__GNU_STDC_INLINE__";
+
+#define GLIBC_C99_INLINE_3_TEST_CT 2
+static tTestDesc aGlibc_C99_Inline_3Tests[] = {
+ { TT_NEGREP, zGlibc_C99_Inline_3Bypass0, (regex_t*)NULL },
+ { TT_EGREP, zGlibc_C99_Inline_3Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Glibc_C99_Inline_3
+ */
+static const char* apzGlibc_C99_Inline_3Patch[] = {
+ "format",
+ "# if defined(__cplusplus) || defined(__GNUC_STDC_INLINE__)",
+ "^# ifdef __cplusplus$",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Glibc_C99_Inline_4 fix
+ */
+tSCC zGlibc_C99_Inline_4Name[] =
+ "glibc_c99_inline_4";
+
+/*
+ * File name selection pattern
+ */
+tSCC zGlibc_C99_Inline_4List[] =
+ "sys/sysmacros.h\0*/sys/sysmacros.h\0wchar.h\0*/wchar.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzGlibc_C99_Inline_4Machs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zGlibc_C99_Inline_4Select0[] =
+ "(^| )extern __inline";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zGlibc_C99_Inline_4Bypass0[] =
+ "__extern_inline|__gnu_inline__";
+
+#define GLIBC_C99_INLINE_4_TEST_CT 2
+static tTestDesc aGlibc_C99_Inline_4Tests[] = {
+ { TT_NEGREP, zGlibc_C99_Inline_4Bypass0, (regex_t*)NULL },
+ { TT_EGREP, zGlibc_C99_Inline_4Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Glibc_C99_Inline_4
+ */
+static const char* apzGlibc_C99_Inline_4Patch[] = {
+ "format",
+ "%0 __attribute__ ((__gnu_inline__))",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Glibc_Mutex_Init fix
+ */
+tSCC zGlibc_Mutex_InitName[] =
+ "glibc_mutex_init";
+
+/*
+ * File name selection pattern
+ */
+tSCC zGlibc_Mutex_InitList[] =
+ "pthread.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzGlibc_Mutex_InitMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zGlibc_Mutex_InitSelect0[] =
+ "\\{ *\\{ *0, *\\} *\\}";
+
+#define GLIBC_MUTEX_INIT_TEST_CT 1
+static tTestDesc aGlibc_Mutex_InitTests[] = {
+ { TT_EGREP, zGlibc_Mutex_InitSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Glibc_Mutex_Init
+ */
+static const char* apzGlibc_Mutex_InitPatch[] = { sed_cmd_z,
+ "-e", "/define[ \t]\\{1,\\}PTHREAD_MUTEX_INITIALIZER[ \t]*\\\\/{\n\
+N\n\
+s/{ { 0, } }/{ { 0, 0, 0, 0, 0, 0 } }/\n\
+}",
+ "-e", "s/{ \\(0, 0, 0, 0, PTHREAD_MUTEX_\\(RECURSIVE\\)_NP\\) }/{ \\1, 0 }/",
+ "-e", "s/{ \\(0, 0, 0, 0, PTHREAD_MUTEX_\\(ERRORCHECK\\)_NP\\) }/{ \\1, 0 }/",
+ "-e", "s/{ \\(0, 0, 0, 0, PTHREAD_MUTEX_\\(ADAPTIVE\\)_NP\\) }/{ \\1, 0 }/",
+ "-e", "s/{ \\(0, 0, 0, PTHREAD_MUTEX_\\(RECURSIVE\\)_NP\\) }/{ \\1, 0, 0 }/",
+ "-e", "s/{ \\(0, 0, 0, PTHREAD_MUTEX_\\(ERRORCHECK\\)_NP\\) }/{ \\1, 0, 0 }/",
+ "-e", "s/{ \\(0, 0, 0, PTHREAD_MUTEX_\\(ADAPTIVE\\)_NP\\) }/{ \\1, 0, 0 }/",
+ "-e", "/define[ \t]\\{1,\\}PTHREAD_RWLOCK_INITIALIZER[ \t]*\\\\/N;s/^[ \t]*#[ \t]*\\(define[ \t]\\{1,\\}PTHREAD_RWLOCK_INITIALIZER[ \t]*\\\\\\)\\n[ \t]*{ { 0, } }/# if __WORDSIZE == 64\\\n\
+# \\1\\\n\
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }\\\n\
+# else\\\n\
+# \\1\\\n\
+ { { 0, 0, 0, 0, 0, 0, 0, 0 } }\\\n\
+# endif/",
+ "-e", "s/{ \\(0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP\\) }/{ \\1, 0 }/",
+ "-e", "/define[ \t]\\{1,\\}PTHREAD_COND_INITIALIZER/s/{ { 0, } }/{ { 0, 0, 0, 0, 0, (void *) 0, 0, 0 } }/",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Glibc_Stdint fix
+ */
+tSCC zGlibc_StdintName[] =
+ "glibc_stdint";
+
+/*
+ * File name selection pattern
+ */
+tSCC zGlibc_StdintList[] =
+ "stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzGlibc_StdintMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zGlibc_StdintSelect0[] =
+ "GNU C Library";
+
+#define GLIBC_STDINT_TEST_CT 1
+static tTestDesc aGlibc_StdintTests[] = {
+ { TT_EGREP, zGlibc_StdintSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Glibc_Stdint
+ */
+static const char* apzGlibc_StdintPatch[] = {
+ "format",
+ "# define UINT8_C(c)\tc\n\
+# define UINT16_C(c)\tc",
+ "# define UINT8_C\\(c\\)\tc ## U\n\
+# define UINT16_C\\(c\\)\tc ## U",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Glibc_Strncpy fix
+ */
+tSCC zGlibc_StrncpyName[] =
+ "glibc_strncpy";
+
+/*
+ * File name selection pattern
+ */
+tSCC zGlibc_StrncpyList[] =
+ "bits/string2.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzGlibc_StrncpyMachs (const char**)NULL
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zGlibc_StrncpyBypass0[] =
+ "__builtin_strncpy";
+
+#define GLIBC_STRNCPY_TEST_CT 1
+static tTestDesc aGlibc_StrncpyTests[] = {
+ { TT_NEGREP, zGlibc_StrncpyBypass0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Glibc_Strncpy
+ */
+static const char* apzGlibc_StrncpyPatch[] = {
+ "format",
+ "# define strncpy(dest, src, n) __builtin_strncpy (dest, src, n)",
+ "# define strncpy([^\n\
+]*\\\\\n\
+)*[^\n\
+]*",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Glibc_Tgmath fix
+ */
+tSCC zGlibc_TgmathName[] =
+ "glibc_tgmath";
+
+/*
+ * File name selection pattern
+ */
+tSCC zGlibc_TgmathList[] =
+ "tgmath.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzGlibc_TgmathMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zGlibc_TgmathSelect0[] =
+ "\\(\\(\\(type\\) 0.25\\) && \\(\\(type\\) 0.25 - 1\\)\\)";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zGlibc_TgmathBypass0[] =
+ "__floating_type\\(type\\) \\\\\n\
+.*__builtin_classify_type";
+
+#define GLIBC_TGMATH_TEST_CT 2
+static tTestDesc aGlibc_TgmathTests[] = {
+ { TT_NEGREP, zGlibc_TgmathBypass0, (regex_t*)NULL },
+ { TT_EGREP, zGlibc_TgmathSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Glibc_Tgmath
+ */
+static const char* apzGlibc_TgmathPatch[] = {
+ "format",
+ "(__builtin_classify_type ((type) 0) == 8 || (__builtin_classify_type ((type) 0) == 9 && __builtin_classify_type (__real__ ((type) 0)) == 8))",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Gnu_Types fix
+ */
+tSCC zGnu_TypesName[] =
+ "gnu_types";
+
+/*
+ * File name selection pattern
+ */
+tSCC zGnu_TypesList[] =
+ "sys/types.h\0stdlib.h\0sys/stdtypes.h\0stddef.h\0memory.h\0unistd.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzGnu_TypesMachs[] = {
+ "*-*-solaris2.1[0-9]*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zGnu_TypesSelect0[] =
+ "^[ \t]*typedef[ \t]+.*[ \t](ptrdiff|size|wchar)_t;";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zGnu_TypesBypass0[] =
+ "_GCC_(PTRDIFF|SIZE|WCHAR)_T";
+
+#define GNU_TYPES_TEST_CT 2
+static tTestDesc aGnu_TypesTests[] = {
+ { TT_NEGREP, zGnu_TypesBypass0, (regex_t*)NULL },
+ { TT_EGREP, zGnu_TypesSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Gnu_Types
+ */
+static const char* apzGnu_TypesPatch[] = {
+ "gnu_type",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hp_Inline fix
+ */
+tSCC zHp_InlineName[] =
+ "hp_inline";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHp_InlineList[] =
+ "sys/spinlock.h\0machine/machparam.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHp_InlineMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHp_InlineSelect0[] =
+ "[ \t]*#[ \t]*include[ \t]+\"\\.\\./machine/";
+
+#define HP_INLINE_TEST_CT 1
+static tTestDesc aHp_InlineTests[] = {
+ { TT_EGREP, zHp_InlineSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hp_Inline
+ */
+static const char* apzHp_InlinePatch[] = {
+ "format",
+ "%1<machine/%2.h>",
+ "([ \t]*#[ \t]*include[ \t]+)\"\\.\\./machine/([a-z]+)\\.h\"",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hp_Sysfile fix
+ */
+tSCC zHp_SysfileName[] =
+ "hp_sysfile";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHp_SysfileList[] =
+ "sys/file.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHp_SysfileMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHp_SysfileSelect0[] =
+ "HPUX_SOURCE";
+
+#define HP_SYSFILE_TEST_CT 1
+static tTestDesc aHp_SysfileTests[] = {
+ { TT_EGREP, zHp_SysfileSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hp_Sysfile
+ */
+static const char* apzHp_SysfilePatch[] = {
+ "format",
+ "(struct file *, ...)",
+ "\\(\\.\\.\\.\\)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hppa_Hpux_Fp_Macros fix
+ */
+tSCC zHppa_Hpux_Fp_MacrosName[] =
+ "hppa_hpux_fp_macros";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHppa_Hpux_Fp_MacrosList[] =
+ "math.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzHppa_Hpux_Fp_MacrosMachs[] = {
+ "hppa*-hp-hpux11*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHppa_Hpux_Fp_MacrosSelect0[] =
+ "#[ \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";
+
+#define HPPA_HPUX_FP_MACROS_TEST_CT 1
+static tTestDesc aHppa_Hpux_Fp_MacrosTests[] = {
+ { TT_EGREP, zHppa_Hpux_Fp_MacrosSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hppa_Hpux_Fp_Macros
+ */
+static const char* apzHppa_Hpux_Fp_MacrosPatch[] = {
+ "format",
+ "#endif /* _INCLUDE_HPUX_SOURCE */\n\n\
+#if defined(_INCLUDE_HPUX_SOURCE) || \\\n\
+ (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L))\n\
+%0#endif\n\n\
+#ifdef _INCLUDE_HPUX_SOURCE\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux10_Cpp_Pow_Inline fix
+ */
+tSCC zHpux10_Cpp_Pow_InlineName[] =
+ "hpux10_cpp_pow_inline";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux10_Cpp_Pow_InlineList[] =
+ "fixinc-test-limits.h\0math.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHpux10_Cpp_Pow_InlineMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux10_Cpp_Pow_InlineSelect0[] =
+ "^# +ifdef +__cplusplus\n\
+ +\\}\n\
+ +inline +double +pow\\(double +__d,int +__expon\\) +\\{\n\
+[ \t]+return +pow\\(__d,\\(double\\)__expon\\);\n\
+ +\\}\n\
+ +extern +\"C\" +\\{\n\
+#else\n\
+# +endif";
+
+#define HPUX10_CPP_POW_INLINE_TEST_CT 1
+static tTestDesc aHpux10_Cpp_Pow_InlineTests[] = {
+ { TT_EGREP, zHpux10_Cpp_Pow_InlineSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux10_Cpp_Pow_Inline
+ */
+static const char* apzHpux10_Cpp_Pow_InlinePatch[] = {
+ "format",
+ "",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux11_Cpp_Pow_Inline fix
+ */
+tSCC zHpux11_Cpp_Pow_InlineName[] =
+ "hpux11_cpp_pow_inline";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux11_Cpp_Pow_InlineList[] =
+ "math.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHpux11_Cpp_Pow_InlineMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux11_Cpp_Pow_InlineSelect0[] =
+ " +inline double pow\\(double d,int expon\\) \\{\n\
+ +return pow\\(d, \\(double\\)expon\\);\n\
+ +\\}\n";
+
+#define HPUX11_CPP_POW_INLINE_TEST_CT 1
+static tTestDesc aHpux11_Cpp_Pow_InlineTests[] = {
+ { TT_EGREP, zHpux11_Cpp_Pow_InlineSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux11_Cpp_Pow_Inline
+ */
+static const char* apzHpux11_Cpp_Pow_InlinePatch[] = {
+ "format",
+ "",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux10_Ctype_Declarations1 fix
+ */
+tSCC zHpux10_Ctype_Declarations1Name[] =
+ "hpux10_ctype_declarations1";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux10_Ctype_Declarations1List[] =
+ "ctype.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHpux10_Ctype_Declarations1Machs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux10_Ctype_Declarations1Select0[] =
+ "^#[ \t]*define _toupper\\(__c\\)[ \t]*__toupper\\(__c\\)";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zHpux10_Ctype_Declarations1Bypass0[] =
+ "^[ \t]*extern[ \t]*int[ \t]*__tolower[ \t]*\\(";
+
+#define HPUX10_CTYPE_DECLARATIONS1_TEST_CT 2
+static tTestDesc aHpux10_Ctype_Declarations1Tests[] = {
+ { TT_NEGREP, zHpux10_Ctype_Declarations1Bypass0, (regex_t*)NULL },
+ { TT_EGREP, zHpux10_Ctype_Declarations1Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux10_Ctype_Declarations1
+ */
+static const char* apzHpux10_Ctype_Declarations1Patch[] = {
+ "format",
+ "#ifdef _PROTOTYPES\n\
+extern int __tolower(int);\n\
+extern int __toupper(int);\n\
+#else /* NOT _PROTOTYPES */\n\
+extern int __tolower();\n\
+extern int __toupper();\n\
+#endif /* _PROTOTYPES */\n\n\
+%0\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux10_Ctype_Declarations2 fix
+ */
+tSCC zHpux10_Ctype_Declarations2Name[] =
+ "hpux10_ctype_declarations2";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux10_Ctype_Declarations2List[] =
+ "ctype.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHpux10_Ctype_Declarations2Machs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux10_Ctype_Declarations2Select0[] =
+ "^# if defined\\(_SB_CTYPE_MACROS\\) && \\!defined\\(__lint\\)";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zHpux10_Ctype_Declarations2Bypass0[] =
+ "^[ \t]*extern[ \t]*int[ \t]*_isalnum[ \t]*\\(";
+
+#define HPUX10_CTYPE_DECLARATIONS2_TEST_CT 2
+static tTestDesc aHpux10_Ctype_Declarations2Tests[] = {
+ { TT_NEGREP, zHpux10_Ctype_Declarations2Bypass0, (regex_t*)NULL },
+ { TT_EGREP, zHpux10_Ctype_Declarations2Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux10_Ctype_Declarations2
+ */
+static const char* apzHpux10_Ctype_Declarations2Patch[] = {
+ "format",
+ "%0\n\n\
+#ifdef _PROTOTYPES\n\
+ extern int _isalnum(int);\n\
+ extern int _isalpha(int);\n\
+ extern int _iscntrl(int);\n\
+ extern int _isdigit(int);\n\
+ extern int _isgraph(int);\n\
+ extern int _islower(int);\n\
+ extern int _isprint(int);\n\
+ extern int _ispunct(int);\n\
+ extern int _isspace(int);\n\
+ extern int _isupper(int);\n\
+ extern int _isxdigit(int);\n\
+# else /* not _PROTOTYPES */\n\
+ extern int _isalnum();\n\
+ extern int _isalpha();\n\
+ extern int _iscntrl();\n\
+ extern int _isdigit();\n\
+ extern int _isgraph();\n\
+ extern int _islower();\n\
+ extern int _isprint();\n\
+ extern int _ispunct();\n\
+ extern int _isspace();\n\
+ extern int _isupper();\n\
+ extern int _isxdigit();\n\
+#endif /* _PROTOTYPES */\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux10_Stdio_Declarations fix
+ */
+tSCC zHpux10_Stdio_DeclarationsName[] =
+ "hpux10_stdio_declarations";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux10_Stdio_DeclarationsList[] =
+ "stdio.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHpux10_Stdio_DeclarationsMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux10_Stdio_DeclarationsSelect0[] =
+ "^#[ \t]*define _iob[ \t]*__iob";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zHpux10_Stdio_DeclarationsBypass0[] =
+ "^[ \t]*extern[ \t]*int[ \t]*vsnprintf[ \t]*\\(";
+
+#define HPUX10_STDIO_DECLARATIONS_TEST_CT 2
+static tTestDesc aHpux10_Stdio_DeclarationsTests[] = {
+ { TT_NEGREP, zHpux10_Stdio_DeclarationsBypass0, (regex_t*)NULL },
+ { TT_EGREP, zHpux10_Stdio_DeclarationsSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux10_Stdio_Declarations
+ */
+static const char* apzHpux10_Stdio_DeclarationsPatch[] = {
+ "format",
+ "%0\n\n\
+# if defined(__STDC__) || defined(__cplusplus)\n\
+ extern int snprintf(char *, size_t, const char *, ...);\n\
+ extern int vsnprintf(char *, size_t, const char *, __va_list);\n\
+# else /* not __STDC__) || __cplusplus */\n\
+ extern int snprintf();\n\
+ extern int vsnprintf();\n\
+# endif /* __STDC__) || __cplusplus */\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux11_Abs fix
+ */
+tSCC zHpux11_AbsName[] =
+ "hpux11_abs";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux11_AbsList[] =
+ "stdlib.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzHpux11_AbsMachs[] = {
+ "ia64-hp-hpux11*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux11_AbsSelect0[] =
+ "ifndef _MATH_INCLUDED";
+
+#define HPUX11_ABS_TEST_CT 1
+static tTestDesc aHpux11_AbsTests[] = {
+ { TT_EGREP, zHpux11_AbsSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux11_Abs
+ */
+static const char* apzHpux11_AbsPatch[] = {
+ "format",
+ "if !defined(_MATH_INCLUDED) || defined(__GNUG__)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux11_Fabsf fix
+ */
+tSCC zHpux11_FabsfName[] =
+ "hpux11_fabsf";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux11_FabsfList[] =
+ "math.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHpux11_FabsfMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux11_FabsfSelect0[] =
+ "^[ \t]*#[ \t]*define[ \t]+fabsf\\(.*";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zHpux11_FabsfBypass0[] =
+ "__cplusplus";
+
+#define HPUX11_FABSF_TEST_CT 2
+static tTestDesc aHpux11_FabsfTests[] = {
+ { TT_NEGREP, zHpux11_FabsfBypass0, (regex_t*)NULL },
+ { TT_EGREP, zHpux11_FabsfSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux11_Fabsf
+ */
+static const char* apzHpux11_FabsfPatch[] = {
+ "format",
+ "#ifndef __cplusplus\n\
+%0\n\
+#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux11_Pthread_Const fix
+ */
+tSCC zHpux11_Pthread_ConstName[] =
+ "hpux11_pthread_const";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux11_Pthread_ConstList[] =
+ "sys/pthread.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzHpux11_Pthread_ConstMachs[] = {
+ "*-hp-hpux11.[0-3]*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux11_Pthread_ConstSelect0[] =
+ "^#define[ \t]*__POINTER_SET[ \t]*\\(\\(void \\*\\) 1LL\\)";
+
+#define HPUX11_PTHREAD_CONST_TEST_CT 1
+static tTestDesc aHpux11_Pthread_ConstTests[] = {
+ { TT_EGREP, zHpux11_Pthread_ConstSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux11_Pthread_Const
+ */
+static const char* apzHpux11_Pthread_ConstPatch[] = {
+ "format",
+ "#define __POINTER_SET\t\t((void *) 1L)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux11_Size_T fix
+ */
+tSCC zHpux11_Size_TName[] =
+ "hpux11_size_t";
+
+/*
+ * File name selection pattern
+ */
+#define zHpux11_Size_TList (char*)NULL
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzHpux11_Size_TMachs[] = {
+ "*-hp-hpux11*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux11_Size_TSelect0[] =
+ "__size_t";
+
+#define HPUX11_SIZE_T_TEST_CT 1
+static tTestDesc aHpux11_Size_TTests[] = {
+ { TT_EGREP, zHpux11_Size_TSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux11_Size_T
+ */
+static const char* apzHpux11_Size_TPatch[] = {
+ "format",
+ "_hpux_size_t",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux11_Snprintf fix
+ */
+tSCC zHpux11_SnprintfName[] =
+ "hpux11_snprintf";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux11_SnprintfList[] =
+ "stdio.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHpux11_SnprintfMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux11_SnprintfSelect0[] =
+ "(extern int snprintf *\\(char *\\*, *(|__|_hpux_)size_t,) *(char *\\*, *\\.\\.\\.\\);)";
+
+#define HPUX11_SNPRINTF_TEST_CT 1
+static tTestDesc aHpux11_SnprintfTests[] = {
+ { TT_EGREP, zHpux11_SnprintfSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux11_Snprintf
+ */
+static const char* apzHpux11_SnprintfPatch[] = {
+ "format",
+ "%1 const %3",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux11_Vsnprintf fix
+ */
+tSCC zHpux11_VsnprintfName[] =
+ "hpux11_vsnprintf";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux11_VsnprintfList[] =
+ "stdio.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHpux11_VsnprintfMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux11_VsnprintfSelect0[] =
+ "(extern int vsnprintf\\(char \\*, _[hpux]*_size_t, const char \\*,) __va__list\\);";
+
+#define HPUX11_VSNPRINTF_TEST_CT 1
+static tTestDesc aHpux11_VsnprintfTests[] = {
+ { TT_EGREP, zHpux11_VsnprintfSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux11_Vsnprintf
+ */
+static const char* apzHpux11_VsnprintfPatch[] = {
+ "format",
+ "%1 __va_list);",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux8_Bogus_Inlines fix
+ */
+tSCC zHpux8_Bogus_InlinesName[] =
+ "hpux8_bogus_inlines";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux8_Bogus_InlinesList[] =
+ "math.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHpux8_Bogus_InlinesMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux8_Bogus_InlinesSelect0[] =
+ "inline";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zHpux8_Bogus_InlinesBypass0[] =
+ "__GNUG__";
+
+#define HPUX8_BOGUS_INLINES_TEST_CT 2
+static tTestDesc aHpux8_Bogus_InlinesTests[] = {
+ { TT_NEGREP, zHpux8_Bogus_InlinesBypass0, (regex_t*)NULL },
+ { TT_EGREP, zHpux8_Bogus_InlinesSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux8_Bogus_Inlines
+ */
+static const char* apzHpux8_Bogus_InlinesPatch[] = { sed_cmd_z,
+ "-e", "s@inline int abs(int [a-z][a-z]*) {.*}@extern \"C\" int abs(int);@",
+ "-e", "s@inline double abs(double [a-z][a-z]*) {.*}@@",
+ "-e", "s@inline int sqr(int [a-z][a-z]*) {.*}@@",
+ "-e", "s@inline double sqr(double [a-z][a-z]*) {.*}@@",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux_Ctype_Macros fix
+ */
+tSCC zHpux_Ctype_MacrosName[] =
+ "hpux_ctype_macros";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux_Ctype_MacrosList[] =
+ "ctype.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHpux_Ctype_MacrosMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux_Ctype_MacrosSelect0[] =
+ "((: |\\()__SB_masks \\? )(__SB_masks\\[__(alnum|c)\\] & _IS)";
+
+#define HPUX_CTYPE_MACROS_TEST_CT 1
+static tTestDesc aHpux_Ctype_MacrosTests[] = {
+ { TT_EGREP, zHpux_Ctype_MacrosSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux_Ctype_Macros
+ */
+static const char* apzHpux_Ctype_MacrosPatch[] = {
+ "format",
+ "%1(int)%3",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux_Htonl fix
+ */
+tSCC zHpux_HtonlName[] =
+ "hpux_htonl";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux_HtonlList[] =
+ "netinet/in.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHpux_HtonlMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux_HtonlSelect0[] =
+ "#ifndef _XOPEN_SOURCE_EXTENDED[ \t]*\n\
+(/\\*\n\
+ \\* Macros for number representation conversion\\.\n\
+ \\*/\n\
+#ifndef ntohl)";
+
+#define HPUX_HTONL_TEST_CT 1
+static tTestDesc aHpux_HtonlTests[] = {
+ { TT_EGREP, zHpux_HtonlSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux_Htonl
+ */
+static const char* apzHpux_HtonlPatch[] = {
+ "format",
+ "#if 1\n\
+%1",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux_Long_Double fix
+ */
+tSCC zHpux_Long_DoubleName[] =
+ "hpux_long_double";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux_Long_DoubleList[] =
+ "stdlib.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzHpux_Long_DoubleMachs[] = {
+ "*-*-hpux10*",
+ "*-*-hpux11.[012]*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux_Long_DoubleSelect0[] =
+ "extern[ \t]long_double[ \t]strtold";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zHpux_Long_DoubleBypass0[] =
+ "long_double_t";
+
+#define HPUX_LONG_DOUBLE_TEST_CT 2
+static tTestDesc aHpux_Long_DoubleTests[] = {
+ { TT_NEGREP, zHpux_Long_DoubleBypass0, (regex_t*)NULL },
+ { TT_EGREP, zHpux_Long_DoubleSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux_Long_Double
+ */
+static const char* apzHpux_Long_DoublePatch[] = { sed_cmd_z,
+ "-e", "/^#[ \t]*ifndef _LONG_DOUBLE/,/\\/\\* _LONG_DOUBLE \\*\\//D",
+ "-e", "s/long_double/long double/g",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux_Long_Double_2 fix
+ */
+tSCC zHpux_Long_Double_2Name[] =
+ "hpux_long_double_2";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux_Long_Double_2List[] =
+ "stdlib.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzHpux_Long_Double_2Machs[] = {
+ "hppa*-*-hpux11.3*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux_Long_Double_2Select0[] =
+ "#[ \t]*if[ \t]*!defined\\(__ia64\\) \\|\\| defined\\(_PROTOTYPES\\) \\|\\| defined\\(_LONG_DOUBLE_STRUCT\\)";
+
+#define HPUX_LONG_DOUBLE_2_TEST_CT 1
+static tTestDesc aHpux_Long_Double_2Tests[] = {
+ { TT_EGREP, zHpux_Long_Double_2Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux_Long_Double_2
+ */
+static const char* apzHpux_Long_Double_2Patch[] = {
+ "format",
+ "# if !defined(_PROTOTYPES) || defined(_LONG_DOUBLE_STRUCT)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux_Systime fix
+ */
+tSCC zHpux_SystimeName[] =
+ "hpux_systime";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux_SystimeList[] =
+ "sys/time.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHpux_SystimeMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux_SystimeSelect0[] =
+ "^extern struct sigevent;";
+
+#define HPUX_SYSTIME_TEST_CT 1
+static tTestDesc aHpux_SystimeTests[] = {
+ { TT_EGREP, zHpux_SystimeSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux_Systime
+ */
+static const char* apzHpux_SystimePatch[] = {
+ "format",
+ "struct sigevent;",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux_Spu_Info fix
+ */
+tSCC zHpux_Spu_InfoName[] =
+ "hpux_spu_info";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux_Spu_InfoList[] =
+ "ia64/sys/getppdp.h\0*/sys/getppdp.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzHpux_Spu_InfoMachs[] = {
+ "*-hp-hpux*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux_Spu_InfoSelect0[] =
+ "^.*extern.*spu_info.*";
+
+#define HPUX_SPU_INFO_TEST_CT 1
+static tTestDesc aHpux_Spu_InfoTests[] = {
+ { TT_EGREP, zHpux_Spu_InfoSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux_Spu_Info
+ */
+static const char* apzHpux_Spu_InfoPatch[] = {
+ "format",
+ "#ifdef _KERNEL\n\
+%0\n\
+#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux11_Extern_Sendfile fix
+ */
+tSCC zHpux11_Extern_SendfileName[] =
+ "hpux11_extern_sendfile";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux11_Extern_SendfileList[] =
+ "sys/socket.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzHpux11_Extern_SendfileMachs[] = {
+ "*-hp-hpux11.[12]*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux11_Extern_SendfileSelect0[] =
+ "^[ \t]*extern sbsize_t sendfile.*\n\
+.*, int\\)\\);\n";
+
+#define HPUX11_EXTERN_SENDFILE_TEST_CT 1
+static tTestDesc aHpux11_Extern_SendfileTests[] = {
+ { TT_EGREP, zHpux11_Extern_SendfileSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux11_Extern_Sendfile
+ */
+static const char* apzHpux11_Extern_SendfilePatch[] = {
+ "format",
+ "#ifndef _APP32_64BIT_OFF_T\n\
+%0#endif\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux11_Extern_Sendpath fix
+ */
+tSCC zHpux11_Extern_SendpathName[] =
+ "hpux11_extern_sendpath";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux11_Extern_SendpathList[] =
+ "sys/socket.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzHpux11_Extern_SendpathMachs[] = {
+ "*-hp-hpux11.[12]*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux11_Extern_SendpathSelect0[] =
+ "^[ \t]*extern sbsize_t sendpath.*\n\
+.*, int\\)\\);\n";
+
+#define HPUX11_EXTERN_SENDPATH_TEST_CT 1
+static tTestDesc aHpux11_Extern_SendpathTests[] = {
+ { TT_EGREP, zHpux11_Extern_SendpathSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux11_Extern_Sendpath
+ */
+static const char* apzHpux11_Extern_SendpathPatch[] = {
+ "format",
+ "#ifndef _APP32_64BIT_OFF_T\n\
+%0#endif\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux_Extern_Errno fix
+ */
+tSCC zHpux_Extern_ErrnoName[] =
+ "hpux_extern_errno";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux_Extern_ErrnoList[] =
+ "errno.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzHpux_Extern_ErrnoMachs[] = {
+ "*-hp-hpux10.*",
+ "*-hp-hpux11.[0-2]*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux_Extern_ErrnoSelect0[] =
+ "^[ \t]*extern int errno;$";
+
+#define HPUX_EXTERN_ERRNO_TEST_CT 1
+static tTestDesc aHpux_Extern_ErrnoTests[] = {
+ { TT_EGREP, zHpux_Extern_ErrnoSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux_Extern_Errno
+ */
+static const char* apzHpux_Extern_ErrnoPatch[] = {
+ "format",
+ "#ifdef __cplusplus\n\
+extern \"C\" {\n\
+#endif\n\
+%0\n\
+#ifdef __cplusplus\n\
+}\n\
+#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux_Pthread_Initializers fix
+ */
+tSCC zHpux_Pthread_InitializersName[] =
+ "hpux_pthread_initializers";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux_Pthread_InitializersList[] =
+ "sys/pthread.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzHpux_Pthread_InitializersMachs[] = {
+ "*-hp-hpux11.[0-3]*",
+ (const char*)NULL };
+#define HPUX_PTHREAD_INITIALIZERS_TEST_CT 0
+#define aHpux_Pthread_InitializersTests (tTestDesc*)NULL
+
+/*
+ * Fix Command Arguments for Hpux_Pthread_Initializers
+ */
+static const char* apzHpux_Pthread_InitializersPatch[] = { sed_cmd_z,
+ "-e", "s@^[ \t]*1, 1, 1, 1,[ \t]*\\\\@\t{ 1, 1, 1, 1 },\t\t\t\t\t\t\t\\\\@",
+ "-e", "s@^[ \t]*1,[ \t]*\\\\@\t{ 1, 0 }@",
+ "-e", "/^[ \t]*0$/d",
+ "-e", "s@__PTHREAD_MUTEX_VALID, 0@{ __PTHREAD_MUTEX_VALID, 0 }@",
+ "-e", "s@^[ \t]*0, 0, -1, 0,[ \t]*\\\\@\t{ 0, 0, -1, 0 },\t\t\t\t\t\t\\\\@",
+ "-e", "s@0, __LWP_MTX_VALID, 0, 1, 1, 1, 1,[ \t]*\\\\@{ 0, __LWP_MTX_VALID }, { 0, 1, 1, 1, 1 },\t\t\t\\\\@",
+ "-e", "s@^[ \t]*__LWP_MTX_VALID, 0, 1, 1, 1, 1,[ \t]*\\\\@\t{ 0, __LWP_MTX_VALID }, { 0, 1, 1, 1, 1 },\t\t\t\\\\@",
+ "-e", "s@^[ \t]*0, 0[ \t]*\\\\@\t{ 0, 0 }\t\t\t\t\t\t\t\\\\@",
+ "-e", "s@__PTHREAD_COND_VALID, 0@{ __PTHREAD_COND_VALID, 0 }@",
+ "-e", "s@__LWP_COND_VALID, 0,[ \t]*\\\\@{ __LWP_COND_VALID, 0 },\t\t\t\t\t\\\\@",
+ "-e", "s@__PTHREAD_RWLOCK_VALID, 0@{ __PTHREAD_RWLOCK_VALID, 0 }@",
+ "-e", "s@__LWP_RWLOCK_VALID, 0,[ \t]*\\\\@{ __LWP_RWLOCK_VALID, 0 },\t\t\t\t\t\\\\@",
+ "-e", "s@^[ \t]*0, 0, 0, 0, 0, 0, 0[ \t]*\\\\@\t{ 0, 0, 0, 0, 0 }, { 0, 0}\t\t\t\t\t\\\\@",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux_C99_Intptr fix
+ */
+tSCC zHpux_C99_IntptrName[] =
+ "hpux_c99_intptr";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux_C99_IntptrList[] =
+ "stdint-hpux11.h\0stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzHpux_C99_IntptrMachs[] = {
+ "*-hp-hpux11.3*",
+ (const char*)NULL };
+#define HPUX_C99_INTPTR_TEST_CT 0
+#define aHpux_C99_IntptrTests (tTestDesc*)NULL
+
+/*
+ * Fix Command Arguments for Hpux_C99_Intptr
+ */
+static const char* apzHpux_C99_IntptrPatch[] = { sed_cmd_z,
+ "-e", "s@^[ \t]*#[ \t]*define[ \t]*PTRDIFF_MAX[ \t]*INT32_MAX[ \t]*$@#define PTRDIFF_MAX (2147483647l)@",
+ "-e", "s@^[ \t]*#[ \t]*define[ \t]*PTRDIFF_MIN[ \t]*INT32_MIN[ \t]*$@#define PTRDIFF_MIN (-PTRDIFF_MAX - 1)@",
+ "-e", "s@^[ \t]*#[ \t]*define[ \t]*INTPTR_MAX[ \t]*INT32_MAX[ \t]*$@#define INTPTR_MAX (2147483647l)@",
+ "-e", "s@^[ \t]*#[ \t]*define[ \t]*INTPTR_MIN[ \t]*INT32_MIN[ \t]*$@#define INTPTR_MIN (-INTPTR_MAX - 1)@",
+ "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINTPTR_MAX[ \t]*UINT32_MAX[ \t]*$@#define UINTPTR_MAX (4294967295ul)@",
+ "-e", "s@^[ \t]*#[ \t]*define[ \t]*SIZE_MAX[ \t]*UINT32_MAX[ \t]*$@#define SIZE_MAX (4294967295ul)@",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux_C99_Inttypes fix
+ */
+tSCC zHpux_C99_InttypesName[] =
+ "hpux_c99_inttypes";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux_C99_InttypesList[] =
+ "inttypes.h\0stdint-hpux11.h\0stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzHpux_C99_InttypesMachs[] = {
+ "*-hp-hpux11.[23]*",
+ (const char*)NULL };
+#define HPUX_C99_INTTYPES_TEST_CT 0
+#define aHpux_C99_InttypesTests (tTestDesc*)NULL
+
+/*
+ * Fix Command Arguments for Hpux_C99_Inttypes
+ */
+static const char* apzHpux_C99_InttypesPatch[] = { sed_cmd_z,
+ "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINT8_C(__c)[ \t]*__CONCAT_U__(__c)[ \t]*$@#define UINT8_C(__c) (__c)@",
+ "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINT16_C(__c)[ \t]*__CONCAT_U__(__c)[ \t]*$@#define UINT16_C(__c) (__c)@",
+ "-e", "s@^[ \t]*#[ \t]*define[ \t]*INT32_C(__c)[ \t]*__CONCAT__(__c,l)[ \t]*$@#define INT32_C(__c) (__c)@",
+ "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINT32_C(__c)[ \t].*$@#define UINT32_C(__c) __CONCAT__(__c,u)@",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux_C99_Inttypes2 fix
+ */
+tSCC zHpux_C99_Inttypes2Name[] =
+ "hpux_c99_inttypes2";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux_C99_Inttypes2List[] =
+ "stdint-hpux11.h\0stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzHpux_C99_Inttypes2Machs[] = {
+ "*-hp-hpux11.2*",
+ (const char*)NULL };
+#define HPUX_C99_INTTYPES2_TEST_CT 0
+#define aHpux_C99_Inttypes2Tests (tTestDesc*)NULL
+
+/*
+ * Fix Command Arguments for Hpux_C99_Inttypes2
+ */
+static const char* apzHpux_C99_Inttypes2Patch[] = { sed_cmd_z,
+ "-e", "s@^[ \t]*#[ \t]*define[ \t]*INT8_C(__c)[ \t]*((signed char)(__c))[ \t]*$@#define INT8_C(__c) (__c)@",
+ "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINT8_C(__c)[ \t]*((unsigned char)(__c))[ \t]*$@#define UINT8_C(__c) (__c)@",
+ "-e", "s@^[ \t]*#[ \t]*define[ \t]*INT16_C(__c)[ \t]*((short)(__c))[ \t]*$@#define INT16_C(__c) (__c)@",
+ "-e", "s@^[ \t]*#[ \t]*define[ \t]*UINT16_C(__c)[ \t]*((unsigned short)(__c))[ \t]*$@#define UINT16_C(__c) (__c)@",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux_Stdint_Least_Fast fix
+ */
+tSCC zHpux_Stdint_Least_FastName[] =
+ "hpux_stdint_least_fast";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux_Stdint_Least_FastList[] =
+ "stdint-hpux11.h\0stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzHpux_Stdint_Least_FastMachs[] = {
+ "*-hp-hpux11.2*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux_Stdint_Least_FastSelect0[] =
+ "^[ \t]*#[ \t]*define[ \t]+UINT_(LEAST|FAST)64_MAX[ \t]+ULLONG_MAX";
+
+#define HPUX_STDINT_LEAST_FAST_TEST_CT 1
+static tTestDesc aHpux_Stdint_Least_FastTests[] = {
+ { TT_EGREP, zHpux_Stdint_Least_FastSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux_Stdint_Least_Fast
+ */
+static const char* apzHpux_Stdint_Least_FastPatch[] = {
+ "format",
+ "# define\tUINT_%164_MAX\t__UINT64_MAX__",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux_Inttype_Int8_T fix
+ */
+tSCC zHpux_Inttype_Int8_TName[] =
+ "hpux_inttype_int8_t";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux_Inttype_Int8_TList[] =
+ "sys/_inttypes.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzHpux_Inttype_Int8_TMachs[] = {
+ "*-hp-hpux1[01].*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux_Inttype_Int8_TSelect0[] =
+ "^[ \t]*typedef[ \t]*char[ \t]*int(_least){0,1}8_t.*";
+
+#define HPUX_INTTYPE_INT8_T_TEST_CT 1
+static tTestDesc aHpux_Inttype_Int8_TTests[] = {
+ { TT_EGREP, zHpux_Inttype_Int8_TSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux_Inttype_Int8_T
+ */
+static const char* apzHpux_Inttype_Int8_TPatch[] = {
+ "format",
+ "typedef signed char int%18_t;",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux_Imaginary_I fix
+ */
+tSCC zHpux_Imaginary_IName[] =
+ "hpux_imaginary_i";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux_Imaginary_IList[] =
+ "complex.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzHpux_Imaginary_IMachs[] = {
+ "ia64-hp-hpux11.*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux_Imaginary_ISelect0[] =
+ "^[ \t]*#[ \t]*define[ \t]*_Complex_I.*";
+
+#define HPUX_IMAGINARY_I_TEST_CT 1
+static tTestDesc aHpux_Imaginary_ITests[] = {
+ { TT_EGREP, zHpux_Imaginary_ISelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux_Imaginary_I
+ */
+static const char* apzHpux_Imaginary_IPatch[] = {
+ "format",
+ "#define _Complex_I (__extension__ 1.0iF)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Huge_Val_Hex fix
+ */
+tSCC zHuge_Val_HexName[] =
+ "huge_val_hex";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHuge_Val_HexList[] =
+ "bits/huge_val.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHuge_Val_HexMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHuge_Val_HexSelect0[] =
+ "^#[ \t]*define[ \t]*HUGE_VAL[ \t].*0x1\\.0p.*";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zHuge_Val_HexBypass0[] =
+ "__builtin_huge_val";
+
+#define HUGE_VAL_HEX_TEST_CT 2
+static tTestDesc aHuge_Val_HexTests[] = {
+ { TT_NEGREP, zHuge_Val_HexBypass0, (regex_t*)NULL },
+ { TT_EGREP, zHuge_Val_HexSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Huge_Val_Hex
+ */
+static const char* apzHuge_Val_HexPatch[] = {
+ "format",
+ "#define HUGE_VAL (__builtin_huge_val())\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Huge_Valf_Hex fix
+ */
+tSCC zHuge_Valf_HexName[] =
+ "huge_valf_hex";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHuge_Valf_HexList[] =
+ "bits/huge_val.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHuge_Valf_HexMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHuge_Valf_HexSelect0[] =
+ "^#[ \t]*define[ \t]*HUGE_VALF[ \t].*0x1\\.0p.*";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zHuge_Valf_HexBypass0[] =
+ "__builtin_huge_valf";
+
+#define HUGE_VALF_HEX_TEST_CT 2
+static tTestDesc aHuge_Valf_HexTests[] = {
+ { TT_NEGREP, zHuge_Valf_HexBypass0, (regex_t*)NULL },
+ { TT_EGREP, zHuge_Valf_HexSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Huge_Valf_Hex
+ */
+static const char* apzHuge_Valf_HexPatch[] = {
+ "format",
+ "#define HUGE_VALF (__builtin_huge_valf())\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Huge_Vall_Hex fix
+ */
+tSCC zHuge_Vall_HexName[] =
+ "huge_vall_hex";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHuge_Vall_HexList[] =
+ "bits/huge_val.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHuge_Vall_HexMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHuge_Vall_HexSelect0[] =
+ "^#[ \t]*define[ \t]*HUGE_VALL[ \t].*0x1\\.0p.*";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zHuge_Vall_HexBypass0[] =
+ "__builtin_huge_vall";
+
+#define HUGE_VALL_HEX_TEST_CT 2
+static tTestDesc aHuge_Vall_HexTests[] = {
+ { TT_NEGREP, zHuge_Vall_HexBypass0, (regex_t*)NULL },
+ { TT_EGREP, zHuge_Vall_HexSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Huge_Vall_Hex
+ */
+static const char* apzHuge_Vall_HexPatch[] = {
+ "format",
+ "#define HUGE_VALL (__builtin_huge_vall())\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Int_Abort_Free_And_Exit fix
+ */
+tSCC zInt_Abort_Free_And_ExitName[] =
+ "int_abort_free_and_exit";
+
+/*
+ * File name selection pattern
+ */
+tSCC zInt_Abort_Free_And_ExitList[] =
+ "stdlib.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzInt_Abort_Free_And_ExitMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zInt_Abort_Free_And_ExitSelect0[] =
+ "int[ \t]+(abort|free|exit)[ \t]*\\(";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zInt_Abort_Free_And_ExitBypass0[] =
+ "_CLASSIC_ANSI_TYPES";
+
+#define INT_ABORT_FREE_AND_EXIT_TEST_CT 2
+static tTestDesc aInt_Abort_Free_And_ExitTests[] = {
+ { TT_NEGREP, zInt_Abort_Free_And_ExitBypass0, (regex_t*)NULL },
+ { TT_EGREP, zInt_Abort_Free_And_ExitSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Int_Abort_Free_And_Exit
+ */
+static const char* apzInt_Abort_Free_And_ExitPatch[] = {
+ "format",
+ "void\t%1(",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Io_Quotes_Def fix
+ */
+tSCC zIo_Quotes_DefName[] =
+ "io_quotes_def";
+
+/*
+ * File name selection pattern
+ */
+#define zIo_Quotes_DefList (char*)NULL
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzIo_Quotes_DefMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zIo_Quotes_DefSelect0[] =
+ "define[ \t]+[A-Z0-9_]+IO[A-Z]*\\([a-zA-Z][,)]";
+
+#define IO_QUOTES_DEF_TEST_CT 1
+static tTestDesc aIo_Quotes_DefTests[] = {
+ { TT_EGREP, zIo_Quotes_DefSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Io_Quotes_Def
+ */
+static const char* apzIo_Quotes_DefPatch[] = {
+ "char_macro_def",
+ "IO",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Io_Quotes_Use fix
+ */
+tSCC zIo_Quotes_UseName[] =
+ "io_quotes_use";
+
+/*
+ * File name selection pattern
+ */
+#define zIo_Quotes_UseList (char*)NULL
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzIo_Quotes_UseMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zIo_Quotes_UseSelect0[] =
+ "define[ \t]+[A-Z0-9_]+[ \t]+[A-Z0-9_]+IO[A-Z]*[ \t]*\\( *[^,']";
+
+#define IO_QUOTES_USE_TEST_CT 1
+static tTestDesc aIo_Quotes_UseTests[] = {
+ { TT_EGREP, zIo_Quotes_UseSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Io_Quotes_Use
+ */
+static const char* apzIo_Quotes_UsePatch[] = {
+ "char_macro_use",
+ "IO",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Ip_Missing_Semi fix
+ */
+tSCC zIp_Missing_SemiName[] =
+ "ip_missing_semi";
+
+/*
+ * File name selection pattern
+ */
+tSCC zIp_Missing_SemiList[] =
+ "netinet/ip.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzIp_Missing_SemiMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zIp_Missing_SemiSelect0[] =
+ "}$";
+
+#define IP_MISSING_SEMI_TEST_CT 1
+static tTestDesc aIp_Missing_SemiTests[] = {
+ { TT_EGREP, zIp_Missing_SemiSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Ip_Missing_Semi
+ */
+static const char* apzIp_Missing_SemiPatch[] = { sed_cmd_z,
+ "-e", "/^struct/,/^};/s/}$/};/",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Irix___Restrict fix
+ */
+tSCC zIrix___RestrictName[] =
+ "irix___restrict";
+
+/*
+ * File name selection pattern
+ */
+tSCC zIrix___RestrictList[] =
+ "internal/sgimacros.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzIrix___RestrictMachs[] = {
+ "mips-sgi-irix6.5",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zIrix___RestrictSelect0[] =
+ "(#ifdef __c99\n\
+)(#[ \t]*define __restrict restrict)";
+
+#define IRIX___RESTRICT_TEST_CT 1
+static tTestDesc aIrix___RestrictTests[] = {
+ { TT_EGREP, zIrix___RestrictSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Irix___Restrict
+ */
+static const char* apzIrix___RestrictPatch[] = {
+ "format",
+ "%1# ifndef __cplusplus\n\
+%2\n\
+# endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Irix___Generic1 fix
+ */
+tSCC zIrix___Generic1Name[] =
+ "irix___generic1";
+
+/*
+ * File name selection pattern
+ */
+tSCC zIrix___Generic1List[] =
+ "internal/math_core.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzIrix___Generic1Machs[] = {
+ "mips-sgi-irix6.5",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zIrix___Generic1Select0[] =
+ "#define ([a-z]+)\\(x\\) *__generic.*";
+
+#define IRIX___GENERIC1_TEST_CT 1
+static tTestDesc aIrix___Generic1Tests[] = {
+ { TT_EGREP, zIrix___Generic1Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Irix___Generic1
+ */
+static const char* apzIrix___Generic1Patch[] = {
+ "format",
+ "extern int %1(double);\n\
+extern int %1f(float);\n\
+extern int %1l(long double);\n\
+#define %1(x) (sizeof(x) == sizeof(double) ? _%1(x) \\\n\
+ : sizeof(x) == sizeof(float) ? _%1f(x) \\\n\
+ : _%1l(x))\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Irix___Generic2 fix
+ */
+tSCC zIrix___Generic2Name[] =
+ "irix___generic2";
+
+/*
+ * File name selection pattern
+ */
+tSCC zIrix___Generic2List[] =
+ "internal/math_core.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzIrix___Generic2Machs[] = {
+ "mips-sgi-irix6.5",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zIrix___Generic2Select0[] =
+ "#define ([a-z]+)\\(x,y\\) *__generic.*";
+
+#define IRIX___GENERIC2_TEST_CT 1
+static tTestDesc aIrix___Generic2Tests[] = {
+ { TT_EGREP, zIrix___Generic2Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Irix___Generic2
+ */
+static const char* apzIrix___Generic2Patch[] = {
+ "format",
+ "#define %1(x,y) \\\n\
+ ((sizeof(x)<=4 && sizeof(y)<=4) ? _%1f(x,y) \\\n\
+ : (sizeof(x)<=8 && sizeof(y)<=8) ? _%1(x,y) \\\n\
+ : _%1l(x,y))\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Irix_Asm_Apostrophe fix
+ */
+tSCC zIrix_Asm_ApostropheName[] =
+ "irix_asm_apostrophe";
+
+/*
+ * File name selection pattern
+ */
+tSCC zIrix_Asm_ApostropheList[] =
+ "sys/asm.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzIrix_Asm_ApostropheMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zIrix_Asm_ApostropheSelect0[] =
+ "^[ \t]*#.*[Ww]e're";
+
+#define IRIX_ASM_APOSTROPHE_TEST_CT 1
+static tTestDesc aIrix_Asm_ApostropheTests[] = {
+ { TT_EGREP, zIrix_Asm_ApostropheSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Irix_Asm_Apostrophe
+ */
+static const char* apzIrix_Asm_ApostrophePatch[] = {
+ "format",
+ "%1 are",
+ "^([ \t]*#.*[Ww]e)'re",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Irix_Complex fix
+ */
+tSCC zIrix_ComplexName[] =
+ "irix_complex";
+
+/*
+ * File name selection pattern
+ */
+tSCC zIrix_ComplexList[] =
+ "complex.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzIrix_ComplexMachs[] = {
+ "mips-sgi-irix6.5",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zIrix_ComplexSelect0[] =
+ "#define[ \t]_Complex_I[ \t]\\(\\(float[ \t]_Complex\\)[ \t]\\(__I__\\)\\)";
+
+#define IRIX_COMPLEX_TEST_CT 1
+static tTestDesc aIrix_ComplexTests[] = {
+ { TT_EGREP, zIrix_ComplexSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Irix_Complex
+ */
+static const char* apzIrix_ComplexPatch[] = { sed_cmd_z,
+ "-e", "s/#define[ \t]_Complex_I[ \t]((float[ \t]_Complex)[ \t](__I__))/#define _Complex_I (__extension__ 1.0iF)/",
+ "-e", "/#define[ \t]imaginary[ \t]_Imaginary/d",
+ "-e", "/#define[ \t]_Imaginary_I/d",
+ "-e", "s/#define[ \t]I[ \t]_Imaginary_I/#define I _Complex_I/",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Irix_Limits_Const fix
+ */
+tSCC zIrix_Limits_ConstName[] =
+ "irix_limits_const";
+
+/*
+ * File name selection pattern
+ */
+tSCC zIrix_Limits_ConstList[] =
+ "fixinc-test-limits.h\0limits.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzIrix_Limits_ConstMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zIrix_Limits_ConstSelect0[] =
+ "^extern const ";
+
+#define IRIX_LIMITS_CONST_TEST_CT 1
+static tTestDesc aIrix_Limits_ConstTests[] = {
+ { TT_EGREP, zIrix_Limits_ConstSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Irix_Limits_Const
+ */
+static const char* apzIrix_Limits_ConstPatch[] = {
+ "format",
+ "extern __const ",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Irix_Pthread_Init fix
+ */
+tSCC zIrix_Pthread_InitName[] =
+ "irix_pthread_init";
+
+/*
+ * File name selection pattern
+ */
+tSCC zIrix_Pthread_InitList[] =
+ "pthread.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzIrix_Pthread_InitMachs[] = {
+ "mips-sgi-irix6.5",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zIrix_Pthread_InitSelect0[] =
+ "^(#define[ \t]+PTHREAD_.*_INITIALIZER[ \t]+)(\\{ 0 \\})";
+
+#define IRIX_PTHREAD_INIT_TEST_CT 1
+static tTestDesc aIrix_Pthread_InitTests[] = {
+ { TT_EGREP, zIrix_Pthread_InitSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Irix_Pthread_Init
+ */
+static const char* apzIrix_Pthread_InitPatch[] = {
+ "format",
+ "%1{ %2 }",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Irix_Socklen_T fix
+ */
+tSCC zIrix_Socklen_TName[] =
+ "irix_socklen_t";
+
+/*
+ * File name selection pattern
+ */
+tSCC zIrix_Socklen_TList[] =
+ "sys/socket.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzIrix_Socklen_TMachs[] = {
+ "mips-sgi-irix6.5",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zIrix_Socklen_TSelect0[] =
+ "(#define _SOCKLEN_T\n\
+)(typedef u_int32_t socklen_t;)";
+
+#define IRIX_SOCKLEN_T_TEST_CT 1
+static tTestDesc aIrix_Socklen_TTests[] = {
+ { TT_EGREP, zIrix_Socklen_TSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Irix_Socklen_T
+ */
+static const char* apzIrix_Socklen_TPatch[] = {
+ "format",
+ "%1#if _NO_XOPEN4 && _NO_XOPEN5\n\
+typedef int socklen_t;\n\
+#else\n\
+%2\n\
+#endif /* _NO_XOPEN4 && _NO_XOPEN5 */",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Irix_Stdint_C99_Mode fix
+ */
+tSCC zIrix_Stdint_C99_ModeName[] =
+ "irix_stdint_c99_mode";
+
+/*
+ * File name selection pattern
+ */
+tSCC zIrix_Stdint_C99_ModeList[] =
+ "stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzIrix_Stdint_C99_ModeMachs[] = {
+ "mips-sgi-irix6.5",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zIrix_Stdint_C99_ModeSelect0[] =
+ "(#ifndef __c99\n\
+)(#error This header file is to be used only for c99 mode compilations)";
+
+#define IRIX_STDINT_C99_MODE_TEST_CT 1
+static tTestDesc aIrix_Stdint_C99_ModeTests[] = {
+ { TT_EGREP, zIrix_Stdint_C99_ModeSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Irix_Stdint_C99_Mode
+ */
+static const char* apzIrix_Stdint_C99_ModePatch[] = {
+ "format",
+ "#if 0\n\
+%2",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Irix_Stdint_C99_Types fix
+ */
+tSCC zIrix_Stdint_C99_TypesName[] =
+ "irix_stdint_c99_types";
+
+/*
+ * File name selection pattern
+ */
+tSCC zIrix_Stdint_C99_TypesList[] =
+ "stdint-irix65.h\0stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzIrix_Stdint_C99_TypesMachs[] = {
+ "mips-sgi-irix6.5",
+ (const char*)NULL };
+#define IRIX_STDINT_C99_TYPES_TEST_CT 0
+#define aIrix_Stdint_C99_TypesTests (tTestDesc*)NULL
+
+/*
+ * Fix Command Arguments for Irix_Stdint_C99_Types
+ */
+static const char* apzIrix_Stdint_C99_TypesPatch[] = { sed_cmd_z,
+ "-e", "s@^#define INT64_MIN.*(-0x7fffffffffffffff - 1)$@#define INT64_MIN (-0x7fffffffffffffffLL - 1)@",
+ "-e", "s@^#define INT64_MAX.*0x7fffffffffffffff$@#define INT64_MAX 0x7fffffffffffffffLL@",
+ "-e", "s@^#define UINT32_MAX.*0xffffffff$@#define UINT32_MAX 0xffffffffU@",
+ "-e", "s@^#define UINT64_MAX.*0xffffffffffffffff$@#define UINT64_MAX 0xffffffffffffffffULL@",
+ "-e", "s@^#define INTPTR_MIN.*INT32_MIN$@#define INTPTR_MIN (-0x7fffffffL - 1)@",
+ "-e", "s@^#define INTPTR_MAX.*INT32_MAX$@#define INTPTR_MAX 0x7fffffffL@",
+ "-e", "s@^#define UINTPTR_MAX.*UINT32_MAX$@#define UINTPTR_MAX 0xffffffffUL@",
+ "-e", "s@^#define INTPTR_MIN.*INT64_MIN@#define INTPTR_MIN (-0x7fffffffffffffffL - 1)@",
+ "-e", "s@^#define INTPTR_MAX.*INT64_MAX$@#define INTPTR_MAX 0x7fffffffffffffffL@",
+ "-e", "s@^#define UINTPTR_MAX.*UINT64_MAX$@#define UINTPTR_MAX 0xffffffffffffffffUL@",
+ "-e", "s@^#define PTRDIFF_MIN.*INT64_MIN$@#define PTRDIFF_MIN (-0x7fffffffffffffffL - 1)@",
+ "-e", "s@^#define PTRDIFF_MAX.*INT64_MAX$@#define PTRDIFF_MAX 0x7fffffffffffffffL@",
+ "-e", "s@^#define SIZE_MAX.*UINT64_MAX$@#define SIZE_MAX 0xffffffffffffffffUL@",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Irix_Stdint_C99_Macros fix
+ */
+tSCC zIrix_Stdint_C99_MacrosName[] =
+ "irix_stdint_c99_macros";
+
+/*
+ * File name selection pattern
+ */
+tSCC zIrix_Stdint_C99_MacrosList[] =
+ "stdint-irix65.h\0stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzIrix_Stdint_C99_MacrosMachs[] = {
+ "mips-sgi-irix6.5",
+ (const char*)NULL };
+#define IRIX_STDINT_C99_MACROS_TEST_CT 0
+#define aIrix_Stdint_C99_MacrosTests (tTestDesc*)NULL
+
+/*
+ * Fix Command Arguments for Irix_Stdint_C99_Macros
+ */
+static const char* apzIrix_Stdint_C99_MacrosPatch[] = { sed_cmd_z,
+ "-e", "s@^#define INT8_C(x).*int.*_t.*$@#define INT8_C(x) (x)@",
+ "-e", "s@^#define INT16_C(x).*int.*_t.*$@#define INT16_C(x) (x)@",
+ "-e", "s@^#define INT32_C(x).*int.*_t.*$@#define INT32_C(x) (x)@",
+ "-e", "s@^#define INT64_C(x).*int.*_t.*$@#define INT64_C(x) (x ## LL)@",
+ "-e", "s@^#define UINT8_C(x).*int.*_t.*$@#define UINT8_C(x) (x)@",
+ "-e", "s@^#define UINT16_C(x).*int.*_t.*$@#define UINT16_C(x) (x)@",
+ "-e", "s@^#define UINT32_C(x).*int.*_t.*$@#define UINT32_C(x) (x ## U)@",
+ "-e", "s@^#define UINT64_C(x).*int.*_t.*$@#define UINT64_C(x) (x ## ULL)@",
+ "-e", "s@^#define INTMAX_C(x).*int.*_t.*$@#define INTMAX_C(x) (x ## LL)@",
+ "-e", "s@^#define UINTMAX_C(x).*int.*_t.*$@#define UINTMAX_C(x) (x ## ULL)@",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Irix_Stdio_Va_List fix
+ */
+tSCC zIrix_Stdio_Va_ListName[] =
+ "irix_stdio_va_list";
+
+/*
+ * File name selection pattern
+ */
+tSCC zIrix_Stdio_Va_ListList[] =
+ "stdio.h\0internal/stdio_core.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzIrix_Stdio_Va_ListMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zIrix_Stdio_Va_ListSelect0[] =
+ "/\\* va_list \\*/ char \\*";
+
+#define IRIX_STDIO_VA_LIST_TEST_CT 1
+static tTestDesc aIrix_Stdio_Va_ListTests[] = {
+ { TT_EGREP, zIrix_Stdio_Va_ListSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Irix_Stdio_Va_List
+ */
+static const char* apzIrix_Stdio_Va_ListPatch[] = {
+ "format",
+ "__gnuc_va_list",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Irix_Wcsftime fix
+ */
+tSCC zIrix_WcsftimeName[] =
+ "irix_wcsftime";
+
+/*
+ * File name selection pattern
+ */
+tSCC zIrix_WcsftimeList[] =
+ "internal/wchar_core.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzIrix_WcsftimeMachs[] = {
+ "mips-sgi-irix6.5",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zIrix_WcsftimeSelect0[] =
+ "#if _NO_XOPEN5\n\
+(extern size_t[ \t]+wcsftime.*const char *.*)";
+
+#define IRIX_WCSFTIME_TEST_CT 1
+static tTestDesc aIrix_WcsftimeTests[] = {
+ { TT_EGREP, zIrix_WcsftimeSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Irix_Wcsftime
+ */
+static const char* apzIrix_WcsftimePatch[] = {
+ "format",
+ "#if _NO_XOPEN5 && !defined(__c99)\n\
+%1",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Kandr_Concat fix
+ */
+tSCC zKandr_ConcatName[] =
+ "kandr_concat";
+
+/*
+ * File name selection pattern
+ */
+tSCC zKandr_ConcatList[] =
+ "sparc/asm_linkage.h\0sun*/asm_linkage.h\0arm/as_support.h\0arm/mc_type.h\0arm/xcb.h\0dev/chardefmac.h\0dev/ps_irq.h\0dev/screen.h\0dev/scsi.h\0sys/tty.h\0Xm.acorn/XmP.h\0bsd43/bsd43_.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzKandr_ConcatMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zKandr_ConcatSelect0[] =
+ "/\\*\\*/";
+
+#define KANDR_CONCAT_TEST_CT 1
+static tTestDesc aKandr_ConcatTests[] = {
+ { TT_EGREP, zKandr_ConcatSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Kandr_Concat
+ */
+static const char* apzKandr_ConcatPatch[] = {
+ "format",
+ "##",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Linux_Ia64_Ucontext fix
+ */
+tSCC zLinux_Ia64_UcontextName[] =
+ "linux_ia64_ucontext";
+
+/*
+ * File name selection pattern
+ */
+tSCC zLinux_Ia64_UcontextList[] =
+ "sys/ucontext.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzLinux_Ia64_UcontextMachs[] = {
+ "ia64-*-linux*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zLinux_Ia64_UcontextSelect0[] =
+ "\\(\\(\\(char \\*\\) &\\(\\(struct sigcontext \\*\\) 0\\)->sc_gr\\[0\\]\\) - \\(char \\*\\) 0\\)";
+
+#define LINUX_IA64_UCONTEXT_TEST_CT 1
+static tTestDesc aLinux_Ia64_UcontextTests[] = {
+ { TT_EGREP, zLinux_Ia64_UcontextSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Linux_Ia64_Ucontext
+ */
+static const char* apzLinux_Ia64_UcontextPatch[] = {
+ "format",
+ "__builtin_offsetof (struct sigcontext, sc_gr[0])",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Lynxos_No_Warning_In_Sys_Time_H fix
+ */
+tSCC zLynxos_No_Warning_In_Sys_Time_HName[] =
+ "lynxos_no_warning_in_sys_time_h";
+
+/*
+ * File name selection pattern
+ */
+tSCC zLynxos_No_Warning_In_Sys_Time_HList[] =
+ "sys/time.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzLynxos_No_Warning_In_Sys_Time_HMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zLynxos_No_Warning_In_Sys_Time_HSelect0[] =
+ "#warning[ \t]+Using <time.h> instead of <sys/time.h>";
+
+#define LYNXOS_NO_WARNING_IN_SYS_TIME_H_TEST_CT 1
+static tTestDesc aLynxos_No_Warning_In_Sys_Time_HTests[] = {
+ { TT_EGREP, zLynxos_No_Warning_In_Sys_Time_HSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Lynxos_No_Warning_In_Sys_Time_H
+ */
+static const char* apzLynxos_No_Warning_In_Sys_Time_HPatch[] = {
+ "format",
+ "",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Lynxos_Missing_Putenv fix
+ */
+tSCC zLynxos_Missing_PutenvName[] =
+ "lynxos_missing_putenv";
+
+/*
+ * File name selection pattern
+ */
+tSCC zLynxos_Missing_PutenvList[] =
+ "stdlib.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzLynxos_Missing_PutenvMachs[] = {
+ "*-*-lynxos*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zLynxos_Missing_PutenvSelect0[] =
+ "extern char \\*getenv[ \t]*_AP\\(\\(const char \\*\\)\\);";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zLynxos_Missing_PutenvBypass0[] =
+ "putenv[ \\t]*\\(";
+
+#define LYNXOS_MISSING_PUTENV_TEST_CT 2
+static tTestDesc aLynxos_Missing_PutenvTests[] = {
+ { TT_NEGREP, zLynxos_Missing_PutenvBypass0, (regex_t*)NULL },
+ { TT_EGREP, zLynxos_Missing_PutenvSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Lynxos_Missing_Putenv
+ */
+static const char* apzLynxos_Missing_PutenvPatch[] = {
+ "format",
+ "%0\n\
+extern int putenv\t\t\t\t_AP((char *));",
+ "extern char \\*getenv[ \t]*_AP\\(\\(const char \\*\\)\\);",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Machine_Ansi_H_Va_List fix
+ */
+tSCC zMachine_Ansi_H_Va_ListName[] =
+ "machine_ansi_h_va_list";
+
+/*
+ * File name selection pattern
+ */
+#define zMachine_Ansi_H_Va_ListList (char*)NULL
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzMachine_Ansi_H_Va_ListMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zMachine_Ansi_H_Va_ListSelect0[] =
+ "define[ \t]+_BSD_VA_LIST_[ \t]";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zMachine_Ansi_H_Va_ListBypass0[] =
+ "__builtin_va_list";
+
+#define MACHINE_ANSI_H_VA_LIST_TEST_CT 2
+static tTestDesc aMachine_Ansi_H_Va_ListTests[] = {
+ { TT_NEGREP, zMachine_Ansi_H_Va_ListBypass0, (regex_t*)NULL },
+ { TT_EGREP, zMachine_Ansi_H_Va_ListSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Machine_Ansi_H_Va_List
+ */
+static const char* apzMachine_Ansi_H_Va_ListPatch[] = {
+ "format",
+ "%1__builtin_va_list",
+ "(define[ \t]+_BSD_VA_LIST_[ \t]+).*",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Machine_Name fix
+ */
+tSCC zMachine_NameName[] =
+ "machine_name";
+
+/*
+ * File name selection pattern
+ */
+#define zMachine_NameList (char*)NULL
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzMachine_NameMachs (const char**)NULL
+
+/*
+ * perform the C function call test
+ */
+tSCC zMachine_NameFTst0[] = "machine_name";
+
+#define MACHINE_NAME_TEST_CT 1
+static tTestDesc aMachine_NameTests[] = {
+ { TT_FUNCTION, zMachine_NameFTst0, 0 /* unused */ }, };
+
+/*
+ * Fix Command Arguments for Machine_Name
+ */
+static const char* apzMachine_NamePatch[] = {
+ "machine_name",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Math_Exception fix
+ */
+tSCC zMath_ExceptionName[] =
+ "math_exception";
+
+/*
+ * File name selection pattern
+ */
+tSCC zMath_ExceptionList[] =
+ "math.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzMath_ExceptionMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zMath_ExceptionSelect0[] =
+ "struct exception";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zMath_ExceptionBypass0[] =
+ "We have a problem when using C\\+\\+|for C\\+\\+, _[a-z0-9A-Z_]+_exception; for C, exception";
+
+#define MATH_EXCEPTION_TEST_CT 2
+static tTestDesc aMath_ExceptionTests[] = {
+ { TT_NEGREP, zMath_ExceptionBypass0, (regex_t*)NULL },
+ { TT_EGREP, zMath_ExceptionSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Math_Exception
+ */
+static const char* apzMath_ExceptionPatch[] = {
+ "wrap",
+ "#ifdef __cplusplus\n\
+#define exception __math_exception\n\
+#endif\n",
+ "#ifdef __cplusplus\n\
+#undef exception\n\
+#endif\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Math_Huge_Val_From_Dbl_Max fix
+ */
+tSCC zMath_Huge_Val_From_Dbl_MaxName[] =
+ "math_huge_val_from_dbl_max";
+
+/*
+ * File name selection pattern
+ */
+tSCC zMath_Huge_Val_From_Dbl_MaxList[] =
+ "math.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzMath_Huge_Val_From_Dbl_MaxMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zMath_Huge_Val_From_Dbl_MaxSelect0[] =
+ "define[ \t]+HUGE_VAL[ \t]+DBL_MAX";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zMath_Huge_Val_From_Dbl_MaxBypass0[] =
+ "define[ \t]+DBL_MAX";
+
+#define MATH_HUGE_VAL_FROM_DBL_MAX_TEST_CT 2
+static tTestDesc aMath_Huge_Val_From_Dbl_MaxTests[] = {
+ { TT_NEGREP, zMath_Huge_Val_From_Dbl_MaxBypass0, (regex_t*)NULL },
+ { TT_EGREP, zMath_Huge_Val_From_Dbl_MaxSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Math_Huge_Val_From_Dbl_Max
+ */
+static const char* apzMath_Huge_Val_From_Dbl_MaxPatch[] = { "sh", "-c",
+ "\tdbl_max_def=`egrep 'define[ \t]+DBL_MAX[ \t]+.*' float.h | sed 's/.*DBL_MAX[ \t]*//' 2>/dev/null`\n\n\
+\tif ( test -n \"${dbl_max_def}\" ) > /dev/null 2>&1\n\
+\tthen sed -e '/define[ \t]*HUGE_VAL[ \t]*DBL_MAX/s@DBL_MAX@'\"$dbl_max_def@\"\n\
+\telse cat\n\
+\tfi",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Nested_Auth_Des fix
+ */
+tSCC zNested_Auth_DesName[] =
+ "nested_auth_des";
+
+/*
+ * File name selection pattern
+ */
+tSCC zNested_Auth_DesList[] =
+ "rpc/rpc.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzNested_Auth_DesMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zNested_Auth_DesSelect0[] =
+ "(/\\*.*rpc/auth_des\\.h>.*)/\\*";
+
+#define NESTED_AUTH_DES_TEST_CT 1
+static tTestDesc aNested_Auth_DesTests[] = {
+ { TT_EGREP, zNested_Auth_DesSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Nested_Auth_Des
+ */
+static const char* apzNested_Auth_DesPatch[] = {
+ "format",
+ "%1*/ /*",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Netbsd_C99_Inline_1 fix
+ */
+tSCC zNetbsd_C99_Inline_1Name[] =
+ "netbsd_c99_inline_1";
+
+/*
+ * File name selection pattern
+ */
+tSCC zNetbsd_C99_Inline_1List[] =
+ "signal.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzNetbsd_C99_Inline_1Machs[] = {
+ "*-*-netbsd*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zNetbsd_C99_Inline_1Select0[] =
+ "extern __inline int";
+
+#define NETBSD_C99_INLINE_1_TEST_CT 1
+static tTestDesc aNetbsd_C99_Inline_1Tests[] = {
+ { TT_EGREP, zNetbsd_C99_Inline_1Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Netbsd_C99_Inline_1
+ */
+static const char* apzNetbsd_C99_Inline_1Patch[] = {
+ "format",
+ "extern\n\
+#ifdef __GNUC_STDC_INLINE__\n\
+__attribute__((__gnu_inline__))\n\
+#endif\n\
+__inline int",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Netbsd_C99_Inline_2 fix
+ */
+tSCC zNetbsd_C99_Inline_2Name[] =
+ "netbsd_c99_inline_2";
+
+/*
+ * File name selection pattern
+ */
+tSCC zNetbsd_C99_Inline_2List[] =
+ "signal.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzNetbsd_C99_Inline_2Machs[] = {
+ "*-*-netbsd*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zNetbsd_C99_Inline_2Select0[] =
+ "#define _SIGINLINE extern __inline";
+
+#define NETBSD_C99_INLINE_2_TEST_CT 1
+static tTestDesc aNetbsd_C99_Inline_2Tests[] = {
+ { TT_EGREP, zNetbsd_C99_Inline_2Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Netbsd_C99_Inline_2
+ */
+static const char* apzNetbsd_C99_Inline_2Patch[] = {
+ "format",
+ "#ifdef __GNUC_STDC_INLINE__\n\
+#define _SIGINLINE extern __attribute__((__gnu_inline__)) __inline\n\
+#else\n\
+%0\n\
+#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Netbsd_Extra_Semicolon fix
+ */
+tSCC zNetbsd_Extra_SemicolonName[] =
+ "netbsd_extra_semicolon";
+
+/*
+ * File name selection pattern
+ */
+tSCC zNetbsd_Extra_SemicolonList[] =
+ "sys/cdefs.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzNetbsd_Extra_SemicolonMachs[] = {
+ "*-*-netbsd*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zNetbsd_Extra_SemicolonSelect0[] =
+ "#define[ \t]*__END_DECLS[ \t]*};";
+
+#define NETBSD_EXTRA_SEMICOLON_TEST_CT 1
+static tTestDesc aNetbsd_Extra_SemicolonTests[] = {
+ { TT_EGREP, zNetbsd_Extra_SemicolonSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Netbsd_Extra_Semicolon
+ */
+static const char* apzNetbsd_Extra_SemicolonPatch[] = {
+ "format",
+ "#define __END_DECLS }",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Newlib_Stdint_1 fix
+ */
+tSCC zNewlib_Stdint_1Name[] =
+ "newlib_stdint_1";
+
+/*
+ * File name selection pattern
+ */
+tSCC zNewlib_Stdint_1List[] =
+ "stdint-newlib.h\0stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzNewlib_Stdint_1Machs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zNewlib_Stdint_1Select0[] =
+ "@todo - Add support for wint_t types";
+
+#define NEWLIB_STDINT_1_TEST_CT 1
+static tTestDesc aNewlib_Stdint_1Tests[] = {
+ { TT_EGREP, zNewlib_Stdint_1Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Newlib_Stdint_1
+ */
+static const char* apzNewlib_Stdint_1Patch[] = { sed_cmd_z,
+ "-e", "s@#define INT32_MIN.*@#define INT32_MIN (-INT32_MAX - 1)@",
+ "-e", "s@#define INT32_MAX.*@#define INT32_MAX __INT32_MAX__@",
+ "-e", "s@#define UINT32_MAX.*@#define UINT32_MAX __UINT32_MAX__@",
+ "-e", "s@#define INT_LEAST32_MIN.*@#define INT_LEAST32_MIN (-INT_LEAST32_MAX - 1)@",
+ "-e", "s@#define INT_LEAST32_MAX.*@#define INT_LEAST32_MAX __INT_LEAST32_MAX__@",
+ "-e", "s@#define UINT_LEAST32_MAX.*@#define UINT_LEAST32_MAX __UINT_LEAST32_MAX__@",
+ "-e", "s@#define INT_FAST\\([0-9]*\\)_MIN.*@#define INT_FAST\\1_MIN (-INT_FAST\\1_MAX - 1)@",
+ "-e", "s@#define INT_FAST\\([0-9]*\\)_MAX.*@#define INT_FAST\\1_MAX __INT_FAST\\1_MAX__@",
+ "-e", "s@#define UINT_FAST\\([0-9]*\\)_MAX.*@#define UINT_FAST\\1_MAX __UINT_FAST\\1_MAX__@",
+ "-e", "s@#define SIZE_MAX.*@#define SIZE_MAX __SIZE_MAX__@",
+ "-e", "s@#define PTRDIFF_MIN.*@#define PTRDIFF_MIN (-PTRDIFF_MAX - 1)@",
+ "-e", "s@#define PTRDIFF_MAX.*@#define PTRDIFF_MAX __PTRDIFF_MAX__@",
+ "-e", "s@#define UINT8_C.*@#define UINT8_C(c) __UINT8_C(c)@",
+ "-e", "s@#define UINT16_C.*@#define UINT16_C(c) __UINT16_C(c)@",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Newlib_Stdint_2 fix
+ */
+tSCC zNewlib_Stdint_2Name[] =
+ "newlib_stdint_2";
+
+/*
+ * File name selection pattern
+ */
+tSCC zNewlib_Stdint_2List[] =
+ "stdint-newlib.h\0stdint.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzNewlib_Stdint_2Machs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zNewlib_Stdint_2Select0[] =
+ "@todo - Add support for wint_t types";
+
+#define NEWLIB_STDINT_2_TEST_CT 1
+static tTestDesc aNewlib_Stdint_2Tests[] = {
+ { TT_EGREP, zNewlib_Stdint_2Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Newlib_Stdint_2
+ */
+static const char* apzNewlib_Stdint_2Patch[] = {
+ "format",
+ "#define INTMAX_MAX __INTMAX_MAX__\n\
+#define INTMAX_MIN (-INTMAX_MAX - 1)\n\
+#define UINTMAX_MAX __UINTMAX_MAX__\n\
+#define WCHAR_MAX __WCHAR_MAX__\n\
+#define WCHAR_MIN __WCHAR_MIN__\n\
+#define WINT_MAX __WINT_MAX__\n\
+#define WINT_MIN __WINT_MIN__\n\n\
+%0",
+ "/\\*\\* Macros for minimum-width integer constant expressions \\*/",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Next_Math_Prefix fix
+ */
+tSCC zNext_Math_PrefixName[] =
+ "next_math_prefix";
+
+/*
+ * File name selection pattern
+ */
+tSCC zNext_Math_PrefixList[] =
+ "ansi/math.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzNext_Math_PrefixMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zNext_Math_PrefixSelect0[] =
+ "^extern[ \t]+double[ \t]+__const__[ \t]";
+
+#define NEXT_MATH_PREFIX_TEST_CT 1
+static tTestDesc aNext_Math_PrefixTests[] = {
+ { TT_EGREP, zNext_Math_PrefixSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Next_Math_Prefix
+ */
+static const char* apzNext_Math_PrefixPatch[] = {
+ "format",
+ "extern double %1(",
+ "^extern[ \t]+double[ \t]+__const__[ \t]+([a-z]+)\\(",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Next_Template fix
+ */
+tSCC zNext_TemplateName[] =
+ "next_template";
+
+/*
+ * File name selection pattern
+ */
+tSCC zNext_TemplateList[] =
+ "bsd/libc.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzNext_TemplateMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zNext_TemplateSelect0[] =
+ "[ \t]template\\)";
+
+#define NEXT_TEMPLATE_TEST_CT 1
+static tTestDesc aNext_TemplateTests[] = {
+ { TT_EGREP, zNext_TemplateSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Next_Template
+ */
+static const char* apzNext_TemplatePatch[] = {
+ "format",
+ "(%1)",
+ "\\(([^)]*)[ \t]template\\)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Next_Volitile fix
+ */
+tSCC zNext_VolitileName[] =
+ "next_volitile";
+
+/*
+ * File name selection pattern
+ */
+tSCC zNext_VolitileList[] =
+ "ansi/stdlib.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzNext_VolitileMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zNext_VolitileSelect0[] =
+ "^extern[ \t]+volatile[ \t]+void[ \t]";
+
+#define NEXT_VOLITILE_TEST_CT 1
+static tTestDesc aNext_VolitileTests[] = {
+ { TT_EGREP, zNext_VolitileSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Next_Volitile
+ */
+static const char* apzNext_VolitilePatch[] = {
+ "format",
+ "extern void %1(",
+ "^extern[ \t]+volatile[ \t]+void[ \t]+(exit|abort)\\(",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Next_Wait_Union fix
+ */
+tSCC zNext_Wait_UnionName[] =
+ "next_wait_union";
+
+/*
+ * File name selection pattern
+ */
+tSCC zNext_Wait_UnionList[] =
+ "sys/wait.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzNext_Wait_UnionMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zNext_Wait_UnionSelect0[] =
+ "wait\\(union wait";
+
+#define NEXT_WAIT_UNION_TEST_CT 1
+static tTestDesc aNext_Wait_UnionTests[] = {
+ { TT_EGREP, zNext_Wait_UnionSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Next_Wait_Union
+ */
+static const char* apzNext_Wait_UnionPatch[] = {
+ "format",
+ "wait(void",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Nodeent_Syntax fix
+ */
+tSCC zNodeent_SyntaxName[] =
+ "nodeent_syntax";
+
+/*
+ * File name selection pattern
+ */
+tSCC zNodeent_SyntaxList[] =
+ "netdnet/dnetdb.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzNodeent_SyntaxMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zNodeent_SyntaxSelect0[] =
+ "char[ \t]*\\*na_addr[ \t]*$";
+
+#define NODEENT_SYNTAX_TEST_CT 1
+static tTestDesc aNodeent_SyntaxTests[] = {
+ { TT_EGREP, zNodeent_SyntaxSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Nodeent_Syntax
+ */
+static const char* apzNodeent_SyntaxPatch[] = {
+ "format",
+ "%0;",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Openbsd_Null_Definition fix
+ */
+tSCC zOpenbsd_Null_DefinitionName[] =
+ "openbsd_null_definition";
+
+/*
+ * File name selection pattern
+ */
+tSCC zOpenbsd_Null_DefinitionList[] =
+ "locale.h\0stddef.h\0stdio.h\0string.h\0time.h\0unistd.h\0wchar.h\0sys/param.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzOpenbsd_Null_DefinitionMachs[] = {
+ "*-*-openbsd*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zOpenbsd_Null_DefinitionSelect0[] =
+ "__GNUG__";
+
+#define OPENBSD_NULL_DEFINITION_TEST_CT 1
+static tTestDesc aOpenbsd_Null_DefinitionTests[] = {
+ { TT_EGREP, zOpenbsd_Null_DefinitionSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Openbsd_Null_Definition
+ */
+static const char* apzOpenbsd_Null_DefinitionPatch[] = {
+ "format",
+ "#ifndef NULL\n\
+#ifdef __cplusplus\n\
+#ifdef __GNUG__\n\
+#define NULL\t__null\n\
+#else\t /* ! __GNUG__ */\n\
+#define NULL\t0L\n\
+#endif\t /* __GNUG__ */\n\
+#else\t /* ! __cplusplus */\n\
+#define NULL\t((void *)0)\n\
+#endif\t /* __cplusplus */\n\
+#endif\t /* !NULL */",
+ "^#ifndef[ \t]*NULL\n\
+^#ifdef[ \t]*__GNUG__\n\
+^#define[ \t]*NULL[ \t]*__null\n\
+^#else\n\
+^#define[ \t]*NULL[ \t]*0L\n\
+^#endif\n\
+^#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Obstack_Lvalue_Cast fix
+ */
+tSCC zObstack_Lvalue_CastName[] =
+ "obstack_lvalue_cast";
+
+/*
+ * File name selection pattern
+ */
+tSCC zObstack_Lvalue_CastList[] =
+ "obstack.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzObstack_Lvalue_CastMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zObstack_Lvalue_CastSelect0[] =
+ "\\*\\(\\(([^()]*)\\*\\)(.*)\\)\\+\\+ = \\(([^()]*)\\)";
+
+#define OBSTACK_LVALUE_CAST_TEST_CT 1
+static tTestDesc aObstack_Lvalue_CastTests[] = {
+ { TT_EGREP, zObstack_Lvalue_CastSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Obstack_Lvalue_Cast
+ */
+static const char* apzObstack_Lvalue_CastPatch[] = {
+ "format",
+ "((*((%1*)%2) = (%3)), (%2 += sizeof (%1)))",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Openbsd_Va_Start fix
+ */
+tSCC zOpenbsd_Va_StartName[] =
+ "openbsd_va_start";
+
+/*
+ * File name selection pattern
+ */
+tSCC zOpenbsd_Va_StartList[] =
+ "stdarg.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzOpenbsd_Va_StartMachs[] = {
+ "*-*-openbsd*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zOpenbsd_Va_StartSelect0[] =
+ "__builtin_stdarg_start";
+
+#define OPENBSD_VA_START_TEST_CT 1
+static tTestDesc aOpenbsd_Va_StartTests[] = {
+ { TT_EGREP, zOpenbsd_Va_StartSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Openbsd_Va_Start
+ */
+static const char* apzOpenbsd_Va_StartPatch[] = {
+ "format",
+ "__builtin_va_start",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Osf_Namespace_A fix
+ */
+tSCC zOsf_Namespace_AName[] =
+ "osf_namespace_a";
+
+/*
+ * File name selection pattern
+ */
+tSCC zOsf_Namespace_AList[] =
+ "reg_types.h\0sys/lc_core.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzOsf_Namespace_AMachs (const char**)NULL
+
+/*
+ * perform the 'test' shell command - do fix on success
+ */
+tSCC zOsf_Namespace_ATest0[] =
+ " -r reg_types.h";
+tSCC zOsf_Namespace_ATest1[] =
+ " -r sys/lc_core.h";
+tSCC zOsf_Namespace_ATest2[] =
+ " -n \"`grep '} regex_t;' reg_types.h`\"";
+tSCC zOsf_Namespace_ATest3[] =
+ " -z \"`grep __regex_t regex.h`\"";
+
+#define OSF_NAMESPACE_A_TEST_CT 4
+static tTestDesc aOsf_Namespace_ATests[] = {
+ { TT_TEST, zOsf_Namespace_ATest0, 0 /* unused */ },
+ { TT_TEST, zOsf_Namespace_ATest1, 0 /* unused */ },
+ { TT_TEST, zOsf_Namespace_ATest2, 0 /* unused */ },
+ { TT_TEST, zOsf_Namespace_ATest3, 0 /* unused */ }, };
+
+/*
+ * Fix Command Arguments for Osf_Namespace_A
+ */
+static const char* apzOsf_Namespace_APatch[] = {
+ "format",
+ "__%0",
+ "reg(ex|off|match)_t",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Osf_Namespace_C fix
+ */
+tSCC zOsf_Namespace_CName[] =
+ "osf_namespace_c";
+
+/*
+ * File name selection pattern
+ */
+tSCC zOsf_Namespace_CList[] =
+ "regex.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzOsf_Namespace_CMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zOsf_Namespace_CSelect0[] =
+ "#include <reg_types.h>.*";
+
+/*
+ * perform the 'test' shell command - do fix on success
+ */
+tSCC zOsf_Namespace_CTest0[] =
+ " -r reg_types.h";
+tSCC zOsf_Namespace_CTest1[] =
+ " -r sys/lc_core.h";
+tSCC zOsf_Namespace_CTest2[] =
+ " -n \"`grep '} regex_t;' reg_types.h`\"";
+tSCC zOsf_Namespace_CTest3[] =
+ " -z \"`grep __regex_t regex.h`\"";
+
+#define OSF_NAMESPACE_C_TEST_CT 5
+static tTestDesc aOsf_Namespace_CTests[] = {
+ { TT_TEST, zOsf_Namespace_CTest0, 0 /* unused */ },
+ { TT_TEST, zOsf_Namespace_CTest1, 0 /* unused */ },
+ { TT_TEST, zOsf_Namespace_CTest2, 0 /* unused */ },
+ { TT_TEST, zOsf_Namespace_CTest3, 0 /* unused */ },
+ { TT_EGREP, zOsf_Namespace_CSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Osf_Namespace_C
+ */
+static const char* apzOsf_Namespace_CPatch[] = {
+ "format",
+ "%0\n\
+typedef __regex_t\tregex_t;\n\
+typedef __regoff_t\tregoff_t;\n\
+typedef __regmatch_t\tregmatch_t;",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Pthread_Incomplete_Struct_Argument fix
+ */
+tSCC zPthread_Incomplete_Struct_ArgumentName[] =
+ "pthread_incomplete_struct_argument";
+
+/*
+ * File name selection pattern
+ */
+tSCC zPthread_Incomplete_Struct_ArgumentList[] =
+ "pthread.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzPthread_Incomplete_Struct_ArgumentMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zPthread_Incomplete_Struct_ArgumentSelect0[] =
+ "struct __jmp_buf_tag";
+
+#define PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_TEST_CT 1
+static tTestDesc aPthread_Incomplete_Struct_ArgumentTests[] = {
+ { TT_EGREP, zPthread_Incomplete_Struct_ArgumentSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Pthread_Incomplete_Struct_Argument
+ */
+static const char* apzPthread_Incomplete_Struct_ArgumentPatch[] = {
+ "format",
+ "%1 *%2%3",
+ "^(extern int __sigsetjmp \\(struct __jmp_buf_tag) (__env)\\[1\\](.*)$",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Read_Ret_Type fix
+ */
+tSCC zRead_Ret_TypeName[] =
+ "read_ret_type";
+
+/*
+ * File name selection pattern
+ */
+tSCC zRead_Ret_TypeList[] =
+ "stdio.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzRead_Ret_TypeMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zRead_Ret_TypeSelect0[] =
+ "extern int\t.*, fread\\(\\), fwrite\\(\\)";
+
+#define READ_RET_TYPE_TEST_CT 1
+static tTestDesc aRead_Ret_TypeTests[] = {
+ { TT_EGREP, zRead_Ret_TypeSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Read_Ret_Type
+ */
+static const char* apzRead_Ret_TypePatch[] = {
+ "format",
+ "extern unsigned int fread(), fwrite();\n\
+%1%2",
+ "(extern int\t.*), fread\\(\\), fwrite\\(\\)(.*)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Rpc_Xdr_Lvalue_Cast_A fix
+ */
+tSCC zRpc_Xdr_Lvalue_Cast_AName[] =
+ "rpc_xdr_lvalue_cast_a";
+
+/*
+ * File name selection pattern
+ */
+tSCC zRpc_Xdr_Lvalue_Cast_AList[] =
+ "rpc/xdr.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzRpc_Xdr_Lvalue_Cast_AMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zRpc_Xdr_Lvalue_Cast_ASelect0[] =
+ "#define[ \t]*IXDR_GET_LONG.*\\\\\n\
+.*__extension__.*";
+
+#define RPC_XDR_LVALUE_CAST_A_TEST_CT 1
+static tTestDesc aRpc_Xdr_Lvalue_Cast_ATests[] = {
+ { TT_EGREP, zRpc_Xdr_Lvalue_Cast_ASelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Rpc_Xdr_Lvalue_Cast_A
+ */
+static const char* apzRpc_Xdr_Lvalue_Cast_APatch[] = {
+ "format",
+ "#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Rpc_Xdr_Lvalue_Cast_B fix
+ */
+tSCC zRpc_Xdr_Lvalue_Cast_BName[] =
+ "rpc_xdr_lvalue_cast_b";
+
+/*
+ * File name selection pattern
+ */
+tSCC zRpc_Xdr_Lvalue_Cast_BList[] =
+ "rpc/xdr.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzRpc_Xdr_Lvalue_Cast_BMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zRpc_Xdr_Lvalue_Cast_BSelect0[] =
+ "#define[ \t]*IXDR_PUT_LONG.*\\\\\n\
+.*__extension__.*";
+
+#define RPC_XDR_LVALUE_CAST_B_TEST_CT 1
+static tTestDesc aRpc_Xdr_Lvalue_Cast_BTests[] = {
+ { TT_EGREP, zRpc_Xdr_Lvalue_Cast_BSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Rpc_Xdr_Lvalue_Cast_B
+ */
+static const char* apzRpc_Xdr_Lvalue_Cast_BPatch[] = {
+ "format",
+ "#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Rs6000_Double fix
+ */
+tSCC zRs6000_DoubleName[] =
+ "rs6000_double";
+
+/*
+ * File name selection pattern
+ */
+tSCC zRs6000_DoubleList[] =
+ "math.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzRs6000_DoubleMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zRs6000_DoubleSelect0[] =
+ "[^a-zA-Z_]class\\(";
+
+#define RS6000_DOUBLE_TEST_CT 1
+static tTestDesc aRs6000_DoubleTests[] = {
+ { TT_EGREP, zRs6000_DoubleSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Rs6000_Double
+ */
+static const char* apzRs6000_DoublePatch[] = {
+ "format",
+ "#ifndef __cplusplus\n\
+%0\n\
+#endif",
+ "^.*[^a-zA-Z_]class\\(.*",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Rs6000_Fchmod fix
+ */
+tSCC zRs6000_FchmodName[] =
+ "rs6000_fchmod";
+
+/*
+ * File name selection pattern
+ */
+tSCC zRs6000_FchmodList[] =
+ "sys/stat.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzRs6000_FchmodMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zRs6000_FchmodSelect0[] =
+ "fchmod\\(char \\*";
+
+#define RS6000_FCHMOD_TEST_CT 1
+static tTestDesc aRs6000_FchmodTests[] = {
+ { TT_EGREP, zRs6000_FchmodSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Rs6000_Fchmod
+ */
+static const char* apzRs6000_FchmodPatch[] = {
+ "format",
+ "fchmod(int",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Rs6000_Param fix
+ */
+tSCC zRs6000_ParamName[] =
+ "rs6000_param";
+
+/*
+ * File name selection pattern
+ */
+tSCC zRs6000_ParamList[] =
+ "stdio.h\0unistd.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzRs6000_ParamMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zRs6000_ParamSelect0[] =
+ "rename\\(const char \\*old, const char \\*new\\)";
+
+#define RS6000_PARAM_TEST_CT 1
+static tTestDesc aRs6000_ParamTests[] = {
+ { TT_EGREP, zRs6000_ParamSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Rs6000_Param
+ */
+static const char* apzRs6000_ParamPatch[] = {
+ "format",
+ "rename(const char *_old, const char *_new)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris___Restrict fix
+ */
+tSCC zSolaris___RestrictName[] =
+ "solaris___restrict";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris___RestrictList[] =
+ "sys/feature_tests.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzSolaris___RestrictMachs[] = {
+ "*-*-solaris2*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris___RestrictSelect0[] =
+ "#define[ \t]*_RESTRICT_KYWD[ \t]*restrict";
+
+#define SOLARIS___RESTRICT_TEST_CT 1
+static tTestDesc aSolaris___RestrictTests[] = {
+ { TT_EGREP, zSolaris___RestrictSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris___Restrict
+ */
+static const char* apzSolaris___RestrictPatch[] = {
+ "format",
+ "#ifdef __cplusplus\n\
+#define\t_RESTRICT_KYWD\t__restrict\n\
+#else\n\
+%0\n\
+#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Complex fix
+ */
+tSCC zSolaris_ComplexName[] =
+ "solaris_complex";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_ComplexList[] =
+ "complex.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzSolaris_ComplexMachs[] = {
+ "*-*-solaris2.*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_ComplexSelect0[] =
+ "#define[ \t]_Complex_I[ \t]_Complex_I";
+
+#define SOLARIS_COMPLEX_TEST_CT 1
+static tTestDesc aSolaris_ComplexTests[] = {
+ { TT_EGREP, zSolaris_ComplexSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Complex
+ */
+static const char* apzSolaris_ComplexPatch[] = { sed_cmd_z,
+ "-e", "s/#define[ \t]_Complex_I[ \t]_Complex_I/#define\t_Complex_I\t(__extension__ 1.0iF)/",
+ "-e", "/#define[ \t]_Imaginary_I[ \t]_Imaginary_I/d",
+ "-e", "/#define[ \t]imaginary[ \t]_Imaginary/d",
+ "-e", "s/#define[ \t]I[ \t]\\{1,\\}_Imaginary_I/#define\tI\t\t_Complex_I/",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Complex_Cxx fix
+ */
+tSCC zSolaris_Complex_CxxName[] =
+ "solaris_complex_cxx";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Complex_CxxList[] =
+ "complex.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzSolaris_Complex_CxxMachs[] = {
+ "*-*-solaris2.*",
+ (const char*)NULL };
+#define SOLARIS_COMPLEX_CXX_TEST_CT 0
+#define aSolaris_Complex_CxxTests (tTestDesc*)NULL
+
+/*
+ * Fix Command Arguments for Solaris_Complex_Cxx
+ */
+static const char* apzSolaris_Complex_CxxPatch[] = { sed_cmd_z,
+ "-e", "/#if[ \t]*!defined(__cplusplus)/c#ifdef\t__cplusplus\\\n\
+extern \"C\" {\\\n\
+#endif",
+ "-e", "/#endif[ \t]*\\/\\* !defined(__cplusplus) \\*\\//c#ifdef\t__cplusplus\\\n\
+}\\\n\
+#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Cond_Init fix
+ */
+tSCC zSolaris_Cond_InitName[] =
+ "solaris_cond_init";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Cond_InitList[] =
+ "pthread.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzSolaris_Cond_InitMachs[] = {
+ "*-*-solaris2.8",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_Cond_InitSelect0[] =
+ "@\\(#\\)pthread.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+
+#define SOLARIS_COND_INIT_TEST_CT 1
+static tTestDesc aSolaris_Cond_InitTests[] = {
+ { TT_EGREP, zSolaris_Cond_InitSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Cond_Init
+ */
+static const char* apzSolaris_Cond_InitPatch[] = {
+ "format",
+ "%1, 0x4356%2",
+ "^(#define[ \t]+PTHREAD_COND_INITIALIZER[ \t]+\\{.*0)(\\},[ \t]*0\\}.*)$",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Math_1 fix
+ */
+tSCC zSolaris_Math_1Name[] =
+ "solaris_math_1";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Math_1List[] =
+ "iso/math_c99.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSolaris_Math_1Machs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_Math_1Select0[] =
+ "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zSolaris_Math_1Bypass0[] =
+ "__GNUC__";
+
+#define SOLARIS_MATH_1_TEST_CT 2
+static tTestDesc aSolaris_Math_1Tests[] = {
+ { TT_NEGREP, zSolaris_Math_1Bypass0, (regex_t*)NULL },
+ { TT_EGREP, zSolaris_Math_1Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Math_1
+ */
+static const char* apzSolaris_Math_1Patch[] = {
+ "format",
+ "#define\tHUGE_VA%1\t(__builtin_huge_va%2())",
+ "^#define[ \t]+HUGE_VA([LF]+)[ \t]+__builtin_huge_va([lf]+)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Math_2 fix
+ */
+tSCC zSolaris_Math_2Name[] =
+ "solaris_math_2";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Math_2List[] =
+ "iso/math_c99.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSolaris_Math_2Machs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_Math_2Select0[] =
+ "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zSolaris_Math_2Bypass0[] =
+ "__GNUC__";
+
+#define SOLARIS_MATH_2_TEST_CT 2
+static tTestDesc aSolaris_Math_2Tests[] = {
+ { TT_NEGREP, zSolaris_Math_2Bypass0, (regex_t*)NULL },
+ { TT_EGREP, zSolaris_Math_2Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Math_2
+ */
+static const char* apzSolaris_Math_2Patch[] = {
+ "format",
+ "#define\tINFINITY\t(__builtin_inff())",
+ "^#define[ \t]+INFINITY[ \t]+__builtin_infinity",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Math_3 fix
+ */
+tSCC zSolaris_Math_3Name[] =
+ "solaris_math_3";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Math_3List[] =
+ "iso/math_c99.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSolaris_Math_3Machs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_Math_3Select0[] =
+ "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zSolaris_Math_3Bypass0[] =
+ "__GNUC__";
+
+#define SOLARIS_MATH_3_TEST_CT 2
+static tTestDesc aSolaris_Math_3Tests[] = {
+ { TT_NEGREP, zSolaris_Math_3Bypass0, (regex_t*)NULL },
+ { TT_EGREP, zSolaris_Math_3Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Math_3
+ */
+static const char* apzSolaris_Math_3Patch[] = {
+ "format",
+ "#define\tNAN\t\t(__builtin_nanf(\"\"))",
+ "^#define[ \t]+NAN[ \t]+__builtin_nan",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Math_4 fix
+ */
+tSCC zSolaris_Math_4Name[] =
+ "solaris_math_4";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Math_4List[] =
+ "iso/math_c99.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSolaris_Math_4Machs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_Math_4Select0[] =
+ "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zSolaris_Math_4Bypass0[] =
+ "__GNUC__";
+
+#define SOLARIS_MATH_4_TEST_CT 2
+static tTestDesc aSolaris_Math_4Tests[] = {
+ { TT_NEGREP, zSolaris_Math_4Bypass0, (regex_t*)NULL },
+ { TT_EGREP, zSolaris_Math_4Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Math_4
+ */
+static const char* apzSolaris_Math_4Patch[] = {
+ "format",
+ "#define\tfpclassify(x) \\\n\
+ __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, (x))",
+ "^#define[ \t]+fpclassify\\(x\\)[ \t]+__builtin_fpclassify\\(x\\)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Math_8 fix
+ */
+tSCC zSolaris_Math_8Name[] =
+ "solaris_math_8";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Math_8List[] =
+ "iso/math_c99.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSolaris_Math_8Machs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_Math_8Select0[] =
+ "@\\(#\\)math_c99\\.h[ \t]+1\\.[0-9]+[ \t]+[0-9/]+ SMI";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zSolaris_Math_8Bypass0[] =
+ "__GNUC__";
+
+#define SOLARIS_MATH_8_TEST_CT 2
+static tTestDesc aSolaris_Math_8Tests[] = {
+ { TT_NEGREP, zSolaris_Math_8Bypass0, (regex_t*)NULL },
+ { TT_EGREP, zSolaris_Math_8Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Math_8
+ */
+static const char* apzSolaris_Math_8Patch[] = {
+ "format",
+ "#define\tsignbit(x)\t(sizeof(x) == sizeof(float) \\\n\
+\t\t\t ? __builtin_signbitf(x) \\\n\
+\t\t\t : sizeof(x) == sizeof(long double) \\\n\
+\t\t\t ? __builtin_signbitl(x) \\\n\
+\t\t\t : __builtin_signbit(x))",
+ "^#define[ \t]+signbit\\(x\\)[ \t]+__builtin_signbit\\(x\\)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Math_9 fix
+ */
+tSCC zSolaris_Math_9Name[] =
+ "solaris_math_9";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Math_9List[] =
+ "iso/math_c99.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSolaris_Math_9Machs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_Math_9Select0[] =
+ "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zSolaris_Math_9Bypass0[] =
+ "__GNUC__";
+
+#define SOLARIS_MATH_9_TEST_CT 2
+static tTestDesc aSolaris_Math_9Tests[] = {
+ { TT_NEGREP, zSolaris_Math_9Bypass0, (regex_t*)NULL },
+ { TT_EGREP, zSolaris_Math_9Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Math_9
+ */
+static const char* apzSolaris_Math_9Patch[] = {
+ "format",
+ "#define\t%1(x, y)%2__builtin_%1(x, y)",
+ "^#define[ \t]+([a-z]+)\\(x, y\\)([ \t]+)\\(\\(x\\) __builtin_[a-z]+\\(y\\)\\)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Math_10 fix
+ */
+tSCC zSolaris_Math_10Name[] =
+ "solaris_math_10";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Math_10List[] =
+ "iso/math_c99.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSolaris_Math_10Machs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_Math_10Select0[] =
+ "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+
+#define SOLARIS_MATH_10_TEST_CT 1
+static tTestDesc aSolaris_Math_10Tests[] = {
+ { TT_EGREP, zSolaris_Math_10Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Math_10
+ */
+static const char* apzSolaris_Math_10Patch[] = {
+ "format",
+ "#define\tisinf(x) __builtin_isinf(x)",
+ "^#define[ \t]+isinf\\(x\\)[ \t]+__extension__\\([ \t]*\\\\\n\
+[ \t]*\\{[ \t]*__typeof\\(x\\)[ \t]*__x_i[ \t]*=[ \t]*\\(x\\);[ \t]*\\\\\n\
+[ \t]*__x_i[ \t]*==[ \t]*\\(__typeof\\(__x_i\\)\\)[ \t]*INFINITY[ \t]*\\|\\|[ \t]*\\\\\n\
+[ \t]*__x_i[ \t]*==[ \t]*\\(__typeof\\(__x_i\\)\\)[ \t]*\\(-INFINITY\\);[ \t]*\\}\\)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Mutex_Init_2 fix
+ */
+tSCC zSolaris_Mutex_Init_2Name[] =
+ "solaris_mutex_init_2";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Mutex_Init_2List[] =
+ "pthread.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzSolaris_Mutex_Init_2Machs[] = {
+ "*-*-solaris2.[0-9]",
+ "*-*-solaris2.[0-9][!0-9]*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_Mutex_Init_2Select0[] =
+ "@\\(#\\)pthread.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+
+#define SOLARIS_MUTEX_INIT_2_TEST_CT 1
+static tTestDesc aSolaris_Mutex_Init_2Tests[] = {
+ { TT_EGREP, zSolaris_Mutex_Init_2Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Mutex_Init_2
+ */
+static const char* apzSolaris_Mutex_Init_2Patch[] = {
+ "format",
+ "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n\
+%0\n\
+#else\n\
+%1, {0}}%4\n\
+#endif",
+ "(^#define[ \t]+PTHREAD_(MUTEX|COND)_INITIALIZER[ \t]+(|/*.**/[ \t]*\\\\\n\
+[ \t]*)\\{.*),[ \t]*0\\}(|[ \t].*)$",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Rwlock_Init_1 fix
+ */
+tSCC zSolaris_Rwlock_Init_1Name[] =
+ "solaris_rwlock_init_1";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Rwlock_Init_1List[] =
+ "pthread.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzSolaris_Rwlock_Init_1Machs[] = {
+ "*-*-solaris*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_Rwlock_Init_1Select0[] =
+ "@\\(#\\)pthread.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+
+#define SOLARIS_RWLOCK_INIT_1_TEST_CT 1
+static tTestDesc aSolaris_Rwlock_Init_1Tests[] = {
+ { TT_EGREP, zSolaris_Rwlock_Init_1Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Rwlock_Init_1
+ */
+static const char* apzSolaris_Rwlock_Init_1Patch[] = {
+ "format",
+ "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n\
+%0\n\
+#else\n\
+%1{0, 0, 0, {{0}, {0}, {0}}, {{0}, {0}}, {{0}, {0}}}\n\
+#endif",
+ "(^#define[ \t]+PTHREAD_RWLOCK_INITIALIZER[ \t]+)\\{0, 0, 0, \\{0, 0, 0\\}, \\{0, 0\\}, \\{0, 0\\}\\}[ \t]*$",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Once_Init_1 fix
+ */
+tSCC zSolaris_Once_Init_1Name[] =
+ "solaris_once_init_1";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Once_Init_1List[] =
+ "pthread.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzSolaris_Once_Init_1Machs[] = {
+ "*-*-solaris*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_Once_Init_1Select0[] =
+ "@\\(#\\)pthread.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+
+#define SOLARIS_ONCE_INIT_1_TEST_CT 1
+static tTestDesc aSolaris_Once_Init_1Tests[] = {
+ { TT_EGREP, zSolaris_Once_Init_1Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Once_Init_1
+ */
+static const char* apzSolaris_Once_Init_1Patch[] = {
+ "format",
+ "%1{%2}%3",
+ "(^#define[ \t]+PTHREAD_ONCE_INIT[ \t]+\\{)([^}]+)(\\})[ \t]*$",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Once_Init_2 fix
+ */
+tSCC zSolaris_Once_Init_2Name[] =
+ "solaris_once_init_2";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Once_Init_2List[] =
+ "pthread.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzSolaris_Once_Init_2Machs[] = {
+ "*-*-solaris2.[0-9]",
+ "*-*-solaris2.[0-9][!0-9]*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_Once_Init_2Select0[] =
+ "@\\(#\\)pthread.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+
+#define SOLARIS_ONCE_INIT_2_TEST_CT 1
+static tTestDesc aSolaris_Once_Init_2Tests[] = {
+ { TT_EGREP, zSolaris_Once_Init_2Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Once_Init_2
+ */
+static const char* apzSolaris_Once_Init_2Patch[] = {
+ "format",
+ "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n\
+%0\n\
+#else\n\
+%1{0}, {0}, {0}, {%3}%4\n\
+#endif",
+ "(^#define[ \t]+PTHREAD_ONCE_INIT[ \t]+\\{\\{)(0, 0, 0, )(PTHREAD_[A-Z_]+)(\\}\\})[ \t]*$",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Int_Const fix
+ */
+tSCC zSolaris_Int_ConstName[] =
+ "solaris_int_const";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Int_ConstList[] =
+ "sys/int_const.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzSolaris_Int_ConstMachs[] = {
+ "*-*-solaris2*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_Int_ConstSelect0[] =
+ "^#define[ \t]+UINT8_C\\(c\\)[ \t]+__CONCAT__.*\n\
+(/*.**/)\n\
+#define[ \t]+UINT16_C\\(c\\)[ \t]+__CONCAT__.*";
+
+#define SOLARIS_INT_CONST_TEST_CT 1
+static tTestDesc aSolaris_Int_ConstTests[] = {
+ { TT_EGREP, zSolaris_Int_ConstSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Int_Const
+ */
+static const char* apzSolaris_Int_ConstPatch[] = {
+ "format",
+ "#define\tUINT8_C(c)\t(c)\n\
+%1\n\
+#define\tUINT16_C(c)\t(c)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Int_Limits_1 fix
+ */
+tSCC zSolaris_Int_Limits_1Name[] =
+ "solaris_int_limits_1";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Int_Limits_1List[] =
+ "sys/int_limits.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzSolaris_Int_Limits_1Machs[] = {
+ "*-*-solaris2*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_Int_Limits_1Select0[] =
+ "^#define[ \t]+UINT8_MAX[ \t]+\\(255U\\)\n\
+#define[ \t]+UINT16_MAX[ \t]+\\(65535U\\)";
+
+#define SOLARIS_INT_LIMITS_1_TEST_CT 1
+static tTestDesc aSolaris_Int_Limits_1Tests[] = {
+ { TT_EGREP, zSolaris_Int_Limits_1Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Int_Limits_1
+ */
+static const char* apzSolaris_Int_Limits_1Patch[] = {
+ "format",
+ "#define\tUINT8_MAX\t(255)\n\
+#define\tUINT16_MAX\t(65535)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Int_Limits_2 fix
+ */
+tSCC zSolaris_Int_Limits_2Name[] =
+ "solaris_int_limits_2";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Int_Limits_2List[] =
+ "sys/int_limits.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzSolaris_Int_Limits_2Machs[] = {
+ "*-*-solaris2*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_Int_Limits_2Select0[] =
+ "^#define[ \t]+(INT|UINT)_FAST16_(MAX|MIN)[ \t](INT|UINT)16.*";
+
+#define SOLARIS_INT_LIMITS_2_TEST_CT 1
+static tTestDesc aSolaris_Int_Limits_2Tests[] = {
+ { TT_EGREP, zSolaris_Int_Limits_2Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Int_Limits_2
+ */
+static const char* apzSolaris_Int_Limits_2Patch[] = {
+ "format",
+ "#define\t%1_FAST16_%2 %132_%2",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Int_Limits_3 fix
+ */
+tSCC zSolaris_Int_Limits_3Name[] =
+ "solaris_int_limits_3";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Int_Limits_3List[] =
+ "sys/int_limits.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzSolaris_Int_Limits_3Machs[] = {
+ "*-*-solaris2*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_Int_Limits_3Select0[] =
+ "^#define[ \t]+SIZE_MAX[ \t]+4294967295UL";
+
+#define SOLARIS_INT_LIMITS_3_TEST_CT 1
+static tTestDesc aSolaris_Int_Limits_3Tests[] = {
+ { TT_EGREP, zSolaris_Int_Limits_3Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Int_Limits_3
+ */
+static const char* apzSolaris_Int_Limits_3Patch[] = {
+ "format",
+ "#define\tSIZE_MAX\t4294967295U",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Int_Types fix
+ */
+tSCC zSolaris_Int_TypesName[] =
+ "solaris_int_types";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Int_TypesList[] =
+ "sys/int_types.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSolaris_Int_TypesMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_Int_TypesSelect0[] =
+ "__STDC__ - 0 == 0";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zSolaris_Int_TypesBypass0[] =
+ "_LONGLONG_TYPE";
+
+#define SOLARIS_INT_TYPES_TEST_CT 2
+static tTestDesc aSolaris_Int_TypesTests[] = {
+ { TT_NEGREP, zSolaris_Int_TypesBypass0, (regex_t*)NULL },
+ { TT_EGREP, zSolaris_Int_TypesSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Int_Types
+ */
+static const char* apzSolaris_Int_TypesPatch[] = {
+ "format",
+ "(defined(_STDC_C99) || !defined(_STRICT_STDC) || defined(__GNUC__))",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Stdio_Tag fix
+ */
+tSCC zSolaris_Stdio_TagName[] =
+ "solaris_stdio_tag";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Stdio_TagList[] =
+ "stdio_tag.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSolaris_Stdio_TagMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_Stdio_TagSelect0[] =
+ "__cplusplus < 54321L";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zSolaris_Stdio_TagBypass0[] =
+ "__GNUC__";
+
+#define SOLARIS_STDIO_TAG_TEST_CT 2
+static tTestDesc aSolaris_Stdio_TagTests[] = {
+ { TT_NEGREP, zSolaris_Stdio_TagBypass0, (regex_t*)NULL },
+ { TT_EGREP, zSolaris_Stdio_TagSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Stdio_Tag
+ */
+static const char* apzSolaris_Stdio_TagPatch[] = { sed_cmd_z,
+ "-e", "s/defined(__cplusplus) && (__cplusplus < 54321L)/0/",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Sys_Va_List fix
+ */
+tSCC zSolaris_Sys_Va_ListName[] =
+ "solaris_sys_va_list";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Sys_Va_ListList[] =
+ "sys/va_list.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzSolaris_Sys_Va_ListMachs[] = {
+ "*-*-solaris2.[89]",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_Sys_Va_ListSelect0[] =
+ "#if.*__STDC__.*\n\
+typedef void \\*__va_list;\n\
+#else\n\
+typedef char \\*__va_list;\n\
+#endif";
+
+#define SOLARIS_SYS_VA_LIST_TEST_CT 1
+static tTestDesc aSolaris_Sys_Va_ListTests[] = {
+ { TT_EGREP, zSolaris_Sys_Va_ListSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Sys_Va_List
+ */
+static const char* apzSolaris_Sys_Va_ListPatch[] = {
+ "format",
+ "#ifdef __GNUC__\n\
+typedef __builtin_va_list __va_list;\n\
+#else\n\
+%0\n\
+#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Statsswtch fix
+ */
+tSCC zStatsswtchName[] =
+ "statsswtch";
+
+/*
+ * File name selection pattern
+ */
+tSCC zStatsswtchList[] =
+ "rpcsvc/rstat.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzStatsswtchMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zStatsswtchSelect0[] =
+ "boottime$";
+
+#define STATSSWTCH_TEST_CT 1
+static tTestDesc aStatsswtchTests[] = {
+ { TT_EGREP, zStatsswtchSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Statsswtch
+ */
+static const char* apzStatsswtchPatch[] = {
+ "format",
+ "boottime;",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Stdio_Stdarg_H fix
+ */
+tSCC zStdio_Stdarg_HName[] =
+ "stdio_stdarg_h";
+
+/*
+ * File name selection pattern
+ */
+tSCC zStdio_Stdarg_HList[] =
+ "stdio.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzStdio_Stdarg_HMachs[] = {
+ "*-*-solaris2.1[0-9]*",
+ (const char*)NULL };
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zStdio_Stdarg_HBypass0[] =
+ "include.*(stdarg.h|machine/ansi.h)";
+
+#define STDIO_STDARG_H_TEST_CT 1
+static tTestDesc aStdio_Stdarg_HTests[] = {
+ { TT_NEGREP, zStdio_Stdarg_HBypass0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Stdio_Stdarg_H
+ */
+static const char* apzStdio_Stdarg_HPatch[] = {
+ "wrap",
+ "#define __need___va_list\n\
+#include <stdarg.h>\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Stdio_Va_List fix
+ */
+tSCC zStdio_Va_ListName[] =
+ "stdio_va_list";
+
+/*
+ * File name selection pattern
+ */
+tSCC zStdio_Va_ListList[] =
+ "stdio.h\0internal/stdio_core.h\0internal/wchar_core.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzStdio_Va_ListMachs[] = {
+ "*-*-solaris2.1[0-9]*",
+ (const char*)NULL };
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zStdio_Va_ListBypass0[] =
+ "__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list|_G_va_list";
+
+#define STDIO_VA_LIST_TEST_CT 1
+static tTestDesc aStdio_Va_ListTests[] = {
+ { TT_NEGREP, zStdio_Va_ListBypass0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Stdio_Va_List
+ */
+static const char* apzStdio_Va_ListPatch[] = { sed_cmd_z,
+ "-e", "s@[ \t]va_list\\([ \t)]\\)@ __gnuc_va_list\\1@\n\
+s@(va_list)&@(__gnuc_va_list)\\&@\n\
+s@ _VA_LIST_));@ __gnuc_va_list));@\n\
+s@ __VA_LIST__));@ __gnuc_va_list));@\n\
+s@ va_list@ __not_va_list__@\n\
+s@\\*va_list@*__not_va_list__@\n\
+s@ __va_list)@ __gnuc_va_list)@\n\
+s@typedef[ \t]\\(.*\\)[ \t]va_list[ \t]*;@typedef \\1 __not_va_list__;@\n\
+s@typedef[ \t]*__va_list__@typedef __gnuc_va_list@\n\
+s@GNUC_VA_LIST@GNUC_Va_LIST@\n\
+s@_VA_LIST_DEFINED@_Va_LIST_DEFINED@\n\
+s@_NEED___VA_LIST@_NEED___Va_LIST@\n\
+s@VA_LIST@DUMMY_VA_LIST@\n\
+s@_Va_LIST@_VA_LIST@",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Stdio_Va_List_Clients fix
+ */
+tSCC zStdio_Va_List_ClientsName[] =
+ "stdio_va_list_clients";
+
+/*
+ * File name selection pattern
+ */
+tSCC zStdio_Va_List_ClientsList[] =
+ "com_err.h\0cps.h\0curses.h\0krb5.h\0lc_core.h\0pfmt.h\0wchar.h\0curses_colr/curses.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzStdio_Va_List_ClientsMachs (const char**)NULL
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zStdio_Va_List_ClientsBypass0[] =
+ "__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list|_G_va_list";
+tSCC zStdio_Va_List_ClientsBypass1[] =
+ "include <stdarg\\.h>|#ifdef va_start";
+
+#define STDIO_VA_LIST_CLIENTS_TEST_CT 2
+static tTestDesc aStdio_Va_List_ClientsTests[] = {
+ { TT_NEGREP, zStdio_Va_List_ClientsBypass0, (regex_t*)NULL },
+ { TT_NEGREP, zStdio_Va_List_ClientsBypass1, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Stdio_Va_List_Clients
+ */
+static const char* apzStdio_Va_List_ClientsPatch[] = { sed_cmd_z,
+ "-e", "s@[ \t]va_list\\([ \t)]\\)@ __gnuc_va_list\\1@\n\
+s@(va_list)&@(__gnuc_va_list)\\&@\n\
+s@ _VA_LIST_));@ __gnuc_va_list));@\n\
+s@ __VA_LIST__));@ __gnuc_va_list));@\n\
+s@ va_list@ __not_va_list__@\n\
+s@\\*va_list@*__not_va_list__@\n\
+s@ __va_list)@ __gnuc_va_list)@\n\
+s@typedef[ \t]\\(.*\\)[ \t]va_list[ \t]*;@typedef \\1 __not_va_list__;@\n\
+s@typedef[ \t]*__va_list__@typedef __gnuc_va_list@\n\
+s@GNUC_VA_LIST@GNUC_Va_LIST@\n\
+s@_VA_LIST_DEFINED@_Va_LIST_DEFINED@\n\
+s@_NEED___VA_LIST@_NEED___Va_LIST@\n\
+s@VA_LIST@DUMMY_VA_LIST@\n\
+s@_Va_LIST@_VA_LIST@",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Strict_Ansi_Not fix
+ */
+tSCC zStrict_Ansi_NotName[] =
+ "strict_ansi_not";
+
+/*
+ * File name selection pattern
+ */
+#define zStrict_Ansi_NotList (char*)NULL
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzStrict_Ansi_NotMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zStrict_Ansi_NotSelect0[] =
+ "^([ \t]*#[ \t]*if.*)(!__STDC__|__STDC__[ \t]*==[ \t]*0|__STDC__[ \t]*!=[ \t]*1|__STDC__[ \t]*-[ \t]*0[ \t]*==[ \t]*0)";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zStrict_Ansi_NotBypass0[] =
+ "GNU and MIPS C compilers define __STDC__ differently";
+tSCC zStrict_Ansi_NotBypass1[] =
+ "__SCO_VERSION__.*__STDC__ != 1";
+
+/*
+ * perform the C function call test
+ */
+tSCC zStrict_Ansi_NotFTst0[] = "stdc_0_in_system_headers";
+
+#define STRICT_ANSI_NOT_TEST_CT 4
+static tTestDesc aStrict_Ansi_NotTests[] = {
+ { TT_FUNCTION, zStrict_Ansi_NotFTst0, 0 /* unused */ },
+ { TT_NEGREP, zStrict_Ansi_NotBypass0, (regex_t*)NULL },
+ { TT_NEGREP, zStrict_Ansi_NotBypass1, (regex_t*)NULL },
+ { TT_EGREP, zStrict_Ansi_NotSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Strict_Ansi_Not
+ */
+static const char* apzStrict_Ansi_NotPatch[] = {
+ "format",
+ "%1 !defined(__STRICT_ANSI__)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Strict_Ansi_Not_Ctd fix
+ */
+tSCC zStrict_Ansi_Not_CtdName[] =
+ "strict_ansi_not_ctd";
+
+/*
+ * File name selection pattern
+ */
+tSCC zStrict_Ansi_Not_CtdList[] =
+ "math.h\0limits.h\0stdio.h\0signal.h\0stdlib.h\0sys/signal.h\0time.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzStrict_Ansi_Not_CtdMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zStrict_Ansi_Not_CtdSelect0[] =
+ "^([ \t]*(\\(|&&|\\|\\|)([ \t(]*!*[ \t]*defined\\([a-zA-Z_0-9]+\\)[ \t]*[|&][|&])*[ \t(]*)(__STDC__[ \t]*(|-[ \t]*0[ \t]*)==[ \t]*0)";
+
+/*
+ * perform the C function call test
+ */
+tSCC zStrict_Ansi_Not_CtdFTst0[] = "stdc_0_in_system_headers";
+
+#define STRICT_ANSI_NOT_CTD_TEST_CT 2
+static tTestDesc aStrict_Ansi_Not_CtdTests[] = {
+ { TT_FUNCTION, zStrict_Ansi_Not_CtdFTst0, 0 /* unused */ },
+ { TT_EGREP, zStrict_Ansi_Not_CtdSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Strict_Ansi_Not_Ctd
+ */
+static const char* apzStrict_Ansi_Not_CtdPatch[] = {
+ "format",
+ "%1 !defined(__STRICT_ANSI__)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Strict_Ansi_Only fix
+ */
+tSCC zStrict_Ansi_OnlyName[] =
+ "strict_ansi_only";
+
+/*
+ * File name selection pattern
+ */
+#define zStrict_Ansi_OnlyList (char*)NULL
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzStrict_Ansi_OnlyMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zStrict_Ansi_OnlySelect0[] =
+ "^([ \t]*#[ \t]*if.*)(__STDC__[ \t]*!=[ \t]*0|__STDC__[ \t]*==[ \t]*1|__STDC__[ \t]*-[ \t]*0[ \t]*==[ \t]*1|__STDC__[ \t]*-[ \t]*0[ \t]*!=[ \t]*0)";
+
+/*
+ * perform the C function call test
+ */
+tSCC zStrict_Ansi_OnlyFTst0[] = "stdc_0_in_system_headers";
+
+#define STRICT_ANSI_ONLY_TEST_CT 2
+static tTestDesc aStrict_Ansi_OnlyTests[] = {
+ { TT_FUNCTION, zStrict_Ansi_OnlyFTst0, 0 /* unused */ },
+ { TT_EGREP, zStrict_Ansi_OnlySelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Strict_Ansi_Only
+ */
+static const char* apzStrict_Ansi_OnlyPatch[] = {
+ "format",
+ "%1 defined(__STRICT_ANSI__)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Struct_File fix
+ */
+tSCC zStruct_FileName[] =
+ "struct_file";
+
+/*
+ * File name selection pattern
+ */
+tSCC zStruct_FileList[] =
+ "rpc/xdr.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzStruct_FileMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zStruct_FileSelect0[] =
+ "^.*xdrstdio_create.*struct __file_s";
+
+#define STRUCT_FILE_TEST_CT 1
+static tTestDesc aStruct_FileTests[] = {
+ { TT_EGREP, zStruct_FileSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Struct_File
+ */
+static const char* apzStruct_FilePatch[] = {
+ "format",
+ "struct __file_s;\n\
+%0",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Struct_Sockaddr fix
+ */
+tSCC zStruct_SockaddrName[] =
+ "struct_sockaddr";
+
+/*
+ * File name selection pattern
+ */
+tSCC zStruct_SockaddrList[] =
+ "rpc/auth.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzStruct_SockaddrMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zStruct_SockaddrSelect0[] =
+ "^.*authdes_create.*struct sockaddr[^_]";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zStruct_SockaddrBypass0[] =
+ "<sys/socket.h>";
+tSCC zStruct_SockaddrBypass1[] =
+ "struct sockaddr;\n";
+
+#define STRUCT_SOCKADDR_TEST_CT 3
+static tTestDesc aStruct_SockaddrTests[] = {
+ { TT_NEGREP, zStruct_SockaddrBypass0, (regex_t*)NULL },
+ { TT_NEGREP, zStruct_SockaddrBypass1, (regex_t*)NULL },
+ { TT_EGREP, zStruct_SockaddrSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Struct_Sockaddr
+ */
+static const char* apzStruct_SockaddrPatch[] = {
+ "format",
+ "struct sockaddr;\n\
+%0",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Sun_Auth_Proto fix
+ */
+tSCC zSun_Auth_ProtoName[] =
+ "sun_auth_proto";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSun_Auth_ProtoList[] =
+ "rpc/auth.h\0rpc/clnt.h\0rpc/svc.h\0rpc/xdr.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSun_Auth_ProtoMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSun_Auth_ProtoSelect0[] =
+ "\\(\\*[a-z][a-z_]*\\)\\(\\)";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zSun_Auth_ProtoBypass0[] =
+ "__cplusplus";
+
+#define SUN_AUTH_PROTO_TEST_CT 2
+static tTestDesc aSun_Auth_ProtoTests[] = {
+ { TT_NEGREP, zSun_Auth_ProtoBypass0, (regex_t*)NULL },
+ { TT_EGREP, zSun_Auth_ProtoSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Sun_Auth_Proto
+ */
+static const char* apzSun_Auth_ProtoPatch[] = {
+ "format",
+ "#ifdef __cplusplus\n\
+%1(...);%2\n\
+#else\n\
+%1();%2\n\
+#endif",
+ "(.*\\(\\*[a-z][a-z_]*\\))\\(\\);(.*)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Sun_Bogus_Ifdef fix
+ */
+tSCC zSun_Bogus_IfdefName[] =
+ "sun_bogus_ifdef";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSun_Bogus_IfdefList[] =
+ "hsfs/hsfs_spec.h\0hsfs/iso_spec.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSun_Bogus_IfdefMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSun_Bogus_IfdefSelect0[] =
+ "#ifdef(.*\\|\\|.*)";
+
+#define SUN_BOGUS_IFDEF_TEST_CT 1
+static tTestDesc aSun_Bogus_IfdefTests[] = {
+ { TT_EGREP, zSun_Bogus_IfdefSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Sun_Bogus_Ifdef
+ */
+static const char* apzSun_Bogus_IfdefPatch[] = {
+ "format",
+ "#if%1",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Sun_Catmacro fix
+ */
+tSCC zSun_CatmacroName[] =
+ "sun_catmacro";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSun_CatmacroList[] =
+ "pixrect/memvar.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSun_CatmacroMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSun_CatmacroSelect0[] =
+ "^#define[ \t]+CAT\\(a,b\\).*";
+
+#define SUN_CATMACRO_TEST_CT 1
+static tTestDesc aSun_CatmacroTests[] = {
+ { TT_EGREP, zSun_CatmacroSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Sun_Catmacro
+ */
+static const char* apzSun_CatmacroPatch[] = {
+ "format",
+ "#ifdef __STDC__\n\
+# define CAT(a,b) a##b\n\
+#else\n\
+%0\n\
+#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Sun_Malloc fix
+ */
+tSCC zSun_MallocName[] =
+ "sun_malloc";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSun_MallocList[] =
+ "malloc.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSun_MallocMachs (const char**)NULL
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zSun_MallocBypass0[] =
+ "_CLASSIC_ANSI_TYPES";
+
+#define SUN_MALLOC_TEST_CT 1
+static tTestDesc aSun_MallocTests[] = {
+ { TT_NEGREP, zSun_MallocBypass0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Sun_Malloc
+ */
+static const char* apzSun_MallocPatch[] = { sed_cmd_z,
+ "-e", "s/typedef[ \t]char \\*\tmalloc_t/typedef void \\*\tmalloc_t/g",
+ "-e", "s/int[ \t][ \t]*free/void\tfree/g",
+ "-e", "s/char\\([ \t]*\\*[ \t]*malloc\\)/void\\1/g",
+ "-e", "s/char\\([ \t]*\\*[ \t]*realloc\\)/void\\1/g",
+ "-e", "s/char\\([ \t]*\\*[ \t]*calloc\\)/void\\1/g",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Sun_Rusers_Semi fix
+ */
+tSCC zSun_Rusers_SemiName[] =
+ "sun_rusers_semi";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSun_Rusers_SemiList[] =
+ "rpcsvc/rusers.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSun_Rusers_SemiMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSun_Rusers_SemiSelect0[] =
+ "_cnt$";
+
+#define SUN_RUSERS_SEMI_TEST_CT 1
+static tTestDesc aSun_Rusers_SemiTests[] = {
+ { TT_EGREP, zSun_Rusers_SemiSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Sun_Rusers_Semi
+ */
+static const char* apzSun_Rusers_SemiPatch[] = { sed_cmd_z,
+ "-e", "/^struct/,/^};/s/_cnt$/_cnt;/",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Sun_Signal fix
+ */
+tSCC zSun_SignalName[] =
+ "sun_signal";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSun_SignalList[] =
+ "sys/signal.h\0signal.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSun_SignalMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSun_SignalSelect0[] =
+ "^void\t\\(\\*signal\\(\\)\\)\\(\\);.*";
+
+#define SUN_SIGNAL_TEST_CT 1
+static tTestDesc aSun_SignalTests[] = {
+ { TT_EGREP, zSun_SignalSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Sun_Signal
+ */
+static const char* apzSun_SignalPatch[] = {
+ "format",
+ "#ifdef __cplusplus\n\
+void\t(*signal(...))(...);\n\
+#else\n\
+%0\n\
+#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Sunos_Strlen fix
+ */
+tSCC zSunos_StrlenName[] =
+ "sunos_strlen";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSunos_StrlenList[] =
+ "strings.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSunos_StrlenMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSunos_StrlenSelect0[] =
+ "int[ \t]*strlen\\(\\);(.*)";
+
+#define SUNOS_STRLEN_TEST_CT 1
+static tTestDesc aSunos_StrlenTests[] = {
+ { TT_EGREP, zSunos_StrlenSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Sunos_Strlen
+ */
+static const char* apzSunos_StrlenPatch[] = {
+ "format",
+ "__SIZE_TYPE__ strlen();%1",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Svr4_Disable_Opt fix
+ */
+tSCC zSvr4_Disable_OptName[] =
+ "svr4_disable_opt";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSvr4_Disable_OptList[] =
+ "string.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSvr4_Disable_OptMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSvr4_Disable_OptSelect0[] =
+ "#define.*__std_hdr_";
+
+#define SVR4_DISABLE_OPT_TEST_CT 1
+static tTestDesc aSvr4_Disable_OptTests[] = {
+ { TT_EGREP, zSvr4_Disable_OptSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Svr4_Disable_Opt
+ */
+static const char* apzSvr4_Disable_OptPatch[] = { sed_cmd_z,
+ "-e", "/#define.*__std_hdr_/d",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Svr4_Getcwd fix
+ */
+tSCC zSvr4_GetcwdName[] =
+ "svr4_getcwd";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSvr4_GetcwdList[] =
+ "stdlib.h\0unistd.h\0prototypes.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSvr4_GetcwdMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSvr4_GetcwdSelect0[] =
+ "getcwd\\(char \\*, int\\)";
+
+#define SVR4_GETCWD_TEST_CT 1
+static tTestDesc aSvr4_GetcwdTests[] = {
+ { TT_EGREP, zSvr4_GetcwdSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Svr4_Getcwd
+ */
+static const char* apzSvr4_GetcwdPatch[] = {
+ "format",
+ "getcwd(char *, size_t)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Svr4_Profil fix
+ */
+tSCC zSvr4_ProfilName[] =
+ "svr4_profil";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSvr4_ProfilList[] =
+ "stdlib.h\0unistd.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSvr4_ProfilMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSvr4_ProfilSelect0[] =
+ "profil\\(unsigned short \\*, unsigned int, unsigned int, unsigned int\\)";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zSvr4_ProfilBypass0[] =
+ "Silicon Graphics";
+
+#define SVR4_PROFIL_TEST_CT 2
+static tTestDesc aSvr4_ProfilTests[] = {
+ { TT_NEGREP, zSvr4_ProfilBypass0, (regex_t*)NULL },
+ { TT_EGREP, zSvr4_ProfilSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Svr4_Profil
+ */
+static const char* apzSvr4_ProfilPatch[] = {
+ "format",
+ "profil(unsigned short *, size_t, int, unsigned int)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Svr4_Sighandler_Type fix
+ */
+tSCC zSvr4_Sighandler_TypeName[] =
+ "svr4_sighandler_type";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSvr4_Sighandler_TypeList[] =
+ "sys/signal.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSvr4_Sighandler_TypeMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSvr4_Sighandler_TypeSelect0[] =
+ "void *\\(\\*\\)\\(\\)";
+
+#define SVR4_SIGHANDLER_TYPE_TEST_CT 1
+static tTestDesc aSvr4_Sighandler_TypeTests[] = {
+ { TT_EGREP, zSvr4_Sighandler_TypeSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Svr4_Sighandler_Type
+ */
+static const char* apzSvr4_Sighandler_TypePatch[] = {
+ "format",
+ "void (*)(int)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Svr4_Undeclared_Getrnge fix
+ */
+tSCC zSvr4_Undeclared_GetrngeName[] =
+ "svr4_undeclared_getrnge";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSvr4_Undeclared_GetrngeList[] =
+ "regexp.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSvr4_Undeclared_GetrngeMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSvr4_Undeclared_GetrngeSelect0[] =
+ "getrnge";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zSvr4_Undeclared_GetrngeBypass0[] =
+ "static void getrnge";
+
+#define SVR4_UNDECLARED_GETRNGE_TEST_CT 2
+static tTestDesc aSvr4_Undeclared_GetrngeTests[] = {
+ { TT_NEGREP, zSvr4_Undeclared_GetrngeBypass0, (regex_t*)NULL },
+ { TT_EGREP, zSvr4_Undeclared_GetrngeSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Svr4_Undeclared_Getrnge
+ */
+static const char* apzSvr4_Undeclared_GetrngePatch[] = {
+ "format",
+ "%0\n\
+static int getrnge ();",
+ "^static int[ \t]+size;",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Sysv68_String fix
+ */
+tSCC zSysv68_StringName[] =
+ "sysv68_string";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSysv68_StringList[] =
+ "testing.h\0string.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSysv68_StringMachs (const char**)NULL
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zSysv68_StringBypass0[] =
+ "_CLASSIC_ANSI_TYPES";
+
+#define SYSV68_STRING_TEST_CT 1
+static tTestDesc aSysv68_StringTests[] = {
+ { TT_NEGREP, zSysv68_StringBypass0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Sysv68_String
+ */
+static const char* apzSysv68_StringPatch[] = { sed_cmd_z,
+ "-e", "s/extern[ \t]*int[ \t]*strlen();/extern unsigned int strlen();/",
+ "-e", "s/extern[ \t]*int[ \t]*ffs[ \t]*(long);/extern int ffs(int);/",
+ "-e", "s/strdup(char \\*s1);/strdup(const char *s1);/",
+ "-e", "/^extern char$/N",
+ "-e", "s/^extern char\\(\\n\t\\*memccpy(),\\)$/extern void\\1/",
+ "-e", "/^extern int$/N",
+ "-e", "s/^extern int\\(\\n\tstrlen(),\\)/extern size_t\\1/",
+ "-e", "/^\tstrncmp(),$/N",
+ "-e", "s/^\\(\tstrncmp()\\),\\n\\(\tstrlen(),\\)$/\\1;\\\n\
+extern unsigned int\\\n\
+\\2/",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Sysz_Stdlib_For_Sun fix
+ */
+tSCC zSysz_Stdlib_For_SunName[] =
+ "sysz_stdlib_for_sun";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSysz_Stdlib_For_SunList[] =
+ "stdlib.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSysz_Stdlib_For_SunMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSysz_Stdlib_For_SunSelect0[] =
+ "char[ \t]*\\*[ \t]*(calloc|malloc|realloc|bsearch)[ \t]*\\(";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zSysz_Stdlib_For_SunBypass0[] =
+ "_CLASSIC_ANSI_TYPES";
+
+#define SYSZ_STDLIB_FOR_SUN_TEST_CT 2
+static tTestDesc aSysz_Stdlib_For_SunTests[] = {
+ { TT_NEGREP, zSysz_Stdlib_For_SunBypass0, (regex_t*)NULL },
+ { TT_EGREP, zSysz_Stdlib_For_SunSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Sysz_Stdlib_For_Sun
+ */
+static const char* apzSysz_Stdlib_For_SunPatch[] = {
+ "format",
+ "void *\t%1(",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Thread_Keyword fix
+ */
+tSCC zThread_KeywordName[] =
+ "thread_keyword";
+
+/*
+ * File name selection pattern
+ */
+tSCC zThread_KeywordList[] =
+ "pthread.h\0bits/sigthread.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzThread_KeywordMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zThread_KeywordSelect0[] =
+ "([* ])__thread([,)])";
+
+#define THREAD_KEYWORD_TEST_CT 1
+static tTestDesc aThread_KeywordTests[] = {
+ { TT_EGREP, zThread_KeywordSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Thread_Keyword
+ */
+static const char* apzThread_KeywordPatch[] = {
+ "format",
+ "%1__thr%2",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Tinfo_Cplusplus fix
+ */
+tSCC zTinfo_CplusplusName[] =
+ "tinfo_cplusplus";
+
+/*
+ * File name selection pattern
+ */
+tSCC zTinfo_CplusplusList[] =
+ "tinfo.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzTinfo_CplusplusMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zTinfo_CplusplusSelect0[] =
+ "[ \t]_cplusplus";
+
+#define TINFO_CPLUSPLUS_TEST_CT 1
+static tTestDesc aTinfo_CplusplusTests[] = {
+ { TT_EGREP, zTinfo_CplusplusSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Tinfo_Cplusplus
+ */
+static const char* apzTinfo_CplusplusPatch[] = {
+ "format",
+ " __cplusplus",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Ultrix_Const fix
+ */
+tSCC zUltrix_ConstName[] =
+ "ultrix_const";
+
+/*
+ * File name selection pattern
+ */
+tSCC zUltrix_ConstList[] =
+ "stdio.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzUltrix_ConstMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zUltrix_ConstSelect0[] =
+ "perror\\( char \\*";
+
+#define ULTRIX_CONST_TEST_CT 1
+static tTestDesc aUltrix_ConstTests[] = {
+ { TT_EGREP, zUltrix_ConstSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Ultrix_Const
+ */
+static const char* apzUltrix_ConstPatch[] = {
+ "format",
+ "%1 const %3 *__",
+ "([ \t*](perror|fputs|fwrite|scanf|fscanf)\\(.*)[ \t]+(char|void) \\*__",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Ultrix_Const2 fix
+ */
+tSCC zUltrix_Const2Name[] =
+ "ultrix_const2";
+
+/*
+ * File name selection pattern
+ */
+tSCC zUltrix_Const2List[] =
+ "stdio.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzUltrix_Const2Machs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zUltrix_Const2Select0[] =
+ "\\*fopen\\( char \\*";
+
+#define ULTRIX_CONST2_TEST_CT 1
+static tTestDesc aUltrix_Const2Tests[] = {
+ { TT_EGREP, zUltrix_Const2Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Ultrix_Const2
+ */
+static const char* apzUltrix_Const2Patch[] = {
+ "format",
+ "%1( const char *%3, const char *",
+ "([ \t*](fopen|sscanf|popen|tempnam))\\([ \t]*char[ \t]*\\*([^,]*),[ \t]*char[ \t]*\\*[ \t]*",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Va_I960_Macro fix
+ */
+tSCC zVa_I960_MacroName[] =
+ "va_i960_macro";
+
+/*
+ * File name selection pattern
+ */
+tSCC zVa_I960_MacroList[] =
+ "arch/i960/archI960.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzVa_I960_MacroMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zVa_I960_MacroSelect0[] =
+ "__(vsiz|vali|vpad|alignof__)";
+
+#define VA_I960_MACRO_TEST_CT 1
+static tTestDesc aVa_I960_MacroTests[] = {
+ { TT_EGREP, zVa_I960_MacroSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Va_I960_Macro
+ */
+static const char* apzVa_I960_MacroPatch[] = {
+ "format",
+ "__vx%1",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Void_Null fix
+ */
+tSCC zVoid_NullName[] =
+ "void_null";
+
+/*
+ * File name selection pattern
+ */
+tSCC zVoid_NullList[] =
+ "curses.h\0dbm.h\0locale.h\0stdio.h\0stdlib.h\0string.h\0time.h\0unistd.h\0sys/dir.h\0sys/param.h\0sys/types.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzVoid_NullMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zVoid_NullSelect0[] =
+ "^#[ \t]*define[ \t]+NULL[ \t]+\\(\\(void[ \t]*\\*\\)0\\)";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zVoid_NullBypass0[] =
+ "__cplusplus";
+
+#define VOID_NULL_TEST_CT 2
+static tTestDesc aVoid_NullTests[] = {
+ { TT_NEGREP, zVoid_NullBypass0, (regex_t*)NULL },
+ { TT_EGREP, zVoid_NullSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Void_Null
+ */
+static const char* apzVoid_NullPatch[] = {
+ "format",
+ "#define NULL 0",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Vxworks_Gcc_Problem fix
+ */
+tSCC zVxworks_Gcc_ProblemName[] =
+ "vxworks_gcc_problem";
+
+/*
+ * File name selection pattern
+ */
+tSCC zVxworks_Gcc_ProblemList[] =
+ "types/vxTypesBase.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzVxworks_Gcc_ProblemMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zVxworks_Gcc_ProblemSelect0[] =
+ "__GNUC_TYPEOF_FEATURE_BROKEN_USE_DEFAULT_UNTIL_FIXED__";
+
+#define VXWORKS_GCC_PROBLEM_TEST_CT 1
+static tTestDesc aVxworks_Gcc_ProblemTests[] = {
+ { TT_EGREP, zVxworks_Gcc_ProblemSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Vxworks_Gcc_Problem
+ */
+static const char* apzVxworks_Gcc_ProblemPatch[] = { sed_cmd_z,
+ "-e", "s/#ifdef __GNUC_TYPEOF_FEATURE_BROKEN_USE_DEFAULT_UNTIL_FIXED__/#if 1/",
+ "-e", "/[ \t]size_t/i\\\n\
+#ifndef _GCC_SIZE_T\\\n\
+#define _GCC_SIZE_T\n",
+ "-e", "/[ \t]size_t/a\\\n\
+#endif\n",
+ "-e", "/[ \t]ptrdiff_t/i\\\n\
+#ifndef _GCC_PTRDIFF_T\\\n\
+#define _GCC_PTRDIFF_T\n",
+ "-e", "/[ \t]ptrdiff_t/a\\\n\
+#endif\n",
+ "-e", "/[ \t]wchar_t/i\\\n\
+#ifndef _GCC_WCHAR_T\\\n\
+#define _GCC_WCHAR_T\n",
+ "-e", "/[ \t]wchar_t/a\\\n\
+#endif\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Vxworks_Needs_Vxtypes fix
+ */
+tSCC zVxworks_Needs_VxtypesName[] =
+ "vxworks_needs_vxtypes";
+
+/*
+ * File name selection pattern
+ */
+tSCC zVxworks_Needs_VxtypesList[] =
+ "time.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzVxworks_Needs_VxtypesMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zVxworks_Needs_VxtypesSelect0[] =
+ "uint_t([ \t]+_clocks_per_sec)";
+
+#define VXWORKS_NEEDS_VXTYPES_TEST_CT 1
+static tTestDesc aVxworks_Needs_VxtypesTests[] = {
+ { TT_EGREP, zVxworks_Needs_VxtypesSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Vxworks_Needs_Vxtypes
+ */
+static const char* apzVxworks_Needs_VxtypesPatch[] = {
+ "format",
+ "unsigned int%1",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Vxworks_Needs_Vxworks fix
+ */
+tSCC zVxworks_Needs_VxworksName[] =
+ "vxworks_needs_vxworks";
+
+/*
+ * File name selection pattern
+ */
+tSCC zVxworks_Needs_VxworksList[] =
+ "sys/stat.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzVxworks_Needs_VxworksMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zVxworks_Needs_VxworksSelect0[] =
+ "#[ \t]define[ \t]+__INCstath";
+
+/*
+ * perform the 'test' shell command - do fix on success
+ */
+tSCC zVxworks_Needs_VxworksTest0[] =
+ " -r types/vxTypesOld.h";
+tSCC zVxworks_Needs_VxworksTest1[] =
+ " -n \"`egrep '#include' $file`\"";
+tSCC zVxworks_Needs_VxworksTest2[] =
+ " -n \"`egrep ULONG $file`\"";
+
+#define VXWORKS_NEEDS_VXWORKS_TEST_CT 4
+static tTestDesc aVxworks_Needs_VxworksTests[] = {
+ { TT_TEST, zVxworks_Needs_VxworksTest0, 0 /* unused */ },
+ { TT_TEST, zVxworks_Needs_VxworksTest1, 0 /* unused */ },
+ { TT_TEST, zVxworks_Needs_VxworksTest2, 0 /* unused */ },
+ { TT_EGREP, zVxworks_Needs_VxworksSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Vxworks_Needs_Vxworks
+ */
+static const char* apzVxworks_Needs_VxworksPatch[] = { sed_cmd_z,
+ "-e", "/#[ \t]define[ \t][ \t]*__INCstath/a\\\n\
+#include <types/vxTypesOld.h>\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Vxworks_Time fix
+ */
+tSCC zVxworks_TimeName[] =
+ "vxworks_time";
+
+/*
+ * File name selection pattern
+ */
+tSCC zVxworks_TimeList[] =
+ "time.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzVxworks_TimeMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zVxworks_TimeSelect0[] =
+ "#[ \t]*define[ \t]+VOIDFUNCPTR[ \t].*";
+
+/*
+ * perform the 'test' shell command - do fix on success
+ */
+tSCC zVxworks_TimeTest0[] =
+ " -r vxWorks.h";
+
+#define VXWORKS_TIME_TEST_CT 2
+static tTestDesc aVxworks_TimeTests[] = {
+ { TT_TEST, zVxworks_TimeTest0, 0 /* unused */ },
+ { TT_EGREP, zVxworks_TimeSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Vxworks_Time
+ */
+static const char* apzVxworks_TimePatch[] = {
+ "format",
+ "#ifndef __gcc_VOIDFUNCPTR_defined\n\
+#ifdef __cplusplus\n\
+typedef void (*__gcc_VOIDFUNCPTR) (...);\n\
+#else\n\
+typedef void (*__gcc_VOIDFUNCPTR) ();\n\
+#endif\n\
+#define __gcc_VOIDFUNCPTR_defined\n\
+#endif\n\
+#define VOIDFUNCPTR __gcc_VOIDFUNCPTR",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of X11_Class fix
+ */
+tSCC zX11_ClassName[] =
+ "x11_class";
+
+/*
+ * File name selection pattern
+ */
+tSCC zX11_ClassList[] =
+ "X11/ShellP.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzX11_ClassMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zX11_ClassSelect0[] =
+ "^([ \t]*char \\*)class;(.*)";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zX11_ClassBypass0[] =
+ "__cplusplus";
+
+#define X11_CLASS_TEST_CT 2
+static tTestDesc aX11_ClassTests[] = {
+ { TT_NEGREP, zX11_ClassBypass0, (regex_t*)NULL },
+ { TT_EGREP, zX11_ClassSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for X11_Class
+ */
+static const char* apzX11_ClassPatch[] = {
+ "format",
+ "#ifdef __cplusplus\n\
+%1c_class;%2\n\
+#else\n\
+%1class;%2\n\
+#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of X11_Class_Usage fix
+ */
+tSCC zX11_Class_UsageName[] =
+ "x11_class_usage";
+
+/*
+ * File name selection pattern
+ */
+tSCC zX11_Class_UsageList[] =
+ "Xm/BaseClassI.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzX11_Class_UsageMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zX11_Class_UsageSelect0[] =
+ " class\\)";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zX11_Class_UsageBypass0[] =
+ "__cplusplus";
+
+#define X11_CLASS_USAGE_TEST_CT 2
+static tTestDesc aX11_Class_UsageTests[] = {
+ { TT_NEGREP, zX11_Class_UsageBypass0, (regex_t*)NULL },
+ { TT_EGREP, zX11_Class_UsageSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for X11_Class_Usage
+ */
+static const char* apzX11_Class_UsagePatch[] = {
+ "format",
+ " c_class)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of X11_New fix
+ */
+tSCC zX11_NewName[] =
+ "x11_new";
+
+/*
+ * File name selection pattern
+ */
+tSCC zX11_NewList[] =
+ "Xm/Traversal.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzX11_NewMachs (const char**)NULL
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zX11_NewBypass0[] =
+ "__cplusplus";
+
+#define X11_NEW_TEST_CT 1
+static tTestDesc aX11_NewTests[] = {
+ { TT_NEGREP, zX11_NewBypass0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for X11_New
+ */
+static const char* apzX11_NewPatch[] = { sed_cmd_z,
+ "-e", "/Widget\told, new;/i\\\n\
+#ifdef __cplusplus\\\n\
+\\\tWidget\told, c_new;\\\n\
+#else\n",
+ "-e", "/Widget\told, new;/a\\\n\
+#endif\n",
+ "-e", "s/Widget new,/Widget c_new,/g",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of X11_Sprintf fix
+ */
+tSCC zX11_SprintfName[] =
+ "x11_sprintf";
+
+/*
+ * File name selection pattern
+ */
+tSCC zX11_SprintfList[] =
+ "X11/Xmu.h\0X11/Xmu/Xmu.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzX11_SprintfMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zX11_SprintfSelect0[] =
+ "^extern char \\*\tsprintf\\(\\);$";
+
+#define X11_SPRINTF_TEST_CT 1
+static tTestDesc aX11_SprintfTests[] = {
+ { TT_EGREP, zX11_SprintfSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for X11_Sprintf
+ */
+static const char* apzX11_SprintfPatch[] = {
+ "format",
+ "#ifndef __STDC__\n\
+%0\n\
+#endif /* !defined __STDC__ */",
+ (char*)NULL };
+
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * List of all fixes
+ */
+#define REGEX_COUNT 249
+#define MACH_LIST_SIZE_LIMIT 181
+#define FIX_COUNT 210
+
+/*
+ * Enumerate the fixes
+ */
+typedef enum {
+ AAB_AIX_STDIO_FIXIDX,
+ AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_FIXIDX,
+ AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_2_FIXIDX,
+ AAB_FD_ZERO_ASM_POSIX_TYPES_H_FIXIDX,
+ AAB_FD_ZERO_GNU_TYPES_H_FIXIDX,
+ AAB_FD_ZERO_SELECTBITS_H_FIXIDX,
+ AAB_SOLARIS_SYS_VARARGS_H_FIXIDX,
+ AAB_SUN_MEMCPY_FIXIDX,
+ AIX_COMPLEX_FIXIDX,
+ AIX_PTHREAD_FIXIDX,
+ AIX_STDINT_1_FIXIDX,
+ AIX_STDINT_2_FIXIDX,
+ AIX_STDINT_3_FIXIDX,
+ AIX_STDINT_4_FIXIDX,
+ AIX_STDINT_5_FIXIDX,
+ AIX_SYSMACHINE_FIXIDX,
+ AIX_SYSWAIT_2_FIXIDX,
+ AIX_VOLATILE_FIXIDX,
+ ALPHA___ASSERT_FIXIDX,
+ ALPHA___EXTERN_PREFIX_FIXIDX,
+ ALPHA___EXTERN_PREFIX_STANDARDS_FIXIDX,
+ ALPHA___EXTERN_PREFIX_SYS_STAT_FIXIDX,
+ ALPHA_ASSERT_FIXIDX,
+ ALPHA_BAD_LVAL_FIXIDX,
+ ALPHA_GETOPT_FIXIDX,
+ ALPHA_IF_SEMICOLON_FIXIDX,
+ ALPHA_PARENS_FIXIDX,
+ ALPHA_PTHREAD_FIXIDX,
+ ALPHA_PTHREAD_GCC_FIXIDX,
+ ALPHA_PTHREAD_INIT_FIXIDX,
+ ALPHA_SBRK_FIXIDX,
+ AVOID_BOOL_DEFINE_FIXIDX,
+ AVOID_BOOL_TYPE_FIXIDX,
+ AVOID_WCHAR_T_TYPE_FIXIDX,
+ BAD_STRUCT_TERM_FIXIDX,
+ BADQUOTE_FIXIDX,
+ BROKEN_ASSERT_STDIO_FIXIDX,
+ BROKEN_ASSERT_STDLIB_FIXIDX,
+ BROKEN_CABS_FIXIDX,
+ BROKEN_NAN_FIXIDX,
+ BSD_STDIO_ATTRS_CONFLICT_FIXIDX,
+ CTRL_QUOTES_DEF_FIXIDX,
+ CTRL_QUOTES_USE_FIXIDX,
+ CXX_UNREADY_FIXIDX,
+ DARWIN_EXTERNC_FIXIDX,
+ DARWIN_GCC4_BREAKAGE_FIXIDX,
+ DARWIN_PRIVATE_EXTERN_FIXIDX,
+ DARWIN_STDINT_1_FIXIDX,
+ DARWIN_STDINT_2_FIXIDX,
+ DARWIN_STDINT_3_FIXIDX,
+ DARWIN_STDINT_4_FIXIDX,
+ DARWIN_STDINT_5_FIXIDX,
+ DARWIN_STDINT_6_FIXIDX,
+ DARWIN_STDINT_7_FIXIDX,
+ DEC_INTERN_ASM_FIXIDX,
+ DJGPP_WCHAR_H_FIXIDX,
+ ECD_CURSOR_FIXIDX,
+ FREEBSD_GCC3_BREAKAGE_FIXIDX,
+ FREEBSD_GCC4_BREAKAGE_FIXIDX,
+ GLIBC_C99_INLINE_1_FIXIDX,
+ GLIBC_C99_INLINE_1A_FIXIDX,
+ GLIBC_C99_INLINE_2_FIXIDX,
+ GLIBC_C99_INLINE_3_FIXIDX,
+ GLIBC_C99_INLINE_4_FIXIDX,
+ GLIBC_MUTEX_INIT_FIXIDX,
+ GLIBC_STDINT_FIXIDX,
+ GLIBC_STRNCPY_FIXIDX,
+ GLIBC_TGMATH_FIXIDX,
+ GNU_TYPES_FIXIDX,
+ HP_INLINE_FIXIDX,
+ HP_SYSFILE_FIXIDX,
+ HPPA_HPUX_FP_MACROS_FIXIDX,
+ HPUX10_CPP_POW_INLINE_FIXIDX,
+ HPUX11_CPP_POW_INLINE_FIXIDX,
+ HPUX10_CTYPE_DECLARATIONS1_FIXIDX,
+ HPUX10_CTYPE_DECLARATIONS2_FIXIDX,
+ HPUX10_STDIO_DECLARATIONS_FIXIDX,
+ HPUX11_ABS_FIXIDX,
+ HPUX11_FABSF_FIXIDX,
+ HPUX11_PTHREAD_CONST_FIXIDX,
+ HPUX11_SIZE_T_FIXIDX,
+ HPUX11_SNPRINTF_FIXIDX,
+ HPUX11_VSNPRINTF_FIXIDX,
+ HPUX8_BOGUS_INLINES_FIXIDX,
+ HPUX_CTYPE_MACROS_FIXIDX,
+ HPUX_HTONL_FIXIDX,
+ HPUX_LONG_DOUBLE_FIXIDX,
+ HPUX_LONG_DOUBLE_2_FIXIDX,
+ HPUX_SYSTIME_FIXIDX,
+ HPUX_SPU_INFO_FIXIDX,
+ HPUX11_EXTERN_SENDFILE_FIXIDX,
+ HPUX11_EXTERN_SENDPATH_FIXIDX,
+ HPUX_EXTERN_ERRNO_FIXIDX,
+ HPUX_PTHREAD_INITIALIZERS_FIXIDX,
+ HPUX_C99_INTPTR_FIXIDX,
+ HPUX_C99_INTTYPES_FIXIDX,
+ HPUX_C99_INTTYPES2_FIXIDX,
+ HPUX_STDINT_LEAST_FAST_FIXIDX,
+ HPUX_INTTYPE_INT8_T_FIXIDX,
+ HPUX_IMAGINARY_I_FIXIDX,
+ HUGE_VAL_HEX_FIXIDX,
+ HUGE_VALF_HEX_FIXIDX,
+ HUGE_VALL_HEX_FIXIDX,
+ INT_ABORT_FREE_AND_EXIT_FIXIDX,
+ IO_QUOTES_DEF_FIXIDX,
+ IO_QUOTES_USE_FIXIDX,
+ IP_MISSING_SEMI_FIXIDX,
+ IRIX___RESTRICT_FIXIDX,
+ IRIX___GENERIC1_FIXIDX,
+ IRIX___GENERIC2_FIXIDX,
+ IRIX_ASM_APOSTROPHE_FIXIDX,
+ IRIX_COMPLEX_FIXIDX,
+ IRIX_LIMITS_CONST_FIXIDX,
+ IRIX_PTHREAD_INIT_FIXIDX,
+ IRIX_SOCKLEN_T_FIXIDX,
+ IRIX_STDINT_C99_MODE_FIXIDX,
+ IRIX_STDINT_C99_TYPES_FIXIDX,
+ IRIX_STDINT_C99_MACROS_FIXIDX,
+ IRIX_STDIO_VA_LIST_FIXIDX,
+ IRIX_WCSFTIME_FIXIDX,
+ KANDR_CONCAT_FIXIDX,
+ LINUX_IA64_UCONTEXT_FIXIDX,
+ LYNXOS_NO_WARNING_IN_SYS_TIME_H_FIXIDX,
+ LYNXOS_MISSING_PUTENV_FIXIDX,
+ MACHINE_ANSI_H_VA_LIST_FIXIDX,
+ MACHINE_NAME_FIXIDX,
+ MATH_EXCEPTION_FIXIDX,
+ MATH_HUGE_VAL_FROM_DBL_MAX_FIXIDX,
+ NESTED_AUTH_DES_FIXIDX,
+ NETBSD_C99_INLINE_1_FIXIDX,
+ NETBSD_C99_INLINE_2_FIXIDX,
+ NETBSD_EXTRA_SEMICOLON_FIXIDX,
+ NEWLIB_STDINT_1_FIXIDX,
+ NEWLIB_STDINT_2_FIXIDX,
+ NEXT_MATH_PREFIX_FIXIDX,
+ NEXT_TEMPLATE_FIXIDX,
+ NEXT_VOLITILE_FIXIDX,
+ NEXT_WAIT_UNION_FIXIDX,
+ NODEENT_SYNTAX_FIXIDX,
+ OPENBSD_NULL_DEFINITION_FIXIDX,
+ OBSTACK_LVALUE_CAST_FIXIDX,
+ OPENBSD_VA_START_FIXIDX,
+ OSF_NAMESPACE_A_FIXIDX,
+ OSF_NAMESPACE_C_FIXIDX,
+ PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_FIXIDX,
+ READ_RET_TYPE_FIXIDX,
+ RPC_XDR_LVALUE_CAST_A_FIXIDX,
+ RPC_XDR_LVALUE_CAST_B_FIXIDX,
+ RS6000_DOUBLE_FIXIDX,
+ RS6000_FCHMOD_FIXIDX,
+ RS6000_PARAM_FIXIDX,
+ SOLARIS___RESTRICT_FIXIDX,
+ SOLARIS_COMPLEX_FIXIDX,
+ SOLARIS_COMPLEX_CXX_FIXIDX,
+ SOLARIS_COND_INIT_FIXIDX,
+ SOLARIS_MATH_1_FIXIDX,
+ SOLARIS_MATH_2_FIXIDX,
+ SOLARIS_MATH_3_FIXIDX,
+ SOLARIS_MATH_4_FIXIDX,
+ SOLARIS_MATH_8_FIXIDX,
+ SOLARIS_MATH_9_FIXIDX,
+ SOLARIS_MATH_10_FIXIDX,
+ SOLARIS_MUTEX_INIT_2_FIXIDX,
+ SOLARIS_RWLOCK_INIT_1_FIXIDX,
+ SOLARIS_ONCE_INIT_1_FIXIDX,
+ SOLARIS_ONCE_INIT_2_FIXIDX,
+ SOLARIS_INT_CONST_FIXIDX,
+ SOLARIS_INT_LIMITS_1_FIXIDX,
+ SOLARIS_INT_LIMITS_2_FIXIDX,
+ SOLARIS_INT_LIMITS_3_FIXIDX,
+ SOLARIS_INT_TYPES_FIXIDX,
+ SOLARIS_STDIO_TAG_FIXIDX,
+ SOLARIS_SYS_VA_LIST_FIXIDX,
+ STATSSWTCH_FIXIDX,
+ STDIO_STDARG_H_FIXIDX,
+ STDIO_VA_LIST_FIXIDX,
+ STDIO_VA_LIST_CLIENTS_FIXIDX,
+ STRICT_ANSI_NOT_FIXIDX,
+ STRICT_ANSI_NOT_CTD_FIXIDX,
+ STRICT_ANSI_ONLY_FIXIDX,
+ STRUCT_FILE_FIXIDX,
+ STRUCT_SOCKADDR_FIXIDX,
+ SUN_AUTH_PROTO_FIXIDX,
+ SUN_BOGUS_IFDEF_FIXIDX,
+ SUN_CATMACRO_FIXIDX,
+ SUN_MALLOC_FIXIDX,
+ SUN_RUSERS_SEMI_FIXIDX,
+ SUN_SIGNAL_FIXIDX,
+ SUNOS_STRLEN_FIXIDX,
+ SVR4_DISABLE_OPT_FIXIDX,
+ SVR4_GETCWD_FIXIDX,
+ SVR4_PROFIL_FIXIDX,
+ SVR4_SIGHANDLER_TYPE_FIXIDX,
+ SVR4_UNDECLARED_GETRNGE_FIXIDX,
+ SYSV68_STRING_FIXIDX,
+ SYSZ_STDLIB_FOR_SUN_FIXIDX,
+ THREAD_KEYWORD_FIXIDX,
+ TINFO_CPLUSPLUS_FIXIDX,
+ ULTRIX_CONST_FIXIDX,
+ ULTRIX_CONST2_FIXIDX,
+ VA_I960_MACRO_FIXIDX,
+ VOID_NULL_FIXIDX,
+ VXWORKS_GCC_PROBLEM_FIXIDX,
+ VXWORKS_NEEDS_VXTYPES_FIXIDX,
+ VXWORKS_NEEDS_VXWORKS_FIXIDX,
+ VXWORKS_TIME_FIXIDX,
+ X11_CLASS_FIXIDX,
+ X11_CLASS_USAGE_FIXIDX,
+ X11_NEW_FIXIDX,
+ X11_SPRINTF_FIXIDX
+} t_fixinc_idx;
+
+tFixDesc fixDescList[ FIX_COUNT ] = {
+ { zAab_Aix_StdioName, zAab_Aix_StdioList,
+ apzAab_Aix_StdioMachs,
+ AAB_AIX_STDIO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAab_Aix_StdioTests, apzAab_Aix_StdioPatch, 0 },
+
+ { zAab_Darwin7_9_Long_Double_FuncsName, zAab_Darwin7_9_Long_Double_FuncsList,
+ apzAab_Darwin7_9_Long_Double_FuncsMachs,
+ AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
+ aAab_Darwin7_9_Long_Double_FuncsTests, apzAab_Darwin7_9_Long_Double_FuncsPatch, 0 },
+
+ { zAab_Darwin7_9_Long_Double_Funcs_2Name, zAab_Darwin7_9_Long_Double_Funcs_2List,
+ apzAab_Darwin7_9_Long_Double_Funcs_2Machs,
+ AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAab_Darwin7_9_Long_Double_Funcs_2Tests, apzAab_Darwin7_9_Long_Double_Funcs_2Patch, 0 },
+
+ { zAab_Fd_Zero_Asm_Posix_Types_HName, zAab_Fd_Zero_Asm_Posix_Types_HList,
+ apzAab_Fd_Zero_Asm_Posix_Types_HMachs,
+ AAB_FD_ZERO_ASM_POSIX_TYPES_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
+ aAab_Fd_Zero_Asm_Posix_Types_HTests, apzAab_Fd_Zero_Asm_Posix_Types_HPatch, 0 },
+
+ { zAab_Fd_Zero_Gnu_Types_HName, zAab_Fd_Zero_Gnu_Types_HList,
+ apzAab_Fd_Zero_Gnu_Types_HMachs,
+ AAB_FD_ZERO_GNU_TYPES_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
+ aAab_Fd_Zero_Gnu_Types_HTests, apzAab_Fd_Zero_Gnu_Types_HPatch, 0 },
+
+ { zAab_Fd_Zero_Selectbits_HName, zAab_Fd_Zero_Selectbits_HList,
+ apzAab_Fd_Zero_Selectbits_HMachs,
+ AAB_FD_ZERO_SELECTBITS_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
+ aAab_Fd_Zero_Selectbits_HTests, apzAab_Fd_Zero_Selectbits_HPatch, 0 },
+
+ { zAab_Solaris_Sys_Varargs_HName, zAab_Solaris_Sys_Varargs_HList,
+ apzAab_Solaris_Sys_Varargs_HMachs,
+ AAB_SOLARIS_SYS_VARARGS_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
+ aAab_Solaris_Sys_Varargs_HTests, apzAab_Solaris_Sys_Varargs_HPatch, 0 },
+
+ { zAab_Sun_MemcpyName, zAab_Sun_MemcpyList,
+ apzAab_Sun_MemcpyMachs,
+ AAB_SUN_MEMCPY_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
+ aAab_Sun_MemcpyTests, apzAab_Sun_MemcpyPatch, 0 },
+
+ { zAix_ComplexName, zAix_ComplexList,
+ apzAix_ComplexMachs,
+ AIX_COMPLEX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAix_ComplexTests, apzAix_ComplexPatch, 0 },
+
+ { zAix_PthreadName, zAix_PthreadList,
+ apzAix_PthreadMachs,
+ AIX_PTHREAD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAix_PthreadTests, apzAix_PthreadPatch, 0 },
+
+ { zAix_Stdint_1Name, zAix_Stdint_1List,
+ apzAix_Stdint_1Machs,
+ AIX_STDINT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAix_Stdint_1Tests, apzAix_Stdint_1Patch, 0 },
+
+ { zAix_Stdint_2Name, zAix_Stdint_2List,
+ apzAix_Stdint_2Machs,
+ AIX_STDINT_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAix_Stdint_2Tests, apzAix_Stdint_2Patch, 0 },
+
+ { zAix_Stdint_3Name, zAix_Stdint_3List,
+ apzAix_Stdint_3Machs,
+ AIX_STDINT_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAix_Stdint_3Tests, apzAix_Stdint_3Patch, 0 },
+
+ { zAix_Stdint_4Name, zAix_Stdint_4List,
+ apzAix_Stdint_4Machs,
+ AIX_STDINT_4_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAix_Stdint_4Tests, apzAix_Stdint_4Patch, 0 },
+
+ { zAix_Stdint_5Name, zAix_Stdint_5List,
+ apzAix_Stdint_5Machs,
+ AIX_STDINT_5_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAix_Stdint_5Tests, apzAix_Stdint_5Patch, 0 },
+
+ { zAix_SysmachineName, zAix_SysmachineList,
+ apzAix_SysmachineMachs,
+ AIX_SYSMACHINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAix_SysmachineTests, apzAix_SysmachinePatch, 0 },
+
+ { zAix_Syswait_2Name, zAix_Syswait_2List,
+ apzAix_Syswait_2Machs,
+ AIX_SYSWAIT_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAix_Syswait_2Tests, apzAix_Syswait_2Patch, 0 },
+
+ { zAix_VolatileName, zAix_VolatileList,
+ apzAix_VolatileMachs,
+ AIX_VOLATILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAix_VolatileTests, apzAix_VolatilePatch, 0 },
+
+ { zAlpha___AssertName, zAlpha___AssertList,
+ apzAlpha___AssertMachs,
+ ALPHA___ASSERT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAlpha___AssertTests, apzAlpha___AssertPatch, 0 },
+
+ { zAlpha___Extern_PrefixName, zAlpha___Extern_PrefixList,
+ apzAlpha___Extern_PrefixMachs,
+ ALPHA___EXTERN_PREFIX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAlpha___Extern_PrefixTests, apzAlpha___Extern_PrefixPatch, 0 },
+
+ { zAlpha___Extern_Prefix_StandardsName, zAlpha___Extern_Prefix_StandardsList,
+ apzAlpha___Extern_Prefix_StandardsMachs,
+ ALPHA___EXTERN_PREFIX_STANDARDS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAlpha___Extern_Prefix_StandardsTests, apzAlpha___Extern_Prefix_StandardsPatch, 0 },
+
+ { zAlpha___Extern_Prefix_Sys_StatName, zAlpha___Extern_Prefix_Sys_StatList,
+ apzAlpha___Extern_Prefix_Sys_StatMachs,
+ ALPHA___EXTERN_PREFIX_SYS_STAT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAlpha___Extern_Prefix_Sys_StatTests, apzAlpha___Extern_Prefix_Sys_StatPatch, 0 },
+
+ { zAlpha_AssertName, zAlpha_AssertList,
+ apzAlpha_AssertMachs,
+ ALPHA_ASSERT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAlpha_AssertTests, apzAlpha_AssertPatch, 0 },
+
+ { zAlpha_Bad_LvalName, zAlpha_Bad_LvalList,
+ apzAlpha_Bad_LvalMachs,
+ ALPHA_BAD_LVAL_TEST_CT, FD_MACH_ONLY,
+ aAlpha_Bad_LvalTests, apzAlpha_Bad_LvalPatch, 0 },
+
+ { zAlpha_GetoptName, zAlpha_GetoptList,
+ apzAlpha_GetoptMachs,
+ ALPHA_GETOPT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAlpha_GetoptTests, apzAlpha_GetoptPatch, 0 },
+
+ { zAlpha_If_SemicolonName, zAlpha_If_SemicolonList,
+ apzAlpha_If_SemicolonMachs,
+ ALPHA_IF_SEMICOLON_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAlpha_If_SemicolonTests, apzAlpha_If_SemicolonPatch, 0 },
+
+ { zAlpha_ParensName, zAlpha_ParensList,
+ apzAlpha_ParensMachs,
+ ALPHA_PARENS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAlpha_ParensTests, apzAlpha_ParensPatch, 0 },
+
+ { zAlpha_PthreadName, zAlpha_PthreadList,
+ apzAlpha_PthreadMachs,
+ ALPHA_PTHREAD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAlpha_PthreadTests, apzAlpha_PthreadPatch, 0 },
+
+ { zAlpha_Pthread_GccName, zAlpha_Pthread_GccList,
+ apzAlpha_Pthread_GccMachs,
+ ALPHA_PTHREAD_GCC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAlpha_Pthread_GccTests, apzAlpha_Pthread_GccPatch, 0 },
+
+ { zAlpha_Pthread_InitName, zAlpha_Pthread_InitList,
+ apzAlpha_Pthread_InitMachs,
+ ALPHA_PTHREAD_INIT_TEST_CT, FD_MACH_ONLY,
+ aAlpha_Pthread_InitTests, apzAlpha_Pthread_InitPatch, 0 },
+
+ { zAlpha_SbrkName, zAlpha_SbrkList,
+ apzAlpha_SbrkMachs,
+ ALPHA_SBRK_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAlpha_SbrkTests, apzAlpha_SbrkPatch, 0 },
+
+ { zAvoid_Bool_DefineName, zAvoid_Bool_DefineList,
+ apzAvoid_Bool_DefineMachs,
+ AVOID_BOOL_DEFINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAvoid_Bool_DefineTests, apzAvoid_Bool_DefinePatch, 0 },
+
+ { zAvoid_Bool_TypeName, zAvoid_Bool_TypeList,
+ apzAvoid_Bool_TypeMachs,
+ AVOID_BOOL_TYPE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAvoid_Bool_TypeTests, apzAvoid_Bool_TypePatch, 0 },
+
+ { zAvoid_Wchar_T_TypeName, zAvoid_Wchar_T_TypeList,
+ apzAvoid_Wchar_T_TypeMachs,
+ AVOID_WCHAR_T_TYPE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAvoid_Wchar_T_TypeTests, apzAvoid_Wchar_T_TypePatch, 0 },
+
+ { zBad_Struct_TermName, zBad_Struct_TermList,
+ apzBad_Struct_TermMachs,
+ BAD_STRUCT_TERM_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aBad_Struct_TermTests, apzBad_Struct_TermPatch, 0 },
+
+ { zBadquoteName, zBadquoteList,
+ apzBadquoteMachs,
+ BADQUOTE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aBadquoteTests, apzBadquotePatch, 0 },
+
+ { zBroken_Assert_StdioName, zBroken_Assert_StdioList,
+ apzBroken_Assert_StdioMachs,
+ BROKEN_ASSERT_STDIO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aBroken_Assert_StdioTests, apzBroken_Assert_StdioPatch, 0 },
+
+ { zBroken_Assert_StdlibName, zBroken_Assert_StdlibList,
+ apzBroken_Assert_StdlibMachs,
+ BROKEN_ASSERT_STDLIB_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aBroken_Assert_StdlibTests, apzBroken_Assert_StdlibPatch, 0 },
+
+ { zBroken_CabsName, zBroken_CabsList,
+ apzBroken_CabsMachs,
+ BROKEN_CABS_TEST_CT, FD_MACH_ONLY,
+ aBroken_CabsTests, apzBroken_CabsPatch, 0 },
+
+ { zBroken_NanName, zBroken_NanList,
+ apzBroken_NanMachs,
+ BROKEN_NAN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aBroken_NanTests, apzBroken_NanPatch, 0 },
+
+ { zBsd_Stdio_Attrs_ConflictName, zBsd_Stdio_Attrs_ConflictList,
+ apzBsd_Stdio_Attrs_ConflictMachs,
+ BSD_STDIO_ATTRS_CONFLICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aBsd_Stdio_Attrs_ConflictTests, apzBsd_Stdio_Attrs_ConflictPatch, 0 },
+
+ { zCtrl_Quotes_DefName, zCtrl_Quotes_DefList,
+ apzCtrl_Quotes_DefMachs,
+ CTRL_QUOTES_DEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aCtrl_Quotes_DefTests, apzCtrl_Quotes_DefPatch, 0 },
+
+ { zCtrl_Quotes_UseName, zCtrl_Quotes_UseList,
+ apzCtrl_Quotes_UseMachs,
+ CTRL_QUOTES_USE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aCtrl_Quotes_UseTests, apzCtrl_Quotes_UsePatch, 0 },
+
+ { zCxx_UnreadyName, zCxx_UnreadyList,
+ apzCxx_UnreadyMachs,
+ CXX_UNREADY_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aCxx_UnreadyTests, apzCxx_UnreadyPatch, 0 },
+
+ { zDarwin_ExterncName, zDarwin_ExterncList,
+ apzDarwin_ExterncMachs,
+ DARWIN_EXTERNC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aDarwin_ExterncTests, apzDarwin_ExterncPatch, 0 },
+
+ { zDarwin_Gcc4_BreakageName, zDarwin_Gcc4_BreakageList,
+ apzDarwin_Gcc4_BreakageMachs,
+ DARWIN_GCC4_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aDarwin_Gcc4_BreakageTests, apzDarwin_Gcc4_BreakagePatch, 0 },
+
+ { zDarwin_Private_ExternName, zDarwin_Private_ExternList,
+ apzDarwin_Private_ExternMachs,
+ DARWIN_PRIVATE_EXTERN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aDarwin_Private_ExternTests, apzDarwin_Private_ExternPatch, 0 },
+
+ { zDarwin_Stdint_1Name, zDarwin_Stdint_1List,
+ apzDarwin_Stdint_1Machs,
+ DARWIN_STDINT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aDarwin_Stdint_1Tests, apzDarwin_Stdint_1Patch, 0 },
+
+ { zDarwin_Stdint_2Name, zDarwin_Stdint_2List,
+ apzDarwin_Stdint_2Machs,
+ DARWIN_STDINT_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aDarwin_Stdint_2Tests, apzDarwin_Stdint_2Patch, 0 },
+
+ { zDarwin_Stdint_3Name, zDarwin_Stdint_3List,
+ apzDarwin_Stdint_3Machs,
+ DARWIN_STDINT_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aDarwin_Stdint_3Tests, apzDarwin_Stdint_3Patch, 0 },
+
+ { zDarwin_Stdint_4Name, zDarwin_Stdint_4List,
+ apzDarwin_Stdint_4Machs,
+ DARWIN_STDINT_4_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aDarwin_Stdint_4Tests, apzDarwin_Stdint_4Patch, 0 },
+
+ { zDarwin_Stdint_5Name, zDarwin_Stdint_5List,
+ apzDarwin_Stdint_5Machs,
+ DARWIN_STDINT_5_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aDarwin_Stdint_5Tests, apzDarwin_Stdint_5Patch, 0 },
+
+ { zDarwin_Stdint_6Name, zDarwin_Stdint_6List,
+ apzDarwin_Stdint_6Machs,
+ DARWIN_STDINT_6_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aDarwin_Stdint_6Tests, apzDarwin_Stdint_6Patch, 0 },
+
+ { zDarwin_Stdint_7Name, zDarwin_Stdint_7List,
+ apzDarwin_Stdint_7Machs,
+ DARWIN_STDINT_7_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aDarwin_Stdint_7Tests, apzDarwin_Stdint_7Patch, 0 },
+
+ { zDec_Intern_AsmName, zDec_Intern_AsmList,
+ apzDec_Intern_AsmMachs,
+ DEC_INTERN_ASM_TEST_CT, FD_MACH_ONLY,
+ aDec_Intern_AsmTests, apzDec_Intern_AsmPatch, 0 },
+
+ { zDjgpp_Wchar_HName, zDjgpp_Wchar_HList,
+ apzDjgpp_Wchar_HMachs,
+ DJGPP_WCHAR_H_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aDjgpp_Wchar_HTests, apzDjgpp_Wchar_HPatch, 0 },
+
+ { zEcd_CursorName, zEcd_CursorList,
+ apzEcd_CursorMachs,
+ ECD_CURSOR_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aEcd_CursorTests, apzEcd_CursorPatch, 0 },
+
+ { zFreebsd_Gcc3_BreakageName, zFreebsd_Gcc3_BreakageList,
+ apzFreebsd_Gcc3_BreakageMachs,
+ FREEBSD_GCC3_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aFreebsd_Gcc3_BreakageTests, apzFreebsd_Gcc3_BreakagePatch, 0 },
+
+ { zFreebsd_Gcc4_BreakageName, zFreebsd_Gcc4_BreakageList,
+ apzFreebsd_Gcc4_BreakageMachs,
+ FREEBSD_GCC4_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aFreebsd_Gcc4_BreakageTests, apzFreebsd_Gcc4_BreakagePatch, 0 },
+
+ { zGlibc_C99_Inline_1Name, zGlibc_C99_Inline_1List,
+ apzGlibc_C99_Inline_1Machs,
+ GLIBC_C99_INLINE_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aGlibc_C99_Inline_1Tests, apzGlibc_C99_Inline_1Patch, 0 },
+
+ { zGlibc_C99_Inline_1aName, zGlibc_C99_Inline_1aList,
+ apzGlibc_C99_Inline_1aMachs,
+ GLIBC_C99_INLINE_1A_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aGlibc_C99_Inline_1aTests, apzGlibc_C99_Inline_1aPatch, 0 },
+
+ { zGlibc_C99_Inline_2Name, zGlibc_C99_Inline_2List,
+ apzGlibc_C99_Inline_2Machs,
+ GLIBC_C99_INLINE_2_TEST_CT, FD_MACH_ONLY,
+ aGlibc_C99_Inline_2Tests, apzGlibc_C99_Inline_2Patch, 0 },
+
+ { zGlibc_C99_Inline_3Name, zGlibc_C99_Inline_3List,
+ apzGlibc_C99_Inline_3Machs,
+ GLIBC_C99_INLINE_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aGlibc_C99_Inline_3Tests, apzGlibc_C99_Inline_3Patch, 0 },
+
+ { zGlibc_C99_Inline_4Name, zGlibc_C99_Inline_4List,
+ apzGlibc_C99_Inline_4Machs,
+ GLIBC_C99_INLINE_4_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aGlibc_C99_Inline_4Tests, apzGlibc_C99_Inline_4Patch, 0 },
+
+ { zGlibc_Mutex_InitName, zGlibc_Mutex_InitList,
+ apzGlibc_Mutex_InitMachs,
+ GLIBC_MUTEX_INIT_TEST_CT, FD_MACH_ONLY,
+ aGlibc_Mutex_InitTests, apzGlibc_Mutex_InitPatch, 0 },
+
+ { zGlibc_StdintName, zGlibc_StdintList,
+ apzGlibc_StdintMachs,
+ GLIBC_STDINT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aGlibc_StdintTests, apzGlibc_StdintPatch, 0 },
+
+ { zGlibc_StrncpyName, zGlibc_StrncpyList,
+ apzGlibc_StrncpyMachs,
+ GLIBC_STRNCPY_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aGlibc_StrncpyTests, apzGlibc_StrncpyPatch, 0 },
+
+ { zGlibc_TgmathName, zGlibc_TgmathList,
+ apzGlibc_TgmathMachs,
+ GLIBC_TGMATH_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aGlibc_TgmathTests, apzGlibc_TgmathPatch, 0 },
+
+ { zGnu_TypesName, zGnu_TypesList,
+ apzGnu_TypesMachs,
+ GNU_TYPES_TEST_CT, FD_MACH_IFNOT | FD_SUBROUTINE,
+ aGnu_TypesTests, apzGnu_TypesPatch, 0 },
+
+ { zHp_InlineName, zHp_InlineList,
+ apzHp_InlineMachs,
+ HP_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHp_InlineTests, apzHp_InlinePatch, 0 },
+
+ { zHp_SysfileName, zHp_SysfileList,
+ apzHp_SysfileMachs,
+ HP_SYSFILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHp_SysfileTests, apzHp_SysfilePatch, 0 },
+
+ { zHppa_Hpux_Fp_MacrosName, zHppa_Hpux_Fp_MacrosList,
+ apzHppa_Hpux_Fp_MacrosMachs,
+ HPPA_HPUX_FP_MACROS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHppa_Hpux_Fp_MacrosTests, apzHppa_Hpux_Fp_MacrosPatch, 0 },
+
+ { zHpux10_Cpp_Pow_InlineName, zHpux10_Cpp_Pow_InlineList,
+ apzHpux10_Cpp_Pow_InlineMachs,
+ HPUX10_CPP_POW_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux10_Cpp_Pow_InlineTests, apzHpux10_Cpp_Pow_InlinePatch, 0 },
+
+ { zHpux11_Cpp_Pow_InlineName, zHpux11_Cpp_Pow_InlineList,
+ apzHpux11_Cpp_Pow_InlineMachs,
+ HPUX11_CPP_POW_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux11_Cpp_Pow_InlineTests, apzHpux11_Cpp_Pow_InlinePatch, 0 },
+
+ { zHpux10_Ctype_Declarations1Name, zHpux10_Ctype_Declarations1List,
+ apzHpux10_Ctype_Declarations1Machs,
+ HPUX10_CTYPE_DECLARATIONS1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux10_Ctype_Declarations1Tests, apzHpux10_Ctype_Declarations1Patch, 0 },
+
+ { zHpux10_Ctype_Declarations2Name, zHpux10_Ctype_Declarations2List,
+ apzHpux10_Ctype_Declarations2Machs,
+ HPUX10_CTYPE_DECLARATIONS2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux10_Ctype_Declarations2Tests, apzHpux10_Ctype_Declarations2Patch, 0 },
+
+ { zHpux10_Stdio_DeclarationsName, zHpux10_Stdio_DeclarationsList,
+ apzHpux10_Stdio_DeclarationsMachs,
+ HPUX10_STDIO_DECLARATIONS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux10_Stdio_DeclarationsTests, apzHpux10_Stdio_DeclarationsPatch, 0 },
+
+ { zHpux11_AbsName, zHpux11_AbsList,
+ apzHpux11_AbsMachs,
+ HPUX11_ABS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux11_AbsTests, apzHpux11_AbsPatch, 0 },
+
+ { zHpux11_FabsfName, zHpux11_FabsfList,
+ apzHpux11_FabsfMachs,
+ HPUX11_FABSF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux11_FabsfTests, apzHpux11_FabsfPatch, 0 },
+
+ { zHpux11_Pthread_ConstName, zHpux11_Pthread_ConstList,
+ apzHpux11_Pthread_ConstMachs,
+ HPUX11_PTHREAD_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux11_Pthread_ConstTests, apzHpux11_Pthread_ConstPatch, 0 },
+
+ { zHpux11_Size_TName, zHpux11_Size_TList,
+ apzHpux11_Size_TMachs,
+ HPUX11_SIZE_T_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux11_Size_TTests, apzHpux11_Size_TPatch, 0 },
+
+ { zHpux11_SnprintfName, zHpux11_SnprintfList,
+ apzHpux11_SnprintfMachs,
+ HPUX11_SNPRINTF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux11_SnprintfTests, apzHpux11_SnprintfPatch, 0 },
+
+ { zHpux11_VsnprintfName, zHpux11_VsnprintfList,
+ apzHpux11_VsnprintfMachs,
+ HPUX11_VSNPRINTF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux11_VsnprintfTests, apzHpux11_VsnprintfPatch, 0 },
+
+ { zHpux8_Bogus_InlinesName, zHpux8_Bogus_InlinesList,
+ apzHpux8_Bogus_InlinesMachs,
+ HPUX8_BOGUS_INLINES_TEST_CT, FD_MACH_ONLY,
+ aHpux8_Bogus_InlinesTests, apzHpux8_Bogus_InlinesPatch, 0 },
+
+ { zHpux_Ctype_MacrosName, zHpux_Ctype_MacrosList,
+ apzHpux_Ctype_MacrosMachs,
+ HPUX_CTYPE_MACROS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux_Ctype_MacrosTests, apzHpux_Ctype_MacrosPatch, 0 },
+
+ { zHpux_HtonlName, zHpux_HtonlList,
+ apzHpux_HtonlMachs,
+ HPUX_HTONL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux_HtonlTests, apzHpux_HtonlPatch, 0 },
+
+ { zHpux_Long_DoubleName, zHpux_Long_DoubleList,
+ apzHpux_Long_DoubleMachs,
+ HPUX_LONG_DOUBLE_TEST_CT, FD_MACH_ONLY,
+ aHpux_Long_DoubleTests, apzHpux_Long_DoublePatch, 0 },
+
+ { zHpux_Long_Double_2Name, zHpux_Long_Double_2List,
+ apzHpux_Long_Double_2Machs,
+ HPUX_LONG_DOUBLE_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux_Long_Double_2Tests, apzHpux_Long_Double_2Patch, 0 },
+
+ { zHpux_SystimeName, zHpux_SystimeList,
+ apzHpux_SystimeMachs,
+ HPUX_SYSTIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux_SystimeTests, apzHpux_SystimePatch, 0 },
+
+ { zHpux_Spu_InfoName, zHpux_Spu_InfoList,
+ apzHpux_Spu_InfoMachs,
+ HPUX_SPU_INFO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux_Spu_InfoTests, apzHpux_Spu_InfoPatch, 0 },
+
+ { zHpux11_Extern_SendfileName, zHpux11_Extern_SendfileList,
+ apzHpux11_Extern_SendfileMachs,
+ HPUX11_EXTERN_SENDFILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux11_Extern_SendfileTests, apzHpux11_Extern_SendfilePatch, 0 },
+
+ { zHpux11_Extern_SendpathName, zHpux11_Extern_SendpathList,
+ apzHpux11_Extern_SendpathMachs,
+ HPUX11_EXTERN_SENDPATH_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux11_Extern_SendpathTests, apzHpux11_Extern_SendpathPatch, 0 },
+
+ { zHpux_Extern_ErrnoName, zHpux_Extern_ErrnoList,
+ apzHpux_Extern_ErrnoMachs,
+ HPUX_EXTERN_ERRNO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux_Extern_ErrnoTests, apzHpux_Extern_ErrnoPatch, 0 },
+
+ { zHpux_Pthread_InitializersName, zHpux_Pthread_InitializersList,
+ apzHpux_Pthread_InitializersMachs,
+ HPUX_PTHREAD_INITIALIZERS_TEST_CT, FD_MACH_ONLY,
+ aHpux_Pthread_InitializersTests, apzHpux_Pthread_InitializersPatch, 0 },
+
+ { zHpux_C99_IntptrName, zHpux_C99_IntptrList,
+ apzHpux_C99_IntptrMachs,
+ HPUX_C99_INTPTR_TEST_CT, FD_MACH_ONLY,
+ aHpux_C99_IntptrTests, apzHpux_C99_IntptrPatch, 0 },
+
+ { zHpux_C99_InttypesName, zHpux_C99_InttypesList,
+ apzHpux_C99_InttypesMachs,
+ HPUX_C99_INTTYPES_TEST_CT, FD_MACH_ONLY,
+ aHpux_C99_InttypesTests, apzHpux_C99_InttypesPatch, 0 },
+
+ { zHpux_C99_Inttypes2Name, zHpux_C99_Inttypes2List,
+ apzHpux_C99_Inttypes2Machs,
+ HPUX_C99_INTTYPES2_TEST_CT, FD_MACH_ONLY,
+ aHpux_C99_Inttypes2Tests, apzHpux_C99_Inttypes2Patch, 0 },
+
+ { zHpux_Stdint_Least_FastName, zHpux_Stdint_Least_FastList,
+ apzHpux_Stdint_Least_FastMachs,
+ HPUX_STDINT_LEAST_FAST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux_Stdint_Least_FastTests, apzHpux_Stdint_Least_FastPatch, 0 },
+
+ { zHpux_Inttype_Int8_TName, zHpux_Inttype_Int8_TList,
+ apzHpux_Inttype_Int8_TMachs,
+ HPUX_INTTYPE_INT8_T_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux_Inttype_Int8_TTests, apzHpux_Inttype_Int8_TPatch, 0 },
+
+ { zHpux_Imaginary_IName, zHpux_Imaginary_IList,
+ apzHpux_Imaginary_IMachs,
+ HPUX_IMAGINARY_I_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux_Imaginary_ITests, apzHpux_Imaginary_IPatch, 0 },
+
+ { zHuge_Val_HexName, zHuge_Val_HexList,
+ apzHuge_Val_HexMachs,
+ HUGE_VAL_HEX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHuge_Val_HexTests, apzHuge_Val_HexPatch, 0 },
+
+ { zHuge_Valf_HexName, zHuge_Valf_HexList,
+ apzHuge_Valf_HexMachs,
+ HUGE_VALF_HEX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHuge_Valf_HexTests, apzHuge_Valf_HexPatch, 0 },
+
+ { zHuge_Vall_HexName, zHuge_Vall_HexList,
+ apzHuge_Vall_HexMachs,
+ HUGE_VALL_HEX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHuge_Vall_HexTests, apzHuge_Vall_HexPatch, 0 },
+
+ { zInt_Abort_Free_And_ExitName, zInt_Abort_Free_And_ExitList,
+ apzInt_Abort_Free_And_ExitMachs,
+ INT_ABORT_FREE_AND_EXIT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aInt_Abort_Free_And_ExitTests, apzInt_Abort_Free_And_ExitPatch, 0 },
+
+ { zIo_Quotes_DefName, zIo_Quotes_DefList,
+ apzIo_Quotes_DefMachs,
+ IO_QUOTES_DEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aIo_Quotes_DefTests, apzIo_Quotes_DefPatch, 0 },
+
+ { zIo_Quotes_UseName, zIo_Quotes_UseList,
+ apzIo_Quotes_UseMachs,
+ IO_QUOTES_USE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aIo_Quotes_UseTests, apzIo_Quotes_UsePatch, 0 },
+
+ { zIp_Missing_SemiName, zIp_Missing_SemiList,
+ apzIp_Missing_SemiMachs,
+ IP_MISSING_SEMI_TEST_CT, FD_MACH_ONLY,
+ aIp_Missing_SemiTests, apzIp_Missing_SemiPatch, 0 },
+
+ { zIrix___RestrictName, zIrix___RestrictList,
+ apzIrix___RestrictMachs,
+ IRIX___RESTRICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aIrix___RestrictTests, apzIrix___RestrictPatch, 0 },
+
+ { zIrix___Generic1Name, zIrix___Generic1List,
+ apzIrix___Generic1Machs,
+ IRIX___GENERIC1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aIrix___Generic1Tests, apzIrix___Generic1Patch, 0 },
+
+ { zIrix___Generic2Name, zIrix___Generic2List,
+ apzIrix___Generic2Machs,
+ IRIX___GENERIC2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aIrix___Generic2Tests, apzIrix___Generic2Patch, 0 },
+
+ { zIrix_Asm_ApostropheName, zIrix_Asm_ApostropheList,
+ apzIrix_Asm_ApostropheMachs,
+ IRIX_ASM_APOSTROPHE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aIrix_Asm_ApostropheTests, apzIrix_Asm_ApostrophePatch, 0 },
+
+ { zIrix_ComplexName, zIrix_ComplexList,
+ apzIrix_ComplexMachs,
+ IRIX_COMPLEX_TEST_CT, FD_MACH_ONLY,
+ aIrix_ComplexTests, apzIrix_ComplexPatch, 0 },
+
+ { zIrix_Limits_ConstName, zIrix_Limits_ConstList,
+ apzIrix_Limits_ConstMachs,
+ IRIX_LIMITS_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aIrix_Limits_ConstTests, apzIrix_Limits_ConstPatch, 0 },
+
+ { zIrix_Pthread_InitName, zIrix_Pthread_InitList,
+ apzIrix_Pthread_InitMachs,
+ IRIX_PTHREAD_INIT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aIrix_Pthread_InitTests, apzIrix_Pthread_InitPatch, 0 },
+
+ { zIrix_Socklen_TName, zIrix_Socklen_TList,
+ apzIrix_Socklen_TMachs,
+ IRIX_SOCKLEN_T_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aIrix_Socklen_TTests, apzIrix_Socklen_TPatch, 0 },
+
+ { zIrix_Stdint_C99_ModeName, zIrix_Stdint_C99_ModeList,
+ apzIrix_Stdint_C99_ModeMachs,
+ IRIX_STDINT_C99_MODE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aIrix_Stdint_C99_ModeTests, apzIrix_Stdint_C99_ModePatch, 0 },
+
+ { zIrix_Stdint_C99_TypesName, zIrix_Stdint_C99_TypesList,
+ apzIrix_Stdint_C99_TypesMachs,
+ IRIX_STDINT_C99_TYPES_TEST_CT, FD_MACH_ONLY,
+ aIrix_Stdint_C99_TypesTests, apzIrix_Stdint_C99_TypesPatch, 0 },
+
+ { zIrix_Stdint_C99_MacrosName, zIrix_Stdint_C99_MacrosList,
+ apzIrix_Stdint_C99_MacrosMachs,
+ IRIX_STDINT_C99_MACROS_TEST_CT, FD_MACH_ONLY,
+ aIrix_Stdint_C99_MacrosTests, apzIrix_Stdint_C99_MacrosPatch, 0 },
+
+ { zIrix_Stdio_Va_ListName, zIrix_Stdio_Va_ListList,
+ apzIrix_Stdio_Va_ListMachs,
+ IRIX_STDIO_VA_LIST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aIrix_Stdio_Va_ListTests, apzIrix_Stdio_Va_ListPatch, 0 },
+
+ { zIrix_WcsftimeName, zIrix_WcsftimeList,
+ apzIrix_WcsftimeMachs,
+ IRIX_WCSFTIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aIrix_WcsftimeTests, apzIrix_WcsftimePatch, 0 },
+
+ { zKandr_ConcatName, zKandr_ConcatList,
+ apzKandr_ConcatMachs,
+ KANDR_CONCAT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aKandr_ConcatTests, apzKandr_ConcatPatch, 0 },
+
+ { zLinux_Ia64_UcontextName, zLinux_Ia64_UcontextList,
+ apzLinux_Ia64_UcontextMachs,
+ LINUX_IA64_UCONTEXT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aLinux_Ia64_UcontextTests, apzLinux_Ia64_UcontextPatch, 0 },
+
+ { zLynxos_No_Warning_In_Sys_Time_HName, zLynxos_No_Warning_In_Sys_Time_HList,
+ apzLynxos_No_Warning_In_Sys_Time_HMachs,
+ LYNXOS_NO_WARNING_IN_SYS_TIME_H_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aLynxos_No_Warning_In_Sys_Time_HTests, apzLynxos_No_Warning_In_Sys_Time_HPatch, 0 },
+
+ { zLynxos_Missing_PutenvName, zLynxos_Missing_PutenvList,
+ apzLynxos_Missing_PutenvMachs,
+ LYNXOS_MISSING_PUTENV_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aLynxos_Missing_PutenvTests, apzLynxos_Missing_PutenvPatch, 0 },
+
+ { zMachine_Ansi_H_Va_ListName, zMachine_Ansi_H_Va_ListList,
+ apzMachine_Ansi_H_Va_ListMachs,
+ MACHINE_ANSI_H_VA_LIST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aMachine_Ansi_H_Va_ListTests, apzMachine_Ansi_H_Va_ListPatch, 0 },
+
+ { zMachine_NameName, zMachine_NameList,
+ apzMachine_NameMachs,
+ MACHINE_NAME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aMachine_NameTests, apzMachine_NamePatch, 0 },
+
+ { zMath_ExceptionName, zMath_ExceptionList,
+ apzMath_ExceptionMachs,
+ MATH_EXCEPTION_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aMath_ExceptionTests, apzMath_ExceptionPatch, 0 },
+
+ { zMath_Huge_Val_From_Dbl_MaxName, zMath_Huge_Val_From_Dbl_MaxList,
+ apzMath_Huge_Val_From_Dbl_MaxMachs,
+ MATH_HUGE_VAL_FROM_DBL_MAX_TEST_CT, FD_MACH_ONLY | FD_SHELL_SCRIPT,
+ aMath_Huge_Val_From_Dbl_MaxTests, apzMath_Huge_Val_From_Dbl_MaxPatch, 0 },
+
+ { zNested_Auth_DesName, zNested_Auth_DesList,
+ apzNested_Auth_DesMachs,
+ NESTED_AUTH_DES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aNested_Auth_DesTests, apzNested_Auth_DesPatch, 0 },
+
+ { zNetbsd_C99_Inline_1Name, zNetbsd_C99_Inline_1List,
+ apzNetbsd_C99_Inline_1Machs,
+ NETBSD_C99_INLINE_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aNetbsd_C99_Inline_1Tests, apzNetbsd_C99_Inline_1Patch, 0 },
+
+ { zNetbsd_C99_Inline_2Name, zNetbsd_C99_Inline_2List,
+ apzNetbsd_C99_Inline_2Machs,
+ NETBSD_C99_INLINE_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aNetbsd_C99_Inline_2Tests, apzNetbsd_C99_Inline_2Patch, 0 },
+
+ { zNetbsd_Extra_SemicolonName, zNetbsd_Extra_SemicolonList,
+ apzNetbsd_Extra_SemicolonMachs,
+ NETBSD_EXTRA_SEMICOLON_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aNetbsd_Extra_SemicolonTests, apzNetbsd_Extra_SemicolonPatch, 0 },
+
+ { zNewlib_Stdint_1Name, zNewlib_Stdint_1List,
+ apzNewlib_Stdint_1Machs,
+ NEWLIB_STDINT_1_TEST_CT, FD_MACH_ONLY,
+ aNewlib_Stdint_1Tests, apzNewlib_Stdint_1Patch, 0 },
+
+ { zNewlib_Stdint_2Name, zNewlib_Stdint_2List,
+ apzNewlib_Stdint_2Machs,
+ NEWLIB_STDINT_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aNewlib_Stdint_2Tests, apzNewlib_Stdint_2Patch, 0 },
+
+ { zNext_Math_PrefixName, zNext_Math_PrefixList,
+ apzNext_Math_PrefixMachs,
+ NEXT_MATH_PREFIX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aNext_Math_PrefixTests, apzNext_Math_PrefixPatch, 0 },
+
+ { zNext_TemplateName, zNext_TemplateList,
+ apzNext_TemplateMachs,
+ NEXT_TEMPLATE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aNext_TemplateTests, apzNext_TemplatePatch, 0 },
+
+ { zNext_VolitileName, zNext_VolitileList,
+ apzNext_VolitileMachs,
+ NEXT_VOLITILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aNext_VolitileTests, apzNext_VolitilePatch, 0 },
+
+ { zNext_Wait_UnionName, zNext_Wait_UnionList,
+ apzNext_Wait_UnionMachs,
+ NEXT_WAIT_UNION_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aNext_Wait_UnionTests, apzNext_Wait_UnionPatch, 0 },
+
+ { zNodeent_SyntaxName, zNodeent_SyntaxList,
+ apzNodeent_SyntaxMachs,
+ NODEENT_SYNTAX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aNodeent_SyntaxTests, apzNodeent_SyntaxPatch, 0 },
+
+ { zOpenbsd_Null_DefinitionName, zOpenbsd_Null_DefinitionList,
+ apzOpenbsd_Null_DefinitionMachs,
+ OPENBSD_NULL_DEFINITION_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aOpenbsd_Null_DefinitionTests, apzOpenbsd_Null_DefinitionPatch, 0 },
+
+ { zObstack_Lvalue_CastName, zObstack_Lvalue_CastList,
+ apzObstack_Lvalue_CastMachs,
+ OBSTACK_LVALUE_CAST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aObstack_Lvalue_CastTests, apzObstack_Lvalue_CastPatch, 0 },
+
+ { zOpenbsd_Va_StartName, zOpenbsd_Va_StartList,
+ apzOpenbsd_Va_StartMachs,
+ OPENBSD_VA_START_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aOpenbsd_Va_StartTests, apzOpenbsd_Va_StartPatch, 0 },
+
+ { zOsf_Namespace_AName, zOsf_Namespace_AList,
+ apzOsf_Namespace_AMachs,
+ OSF_NAMESPACE_A_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aOsf_Namespace_ATests, apzOsf_Namespace_APatch, 0 },
+
+ { zOsf_Namespace_CName, zOsf_Namespace_CList,
+ apzOsf_Namespace_CMachs,
+ OSF_NAMESPACE_C_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aOsf_Namespace_CTests, apzOsf_Namespace_CPatch, 0 },
+
+ { zPthread_Incomplete_Struct_ArgumentName, zPthread_Incomplete_Struct_ArgumentList,
+ apzPthread_Incomplete_Struct_ArgumentMachs,
+ PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aPthread_Incomplete_Struct_ArgumentTests, apzPthread_Incomplete_Struct_ArgumentPatch, 0 },
+
+ { zRead_Ret_TypeName, zRead_Ret_TypeList,
+ apzRead_Ret_TypeMachs,
+ READ_RET_TYPE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aRead_Ret_TypeTests, apzRead_Ret_TypePatch, 0 },
+
+ { zRpc_Xdr_Lvalue_Cast_AName, zRpc_Xdr_Lvalue_Cast_AList,
+ apzRpc_Xdr_Lvalue_Cast_AMachs,
+ RPC_XDR_LVALUE_CAST_A_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aRpc_Xdr_Lvalue_Cast_ATests, apzRpc_Xdr_Lvalue_Cast_APatch, 0 },
+
+ { zRpc_Xdr_Lvalue_Cast_BName, zRpc_Xdr_Lvalue_Cast_BList,
+ apzRpc_Xdr_Lvalue_Cast_BMachs,
+ RPC_XDR_LVALUE_CAST_B_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aRpc_Xdr_Lvalue_Cast_BTests, apzRpc_Xdr_Lvalue_Cast_BPatch, 0 },
+
+ { zRs6000_DoubleName, zRs6000_DoubleList,
+ apzRs6000_DoubleMachs,
+ RS6000_DOUBLE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aRs6000_DoubleTests, apzRs6000_DoublePatch, 0 },
+
+ { zRs6000_FchmodName, zRs6000_FchmodList,
+ apzRs6000_FchmodMachs,
+ RS6000_FCHMOD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aRs6000_FchmodTests, apzRs6000_FchmodPatch, 0 },
+
+ { zRs6000_ParamName, zRs6000_ParamList,
+ apzRs6000_ParamMachs,
+ RS6000_PARAM_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aRs6000_ParamTests, apzRs6000_ParamPatch, 0 },
+
+ { zSolaris___RestrictName, zSolaris___RestrictList,
+ apzSolaris___RestrictMachs,
+ SOLARIS___RESTRICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSolaris___RestrictTests, apzSolaris___RestrictPatch, 0 },
+
+ { zSolaris_ComplexName, zSolaris_ComplexList,
+ apzSolaris_ComplexMachs,
+ SOLARIS_COMPLEX_TEST_CT, FD_MACH_ONLY,
+ aSolaris_ComplexTests, apzSolaris_ComplexPatch, 0 },
+
+ { zSolaris_Complex_CxxName, zSolaris_Complex_CxxList,
+ apzSolaris_Complex_CxxMachs,
+ SOLARIS_COMPLEX_CXX_TEST_CT, FD_MACH_ONLY,
+ aSolaris_Complex_CxxTests, apzSolaris_Complex_CxxPatch, 0 },
+
+ { zSolaris_Cond_InitName, zSolaris_Cond_InitList,
+ apzSolaris_Cond_InitMachs,
+ SOLARIS_COND_INIT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSolaris_Cond_InitTests, apzSolaris_Cond_InitPatch, 0 },
+
+ { zSolaris_Math_1Name, zSolaris_Math_1List,
+ apzSolaris_Math_1Machs,
+ SOLARIS_MATH_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSolaris_Math_1Tests, apzSolaris_Math_1Patch, 0 },
+
+ { zSolaris_Math_2Name, zSolaris_Math_2List,
+ apzSolaris_Math_2Machs,
+ SOLARIS_MATH_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSolaris_Math_2Tests, apzSolaris_Math_2Patch, 0 },
+
+ { zSolaris_Math_3Name, zSolaris_Math_3List,
+ apzSolaris_Math_3Machs,
+ SOLARIS_MATH_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSolaris_Math_3Tests, apzSolaris_Math_3Patch, 0 },
+
+ { zSolaris_Math_4Name, zSolaris_Math_4List,
+ apzSolaris_Math_4Machs,
+ SOLARIS_MATH_4_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSolaris_Math_4Tests, apzSolaris_Math_4Patch, 0 },
+
+ { zSolaris_Math_8Name, zSolaris_Math_8List,
+ apzSolaris_Math_8Machs,
+ SOLARIS_MATH_8_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSolaris_Math_8Tests, apzSolaris_Math_8Patch, 0 },
+
+ { zSolaris_Math_9Name, zSolaris_Math_9List,
+ apzSolaris_Math_9Machs,
+ SOLARIS_MATH_9_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSolaris_Math_9Tests, apzSolaris_Math_9Patch, 0 },
+
+ { zSolaris_Math_10Name, zSolaris_Math_10List,
+ apzSolaris_Math_10Machs,
+ SOLARIS_MATH_10_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSolaris_Math_10Tests, apzSolaris_Math_10Patch, 0 },
+
+ { zSolaris_Mutex_Init_2Name, zSolaris_Mutex_Init_2List,
+ apzSolaris_Mutex_Init_2Machs,
+ SOLARIS_MUTEX_INIT_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSolaris_Mutex_Init_2Tests, apzSolaris_Mutex_Init_2Patch, 0 },
+
+ { zSolaris_Rwlock_Init_1Name, zSolaris_Rwlock_Init_1List,
+ apzSolaris_Rwlock_Init_1Machs,
+ SOLARIS_RWLOCK_INIT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSolaris_Rwlock_Init_1Tests, apzSolaris_Rwlock_Init_1Patch, 0 },
+
+ { zSolaris_Once_Init_1Name, zSolaris_Once_Init_1List,
+ apzSolaris_Once_Init_1Machs,
+ SOLARIS_ONCE_INIT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSolaris_Once_Init_1Tests, apzSolaris_Once_Init_1Patch, 0 },
+
+ { zSolaris_Once_Init_2Name, zSolaris_Once_Init_2List,
+ apzSolaris_Once_Init_2Machs,
+ SOLARIS_ONCE_INIT_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSolaris_Once_Init_2Tests, apzSolaris_Once_Init_2Patch, 0 },
+
+ { zSolaris_Int_ConstName, zSolaris_Int_ConstList,
+ apzSolaris_Int_ConstMachs,
+ SOLARIS_INT_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSolaris_Int_ConstTests, apzSolaris_Int_ConstPatch, 0 },
+
+ { zSolaris_Int_Limits_1Name, zSolaris_Int_Limits_1List,
+ apzSolaris_Int_Limits_1Machs,
+ SOLARIS_INT_LIMITS_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSolaris_Int_Limits_1Tests, apzSolaris_Int_Limits_1Patch, 0 },
+
+ { zSolaris_Int_Limits_2Name, zSolaris_Int_Limits_2List,
+ apzSolaris_Int_Limits_2Machs,
+ SOLARIS_INT_LIMITS_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSolaris_Int_Limits_2Tests, apzSolaris_Int_Limits_2Patch, 0 },
+
+ { zSolaris_Int_Limits_3Name, zSolaris_Int_Limits_3List,
+ apzSolaris_Int_Limits_3Machs,
+ SOLARIS_INT_LIMITS_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSolaris_Int_Limits_3Tests, apzSolaris_Int_Limits_3Patch, 0 },
+
+ { zSolaris_Int_TypesName, zSolaris_Int_TypesList,
+ apzSolaris_Int_TypesMachs,
+ SOLARIS_INT_TYPES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSolaris_Int_TypesTests, apzSolaris_Int_TypesPatch, 0 },
+
+ { zSolaris_Stdio_TagName, zSolaris_Stdio_TagList,
+ apzSolaris_Stdio_TagMachs,
+ SOLARIS_STDIO_TAG_TEST_CT, FD_MACH_ONLY,
+ aSolaris_Stdio_TagTests, apzSolaris_Stdio_TagPatch, 0 },
+
+ { zSolaris_Sys_Va_ListName, zSolaris_Sys_Va_ListList,
+ apzSolaris_Sys_Va_ListMachs,
+ SOLARIS_SYS_VA_LIST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSolaris_Sys_Va_ListTests, apzSolaris_Sys_Va_ListPatch, 0 },
+
+ { zStatsswtchName, zStatsswtchList,
+ apzStatsswtchMachs,
+ STATSSWTCH_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aStatsswtchTests, apzStatsswtchPatch, 0 },
+
+ { zStdio_Stdarg_HName, zStdio_Stdarg_HList,
+ apzStdio_Stdarg_HMachs,
+ STDIO_STDARG_H_TEST_CT, FD_MACH_IFNOT | FD_SUBROUTINE,
+ aStdio_Stdarg_HTests, apzStdio_Stdarg_HPatch, 0 },
+
+ { zStdio_Va_ListName, zStdio_Va_ListList,
+ apzStdio_Va_ListMachs,
+ STDIO_VA_LIST_TEST_CT, FD_MACH_IFNOT,
+ aStdio_Va_ListTests, apzStdio_Va_ListPatch, 0 },
+
+ { zStdio_Va_List_ClientsName, zStdio_Va_List_ClientsList,
+ apzStdio_Va_List_ClientsMachs,
+ STDIO_VA_LIST_CLIENTS_TEST_CT, FD_MACH_ONLY,
+ aStdio_Va_List_ClientsTests, apzStdio_Va_List_ClientsPatch, 0 },
+
+ { zStrict_Ansi_NotName, zStrict_Ansi_NotList,
+ apzStrict_Ansi_NotMachs,
+ STRICT_ANSI_NOT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aStrict_Ansi_NotTests, apzStrict_Ansi_NotPatch, 0 },
+
+ { zStrict_Ansi_Not_CtdName, zStrict_Ansi_Not_CtdList,
+ apzStrict_Ansi_Not_CtdMachs,
+ STRICT_ANSI_NOT_CTD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aStrict_Ansi_Not_CtdTests, apzStrict_Ansi_Not_CtdPatch, 0 },
+
+ { zStrict_Ansi_OnlyName, zStrict_Ansi_OnlyList,
+ apzStrict_Ansi_OnlyMachs,
+ STRICT_ANSI_ONLY_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aStrict_Ansi_OnlyTests, apzStrict_Ansi_OnlyPatch, 0 },
+
+ { zStruct_FileName, zStruct_FileList,
+ apzStruct_FileMachs,
+ STRUCT_FILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aStruct_FileTests, apzStruct_FilePatch, 0 },
+
+ { zStruct_SockaddrName, zStruct_SockaddrList,
+ apzStruct_SockaddrMachs,
+ STRUCT_SOCKADDR_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aStruct_SockaddrTests, apzStruct_SockaddrPatch, 0 },
+
+ { zSun_Auth_ProtoName, zSun_Auth_ProtoList,
+ apzSun_Auth_ProtoMachs,
+ SUN_AUTH_PROTO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSun_Auth_ProtoTests, apzSun_Auth_ProtoPatch, 0 },
+
+ { zSun_Bogus_IfdefName, zSun_Bogus_IfdefList,
+ apzSun_Bogus_IfdefMachs,
+ SUN_BOGUS_IFDEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSun_Bogus_IfdefTests, apzSun_Bogus_IfdefPatch, 0 },
+
+ { zSun_CatmacroName, zSun_CatmacroList,
+ apzSun_CatmacroMachs,
+ SUN_CATMACRO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSun_CatmacroTests, apzSun_CatmacroPatch, 0 },
+
+ { zSun_MallocName, zSun_MallocList,
+ apzSun_MallocMachs,
+ SUN_MALLOC_TEST_CT, FD_MACH_ONLY,
+ aSun_MallocTests, apzSun_MallocPatch, 0 },
+
+ { zSun_Rusers_SemiName, zSun_Rusers_SemiList,
+ apzSun_Rusers_SemiMachs,
+ SUN_RUSERS_SEMI_TEST_CT, FD_MACH_ONLY,
+ aSun_Rusers_SemiTests, apzSun_Rusers_SemiPatch, 0 },
+
+ { zSun_SignalName, zSun_SignalList,
+ apzSun_SignalMachs,
+ SUN_SIGNAL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSun_SignalTests, apzSun_SignalPatch, 0 },
+
+ { zSunos_StrlenName, zSunos_StrlenList,
+ apzSunos_StrlenMachs,
+ SUNOS_STRLEN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSunos_StrlenTests, apzSunos_StrlenPatch, 0 },
+
+ { zSvr4_Disable_OptName, zSvr4_Disable_OptList,
+ apzSvr4_Disable_OptMachs,
+ SVR4_DISABLE_OPT_TEST_CT, FD_MACH_ONLY,
+ aSvr4_Disable_OptTests, apzSvr4_Disable_OptPatch, 0 },
+
+ { zSvr4_GetcwdName, zSvr4_GetcwdList,
+ apzSvr4_GetcwdMachs,
+ SVR4_GETCWD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSvr4_GetcwdTests, apzSvr4_GetcwdPatch, 0 },
+
+ { zSvr4_ProfilName, zSvr4_ProfilList,
+ apzSvr4_ProfilMachs,
+ SVR4_PROFIL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSvr4_ProfilTests, apzSvr4_ProfilPatch, 0 },
+
+ { zSvr4_Sighandler_TypeName, zSvr4_Sighandler_TypeList,
+ apzSvr4_Sighandler_TypeMachs,
+ SVR4_SIGHANDLER_TYPE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSvr4_Sighandler_TypeTests, apzSvr4_Sighandler_TypePatch, 0 },
+
+ { zSvr4_Undeclared_GetrngeName, zSvr4_Undeclared_GetrngeList,
+ apzSvr4_Undeclared_GetrngeMachs,
+ SVR4_UNDECLARED_GETRNGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSvr4_Undeclared_GetrngeTests, apzSvr4_Undeclared_GetrngePatch, 0 },
+
+ { zSysv68_StringName, zSysv68_StringList,
+ apzSysv68_StringMachs,
+ SYSV68_STRING_TEST_CT, FD_MACH_ONLY,
+ aSysv68_StringTests, apzSysv68_StringPatch, 0 },
+
+ { zSysz_Stdlib_For_SunName, zSysz_Stdlib_For_SunList,
+ apzSysz_Stdlib_For_SunMachs,
+ SYSZ_STDLIB_FOR_SUN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSysz_Stdlib_For_SunTests, apzSysz_Stdlib_For_SunPatch, 0 },
+
+ { zThread_KeywordName, zThread_KeywordList,
+ apzThread_KeywordMachs,
+ THREAD_KEYWORD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aThread_KeywordTests, apzThread_KeywordPatch, 0 },
+
+ { zTinfo_CplusplusName, zTinfo_CplusplusList,
+ apzTinfo_CplusplusMachs,
+ TINFO_CPLUSPLUS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aTinfo_CplusplusTests, apzTinfo_CplusplusPatch, 0 },
+
+ { zUltrix_ConstName, zUltrix_ConstList,
+ apzUltrix_ConstMachs,
+ ULTRIX_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aUltrix_ConstTests, apzUltrix_ConstPatch, 0 },
+
+ { zUltrix_Const2Name, zUltrix_Const2List,
+ apzUltrix_Const2Machs,
+ ULTRIX_CONST2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aUltrix_Const2Tests, apzUltrix_Const2Patch, 0 },
+
+ { zVa_I960_MacroName, zVa_I960_MacroList,
+ apzVa_I960_MacroMachs,
+ VA_I960_MACRO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aVa_I960_MacroTests, apzVa_I960_MacroPatch, 0 },
+
+ { zVoid_NullName, zVoid_NullList,
+ apzVoid_NullMachs,
+ VOID_NULL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aVoid_NullTests, apzVoid_NullPatch, 0 },
+
+ { zVxworks_Gcc_ProblemName, zVxworks_Gcc_ProblemList,
+ apzVxworks_Gcc_ProblemMachs,
+ VXWORKS_GCC_PROBLEM_TEST_CT, FD_MACH_ONLY,
+ aVxworks_Gcc_ProblemTests, apzVxworks_Gcc_ProblemPatch, 0 },
+
+ { zVxworks_Needs_VxtypesName, zVxworks_Needs_VxtypesList,
+ apzVxworks_Needs_VxtypesMachs,
+ VXWORKS_NEEDS_VXTYPES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aVxworks_Needs_VxtypesTests, apzVxworks_Needs_VxtypesPatch, 0 },
+
+ { zVxworks_Needs_VxworksName, zVxworks_Needs_VxworksList,
+ apzVxworks_Needs_VxworksMachs,
+ VXWORKS_NEEDS_VXWORKS_TEST_CT, FD_MACH_ONLY,
+ aVxworks_Needs_VxworksTests, apzVxworks_Needs_VxworksPatch, 0 },
+
+ { zVxworks_TimeName, zVxworks_TimeList,
+ apzVxworks_TimeMachs,
+ VXWORKS_TIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aVxworks_TimeTests, apzVxworks_TimePatch, 0 },
+
+ { zX11_ClassName, zX11_ClassList,
+ apzX11_ClassMachs,
+ X11_CLASS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aX11_ClassTests, apzX11_ClassPatch, 0 },
+
+ { zX11_Class_UsageName, zX11_Class_UsageList,
+ apzX11_Class_UsageMachs,
+ X11_CLASS_USAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aX11_Class_UsageTests, apzX11_Class_UsagePatch, 0 },
+
+ { zX11_NewName, zX11_NewList,
+ apzX11_NewMachs,
+ X11_NEW_TEST_CT, FD_MACH_ONLY,
+ aX11_NewTests, apzX11_NewPatch, 0 },
+
+ { zX11_SprintfName, zX11_SprintfList,
+ apzX11_SprintfMachs,
+ X11_SPRINTF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aX11_SprintfTests, apzX11_SprintfPatch, 0 }
+};
diff --git a/fixincludes/fixlib.c b/fixincludes/fixlib.c
new file mode 100644
index 000000000..1fec773d3
--- /dev/null
+++ b/fixincludes/fixlib.c
@@ -0,0 +1,280 @@
+
+/* Install modified versions of certain ANSI-incompatible system header
+ files which are fixed to work correctly with ANSI C and placed in a
+ directory that GCC will search.
+
+ Copyright (C) 1999, 2000, 2001, 2004, 2009 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#include "fixlib.h"
+
+/* * * * * * * * * * * * *
+
+ load_file_data loads all the contents of a file into malloc-ed memory.
+ Its argument is the file pointer of the file to read in; the returned
+ result is the NUL terminated contents of the file. The file
+ is presumed to be an ASCII text file containing no NULs. */
+
+char *
+load_file_data (FILE* fp)
+{
+ char *pz_data = (char*)NULL;
+ int space_left = -1; /* allow for terminating NUL */
+ size_t space_used = 0;
+
+ if (fp == (FILE*)NULL)
+ return pz_data;
+
+ do
+ {
+ size_t size_read;
+
+ if (space_left < 1024)
+ {
+ space_left += 4096;
+ pz_data = XRESIZEVEC (char, pz_data, space_left + space_used + 1 );
+ }
+ size_read = fread (pz_data + space_used, 1, space_left, fp);
+
+ if (size_read == 0)
+ {
+ if (feof (fp))
+ break;
+
+ if (ferror (fp))
+ {
+ int err = errno;
+ if (err != EISDIR)
+ fprintf (stderr, "error %d (%s) reading input\n", err,
+ xstrerror (err));
+ free ((void *) pz_data);
+ return (char *) NULL;
+ }
+ }
+
+ space_left -= size_read;
+ space_used += size_read;
+ } while (! feof (fp));
+
+ pz_data = XRESIZEVEC (char, pz_data, space_used+1 );
+ pz_data[ space_used ] = NUL;
+
+ return pz_data;
+}
+
+#ifdef IS_CXX_HEADER_NEEDED
+t_bool
+is_cxx_header (tCC* fname, tCC* text)
+{
+ /* First, check to see if the file is in a C++ directory */
+ for (;;)
+ {
+ switch (*(fname++))
+ {
+ case 'C': /* check for "CC/" */
+ if ((fname[0] == 'C') && (fname[1] == '/'))
+ return BOOL_TRUE;
+ break;
+
+ case 'x': /* check for "xx/" */
+ if ((fname[0] == 'x') && (fname[1] == '/'))
+ return BOOL_TRUE;
+ break;
+
+ case '+': /* check for "++" */
+ if (fname[0] == '+')
+ return BOOL_TRUE;
+ break;
+
+ case NUL:
+ goto not_cxx_name;
+ }
+ } not_cxx_name:;
+
+ /* Or it might contain one of several phrases which indicate C++ code.
+ Currently recognized are:
+ extern "C++"
+ -*- (Mode: )? C++ -*- (emacs mode marker)
+ template <
+ */
+ {
+ tSCC cxxpat[] = "\
+extern[ \t]*\"C\\+\\+\"|\
+-\\*-[ \t]*([mM]ode:[ \t]*)?[cC]\\+\\+[; \t]*-\\*-|\
+template[ \t]*<|\
+^[ \t]*class[ \t]|\
+(public|private|protected):|\
+^[ \t]*#[ \t]*pragma[ \t]+(interface|implementation)\
+";
+ static regex_t cxxre;
+ static int compiled;
+
+ if (!compiled)
+ compile_re (cxxpat, &cxxre, 0, "contents check", "is_cxx_header");
+
+ if (xregexec (&cxxre, text, 0, 0, 0) == 0)
+ return BOOL_TRUE;
+ }
+
+ return BOOL_FALSE;
+}
+#endif /* CXX_TYPE_NEEDED */
+
+#ifdef SKIP_QUOTE_NEEDED
+/*
+ * Skip over a quoted string. Single quote strings may
+ * contain multiple characters if the first character is
+ * a backslash. Especially a backslash followed by octal digits.
+ * We are not doing a correctness syntax check here.
+ */
+tCC*
+skip_quote(char q, char* text )
+{
+ for (;;)
+ {
+ char ch = *(text++);
+ switch (ch)
+ {
+ case '\\':
+ text++; /* skip over whatever character follows */
+ break;
+
+ case '"':
+ case '\'':
+ if (ch != q)
+ break;
+ /*FALLTHROUGH*/
+
+ case '\n':
+ case NUL:
+ goto skip_done;
+ }
+ } skip_done:;
+
+ return text;
+}
+#endif /* SKIP_QUOTE_NEEDED */
+
+/* * * * * * * * * * * * *
+
+ Compile one regular expression pattern for later use. PAT contains
+ the pattern, RE points to a regex_t structure (which should have
+ been bzeroed). MATCH is 1 if we need to know where the regex
+ matched, 0 if not. If xregcomp fails, prints an error message and
+ aborts; E1 and E2 are strings to shove into the error message.
+
+ The patterns we search for are all egrep patterns.
+ REG_EXTENDED|REG_NEWLINE produces identical regex syntax/semantics
+ to egrep (verified from 4.4BSD Programmer's Reference Manual). */
+void
+compile_re( tCC* pat, regex_t* re, int match, tCC* e1, tCC* e2 )
+{
+ tSCC z_bad_comp[] = "fixincl ERROR: cannot compile %s regex for %s\n\
+\texpr = `%s'\n\terror %s\n";
+ int flags, err;
+
+ flags = (match ? REG_EXTENDED|REG_NEWLINE
+ : REG_EXTENDED|REG_NEWLINE|REG_NOSUB);
+ err = xregcomp (re, pat, flags);
+
+ if (err)
+ {
+ char rerrbuf[1024];
+ regerror (err, re, rerrbuf, 1024);
+ fprintf (stderr, z_bad_comp, e1, e2, pat, rerrbuf);
+ exit (EXIT_FAILURE);
+ }
+}
+
+/* * * * * * * * * * * * *
+
+ Helper routine and data for the machine_name test and fix. */
+
+tSCC mn_label_pat[] = "^[ \t]*#[ \t]*(if|ifdef|ifndef)[ \t]+";
+static regex_t mn_label_re;
+static regex_t mn_name_re;
+
+static int mn_compiled = 0;
+
+t_bool
+mn_get_regexps(regex_t** label_re, regex_t** name_re, tCC* who )
+{
+ if (! pz_mn_name_pat)
+ return BOOL_FALSE;
+
+ if (! mn_compiled)
+ {
+ compile_re (mn_label_pat, &mn_label_re, 1, "label pattern", who);
+ compile_re (pz_mn_name_pat, &mn_name_re, 1, "name pattern", who);
+ mn_compiled++;
+ }
+ *label_re = &mn_label_re;
+ *name_re = &mn_name_re;
+ return BOOL_TRUE;
+}
+
+
+#ifdef SEPARATE_FIX_PROC
+
+char*
+make_raw_shell_str( char* pz_d, tCC* pz_s, size_t smax )
+{
+ tSCC zQ[] = "'\\''";
+ size_t dtaSize;
+ char* pz_d_start = pz_d;
+
+ smax--; /* adjust for trailing NUL */
+
+ dtaSize = strlen( pz_s ) + 3;
+
+ {
+ const char* pz = pz_s - 1;
+
+ for (;;) {
+ pz = strchr( pz+1, '\'' );
+ if (pz == (char*)NULL)
+ break;
+ dtaSize += sizeof( zQ )-1;
+ }
+ }
+ if (dtaSize > smax)
+ return (char*)NULL;
+
+ *(pz_d++) = '\'';
+
+ for (;;) {
+ if ((size_t) (pz_d - pz_d_start) >= smax)
+ return (char*)NULL;
+ switch (*(pz_d++) = *(pz_s++)) {
+ case NUL:
+ goto loopDone;
+
+ case '\'':
+ if ((size_t) (pz_d - pz_d_start) >= smax - sizeof( zQ )-1)
+ return (char*)NULL;
+ strcpy( pz_d-1, zQ );
+ pz_d += sizeof( zQ )-2;
+ }
+ } loopDone:;
+ pz_d[-1] = '\'';
+ *pz_d = NUL;
+
+ return pz_d;
+}
+
+#endif
diff --git a/fixincludes/fixlib.h b/fixincludes/fixlib.h
new file mode 100644
index 000000000..42d98b225
--- /dev/null
+++ b/fixincludes/fixlib.h
@@ -0,0 +1,248 @@
+
+/* Install modified versions of certain ANSI-incompatible system header
+ files which are fixed to work correctly with ANSI C and placed in a
+ directory that GCC will search.
+
+ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2009
+ Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_FIXLIB_H
+#define GCC_FIXLIB_H
+
+#include "config.h"
+#include "system.h"
+#include <signal.h>
+
+#include "xregex.h"
+#include "libiberty.h"
+
+#ifndef STDIN_FILENO
+# define STDIN_FILENO 0
+#endif
+#ifndef STDOUT_FILENO
+# define STDOUT_FILENO 1
+#endif
+
+#if ! defined( SIGCHLD ) && defined( SIGCLD )
+# define SIGCHLD SIGCLD
+#endif
+
+#ifndef SIGQUIT
+#define SIGQUIT SIGTERM
+#endif
+#ifndef SIGIOT
+#define SIGIOT SIGTERM
+#endif
+#ifndef SIGPIPE
+#define SIGPIPE SIGTERM
+#endif
+#ifndef SIGALRM
+#define SIGALRM SIGTERM
+#endif
+#ifndef SIGKILL
+#define SIGKILL SIGTERM
+#endif
+
+typedef int t_success;
+
+#define FAILURE (-1)
+#define SUCCESS 0
+#define PROBLEM 1
+
+#define SUCCEEDED(p) ((p) == SUCCESS)
+#define SUCCESSFUL(p) SUCCEEDED (p)
+#define FAILED(p) ((p) < SUCCESS)
+#define HADGLITCH(p) ((p) > SUCCESS)
+
+#ifndef DEBUG
+# define STATIC static
+#else
+# define STATIC
+#endif
+
+#define tSCC static const char
+#define tCC const char
+#define tSC static char
+
+/* If this particular system's header files define the macro `MAXPATHLEN',
+ we happily take advantage of it; otherwise we use a value which ought
+ to be large enough. */
+#ifndef MAXPATHLEN
+# define MAXPATHLEN 4096
+#endif
+
+#ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
+#endif
+#ifndef EXIT_FAILURE
+# define EXIT_FAILURE 1
+#endif
+
+#define EXIT_BROKEN 3
+
+#define NUL '\0'
+
+#ifndef NOPROCESS
+#define NOPROCESS ((pid_t) -1)
+#define NULLPROCESS ((pid_t)0)
+
+#define EXIT_PANIC 99
+#endif /* NOPROCESS */
+
+#define IGNORE_ARG(a) ((void)(a))
+
+typedef enum t_bool
+{
+ BOOL_FALSE, BOOL_TRUE
+} t_bool;
+
+typedef int apply_fix_p_t; /* Apply Fix Predicate Type */
+
+#define APPLY_FIX 0
+#define SKIP_FIX 1
+
+#define ENV_TABLE \
+ _ENV_( pz_machine, BOOL_TRUE, "TARGET_MACHINE", \
+ "output from config.guess" ) \
+ \
+ _ENV_( pz_orig_dir, BOOL_TRUE, "ORIGDIR", \
+ "directory of fixincl and applyfix" ) \
+ \
+ _ENV_( pz_src_dir, BOOL_TRUE, "SRCDIR", \
+ "directory of original files" ) \
+ \
+ _ENV_( pz_input_dir, BOOL_TRUE, "INPUT", \
+ "current directory for fixincl" ) \
+ \
+ _ENV_( pz_dest_dir, BOOL_TRUE, "DESTDIR", \
+ "output directory" ) \
+ \
+ _ENV_( pz_mn_name_pat, BOOL_FALSE, "MN_NAME_PAT", \
+ "regex matching forbidden identifiers" ) \
+ \
+ _ENV_( pz_verbose, BOOL_FALSE, "VERBOSE", \
+ "amount of user entertainment" ) \
+ \
+ _ENV_( pz_find_base, BOOL_TRUE, "FIND_BASE", \
+ "leader to trim from file names" )
+
+#define _ENV_(v,m,n,t) extern tCC* v;
+ENV_TABLE
+#undef _ENV_
+
+/* Test Descriptor
+
+ Each fix may have associated tests that determine
+ whether the fix needs to be applied or not.
+ Each test has a type (from the te_test_type enumeration);
+ associated test text; and, if the test is TT_EGREP or
+ the negated form TT_NEGREP, a pointer to the compiled
+ version of the text string.
+
+ */
+typedef enum
+{
+ TT_TEST, TT_EGREP, TT_NEGREP, TT_FUNCTION
+} te_test_type;
+
+typedef struct test_desc tTestDesc;
+
+struct test_desc
+{
+ te_test_type type;
+ const char *pz_test_text;
+ regex_t *p_test_regex;
+};
+
+typedef struct patch_desc tPatchDesc;
+
+/* Fix Descriptor
+
+ Everything you ever wanted to know about how to apply
+ a particular fix (which files, how to qualify them,
+ how to actually make the fix, etc...)
+
+ NB: the FD_ defines are BIT FLAGS, even though
+ some are mutually exclusive
+
+ */
+#define FD_MACH_ONLY 0x0000
+#define FD_MACH_IFNOT 0x0001
+#define FD_SHELL_SCRIPT 0x0002
+#define FD_SUBROUTINE 0x0004
+#define FD_REPLACEMENT 0x0008
+#define FD_SKIP_TEST 0x8000
+
+typedef struct fix_desc tFixDesc;
+struct fix_desc
+{
+ tCC* fix_name; /* Name of the fix */
+ tCC* file_list; /* List of files it applies to */
+ tCC** papz_machs; /* List of machine/os-es it applies to */
+ int test_ct;
+ int fd_flags;
+ tTestDesc* p_test_desc;
+ tCC** patch_args;
+ long unused;
+};
+
+typedef struct {
+ int type_name_len;
+ tCC* pz_type;
+ tCC* pz_TYPE;
+ tCC* pz_gtype;
+} t_gnu_type_map;
+
+extern int gnu_type_map_ct;
+
+#ifdef HAVE_MMAP_FILE
+#define UNLOAD_DATA() do { if (curr_data_mapped) { \
+ munmap ((void*)pz_curr_data, data_map_size); close (data_map_fd); } \
+ else free ((void*)pz_curr_data); } while(0)
+#else
+#define UNLOAD_DATA() free ((void*)pz_curr_data)
+#endif
+
+/*
+ * Exported procedures
+ */
+char * load_file_data ( FILE* fp );
+
+#ifdef IS_CXX_HEADER_NEEDED
+t_bool is_cxx_header ( tCC* filename, tCC* filetext );
+#endif /* IS_CXX_HEADER_NEEDED */
+
+#ifdef SKIP_QUOTE_NEEDED
+tCC* skip_quote ( char q, char* text );
+#endif
+
+void compile_re ( tCC* pat, regex_t* re, int match, tCC *e1, tCC *e2 );
+
+void apply_fix ( tFixDesc* p_fixd, tCC* filname );
+apply_fix_p_t
+ run_test ( tCC* t_name, tCC* f_name, tCC* text );
+
+#ifdef SEPARATE_FIX_PROC
+char* make_raw_shell_str ( char* pz_d, tCC* pz_s, size_t smax );
+#endif
+
+t_bool mn_get_regexps ( regex_t** label_re, regex_t** name_re, tCC *who );
+
+void initialize_opts ( void );
+#endif /* ! GCC_FIXLIB_H */
diff --git a/fixincludes/fixopts.c b/fixincludes/fixopts.c
new file mode 100644
index 000000000..d305cd767
--- /dev/null
+++ b/fixincludes/fixopts.c
@@ -0,0 +1,50 @@
+/* Handle options that are passed from environment variables.
+
+ Copyright (C) 2004, 2009 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#include "fixlib.h"
+
+#define _ENV_(v,m,n,t) tCC* v = NULL;
+ENV_TABLE
+#undef _ENV_
+
+void
+initialize_opts (void)
+{
+ static const char var_not_found[] =
+#ifndef __STDC__
+ "fixincl ERROR: %s environment variable not defined\n"
+#else
+ "fixincl ERROR: %s environment variable not defined\n"
+ "each of these must be defined:\n"
+# define _ENV_(vv,mm,nn,tt) "\t" nn " - " tt "\n"
+ ENV_TABLE
+# undef _ENV_
+#endif
+ ;
+
+#define _ENV_(v,m,n,t) { tSCC var[] = n; \
+ v = getenv (var); if (m && (v == NULL)) { \
+ fprintf (stderr, var_not_found, var); \
+ exit (EXIT_FAILURE); } }
+
+ENV_TABLE
+
+#undef _ENV_
+}
diff --git a/fixincludes/fixtests.c b/fixincludes/fixtests.c
new file mode 100644
index 000000000..d668b92f2
--- /dev/null
+++ b/fixincludes/fixtests.c
@@ -0,0 +1,154 @@
+
+/*
+
+ Test to see if a particular fix should be applied to a header file.
+
+ Copyright (C) 1997, 1998, 1999, 2000, 2009 Free Software Foundation, Inc.
+
+= = = = = = = = = = = = = = = = = = = = = = = = =
+
+NOTE TO DEVELOPERS
+
+The routines you write here must work closely with fixincl.c.
+
+Here are the rules:
+
+1. Every test procedure name must be suffixed with "_test".
+ These routines will be referenced from inclhack.def, sans the suffix.
+
+2. Use the "TEST_FOR_FIX_PROC_HEAD()" macro _with_ the "_test" suffix
+ (I cannot use the ## magic from ANSI C) for defining your entry point.
+
+3. Put your test name into the FIX_TEST_TABLE
+
+4. Do not write anything to stdout. It may be closed.
+
+5. Write to stderr only in the event of a reportable error
+ In such an event, call "exit(1)".
+
+= = = = = = = = = = = = = = = = = = = = = = = = =
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#include "fixlib.h"
+
+#define _ENV_(v,m,n,t) extern tCC* v;
+ENV_TABLE
+#undef _ENV_
+
+typedef apply_fix_p_t t_test_proc ( tCC* file, tCC* text );
+
+typedef struct {
+ tCC* test_name;
+ t_test_proc* test_proc;
+} test_entry_t;
+
+#define FIX_TEST_TABLE \
+ _FT_( "machine_name", machine_name_test ) \
+ _FT_( "stdc_0_in_system_headers", stdc_0_in_system_headers_test )
+
+#define TEST_FOR_FIX_PROC_HEAD( test ) \
+static apply_fix_p_t test ( tCC* fname ATTRIBUTE_UNUSED, \
+ tCC* text ATTRIBUTE_UNUSED )
+
+TEST_FOR_FIX_PROC_HEAD( machine_name_test )
+{
+ regex_t *label_re, *name_re;
+ regmatch_t match[2];
+ tCC *base, *limit;
+ IGNORE_ARG(fname);
+
+ if (!mn_get_regexps (&label_re, &name_re, "machine_name_test"))
+ return SKIP_FIX;
+
+ for (base = text;
+ xregexec (label_re, base, 2, match, 0) == 0;
+ base = limit)
+ {
+ base += match[0].rm_eo;
+ /* We're looking at an #if or #ifdef. Scan forward for the
+ next non-escaped newline. */
+ limit = base;
+ do
+ {
+ limit++;
+ limit = strchr (limit, '\n');
+ if (!limit)
+ return SKIP_FIX;
+ }
+ while (limit[-1] == '\\');
+
+ /* If the 'name_pat' matches in between base and limit, we have
+ a bogon. It is not worth the hassle of excluding comments,
+ because comments on #if/#ifdef/#ifndef lines are rare,
+ and strings on such lines are illegal.
+
+ REG_NOTBOL means 'base' is not at the beginning of a line, which
+ shouldn't matter since the name_re has no ^ anchor, but let's
+ be accurate anyway. */
+
+ if (xregexec (name_re, base, 1, match, REG_NOTBOL))
+ return SKIP_FIX; /* No match in file - no fix needed */
+
+ /* Match; is it on the line? */
+ if (match[0].rm_eo <= limit - base)
+ return APPLY_FIX; /* Yup */
+
+ /* Otherwise, keep looking... */
+ }
+ return SKIP_FIX;
+}
+
+
+TEST_FOR_FIX_PROC_HEAD( stdc_0_in_system_headers_test )
+{
+#ifdef STDC_0_IN_SYSTEM_HEADERS
+ return (pz_machine == NULL) ? APPLY_FIX : SKIP_FIX;
+#else
+ return APPLY_FIX;
+#endif
+}
+
+
+/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
+
+ test for fix selector
+
+ THIS IS THE ONLY EXPORTED ROUTINE
+
+*/
+apply_fix_p_t
+run_test( tCC* tname, tCC* fname, tCC* text )
+{
+#define _FT_(n,p) { n, p },
+ static test_entry_t test_table[] = { FIX_TEST_TABLE { NULL, NULL }};
+#undef _FT_
+#define TEST_TABLE_CT (ARRAY_SIZE (test_table)-1)
+
+ int ct = TEST_TABLE_CT;
+ test_entry_t* pte = test_table;
+
+ do
+ {
+ if (strcmp( pte->test_name, tname ) == 0)
+ return (*pte->test_proc)( fname, text );
+ pte++;
+ } while (--ct > 0);
+ fprintf( stderr, "fixincludes error: the `%s' fix test is unknown\n",
+ tname );
+ exit( 3 );
+}
diff --git a/fixincludes/genfixes b/fixincludes/genfixes
new file mode 100755
index 000000000..6bc60d227
--- /dev/null
+++ b/fixincludes/genfixes
@@ -0,0 +1,76 @@
+#! /bin/sh
+
+# Copyright (C) 1999, 2000, 2001, 2009 Free Software Foundation, Inc.
+# This file is part of GCC.
+
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+
+# GCC 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 General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+SHELL=/bin/sh
+export SHELL
+if [ $# -eq 0 ] ; then
+ not_done=false
+else
+ not_done=true
+fi
+
+while $not_done
+do
+ case "$1" in
+ -D )
+ shift
+ if [ $# -eq 0 ] ; then
+ not_done=false
+ else
+ AG="$AG -D$1"
+ shift
+ fi
+ ;;
+
+ -D* )
+ AG="$AG $1"
+ shift
+ ;;
+
+ '-?' )
+ echo "USAGE: gendefs [ -D<def-name> ... ]"
+ echo "WHERE: '<def-name>' specifies a #define test name from inclhack.def"
+ exit 0
+ ;;
+
+ * )
+ not_done=false
+ ;;
+ esac
+done
+
+if [ $# -eq 0 ] ; then
+ set -- fixincl.x
+fi
+
+AG="autogen $AG"
+set -e
+
+if [ -z "`${AG} -v | fgrep 'Ver. 5.'`" ]
+then
+ echo "AutoGen appears to be out of date or not correctly installed."
+ echo "Please download and install:"
+ echo " ftp://gcc.gnu.org/pub/gcc/infrastructure/autogen.tar.gz"
+ touch fixincl.x
+else
+ echo AutoGen-ing fixincl.x
+ $AG inclhack.def
+fi
+
+exit 0
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
new file mode 100644
index 000000000..ac8f79583
--- /dev/null
+++ b/fixincludes/inclhack.def
@@ -0,0 +1,4590 @@
+/* -*- Mode: C -*- */
+
+autogen definitions fixincl;
+
+/* Define all the fixes we know about for repairing damaged headers.
+ Please see the README before adding or changing entries in this file.
+
+ This is the sort command:
+
+ blocksort output=inclhack.sorted \
+ pattern='^/\*$' \
+ trailer='^/\*EOF\*[/]' \
+ input=inclhack.def \
+ key='hackname[ ]*=[ ]*(.*);'
+
+ Set up a debug test so we can make the templates emit special
+ code while debugging these fixes: */
+
+#ifdef DEBUG
+FIXINC_DEBUG = yes;
+#endif
+
+/* On AIX when _LARGE_FILES is defined stdio.h defines fopen to
+ * fopen64 etc. and this causes problems when building with g++
+ * because cstdio udefs everything from stdio.h, leaving us with
+ * ::fopen has not been declared errors. This fixes stdio.h to
+ * undef those defines and use __asm__ to alias the symbols if
+ * building with g++ and -D_LARGE_FILES
+ */
+fix = {
+ 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_;
+};
+
+
+/*
+ * On Mac OS 10.3.9, the 'long double' functions are available in
+ * libSystem, but are not prototyped in math.h.
+ */
+fix = {
+ hackname = AAB_darwin7_9_long_double_funcs;
+ mach = "*-*-darwin7.9*";
+ 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_;
+};
+
+
+/*
+ * ... and for the previous fix to be useful, you have to not use ""
+ * includes.
+ */
+fix = {
+ hackname = AAB_darwin7_9_long_double_funcs_2;
+ mach = "*-*-darwin7.9*";
+ files = math.h;
+ select = '#include[ \t]+\"';
+ c_fix = format;
+ c_fix_arg = "%1<%2.h>";
+
+ c_fix_arg = '([ \t]*#[ \t]*include[ \t]+)"([a-z0-9/]+)\.h"';
+
+ test_text = '#include "architecture/ppc/math.h"';
+};
+
+
+/*
+ * This fixes __FD_ZERO bug for linux 2.x.y (x <= 2 && y <= some n)
+ */
+fix = {
+ hackname = AAB_fd_zero_asm_posix_types_h;
+ files = asm/posix_types.h;
+ 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
+ * the start, so that if #include_next gets another instance of
+ * the wrapper, this will follow the #include_next chain until
+ * we arrive at the real <asm/posix_types.h>.
+ */
+ replace = <<- _EndOfHeader_
+ /* This file fixes a bug in the __FD_ZERO macro
+ for older versions of the Linux kernel. */
+ #ifndef _POSIX_TYPES_H_WRAPPER
+ #include <features.h>
+ #include_next <asm/posix_types.h>
+
+ #if defined(__FD_ZERO) && !defined(__GLIBC__)
+ #undef __FD_ZERO
+ #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"); \
+ } while (0)
+ #endif
+
+ #define _POSIX_TYPES_H_WRAPPER
+ #endif /* _POSIX_TYPES_H_WRAPPER */
+ _EndOfHeader_;
+};
+
+
+/*
+ * This fixes __FD_ZERO bug for glibc-1.x
+ */
+fix = {
+ hackname = AAB_fd_zero_gnu_types_h;
+ files = gnu/types.h;
+ mach = 'i[34567]86-*-linux*';
+
+ /*
+ * Define _TYPES_H_WRAPPER at the end of the wrapper, not
+ * the start, so that if #include_next gets another instance of
+ * the wrapper, this will follow the #include_next chain until
+ * we arrive at the real <gnu/types.h>.
+ */
+ replace = <<- _EndOfHeader_
+ /* This file fixes a bug in the __FD_ZERO macro present in glibc 1.x. */
+ #ifndef _TYPES_H_WRAPPER
+ #include <features.h>
+ #include_next <gnu/types.h>
+
+ #if defined(__FD_ZERO) && !defined(__GLIBC__)
+ #undef __FD_ZERO
+ # define __FD_ZERO(fdsetp) \
+ do { \
+ int __d0, __d1; \
+ __asm__ __volatile__("cld ; rep ; stosl" \
+ : "=&c" (__d0), "=&D" (__d1) \
+ : "a" (0), "0" (__FDSET_LONGS), \
+ "1" ((__fd_set *) (fdsetp)) :"memory"); \
+ } while (0)
+ #endif
+
+ #define _TYPES_H_WRAPPER
+ #endif /* _TYPES_H_WRAPPER */
+ _EndOfHeader_;
+};
+
+
+/*
+ * This fixes __FD_ZERO bug for glibc-2.0.x
+ */
+fix = {
+ hackname = AAB_fd_zero_selectbits_h;
+ files = selectbits.h;
+ mach = 'i[34567]86-*-linux*';
+
+ /*
+ * Define _SELECTBITS_H_WRAPPER at the end of the wrapper, not
+ * the start, so that if #include_next gets another instance of
+ * the wrapper, this will follow the #include_next chain until
+ * we arrive at the real <selectbits.h>.
+ */
+ replace = <<- _EndOfHeader_
+ /* This file fixes a bug in the __FD_ZERO macro present in glibc 2.0.x. */
+ #ifndef _SELECTBITS_H_WRAPPER
+ #include <features.h>
+ #include_next <selectbits.h>
+
+ #if defined(__FD_ZERO) && defined(__GLIBC__) \\
+ && defined(__GLIBC_MINOR__) && __GLIBC__ == 2 \\
+ && __GLIBC_MINOR__ == 0
+ #undef __FD_ZERO
+ #define __FD_ZERO(fdsetp) \\
+ do { \\
+ int __d0, __d1; \\
+ __asm__ __volatile__ ("cld; rep; stosl" \\
+ : "=&c" (__d0), "=&D" (__d1) \\
+ : "a" (0), "0" (sizeof (__fd_set) \\
+ / sizeof (__fd_mask)), \\
+ "1" ((__fd_mask *) (fdsetp)) \\
+ : "memory"); \\
+ } while (0)
+ #endif
+
+ #define _SELECTBITS_H_WRAPPER
+ #endif /* _SELECTBITS_H_WRAPPER */
+ _EndOfHeader_;
+};
+
+
+/*
+ * Solaris <sys/varargs.h> is a DDK (aka kernel-land) header providing
+ * the same interface as <stdarg.h>. No idea why they couldn't have just
+ * used the standard header.
+ */
+fix = {
+ hackname = AAB_solaris_sys_varargs_h;
+ files = "sys/varargs.h";
+ mach = '*-*-solaris*';
+ replace = <<- _EndOfHeader_
+ #ifdef __STDC__
+ #include <stdarg.h>
+ #else
+ #include <varargs.h>
+ #endif
+ _EndOfHeader_;
+};
+
+
+/*
+ * Fix non-ANSI memcpy declaration that conflicts with gcc's builtin
+ * declaration on Sun OS 4.x. We must only fix this on Sun OS 4.x, because
+ * many other systems have similar text but correct versions of the file.
+ * To ensure only Sun's is fixed, we grep for a likely unique string.
+ * Fix also on sysV68 R3V7.1 (head/memory.h\t50.1\t )
+ */
+fix = {
+ hackname = AAB_sun_memcpy;
+ files = memory.h;
+ select = "/\\*\t@\\(#\\)"
+ "(head/memory.h\t50.1\t "
+ "|memory\\.h 1\\.[2-4] 8./../.. SMI; from S5R2 1\\.2\t)\\*/";
+
+ replace = <<- _EndOfHeader_
+ /* This file was generated by fixincludes */
+ #ifndef __memory_h__
+ #define __memory_h__
+
+ #ifdef __STDC__
+ extern void *memccpy();
+ extern void *memchr();
+ extern void *memcpy();
+ extern void *memset();
+ #else
+ extern char *memccpy();
+ extern char *memchr();
+ extern char *memcpy();
+ extern char *memset();
+ #endif /* __STDC__ */
+
+ extern int memcmp();
+
+ #endif /* __memory_h__ */
+ _EndOfHeader_;
+};
+
+
+/*
+ * complex.h on AIX 5 and AIX 6 define _Complex_I and I in terms of __I,
+ * which only is provided by AIX xlc C99.
+ */
+fix = {
+ hackname = aix_complex;
+ mach = "*-*-aix*";
+ files = complex.h;
+ select = "#define[ \t]_Complex_I[ \t]__I";
+ c_fix = format;
+ c_fix_arg = "#define _Complex_I (__extension__ 1.0iF)";
+ test_text = "#define _Complex_I __I\n";
+};
+
+
+/*
+ * pthread.h on AIX 4.3.3 tries to define a macro without whitspace
+ * which violates a requirement of ISO C.
+ */
+fix = {
+ hackname = aix_pthread;
+ files = "pthread.h";
+ select = "(#define [A-Za-z_0-9]+)(\\\\\n[^A-Za-z_0-9 \t\n(])";
+ c_fix = format;
+ c_fix_arg = "%1 %2";
+ test_text = "#define PTHREAD_MUTEX_INITIALIZER\\\\\n"
+ "{...init stuff...}";
+};
+
+
+/*
+ * AIX stdint.h fixes.
+ */
+fix = {
+ hackname = aix_stdint_1;
+ mach = "*-*-aix*";
+ files = stdint-aix.h, stdint.h;
+ select = "#define[ \t]UINT8_MAX[ \t]\\(255U\\)\n"
+ "#define[ \t]UINT16_MAX[ \t]\\(65535U\\)";
+ c_fix = format;
+ c_fix_arg = "#define UINT8_MAX (255)\n"
+ "#define UINT16_MAX (65535)";
+ test_text = "#define UINT8_MAX (255U)\n"
+ "#define UINT16_MAX (65535U)";
+};
+
+
+fix = {
+ hackname = aix_stdint_2;
+ mach = "*-*-aix*";
+ files = stdint-aix.h, stdint.h;
+ select = "#define[ \t]INTPTR_MIN[ \t]INT64_MIN\n"
+ "#define[ \t]INTPTR_MAX[ \t]INT64_MAX\n"
+ "#define[ \t]UINTPTR_MAX[ \t]UINT64_MAX\n"
+ "#else\n"
+ "#define[ \t]INTPTR_MIN[ \t]INT32_MIN\n"
+ "#define[ \t]INTPTR_MAX[ \t]INT32_MAX\n"
+ "#define[ \t]UINTPTR_MAX[ \t]UINT32_MAX";
+ c_fix = format;
+ c_fix_arg = "#define INTPTR_MIN (-INTPTR_MAX-1)\n"
+ "#define INTPTR_MAX 9223372036854775807L\n"
+ "#define UINTPTR_MAX 18446744073709551615UL\n"
+ "#else\n"
+ "#define INTPTR_MIN (-INTPTR_MAX-1)\n"
+ "#define INTPTR_MAX 2147483647L\n"
+ "#define UINTPTR_MAX 4294967295UL";
+ test_text = "#define INTPTR_MIN INT64_MIN\n"
+ "#define INTPTR_MAX INT64_MAX\n"
+ "#define UINTPTR_MAX UINT64_MAX\n"
+ "#else\n"
+ "#define INTPTR_MIN INT32_MIN\n"
+ "#define INTPTR_MAX INT32_MAX\n"
+ "#define UINTPTR_MAX UINT32_MAX";
+};
+
+
+fix = {
+ hackname = aix_stdint_3;
+ mach = "*-*-aix*";
+ files = stdint-aix.h, stdint.h;
+ select = "#define[ \t]PTRDIFF_MIN[ \t]INT64_MIN\n"
+ "#define[ \t]PTRDIFF_MAX[ \t]INT64_MAX\n"
+ "#else\n"
+ "#define[ \t]PTRDIFF_MIN[ \t]*INT32_MIN\n"
+ "#define[ \t]PTRDIFF_MAX[ \t]*INT32_MAX";
+ c_fix = format;
+ c_fix_arg = "#define PTRDIFF_MIN (-9223372036854775807L - 1)\n"
+ "#define PTRDIFF_MAX 9223372036854775807L\n"
+ "#else\n"
+ "#define PTRDIFF_MIN (-2147483647L - 1)\n"
+ "#define PTRDIFF_MAX 2147483647L";
+ test_text = "#define PTRDIFF_MIN INT64_MIN\n"
+ "#define PTRDIFF_MAX INT64_MAX\n"
+ "#else\n"
+ "#define PTRDIFF_MIN INT32_MIN\n"
+ "#define PTRDIFF_MAX INT32_MAX";
+};
+
+
+fix = {
+ hackname = aix_stdint_4;
+ mach = "*-*-aix*";
+ files = stdint-aix.h, stdint.h;
+ select = "#define[ \t]SIZE_MAX[ \t]UINT64_MAX\n"
+ "#else\n"
+ "#define[ \t]SIZE_MAX[ \t]*UINT32_MAX";
+ c_fix = format;
+ c_fix_arg = "#define SIZE_MAX 18446744073709551615UL\n"
+ "#else\n"
+ "#define SIZE_MAX 4294967295UL";
+ test_text = "#define SIZE_MAX UINT64_MAX\n"
+ "#else\n"
+ "#define SIZE_MAX UINT32_MAX";
+};
+
+
+fix = {
+ hackname = aix_stdint_5;
+ mach = "*-*-aix*";
+ files = stdint-aix.h, stdint.h;
+ select = "#define[ \t]UINT8_C\\(c\\)[ \t]__CONCAT__\\(c,U\\)\n"
+ "#define[ \t]UINT16_C\\(c\\)[ \t]__CONCAT__\\(c,U\\)";
+ c_fix = format;
+ c_fix_arg = "#define UINT8_C(c) c\n"
+ "#define UINT16_C(c) c";
+ test_text = "#define UINT8_C(c) __CONCAT__(c,U)\n"
+ "#define UINT16_C(c) __CONCAT__(c,U)";
+};
+
+
+/*
+ * sys/machine.h on AIX 4.3.3 puts whitespace between a \ and a newline
+ * in an otherwise harmless (and #ifed out) macro definition
+ */
+fix = {
+ hackname = aix_sysmachine;
+ files = sys/machine.h;
+ select = "\\\\ +\n";
+ c_fix = format;
+ c_fix_arg = "\\\n";
+ test_text = "#define FOO \\\n"
+ " bar \\ \n baz \\ \n bat";
+};
+
+
+/*
+ * sys/wait.h on AIX 5.2 defines macros that have both signed and
+ * unsigned types in conditional expressions.
+ */
+fix = {
+ hackname = aix_syswait_2;
+ files = sys/wait.h;
+ select = '\? (\(\(\(\(unsigned[^)]*\)[^)]*\) >> [^)]*\) \& 0xff\) : -1)';
+ c_fix = format;
+ c_fix_arg = "? (int)%1";
+ test_text = "#define WSTOPSIG(__x) (int)(WIFSTOPPED(__x) ? ((((unsigned int)__x) >> 8) & 0xff) : -1)";
+};
+
+
+/*
+ * sys/signal.h on some versions of AIX uses volatile in the typedef of
+ * sig_atomic_t, which causes gcc to generate a warning about duplicate
+ * volatile when a sig_atomic_t variable is declared volatile, as
+ * required by ANSI C.
+ */
+fix = {
+ hackname = aix_volatile;
+ files = sys/signal.h;
+ select = "typedef volatile int sig_atomic_t";
+ c_fix = format;
+ c_fix_arg = "typedef int sig_atomic_t";
+ test_text = "typedef volatile int sig_atomic_t;";
+};
+
+
+/*
+ * Fix __assert declaration in assert.h on Alpha OSF/1.
+ */
+fix = {
+ hackname = alpha___assert;
+ files = "assert.h";
+ select = '__assert\(char \*, char \*, int\)';
+ c_fix = format;
+ c_fix_arg = "__assert(const char *, const char *, int)";
+ test_text = 'extern void __assert(char *, char *, int);';
+};
+
+
+/*
+ * Obey __PRAGMA_EXTERN_PREFIX for Tru64 UNIX V4/5 headers.
+ */
+fix = {
+ hackname = alpha___extern_prefix;
+ select = "(.*)(defined\\(__DECC\\)|def[ \t]*__DECC)[ \t]*\n"
+ "(#[ \t]*pragma[ \t]*extern_prefix.*)";
+
+ mach = "alpha*-dec-osf*";
+ c_fix = format;
+ c_fix_arg = "%1 (defined(__DECC) || defined(__PRAGMA_EXTERN_PREFIX))\n%3";
+
+ test_text = "#ifdef __DECC\n"
+ "#pragma extern_prefix \"_P\"\n"
+ "# if defined(__DECC)\n"
+ "# pragma extern_prefix \"_E\"\n"
+ "# if !defined(_LIBC_POLLUTION_H_) && defined(__DECC)\n"
+ "# pragma extern_prefix \"\"";
+};
+
+
+/*
+ * Obey __PRAGMA_EXTERN_PREFIX for Tru64 UNIX V4/5 <standards.h>.
+ */
+fix = {
+ hackname = alpha___extern_prefix_standards;
+ files = standards.h;
+ select = ".*!defined\\(_LIBC_POLLUTION_H_\\) && !defined\\(__DECC\\)";
+
+ mach = "alpha*-dec-osf*";
+ c_fix = format;
+ c_fix_arg = "%0 && !defined(__PRAGMA_EXTERN_PREFIX)";
+
+ test_text = "#if (_ISO_C_SOURCE>=19990L) "
+ "&& !defined(_LIBC_POLLUTION_H_) && !defined(__DECC)";
+};
+
+
+/*
+ * Obey __PRAGMA_EXTERN_PREFIX for Tru64 UNIX V5 <sys/mount.h> and
+ * <sys/stat.h>. The tests for __DECC are special in various ways, so
+ * alpha__extern_prefix cannot be used.
+ */
+fix = {
+ hackname = alpha___extern_prefix_sys_stat;
+ files = sys/stat.h;
+ files = sys/mount.h;
+ select = "#[ \t]*if[ \t]*defined\\(__DECC\\)";
+
+ mach = "alpha*-dec-osf5*";
+ c_fix = format;
+ c_fix_arg = "%0 || defined(__PRAGMA_EXTERN_PREFIX)";
+
+ test_text = "# if defined(__DECC)";
+};
+
+
+/*
+ * Fix assert macro in assert.h on Alpha OSF/1.
+ * The superfluous int cast breaks C++.
+ */
+fix = {
+ hackname = alpha_assert;
+ files = "assert.h";
+ select = "(#[ \t]*" 'define assert\(EX\).*)\(\(int\) \(EX\)\)';
+ c_fix = format;
+ c_fix_arg = "%1(EX)";
+ test_text = '#define assert(EX) (((int) (EX)) ? (void)0 '
+ ': __assert(#EX, __FILE__, __LINE__))';
+};
+
+
+/*
+ * Fix #defines under Alpha OSF/1:
+ * The following files contain '#pragma extern_prefix "_FOO"' followed by
+ * a '#define something(x,y,z) _FOOsomething(x,y,z)'. The intent of these
+ * statements is to reduce namespace pollution. While these macros work
+ * properly in most cases, they don't allow you to take a pointer to the
+ * "something" being modified. To get around this limitation, change these
+ * statements to be of the form '#define something _FOOsomething'.
+ *
+ * sed ain't egrep, lesson 2463: sed can use self-referential
+ * regular expressions. In the substitute expression below,
+ * "\\1" and "\\2" refer to subexpressions found earlier in the
+ * same match. So, we continue to use sed. "extern_prefix" will
+ * be a rare match anyway...
+ */
+fix = {
+ hackname = alpha_bad_lval;
+
+ select = "^[ \t]*#[ \t]*pragma[ \t]+extern_prefix";
+ mach = "alpha*-dec-osf*";
+
+ sed =
+ "s/^[ \t]*#[ \t]*define[ \t][ \t]*\\([^(]*\\)\\(([^)]*)\\)[ \t]*"
+ "\\(_.*\\)\\1\\2[ \t]*$/#define \\1 \\3\\1/";
+
+ test_text = '#pragma extern_prefix "_FOO"'"\n"
+ "#define something(x,y,z) _FOOsomething(x,y,z)\n"
+ "#define mumble _FOOmumble";
+};
+
+
+/*
+ * Fix getopt declarations in stdio.h and stdlib.h on Alpha OSF/1 and AIX.
+ */
+fix = {
+ hackname = alpha_getopt;
+ files = "stdio.h";
+ files = "stdlib.h";
+ select = 'getopt\(int, char \*\[\], *char \*\)';
+ c_fix = format;
+ c_fix_arg = "getopt(int, char *const[], const char *)";
+ test_text = 'extern int getopt(int, char *[], char *);';
+};
+
+
+/*
+ * Fix missing semicolon on Alpha OSF/4 in <net/if.h>
+ */
+fix = {
+ hackname = alpha_if_semicolon;
+ files = net/if.h;
+ select = "struct[ \t]+sockaddr[ \t]+vmif_paddr[ \t]+/\\*";
+ c_fix = format;
+ c_fix_arg = "struct sockaddr vmif_paddr;\t/*";
+ test_text = ' struct sockaddr vmif_paddr /* protocol address */';
+};
+
+
+/*
+ * Remove erroneous parentheses in sym.h on Alpha OSF/1.
+ */
+fix = {
+ hackname = alpha_parens;
+ files = sym.h;
+ select = '#ifndef\(__mips64\)';
+ c_fix = format;
+ c_fix_arg = "#ifndef __mips64";
+ test_text = "#ifndef(__mips64) /* bogus */\nextern int foo;\n#endif";
+};
+
+
+/*
+ * Obey __PRAGMA_EXTERN_PREFIX for Tru64 UNIX <pthread.h>.
+ */
+fix = {
+ hackname = alpha_pthread;
+ files = pthread.h;
+ select = "((#[ \t]*if)([ \t]*defined[ \t]*\\(_PTHREAD_ENV_DECC\\)"
+ "|def _PTHREAD_ENV_DECC)(.*))\n"
+ "(#[ \t]*define _PTHREAD_USE_PTDNAM_)";
+
+ mach = "alpha*-dec-osf*";
+ c_fix = format;
+ c_fix_arg = "%2 defined (_PTHREAD_ENV_DECC)%4 "
+ "|| defined (__PRAGMA_EXTERN_PREFIX)\n%5";
+
+ test_text = "# if defined (_PTHREAD_ENV_DECC) "
+ "|| defined (_PTHREAD_ENV_EPCC)\n"
+ "# define _PTHREAD_USE_PTDNAM_\n"
+ "# endif\n"
+ "# ifdef _PTHREAD_ENV_DECC\n"
+ "# define _PTHREAD_USE_PTDNAM_\n"
+ "# endif";
+};
+
+
+/*
+ * Recognize GCC in Tru64 UNIX V5.1B <pthread.h>.
+ */
+fix = {
+ hackname = alpha_pthread_gcc;
+ files = pthread.h;
+ select = "#else\n# error <pthread.h>: unrecognized compiler.";
+
+ mach = "alpha*-dec-osf*";
+ c_fix = format;
+ c_fix_arg = "#elif defined (__GNUC__)\n"
+ "# define _PTHREAD_ENV_GCC\n"
+ "%0";
+
+ test_text = "# define _PTHREAD_ENV_INTELC\n"
+ "#else\n"
+ "# error <pthread.h>: unrecognized compiler.\n"
+ "#endif";
+};
+
+
+/*
+ * Compaq Tru64 v5.1 defines all of its PTHREAD_*_INITIALIZER macros
+ * incorrectly, specifying less fields in the initializers than are
+ * defined in the corresponding structure types. Use of these macros
+ * in user code results in spurious warnings.
+ */
+fix = {
+ hackname = alpha_pthread_init;
+ files = pthread.h;
+ select = ' \* @\(#\).RCSfile: pthread\.h,v \$'
+ ' .Revision: 1\.1\.33\.21 \$ \(DEC\)'
+ ' .Date: 2000/08/15 15:30:13 \$';
+ mach = "alpha*-dec-osf*";
+ sed = "s@MVALID\\(.*\\)A}@MVALID\\1A, 0, 0, 0, 0, 0, 0 }@\n"
+ "s@MVALID\\(.*\\)_}@MVALID\\1_, 0, 0, 0, 0 }@\n"
+ "s@CVALID\\(.*\\)A}@CVALID\\1A, 0, 0, 0, 0 }@\n"
+ "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 = <<- _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.
+ */
+fix = {
+ hackname = alpha_sbrk;
+ files = unistd.h;
+ select = "char[ \t]*\\*[\t ]*sbrk[ \t]*\\(";
+ c_fix = format;
+ c_fix_arg = "void *sbrk(";
+ test_text = "extern char* sbrk(ptrdiff_t increment);";
+};
+
+
+/*
+ * For C++, avoid any typedef or macro definition of bool,
+ * and use the built in type instead.
+ * HP/UX 10.20 also has it in curses_colr/curses.h.
+ */
+fix = {
+ hackname = avoid_bool_define;
+ files = curses.h;
+ files = curses_colr/curses.h;
+ files = term.h;
+ files = tinfo.h;
+
+ select = "#[ \t]*define[ \t]+bool[ \t]";
+ bypass = "__cplusplus";
+
+ c_fix = format;
+ c_fix_arg = "#ifndef __cplusplus\n%0\n#endif";
+ c_fix_arg = "^[ \t]*#[ \t]*define[ \t]+bool[ \t].*";
+
+ test_text = "# define bool\t char \n";
+};
+
+
+fix = {
+ hackname = avoid_bool_type;
+ files = curses.h;
+ files = curses_colr/curses.h;
+ files = term.h;
+ files = tinfo.h;
+
+ select = "^[ \t]*typedef[ \t].*[ \t]bool[ \t]*;";
+ bypass = "__cplusplus";
+
+ c_fix = format;
+ c_fix_arg = "#ifndef __cplusplus\n%0\n#endif";
+
+ test_text = "typedef unsigned int\tbool \t; /* bool\n type */";
+};
+
+
+/*
+ * For C++, avoid any typedef definition of wchar_t,
+ * and use the built in type instead.
+ * Don't do this for headers that are smart enough to do the right
+ * thing (recent [n]curses.h and Xlib.h).
+ * Don't do it for <linux/nls.h> which is never used from C++ anyway,
+ * and will be broken by the edit.
+ */
+
+fix = {
+ hackname = avoid_wchar_t_type;
+
+ select = "^[ \t]*typedef[ \t].*[ \t]wchar_t[ \t]*;";
+ bypass = "__cplusplus";
+ bypass = "_LINUX_NLS_H";
+ bypass = "XFree86: xc/lib/X11/Xlib\\.h";
+
+ c_fix = format;
+ c_fix_arg = "#ifndef __cplusplus\n%0\n#endif";
+
+ test_text = "typedef unsigned short\twchar_t \t; /* wchar_t\n type */";
+};
+
+
+/*
+ * Fix `typedef struct term;' on hppa1.1-hp-hpux9.
+ */
+fix = {
+ hackname = bad_struct_term;
+ files = curses.h;
+ select = "^[ \t]*typedef[ \t]+struct[ \t]+term[ \t]*;";
+ c_fix = format;
+ c_fix_arg = "struct term;";
+
+ test_text = 'typedef struct term;';
+};
+
+
+/*
+ * Fix one other error in this file:
+ * a mismatched quote not inside a C comment.
+ */
+fix = {
+ hackname = badquote;
+ files = sundev/vuid_event.h;
+ select = "doesn't";
+ c_fix = format;
+ c_fix_arg = "does not";
+
+ test_text = "/* doesn't have matched single quotes */";
+};
+
+
+/*
+ * check for broken assert.h that needs stdio.h
+ */
+fix = {
+ hackname = broken_assert_stdio;
+ files = assert.h;
+ select = stderr;
+ bypass = "include.*stdio\\.h";
+ c_fix = wrap;
+ c_fix_arg = "#include <stdio.h>\n";
+ test_text = "extern FILE* stderr;";
+};
+
+
+/*
+ * check for broken assert.h that needs stdlib.h
+ */
+fix = {
+ hackname = broken_assert_stdlib;
+ files = assert.h;
+ select = 'exit *\(|abort *\(';
+ bypass = "include.*stdlib\\.h";
+ c_fix = wrap;
+ c_fix_arg = "#ifdef __cplusplus\n"
+ "#include <stdlib.h>\n"
+ "#endif\n";
+ test_text = "extern void exit ( int );";
+};
+
+
+/*
+ * Remove `extern double cabs' declarations from math.h.
+ * This conflicts with C99. Discovered on AIX.
+ * IRIX 5 and IRIX 6 before 6.5.18 (where C99 support was introduced)
+ * declares cabs() to take a struct __cabs_s argument.
+ * SunOS4 has its cabs() declaration followed by a comment which
+ * terminates on the following line.
+ * Darwin hides its broken cabs in architecture-specific subdirs.
+ */
+fix = {
+ hackname = broken_cabs;
+ files = math.h, "architecture/*/math.h";
+ select = "^extern[ \t]+double[ \t]+cabs";
+
+ sed = "s/^extern[ \t]*double[ \t]*cabs[ \t]*\([^\\\)]*\);//";
+ sed = "s/^extern[ \t]*long[ \t]*double[ \t]*cabsl[ \t]*\([^\\\)]*\);//";
+
+ test_text = "#ifdef __STDC__\n"
+ "extern double cabs(struct dbl_hypot);\n"
+ "#else\n"
+ "extern double cabs();\n"
+ "#endif\n"
+ "extern double cabs ( _Complex z );\n"
+ "extern double cabs(); /* This is a comment\n"
+ " and it ends here. */\n"
+ "extern double cabs(struct __cabs_s);\n"
+ "extern long double cabsl( struct __cabsl_s );";
+};
+
+
+/*
+ * Fixup Darwin's broken check for __builtin_nanf.
+ */
+fix = {
+ hackname = broken_nan;
+ /*
+ * It is tempting to omit the first "files" entry. Do not.
+ * The testing machinery will take the first "files" entry as the name
+ * of a test file to play with. It would be a nuisance to have a directory
+ * with the name "*".
+ */
+ files = "architecture/ppc/math.h";
+ files = "architecture/*/math.h";
+ select = "#if defined(__APPLE_CC__) && (__APPLE_CC__ >= 1345)";
+ bypass = "powl";
+ c_fix = format;
+ c_fix_arg = "#if 1";
+ test_text = "#if defined(__APPLE_CC__) && (__APPLE_CC__ >= 1345)";
+};
+
+
+/*
+ * Various systems derived from BSD4.4 contain a macro definition
+ * for vfscanf that interacts badly with requirements of builtin-attrs.def.
+ * Known to be fixed in FreeBSD 5 system headers.
+ */
+fix = {
+ hackname = bsd_stdio_attrs_conflict;
+ mach = "*-*-*bsd*";
+ mach = "*-*-*darwin*";
+ files = stdio.h;
+ select = "^#define[ \t]*vfscanf[ \t]*__svfscanf[ \t]*$";
+ c_fix = format;
+ c_fix_arg = '#define _BSD_STRING(_BSD_X) _BSD_STRINGX(_BSD_X)' "\n"
+ '#define _BSD_STRINGX(_BSD_X) #_BSD_X' "\n"
+ 'int vfscanf(FILE *, const char *, __builtin_va_list) '
+ '__asm__ (_BSD_STRING(__USER_LABEL_PREFIX__) "__svfscanf");';
+ test_text = '#define vfscanf __svfscanf';
+};
+
+
+/*
+ * Fix various macros used to define ioctl numbers.
+ * The traditional syntax was:
+ *
+ * #define _CTRL(n, x) (('n'<<8)+x)
+ * #define TCTRLCFOO _CTRL(T, 1)
+ *
+ * but this does not work with the C standard, which disallows macro
+ * expansion inside strings. We have to rewrite it thus:
+ *
+ * #define _CTRL(n, x) ((n<<8)+x)
+ * #define TCTRLCFOO _CTRL('T', 1)
+ *
+ * The select expressions match too much, but the c_fix code is cautious.
+ *
+ * CTRL might be: CTRL _CTRL ISCTRL BSD43_CTRL ...
+ */
+fix = {
+ hackname = ctrl_quotes_def;
+ select = "define[ \t]+[A-Z0-9_]+CTRL\\([a-zA-Z][,)]";
+ c_fix = char_macro_def;
+ c_fix_arg = "CTRL";
+
+ /*
+ * This is two tests in order to ensure that the "CTRL(c)" can
+ * be selected in isolation from the multi-arg format
+ */
+ test_text = "#define BSD43_CTRL(n, x) (('n'<<8)+x)\n";
+ test_text = "#define _CTRL(c) ('c'&037)";
+};
+
+fix = {
+ hackname = ctrl_quotes_use;
+ select = "define[ \t]+[A-Z0-9_]+[ \t]+[A-Z0-9_]+CTRL[ \t]*\\( *[^,']";
+ c_fix = char_macro_use;
+ c_fix_arg = "CTRL";
+ test_text = "#define TCTRLFOO BSD43_CTRL(T, 1)";
+};
+
+
+/*
+ * sys/mman.h on HP/UX is not C++ ready,
+ * even though NO_IMPLICIT_EXTERN_C is defined on HP/UX.
+ *
+ * rpc/types.h on OSF1/2.0 is not C++ ready,
+ * even though NO_IMPLICIT_EXTERN_C is defined for the alpha.
+ *
+ * The problem is the declaration of malloc.
+ */
+fix = {
+ hackname = cxx_unready;
+ files = sys/mman.h;
+ files = rpc/types.h;
+ select = '[^#]+malloc.*;'; /* Catch any form of declaration
+ not within a macro. */
+ bypass = '"C"|__BEGIN_DECLS';
+
+ c_fix = wrap;
+ c_fix_arg = "#ifdef __cplusplus\n"
+ "extern \"C\" {\n"
+ "#endif\n";
+ c_fix_arg = "#ifdef __cplusplus\n"
+ "}\n"
+ "#endif\n";
+ test_text = "extern void* malloc( size_t );";
+};
+
+
+/*
+ * On darwin8 and earlier, mach-o/swap.h isn't properly guarded
+ * by 'extern "C"'. On darwin7 some mach/ headers aren't properly guarded.
+ */
+fix = {
+ hackname = darwin_externc;
+ mach = "*-*-darwin*";
+ files = mach-o/swap.h;
+ files = mach/mach_time.h;
+ files = mach/mach_traps.h;
+ files = mach/message.h;
+ files = mach/mig.h;
+ files = mach/semaphore.h;
+ bypass = "extern \"C\"";
+ bypass = "__BEGIN_DECLS";
+ c_fix = wrap;
+ c_fix_arg = "#ifdef __cplusplus\n"
+ "extern \"C\" {\n"
+ "#endif\n";
+ c_fix_arg = "#ifdef __cplusplus\n"
+ "}\n"
+ "#endif\n";
+ test_text = "extern void swap_fat_header();\n";
+};
+
+
+/*
+ * AvailabilityMacros.h on Darwin breaks with GCC 4.0, because of
+ * bad __GNUC__ tests.
+ */
+
+fix = {
+ hackname = darwin_gcc4_breakage;
+ mach = "*-*-darwin*";
+ files = AvailabilityMacros.h;
+ select = "\\(__GNUC__ >= 3\\) && \\(__GNUC_MINOR__ >= 1\\)";
+ c_fix = format;
+ c_fix_arg = "((__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))";
+ test_text = "#if defined(__GNUC__) && (__GNUC__ >= 3) && "
+ "(__GNUC_MINOR__ >= 1)\n";
+};
+
+
+/*
+ * __private_extern__ doesn't exist in FSF GCC. Even if it did,
+ * why would you ever put it in a system header file?
+ */
+fix = {
+ hackname = darwin_private_extern;
+ mach = "*-*-darwin*";
+ files = mach-o/dyld.h;
+ select = "__private_extern__ [a-z_]+ _dyld_";
+ c_fix = format;
+ c_fix_arg = "extern";
+ c_fix_arg = "__private_extern__";
+ test_text = "__private_extern__ int _dyld_func_lookup(\n"
+ "const char *dyld_func_name,\n"
+ "unsigned long *address);\n";
+};
+
+
+/*
+ * Darwin headers have a stdint.h that defines UINT8_C and UINT16_C to
+ * unsigned constants.
+ */
+fix = {
+ hackname = darwin_stdint_1;
+ mach = "*-*-darwin*";
+ files = stdint-darwin.h, stdint.h;
+ c_fix = format;
+ c_fix_arg = "#define UINT8_C(v)\tv\n#define UINT16_C(v)\tv";
+ select = "#define UINT8_C\\(v\\)[ \t]+\\(v ## U\\)\n"
+ "#define UINT16_C\\(v\\)[ \t]+\\(v ## U\\)";
+ test_text = "#define UINT8_C(v) (v ## U)\n"
+ "#define UINT16_C(v) (v ## U)";
+};
+
+
+/*
+ * Darwin headers have a stdint.h that defines INTPTR_MIN and INTPTR_MAX
+ * with wrong types.
+ */
+fix = {
+ hackname = darwin_stdint_2;
+ mach = "*-*-darwin*";
+ files = stdint-darwin.h, stdint.h;
+ c_fix = format;
+ c_fix_arg = "#if __WORDSIZE == 64\n"
+ "#define INTPTR_MAX 9223372036854775807L\n"
+ "#define INTPTR_MIN (-INTPTR_MAX-1)\n"
+ "#else\n"
+ "#define INTPTR_MAX 2147483647L\n"
+ "#define INTPTR_MIN (-INTPTR_MAX-1)\n"
+ "#endif";
+ select = "#if __WORDSIZE == 64\n"
+ "#define INTPTR_MIN[ \t]+INT64_MIN\n"
+ "#define INTPTR_MAX[ \t]+INT64_MAX\n"
+ "#else\n"
+ "#define INTPTR_MIN[ \t]+INT32_MIN\n"
+ "#define INTPTR_MAX[ \t]+INT32_MAX\n"
+ "#endif";
+ test_text = "#if __WORDSIZE == 64\n"
+ "#define INTPTR_MIN INT64_MIN\n"
+ "#define INTPTR_MAX INT64_MAX\n"
+ "#else\n"
+ "#define INTPTR_MIN INT32_MIN\n"
+ "#define INTPTR_MAX INT32_MAX\n"
+ "#endif";
+};
+
+
+/*
+ * Darwin headers have a stdint.h that defines UINTPTR_MAX with a wrong type.
+ */
+fix = {
+ hackname = darwin_stdint_3;
+ mach = "*-*-darwin*";
+ files = stdint-darwin.h, stdint.h;
+ c_fix = format;
+ c_fix_arg = "#if __WORDSIZE == 64\n"
+ "#define UINTPTR_MAX 18446744073709551615UL\n"
+ "#else\n"
+ "#define UINTPTR_MAX 4294967295UL\n"
+ "#endif";
+ select = "#if __WORDSIZE == 64\n"
+ "#define UINTPTR_MAX[ \t]+UINT64_MAX\n"
+ "#else\n"
+ "#define UINTPTR_MAX[ \t]+UINT32_MAX\n"
+ "#endif";
+ test_text = "#if __WORDSIZE == 64\n"
+ "#define UINTPTR_MAX UINT64_MAX\n"
+ "#else\n"
+ "#define UINTPTR_MAX UINT32_MAX\n"
+ "#endif";
+};
+
+
+/*
+ * Darwin headers have a stdint.h that defines SIZE_MAX with a wrong type.
+ */
+fix = {
+ hackname = darwin_stdint_4;
+ mach = "*-*-darwin*";
+ files = stdint-darwin.h, stdint.h;
+ c_fix = format;
+ c_fix_arg = "#if __WORDSIZE == 64\n"
+ "#define SIZE_MAX 18446744073709551615UL\n"
+ "#else\n"
+ "#define SIZE_MAX 4294967295UL\n"
+ "#endif";
+ select = "#if __WORDSIZE == 64\n"
+ "#define SIZE_MAX[ \t]+UINT64_MAX\n"
+ "#else\n"
+ "#define SIZE_MAX[ \t]+UINT32_MAX\n"
+ "#endif";
+ test_text = "#if __WORDSIZE == 64\n"
+ "#define SIZE_MAX UINT64_MAX\n"
+ "#else\n"
+ "#define SIZE_MAX UINT32_MAX\n"
+ "#endif";
+};
+
+
+/*
+ * Darwin headers have a stdint.h that defines {U,}INTMAX_{MIN,MAX}
+ * with a wrong type.
+ */
+fix = {
+ hackname = darwin_stdint_5;
+ mach = "*-*-darwin*";
+ files = stdint-darwin.h, stdint.h;
+ c_fix = format;
+ c_fix_arg = "#if __WORDSIZE == 64\n"
+ "#define INTMAX_MIN (-9223372036854775807L - 1)\n"
+ "#define INTMAX_MAX 9223372036854775807L\n"
+ "#define UINTMAX_MAX 18446744073709551615UL\n"
+ "#else\n"
+ "#define INTMAX_MIN (-9223372036854775807LL - 1)\n"
+ "#define INTMAX_MAX 9223372036854775807LL\n"
+ "#define UINTMAX_MAX 18446744073709551615ULL\n"
+ "#endif";
+ select = "#define INTMAX_MIN[ \t]+INT64_MIN\n"
+ "#define INTMAX_MAX[ \t]+INT64_MAX\n"
+ "\n"
+ "#define UINTMAX_MAX[ \t]+UINT64_MAX";
+ test_text = "#define INTMAX_MIN INT64_MIN\n"
+ "#define INTMAX_MAX INT64_MAX\n"
+ "\n"
+ "#define UINTMAX_MAX UINT64_MAX";
+};
+
+
+/*
+ * Darwin headers have a stdint.h that defines {U,}INTMAX_C
+ * with a wrong type.
+ */
+fix = {
+ hackname = darwin_stdint_6;
+ mach = "*-*-darwin*";
+ files = stdint-darwin.h, stdint.h;
+ c_fix = format;
+ c_fix_arg = "#if __WORDSIZE == 64\n"
+ "#define PTRDIFF_MIN (-9223372036854775807L - 1)\n"
+ "#define PTRDIFF_MAX 9223372036854775807L\n"
+ "#else\n"
+ "#define PTRDIFF_MIN (-2147483647 - 1)\n"
+ "#define PTRDIFF_MAX 2147483647\n"
+ "#endif";
+ select = "#if __WORDSIZE == 64\n"
+ "#define PTRDIFF_MIN[ \t]+INT64_MIN\n"
+ "#define PTRDIFF_MAX[ \t]+INT64_MAX\n"
+ "#else\n"
+ "#define PTRDIFF_MIN[ \t]+INT32_MIN\n"
+ "#define PTRDIFF_MAX[ \t]+INT32_MAX\n"
+ "#endif";
+ test_text = "#if __WORDSIZE == 64\n"
+ "#define PTRDIFF_MIN INT64_MIN\n"
+ "#define PTRDIFF_MAX INT64_MAX\n"
+ "#else\n"
+ "#define PTRDIFF_MIN INT32_MIN\n"
+ "#define PTRDIFF_MAX INT32_MAX\n"
+ "#endif";
+};
+
+
+/*
+ * Darwin headers have a stdint.h that defines {U,}INTMAX_C
+ * with a wrong type.
+ */
+fix = {
+ hackname = darwin_stdint_7;
+ mach = "*-*-darwin*";
+ files = stdint-darwin.h, stdint.h;
+ c_fix = format;
+ c_fix_arg = "#if __WORDSIZE == 64\n"
+ "#define INTMAX_C(v) (v ## L)\n"
+ "#define UINTMAX_C(v) (v ## UL)\n"
+ "#else\n"
+ "#define INTMAX_C(v) (v ## LL)\n"
+ "#define UINTMAX_C(v) (v ## ULL)\n"
+ "#endif";
+ select = "#define INTMAX_C\\(v\\)[ \t]+\\(v ## LL\\)\n"
+ "#define UINTMAX_C\\(v\\)[ \t]+\\(v ## ULL\\)";
+ test_text = "#define INTMAX_C(v) (v ## LL)\n"
+ "#define UINTMAX_C(v) (v ## ULL)";
+};
+
+
+/*
+ * Fix <c_asm.h> on Digital UNIX V4.0:
+ * It contains a prototype for a DEC C internal asm() function,
+ * clashing with gcc's asm keyword. So protect this with __DECC.
+ */
+fix = {
+ hackname = dec_intern_asm;
+ files = c_asm.h;
+ sed = "/^[ \t]*float[ \t]*fasm/i\\\n#ifdef __DECC\n";
+ sed = "/^[ \t]*#[ \t]*pragma[ \t]*intrinsic([ \t]*dasm/a\\\n"
+ "#endif\n";
+ test_text =
+ "float fasm {\n"
+ " ... asm stuff ...\n"
+ "};\n#pragma intrinsic( dasm )\n/* END ASM TEST*/";
+};
+
+
+/*
+ * Fix typo in <wchar.h> on DJGPP 2.03.
+ */
+fix = {
+ hackname = djgpp_wchar_h;
+ file = wchar.h;
+ select = "__DJ_wint_t";
+ bypass = "sys/djtypes.h";
+ c_fix = format;
+ c_fix_arg = "%0\n#include <sys/djtypes.h>";
+ c_fix_arg = "#include <stddef.h>";
+ test_text = "#include <stddef.h>\n"
+ "extern __DJ_wint_t x;\n";
+};
+
+
+/*
+ * Fix these Sun OS files to avoid an invalid identifier in an #ifdef.
+ */
+fix = {
+ hackname = ecd_cursor;
+ files = "sunwindow/win_lock.h";
+ files = "sunwindow/win_cursor.h";
+ select = 'ecd\.cursor';
+ c_fix = format;
+ c_fix_arg = 'ecd_cursor';
+
+ test_text = "#ifdef ecd.cursor\n#error bogus\n#endif /* ecd+cursor */";
+};
+
+
+/*
+ * Between 8/24/1998 and 2/17/2001, FreeBSD system headers presume
+ * neither the existence of GCC 3 nor its exact feature set yet break
+ * (by design?) when __GNUC__ is set beyond 2.
+ */
+fix = {
+ hackname = freebsd_gcc3_breakage;
+ mach = "*-*-freebsd*";
+ files = sys/cdefs.h;
+ select = '^#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7$';
+ bypass = '__GNUC__[ \t]*([>=]=[ \t]*[3-9]|>[ \t]*2)';
+ c_fix = format;
+ c_fix_arg = '%0 || __GNUC__ >= 3';
+ test_text = '#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7';
+};
+
+
+/*
+ * Some releases of FreeBSD 4 and FreeBSD 5.0 and 5.1 system headers presume
+ * neither the existence of GCC 4 nor its exact feature set yet break
+ * (by design?) when __GNUC__ is set beyond 3.
+ */
+fix = {
+ hackname = freebsd_gcc4_breakage;
+ mach = "*-*-freebsd*";
+ files = sys/cdefs.h;
+ select = '^#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7 \|\| __GNUC__ == 3$';
+ c_fix = format;
+ c_fix_arg = '#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7 || __GNUC__ >= 3';
+ test_text = '#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7 || __GNUC__ == 3';
+};
+
+
+/*
+ * Some versions of glibc don't expect the C99 inline semantics.
+ */
+fix = {
+ hackname = glibc_c99_inline_1;
+ files = features.h, '*/features.h';
+ select = "^ *&& !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__$";
+ 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;
+};
+
+
+/*
+ * Similar, but a version that didn't have __NO_INLINE__
+ */
+fix = {
+ hackname = glibc_c99_inline_1a;
+ files = features.h, '*/features.h';
+ select = "(\\) && defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__)\n"
+ "(#[ \t]*define[ \t]*__USE_EXTERN_INLINES[ \t]*1)";
+ 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;
+};
+
+
+/*
+ * The glibc_c99_inline_1 fix should have fixed everything. Unfortunately
+ * there are many glibc headers which do not respect __USE_EXTERN_INLINES.
+ * The remaining glibc_c99_inline_* fixes deal with some of those headers.
+ */
+fix = {
+ hackname = glibc_c99_inline_2;
+ files = sys/stat.h, '*/sys/stat.h';
+ select = "extern __inline__ int";
+ sed = "s/extern int \\(stat\\)/"
+ "#ifdef __GNUC_GNU_INLINE__\\\nextern\\\n#endif\\\n"
+ "__inline__ int \\1/";
+ sed = "s/extern int \\([lf]stat\\)/"
+ "#ifdef __GNUC_GNU_INLINE__\\\nextern\\\n#endif\\\n"
+ "__inline__ int \\1/";
+ sed = "s/extern int \\(mknod\\)/"
+ "#ifdef __GNUC_GNU_INLINE__\\\nextern\\\n#endif\\\n"
+ "__inline__ int \\1/";
+ sed = "s/extern int __REDIRECT\\(_NTH\\)\\{0,1\\} (\\(stat\\)/"
+ "#ifdef __GNUC_GNU_INLINE__\\\nextern\\\n#endif\\\n"
+ "__inline__ int __REDIRECT\\1 (\\2/";
+ sed = "s/extern int __REDIRECT\\(_NTH\\)\\{0,1\\} (\\([lf]stat\\)/"
+ "#ifdef __GNUC_GNU_INLINE__\\\nextern\\\n#endif\\\n"
+ "__inline__ int __REDIRECT\\1 (\\2/";
+ sed = "s/^extern __inline__ int/"
+ "#ifdef __GNUC_GNU_INLINE__\\\nextern\\\n#endif\\\n"
+ "__inline__ int/";
+ test_text = <<-EOT
+ extern int fstat64 (int __fd, struct stat64 *__buf) __THROW __nonnull ((2));
+ extern __inline__ int
+ __NTH (fstat64 (int __fd, struct stat64 *__statbuf))
+ {}
+ EOT;
+};
+
+
+fix = {
+ hackname = glibc_c99_inline_3;
+ files = bits/string2.h, '*/bits/string2.h';
+ select = "extern __inline";
+ bypass = "__extern_inline|__GNU_STDC_INLINE__";
+ c_fix = format;
+ c_fix_arg = "# if defined(__cplusplus) || defined(__GNUC_STDC_INLINE__)";
+ c_fix_arg = "^# ifdef __cplusplus$";
+ test_text = <<-EOT
+ # ifdef __cplusplus
+ # define __STRING_INLINE inline
+ # else
+ # define __STRING_INLINE extern __inline
+ # endif
+ EOT;
+};
+
+
+fix = {
+ hackname = glibc_c99_inline_4;
+ files = sys/sysmacros.h, '*/sys/sysmacros.h', wchar.h, '*/wchar.h';
+ bypass = "__extern_inline|__gnu_inline__";
+ select = "(^| )extern __inline";
+ c_fix = format;
+ c_fix_arg = "%0 __attribute__ ((__gnu_inline__))";
+ test_text = <<-EOT
+ __extension__ extern __inline unsigned int
+ extern __inline unsigned int
+ EOT;
+};
+
+
+/* glibc-2.3.5 defines pthread mutex initializers incorrectly,
+ * so we replace them with versions that correspond to the
+ * definition.
+ */
+fix = {
+ hackname = glibc_mutex_init;
+ files = pthread.h;
+ select = '\{ *\{ *0, *\} *\}';
+ sed = "/define[ \t]\\{1,\\}PTHREAD_MUTEX_INITIALIZER[ \t]*\\\\/{\n"
+ "N\ns/{ { 0, } }/{ { 0, 0, 0, 0, 0, 0 } }/\n}";
+ sed = "s/{ \\(0, 0, 0, 0, PTHREAD_MUTEX_"
+ "\\(RECURSIVE\\)_NP\\) }/{ \\1, 0 }/";
+ sed = "s/{ \\(0, 0, 0, 0, PTHREAD_MUTEX_"
+ "\\(ERRORCHECK\\)_NP\\) }/{ \\1, 0 }/";
+ sed = "s/{ \\(0, 0, 0, 0, PTHREAD_MUTEX_"
+ "\\(ADAPTIVE\\)_NP\\) }/{ \\1, 0 }/";
+ sed = "s/{ \\(0, 0, 0, PTHREAD_MUTEX_"
+ "\\(RECURSIVE\\)_NP\\) }/{ \\1, 0, 0 }/";
+ sed = "s/{ \\(0, 0, 0, PTHREAD_MUTEX_"
+ "\\(ERRORCHECK\\)_NP\\) }/{ \\1, 0, 0 }/";
+ sed = "s/{ \\(0, 0, 0, PTHREAD_MUTEX_"
+ "\\(ADAPTIVE\\)_NP\\) }/{ \\1, 0, 0 }/";
+ sed = "/define[ \t]\\{1,\\}PTHREAD_RWLOCK_INITIALIZER[ \t]*\\\\/"
+ "N;s/^[ \t]*#[ \t]*"
+ "\\(define[ \t]\\{1,\\}PTHREAD_RWLOCK_INITIALIZER[ \t]*\\\\\\)\\n"
+ "[ \t]*{ { 0, } }/# if __WORDSIZE == 64\\\n"
+ "# \\1\\\n"
+ " { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }\\\n"
+ "# else\\\n"
+ "# \\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 = "/define[ \t]\\{1,\\}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_;
+};
+
+
+/* glibc versions before 2.5 have a version of stdint.h that defines
+ UINT8_C and UINT16_C to produce unsigned constants, as do uClibc
+ versions with stdint.h based on those glibc versions. */
+fix = {
+ hackname = glibc_stdint;
+ files = stdint.h;
+ select = "GNU C Library";
+ c_fix = format;
+ c_fix_arg = "# define UINT8_C(c)\tc\n# define UINT16_C(c)\tc";
+ c_fix_arg = "# define UINT8_C\\(c\\)\tc ## U\n# define UINT16_C\\(c\\)\tc ## U";
+ test_text = "/* This file is part of the GNU C Library. */\n# define UINT8_C(c)\tc ## U\n# define UINT16_C(c)\tc ## U";
+};
+
+
+/* Some versions of glibc have a version of bits/string2.h that
+ produces "value computed is not used" warnings from strncpy; fix
+ this definition by using __builtin_strncpy instead as in newer
+ versions. */
+fix = {
+ hackname = glibc_strncpy;
+ files = bits/string2.h;
+ bypass = "__builtin_strncpy";
+ c_fix = format;
+ c_fix_arg = "# define strncpy(dest, src, n) __builtin_strncpy (dest, src, n)";
+ c_fix_arg = "# define strncpy([^\n]*\\\\\n)*[^\n]*";
+ test_text = <<-EOT
+ # 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)))
+ EOT;
+
+};
+
+/* glibc's tgmath.h relies on an expression that is not an integer
+ constant expression being treated as it was by GCC 4.4 and
+ earlier. */
+fix = {
+ hackname = glibc_tgmath;
+ files = tgmath.h;
+ select = '\(\(\(type\) 0.25\) && \(\(type\) 0.25 - 1\)\)';
+ bypass = "__floating_type\\(type\\) \\\\\n.*__builtin_classify_type";
+ c_fix = format;
+ c_fix_arg = "(__builtin_classify_type ((type) 0) == 8 || (__builtin_classify_type ((type) 0) == 9 && __builtin_classify_type (__real__ ((type) 0)) == 8))";
+ test_text = "# define __floating_type(type) (((type) 0.25) && ((type) 0.25 - 1))";
+};
+
+/*
+ * Fix these files to use the types we think they should for
+ * ptrdiff_t, size_t, and wchar_t.
+ *
+ * This defines the types in terms of macros predefined by our 'cpp'.
+ * This is supposedly necessary for glibc's handling of these types.
+ * It's probably not necessary for anyone else, but it doesn't hurt.
+ */
+fix = {
+ hackname = gnu_types;
+ files = "sys/types.h";
+ files = "stdlib.h";
+ files = "sys/stdtypes.h";
+ files = "stddef.h";
+ files = "memory.h";
+ files = "unistd.h";
+ bypass = '_GCC_(PTRDIFF|SIZE|WCHAR)_T';
+ select = "^[ \t]*typedef[ \t]+.*[ \t](ptrdiff|size|wchar)_t;";
+ c_fix = gnu_type;
+ /* The Solaris 10 headers already define these types correctly. */
+ mach = '*-*-solaris2.1[0-9]*';
+ not_machine = true;
+
+ test_text = "typedef long int ptrdiff_t; /* long int */\n"
+ "typedef uint_t size_t; /* uint_t */\n"
+ "typedef ushort_t wchar_t; /* ushort_t */";
+};
+
+
+/*
+ * Fix HP & Sony's use of "../machine/xxx.h"
+ * to refer to: <machine/xxx.h>
+ */
+fix = {
+ hackname = hp_inline;
+ files = sys/spinlock.h;
+ files = machine/machparam.h;
+ select = "[ \t]*#[ \t]*include[ \t]+" '"\.\./machine/';
+
+ c_fix = format;
+ c_fix_arg = "%1<machine/%2.h>";
+
+ c_fix_arg = "([ \t]*#[ \t]*include[ \t]+)" '"\.\./machine/'
+ '([a-z]+)\.h"';
+
+ test_text = ' # include "../machine/mumble.h"';
+};
+
+
+/*
+ * Check for (...) in C++ code in HP/UX sys/file.h.
+ */
+fix = {
+ hackname = hp_sysfile;
+ files = sys/file.h;
+ select = "HPUX_SOURCE";
+
+ c_fix = format;
+ c_fix_arg = "(struct file *, ...)";
+ c_fix_arg = '\(\.\.\.\)';
+
+ test_text = "extern void foo(...); /* HPUX_SOURCE - bad varargs */";
+};
+
+
+/*
+ * 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.
+ */
+fix = {
+ hackname = hpux10_cpp_pow_inline;
+ files = fixinc-test-limits.h, math.h;
+ select = <<- END_POW_INLINE
+ ^# +ifdef +__cplusplus
+ +\}
+ +inline +double +pow\(double +__d,int +__expon\) +\{
+ [ ]+return +pow\(__d,\(double\)__expon\);
+ +\}
+ +extern +"C" +\{
+ #else
+ # +endif
+ END_POW_INLINE;
+
+ c_fix = format;
+ c_fix_arg = "";
+
+ test_text =
+ "# ifdef __cplusplus\n"
+ " }\n"
+ " inline double pow(double __d,int __expon) {\n"
+ "\t return pow(__d,(double)__expon);\n"
+ " }\n"
+ ' extern "C"' " {\n"
+ "#else\n"
+ "# endif";
+};
+
+fix = {
+ hackname = hpux11_cpp_pow_inline;
+ files = math.h;
+ select = " +inline double pow\\(double d,int expon\\) \\{\n"
+ " +return pow\\(d, \\(double\\)expon\\);\n"
+ " +\\}\n";
+ c_fix = format;
+ c_fix_arg = "";
+
+ test_text =
+ " inline double pow(double d,int expon) {\n"
+ " return pow(d, (double)expon);\n"
+ " }\n";
+};
+
+
+/*
+ * Fix hpux 10.X missing ctype declarations 1
+ */
+fix = {
+ hackname = hpux10_ctype_declarations1;
+ files = ctype.h;
+ select = "^#[ \t]*define _toupper\\(__c\\)[ \t]*__toupper\\(__c\\)";
+ bypass = "^[ \t]*extern[ \t]*int[ \t]*__tolower[ \t]*\\(";
+ c_fix = format;
+ c_fix_arg = "#ifdef _PROTOTYPES\n"
+ "extern int __tolower(int);\n"
+ "extern int __toupper(int);\n"
+ "#else /* NOT _PROTOTYPES */\n"
+ "extern int __tolower();\n"
+ "extern int __toupper();\n"
+ "#endif /* _PROTOTYPES */\n\n"
+ "%0\n";
+
+ test_text = "# define _toupper(__c) __toupper(__c)\n";
+};
+
+
+/*
+ * Fix hpux 10.X missing ctype declarations 2
+ */
+fix = {
+ hackname = hpux10_ctype_declarations2;
+ files = ctype.h;
+ select = "^# if defined\\(_SB_CTYPE_MACROS\\) && \\!defined\\(__lint\\)";
+ bypass = "^[ \t]*extern[ \t]*int[ \t]*_isalnum[ \t]*\\(";
+ c_fix = format;
+ c_fix_arg = "%0\n\n"
+ "#ifdef _PROTOTYPES\n"
+ " extern int _isalnum(int);\n"
+ " extern int _isalpha(int);\n"
+ " extern int _iscntrl(int);\n"
+ " extern int _isdigit(int);\n"
+ " extern int _isgraph(int);\n"
+ " extern int _islower(int);\n"
+ " extern int _isprint(int);\n"
+ " extern int _ispunct(int);\n"
+ " extern int _isspace(int);\n"
+ " extern int _isupper(int);\n"
+ " extern int _isxdigit(int);\n"
+ "# else /* not _PROTOTYPES */\n"
+ " extern int _isalnum();\n"
+ " extern int _isalpha();\n"
+ " extern int _iscntrl();\n"
+ " extern int _isdigit();\n"
+ " extern int _isgraph();\n"
+ " extern int _islower();\n"
+ " extern int _isprint();\n"
+ " extern int _ispunct();\n"
+ " extern int _isspace();\n"
+ " extern int _isupper();\n"
+ " extern int _isxdigit();\n"
+ "#endif /* _PROTOTYPES */\n";
+
+ test_text = "# if defined(_SB_CTYPE_MACROS) && !defined(__lint)\n"
+ " extern unsigned int *__SB_masks;\n";
+};
+
+
+/*
+ * Fix hpux 10.X missing stdio declarations
+ */
+fix = {
+ hackname = hpux10_stdio_declarations;
+ files = stdio.h;
+ select = "^#[ \t]*define _iob[ \t]*__iob";
+ bypass = "^[ \t]*extern[ \t]*int[ \t]*vsnprintf[ \t]*\\(";
+ c_fix = format;
+ c_fix_arg = "%0\n\n"
+ "# if defined(__STDC__) || defined(__cplusplus)\n"
+ " extern int snprintf(char *, size_t, const char *, ...);\n"
+ " extern int vsnprintf(char *, size_t, const char *, __va_list);\n"
+ "# else /* not __STDC__) || __cplusplus */\n"
+ " extern int snprintf();\n"
+ " extern int vsnprintf();\n"
+ "# endif /* __STDC__) || __cplusplus */\n";
+
+ test_text = "# define _iob __iob\n";
+};
+
+
+/*
+ * Make sure hpux defines abs in header.
+ */
+fix = {
+ hackname = hpux11_abs;
+ mach = "ia64-hp-hpux11*";
+ files = stdlib.h;
+ select = "ifndef _MATH_INCLUDED";
+ c_fix = format;
+ c_fix_arg = "if !defined(_MATH_INCLUDED) || defined(__GNUG__)";
+ test_text = "#ifndef _MATH_INCLUDED";
+};
+
+
+/*
+ * Keep HP-UX 11 from stomping on C++ math namespace
+ * with defines for fabsf.
+ */
+fix = {
+ hackname = hpux11_fabsf;
+ files = math.h;
+ select = "^[ \t]*#[ \t]*define[ \t]+fabsf\\(.*";
+ bypass = "__cplusplus";
+
+ c_fix = format;
+ c_fix_arg = "#ifndef __cplusplus\n%0\n#endif";
+
+ test_text =
+ "#ifdef _PA_RISC\n"
+ "# define fabsf(x) ((float)fabs((double)(float)(x)))\n"
+ "#endif";
+};
+
+
+/*
+ * 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.
+ */
+fix = {
+ hackname = hpux11_size_t;
+ mach = "*-hp-hpux11*";
+ select = "__size_t";
+
+ c_fix = format;
+ c_fix_arg = "_hpux_size_t";
+
+ test_text =
+ "#define __size_t size_t\n"
+ " extern int getpwuid_r( char *, __size_t, struct passwd **);\n";
+};
+
+
+/*
+ * Fix hpux 11.00 broken snprintf declaration
+ * (third argument is char *, needs to be const char * to prevent
+ * spurious warnings with -Wwrite-strings or in C++).
+ */
+fix = {
+ hackname = hpux11_snprintf;
+ files = stdio.h;
+ select = '(extern int snprintf *\(char *\*, *(|__|_hpux_)size_t,)'
+ ' *(char *\*, *\.\.\.\);)';
+ c_fix = format;
+ c_fix_arg = '%1 const %3';
+
+ test_text = "extern int snprintf(char *, size_t, char *, ...);\n"
+ "extern int snprintf(char *, __size_t, char *, ...);\n"
+ "extern int snprintf(char *, _hpux_size_t, char *, ...);";
+};
+
+/*
+ * Fix hpux 11.00 broken vsnprintf declaration
+ */
+fix = {
+ hackname = hpux11_vsnprintf;
+ files = stdio.h;
+ select = '(extern int vsnprintf\(char \*, _[hpux]*_size_t, '
+ 'const char \*,) __va__list\);';
+ c_fix = format;
+ c_fix_arg = "%1 __va_list);";
+
+ test_text = 'extern int vsnprintf(char *, _hpux_size_t, const char *,'
+ ' __va__list);';
+};
+
+
+/*
+ * get rid of bogus inline definitions in HP-UX 8.0
+ */
+fix = {
+ hackname = hpux8_bogus_inlines;
+ files = math.h;
+ select = inline;
+ bypass = "__GNUG__";
+ sed = "s@inline int abs(int [a-z][a-z]*) {.*}"
+ "@extern \"C\" int abs(int);@";
+ sed = "s@inline double abs(double [a-z][a-z]*) {.*}@@";
+ sed = "s@inline int sqr(int [a-z][a-z]*) {.*}@@";
+ sed = "s@inline double sqr(double [a-z][a-z]*) {.*}@@";
+ test_text = "inline int abs(int v) { return (v>=0)?v:-v; }\n"
+ "inline double sqr(double v) { return v**0.5; }";
+};
+
+
+/*
+ * Fix hpux broken ctype macros
+ */
+fix = {
+ hackname = hpux_ctype_macros;
+ files = ctype.h;
+ select = '((: |\()__SB_masks \? )'
+ '(__SB_masks\[__(alnum|c)\] & _IS)';
+ c_fix = format;
+ c_fix_arg = "%1(int)%3";
+
+ test_text = ": __SB_masks ? __SB_masks[__alnum] & _ISCNTRL\n"
+ "# define isalpha(__c) (__SB_masks ? __SB_masks[__c] & _IS\n";
+};
+
+
+/*
+ * Fix hpux broken #ifndef _XOPEN_SOURCE_EXTENDED conditional on htonl etc.
+ */
+fix = {
+ hackname = hpux_htonl;
+ files = netinet/in.h;
+ select = "#ifndef _XOPEN_SOURCE_EXTENDED[ \t]*\n"
+ "(/\\*\n"
+ " \\* Macros for number representation conversion\\.\n"
+ " \\*/\n"
+ "#ifndef ntohl)";
+ c_fix = format;
+ c_fix_arg = "#if 1\n%1";
+
+ test_text = "#ifndef _XOPEN_SOURCE_EXTENDED\n"
+ "/*\n"
+ " * Macros for number representation conversion.\n"
+ " */\n"
+ "#ifndef ntohl\n"
+ "#define ntohl(x) (x)\n"
+ "#define ntohs(x) (x)\n"
+ "#define htonl(x) (x)\n"
+ "#define htons(x) (x)\n"
+ "#endif\n"
+ "#endif /* ! _XOPEN_SOURCE_EXTENDED */";
+};
+
+
+/*
+ * HP-UX long_double
+ */
+fix = {
+ hackname = hpux_long_double;
+ mach = "*-*-hpux10*";
+ mach = "*-*-hpux11.[012]*";
+ files = stdlib.h;
+ select = "extern[ \t]long_double[ \t]strtold";
+ bypass = "long_double_t";
+ sed = "/^#[ \t]*ifndef _LONG_DOUBLE/,/\\/\\* _LONG_DOUBLE \\*\\//D";
+ sed = "s/long_double/long double/g";
+
+ test_text = "# ifndef _LONG_DOUBLE\n"
+ "# define _LONG_DOUBLE\n"
+ " typedef struct {\n"
+ " unsigned int word1, word2, word3, word4;\n"
+ " } long_double;\n"
+ "# endif /* _LONG_DOUBLE */\n"
+ "extern long_double strtold(const char *, char **);\n";
+};
+
+ /*
+ * We cannot use the above rule on 11.31 because it removes the strtold
+ * definition. ia64 is OK with no hack, PA needs some help.
+ */
+fix = {
+ hackname = hpux_long_double_2;
+ mach = "hppa*-*-hpux11.3*";
+ files = stdlib.h;
+ select = "#[ \t]*if[ \t]*!defined\\(__ia64\\) \\|\\| defined\\(_PROTOTYPES\\) \\|\\| defined\\(_LONG_DOUBLE_STRUCT\\)";
+ c_fix = format;
+ c_fix_arg = "# if !defined(_PROTOTYPES) || defined(_LONG_DOUBLE_STRUCT)";
+
+ test_text = "# if !defined(__ia64) || !defined(_PROTOTYPES) || defined(_LONG_DOUBLE_STRUCT)\n";
+};
+
+/*
+ * Fix hpux10.20 <sys/time.h> to avoid invalid forward decl
+ */
+fix = {
+ hackname = hpux_systime;
+ files = sys/time.h;
+ select = "^extern struct sigevent;";
+
+ c_fix = format;
+ c_fix_arg = "struct sigevent;";
+
+ test_text = 'extern struct sigevent;';
+};
+
+
+/*
+ * Wrap spu_info in ifdef _KERNEL. GCC cannot handle an array of unknown
+ * type and mpinfou is only defined when _KERNEL is set.
+ */
+fix = {
+ hackname = hpux_spu_info;
+ mach = "*-hp-hpux*";
+ /*
+ * It is tempting to omit the first "files" entry. Do not.
+ * The testing machinery will take the first "files" entry as the name
+ * of a test file to play with. It would be a nuisance to have a directory
+ * with the name "*".
+ */
+ files = "ia64/sys/getppdp.h";
+ files = "*/sys/getppdp.h";
+ select = "^.*extern.*spu_info.*";
+
+ c_fix = format;
+ c_fix_arg = "#ifdef _KERNEL\n%0\n#endif";
+
+ test_text = "extern union mpinfou spu_info[];";
+};
+
+fix = {
+ hackname = hpux11_extern_sendfile;
+ mach = "*-hp-hpux11.[12]*";
+ files = sys/socket.h;
+ select = "^[ \t]*extern sbsize_t sendfile.*\n.*, int\\)\\);\n";
+ c_fix = format;
+ c_fix_arg = "#ifndef _APP32_64BIT_OFF_T\n%0#endif\n";
+ test_text = " extern sbsize_t sendfile __((int, int, off_t, bsize_t,\n const struct iovec *, int));\n";
+};
+
+fix = {
+ hackname = hpux11_extern_sendpath;
+ mach = "*-hp-hpux11.[12]*";
+ files = sys/socket.h;
+ select = "^[ \t]*extern sbsize_t sendpath.*\n.*, int\\)\\);\n";
+ c_fix = format;
+ c_fix_arg = "#ifndef _APP32_64BIT_OFF_T\n%0#endif\n";
+ test_text = " extern sbsize_t sendpath __((int, int, off_t, bsize_t,\n const struct iovec *, int));\n";
+};
+
+fix = {
+ hackname = hpux_extern_errno;
+ mach = "*-hp-hpux10.*";
+ mach = "*-hp-hpux11.[0-2]*";
+ files = errno.h;
+ select = "^[ \t]*extern int errno;$";
+ c_fix = format;
+ c_fix_arg = "#ifdef __cplusplus\nextern \"C\" {\n#endif\n%0\n#ifdef __cplusplus\n}\n#endif";
+ test_text = " extern int errno;\n";
+};
+
+
+/*
+ * Add missing braces to pthread initializer defines.
+ */
+fix = {
+ hackname = hpux_pthread_initializers;
+ mach = "*-hp-hpux11.[0-3]*";
+ files = sys/pthread.h;
+ sed = "s@^[ \t]*1, 1, 1, 1,[ \t]*\\\\"
+ "@\t{ 1, 1, 1, 1 },\t\t\t\t\t\t\t\\\\@";
+ sed = "s@^[ \t]*1,[ \t]*\\\\"
+ "@\t{ 1, 0 }@";
+ sed = "/^[ \t]*0$/d";
+ sed = "s@__PTHREAD_MUTEX_VALID, 0"
+ "@{ __PTHREAD_MUTEX_VALID, 0 }@";
+ sed = "s@^[ \t]*0, 0, -1, 0,[ \t]*\\\\"
+ "@\t{ 0, 0, -1, 0 },\t\t\t\t\t\t\\\\@";
+ sed = "s@0, __LWP_MTX_VALID, 0, 1, 1, 1, 1,[ \t]*\\\\"
+ "@{ 0, __LWP_MTX_VALID }, { 0, 1, 1, 1, 1 },\t\t\t\\\\@";
+ sed = "s@^[ \t]*__LWP_MTX_VALID, 0, 1, 1, 1, 1,[ \t]*\\\\"
+ "@\t{ 0, __LWP_MTX_VALID }, { 0, 1, 1, 1, 1 },\t\t\t\\\\@";
+ sed = "s@^[ \t]*0, 0[ \t]*\\\\"
+ "@\t{ 0, 0 }\t\t\t\t\t\t\t\\\\@";
+ sed = "s@__PTHREAD_COND_VALID, 0"
+ "@{ __PTHREAD_COND_VALID, 0 }@";
+ sed = "s@__LWP_COND_VALID, 0,[ \t]*\\\\"
+ "@{ __LWP_COND_VALID, 0 },\t\t\t\t\t\\\\@";
+ sed = "s@__PTHREAD_RWLOCK_VALID, 0"
+ "@{ __PTHREAD_RWLOCK_VALID, 0 }@";
+ sed = "s@__LWP_RWLOCK_VALID, 0,[ \t]*\\\\"
+ "@{ __LWP_RWLOCK_VALID, 0 },\t\t\t\t\t\\\\@";
+ sed = "s@^[ \t]*0, 0, 0, 0, 0, 0, 0[ \t]*\\\\"
+ "@\t{ 0, 0, 0, 0, 0 }, { 0, 0}\t\t\t\t\t\\\\@";
+ test_text = "#define PTHREAD_MUTEX_INITIALIZER {\t\t\t\t\t\\\\\n"
+ "\t__PTHREAD_MUTEX_VALID, 0,\t\t\t\t\t\\\\\n"
+ "\t(PTHREAD_MUTEX_DEFAULT | PTHREAD_PROCESS_PRIVATE),\t\t\\\\\n"
+ "\t__SPNLCK_INITIALIZER,\t\t\t\t\t\t\\\\\n"
+ "\t0, 0, -1, 0,\t\t\t\t\t\t\t\\\\\n"
+ "\t0, __LWP_MTX_VALID, 0, 1, 1, 1, 1,\t\t\t\t\\\\\n"
+ "\t0, 0\t\t\t\t\t\t\t\t\\\\\n"
+ "}\n";
+};
+
+fix = {
+ hackname = hpux_c99_intptr;
+ mach = "*-hp-hpux11.3*";
+ files = stdint-hpux11.h, stdint.h;
+ sed = "s@^[ \t]*#[ \t]*define[ \t]*PTRDIFF_MAX[ \t]*INT32_MAX[ \t]*$@#define PTRDIFF_MAX (2147483647l)@";
+ sed = "s@^[ \t]*#[ \t]*define[ \t]*PTRDIFF_MIN[ \t]*INT32_MIN[ \t]*$@#define PTRDIFF_MIN (-PTRDIFF_MAX - 1)@";
+ sed = "s@^[ \t]*#[ \t]*define[ \t]*INTPTR_MAX[ \t]*INT32_MAX[ \t]*$@#define INTPTR_MAX (2147483647l)@";
+ sed = "s@^[ \t]*#[ \t]*define[ \t]*INTPTR_MIN[ \t]*INT32_MIN[ \t]*$@#define INTPTR_MIN (-INTPTR_MAX - 1)@";
+ sed = "s@^[ \t]*#[ \t]*define[ \t]*UINTPTR_MAX[ \t]*UINT32_MAX[ \t]*$@#define UINTPTR_MAX (4294967295ul)@";
+ sed = "s@^[ \t]*#[ \t]*define[ \t]*SIZE_MAX[ \t]*UINT32_MAX[ \t]*$@#define SIZE_MAX (4294967295ul)@";
+ test_text = "#define PTRDIFF_MAX INT32_MAX\n"
+ "#define PTRDIFF_MIN INT32_MIN\n"
+ "#define INTPTR_MAX INT32_MAX\n"
+ "#define INTPTR_MIN INT32_MIN\n"
+ "#define UINTPTR_MAX UINT32_MAX\n"
+ "#define SIZE_MAX UINT32_MAX\n";
+};
+
+/*
+ * These hacks are need in inttypes.h on 11.23 and in stdint.h on 11.31.
+ */
+
+fix = {
+ hackname = hpux_c99_inttypes;
+ mach = "*-hp-hpux11.[23]*";
+ files = inttypes.h;
+ files = stdint-hpux11.h, stdint.h;
+ sed = "s@^[ \t]*#[ \t]*define[ \t]*UINT8_C(__c)[ \t]*__CONCAT_U__(__c)[ \t]*$@#define UINT8_C(__c) (__c)@";
+ sed = "s@^[ \t]*#[ \t]*define[ \t]*UINT16_C(__c)[ \t]*__CONCAT_U__(__c)[ \t]*$@#define UINT16_C(__c) (__c)@";
+ sed = "s@^[ \t]*#[ \t]*define[ \t]*INT32_C(__c)[ \t]*__CONCAT__(__c,l)[ \t]*$@#define INT32_C(__c) (__c)@";
+ sed = "s@^[ \t]*#[ \t]*define[ \t]*UINT32_C(__c)[ \t].*$@#define UINT32_C(__c) __CONCAT__(__c,u)@";
+ test_text = "#define UINT8_C(__c) __CONCAT_U__(__c)\n"
+ "#define UINT16_C(__c) __CONCAT_U__(__c)\n"
+ "#define INT32_C(__c) __CONCAT__(__c,l)\n"
+ "#define UINT32_C(__c) __CONCAT__(__c,ul)\n";
+};
+
+fix = {
+ hackname = hpux_c99_inttypes2;
+ mach = "*-hp-hpux11.2*";
+ files = stdint-hpux11.h, stdint.h;
+ sed = "s@^[ \t]*#[ \t]*define[ \t]*INT8_C(__c)[ \t]*((signed char)(__c))[ \t]*$@#define INT8_C(__c) (__c)@";
+ sed = "s@^[ \t]*#[ \t]*define[ \t]*UINT8_C(__c)[ \t]*((unsigned char)(__c))[ \t]*$@#define UINT8_C(__c) (__c)@";
+ sed = "s@^[ \t]*#[ \t]*define[ \t]*INT16_C(__c)[ \t]*((short)(__c))[ \t]*$@#define INT16_C(__c) (__c)@";
+ sed = "s@^[ \t]*#[ \t]*define[ \t]*UINT16_C(__c)[ \t]*((unsigned short)(__c))[ \t]*$@#define UINT16_C(__c) (__c)@";
+ test_text = "# define INT8_C(__c) ((signed char)(__c))\n"
+ "# define UINT8_C(__c) ((unsigned char)(__c))\n"
+ "# define INT16_C(__c) ((short)(__c))\n"
+ "# define UINT16_C(__c) ((unsigned short)(__c))\n";
+};
+
+fix = {
+ hackname = hpux_stdint_least_fast;
+ mach = "*-hp-hpux11.2*";
+ files = stdint-hpux11.h, stdint.h;
+ select =
+ "^[ \t]*#[ \t]*define[ \t]+UINT_(LEAST|FAST)64_MAX[ \t]+ULLONG_MAX";
+ c_fix = format;
+ c-fix-arg = "# define UINT_%164_MAX __UINT64_MAX__";
+ test-text = "# define UINT_FAST64_MAX ULLONG_MAX\n"
+ "# define UINT_LEAST64_MAX ULLONG_MAX\n";
+ _EOFix_;
+};
+
+fix = {
+ hackname = hpux_inttype_int8_t;
+ mach = "*-hp-hpux1[01].*";
+ files = sys/_inttypes.h;
+ select = "^[ \t]*typedef[ \t]*char[ \t]*int(_least){0,1}8_t.*";
+ c_fix = format;
+ c_fix_arg = "typedef signed char int%18_t;";
+ test_text = "typedef char int_least8_t;\n"
+ "typedef char int8_t;\n";
+};
+
+fix = {
+ hackname = hpux_imaginary_i;
+ mach = "ia64-hp-hpux11.*";
+ files = complex.h;
+ select = "^[ \t]*#[ \t]*define[ \t]*_Complex_I.*";
+ c_fix = format;
+ c_fix_arg = "#define _Complex_I (__extension__ 1.0iF)";
+ test_text = "#define _Complex_I (0.f+_Imaginary_I)\n";
+};
+
+/*
+ * Fix glibc definition of HUGE_VAL in terms of hex floating point constant
+ */
+fix = {
+ hackname = huge_val_hex;
+ files = bits/huge_val.h;
+ select = "^#[ \t]*define[ \t]*HUGE_VAL[ \t].*0x1\\.0p.*";
+ bypass = "__builtin_huge_val";
+
+ c_fix = format;
+ c_fix_arg = "#define HUGE_VAL (__builtin_huge_val())\n";
+
+ test_text = "# define HUGE_VAL\t(__extension__ 0x1.0p2047)";
+};
+
+
+/*
+ * Fix glibc definition of HUGE_VALF in terms of hex floating point constant
+ */
+fix = {
+ hackname = huge_valf_hex;
+ files = bits/huge_val.h;
+ select = "^#[ \t]*define[ \t]*HUGE_VALF[ \t].*0x1\\.0p.*";
+ bypass = "__builtin_huge_valf";
+
+ c_fix = format;
+ c_fix_arg = "#define HUGE_VALF (__builtin_huge_valf())\n";
+
+ test_text = "# define HUGE_VALF (__extension__ 0x1.0p255f)";
+};
+
+
+/*
+ * Fix glibc definition of HUGE_VALL in terms of hex floating point constant
+ */
+fix = {
+ hackname = huge_vall_hex;
+ files = bits/huge_val.h;
+ select = "^#[ \t]*define[ \t]*HUGE_VALL[ \t].*0x1\\.0p.*";
+ bypass = "__builtin_huge_vall";
+
+ c_fix = format;
+ c_fix_arg = "#define HUGE_VALL (__builtin_huge_vall())\n";
+
+ test_text = "# define HUGE_VALL (__extension__ 0x1.0p32767L)";
+};
+
+
+/*
+ * Fix return type of abort and free
+ */
+fix = {
+ hackname = int_abort_free_and_exit;
+ files = stdlib.h;
+ select = "int[ \t]+(abort|free|exit)[ \t]*\\(";
+ bypass = "_CLASSIC_ANSI_TYPES";
+
+ c_fix = format;
+ c_fix_arg = "void\t%1(";
+
+ test_text = "extern int abort(int);\n"
+ "extern int free(void*);\n"
+ "extern int exit(void*);";
+};
+
+
+/*
+ * Fix various macros used to define ioctl numbers.
+ * The traditional syntax was:
+ *
+ * #define _IO(n, x) (('n'<<8)+x)
+ * #define TIOCFOO _IO(T, 1)
+ *
+ * but this does not work with the C standard, which disallows macro
+ * expansion inside strings. We have to rewrite it thus:
+ *
+ * #define _IO(n, x) ((n<<8)+x)
+ * #define TIOCFOO _IO('T', 1)
+ *
+ * The select expressions match too much, but the c_fix code is cautious.
+ *
+ * _IO might be: _IO DESIO BSD43__IO with W, R, WR, C, ... suffixes.
+ */
+fix = {
+ hackname = io_quotes_def;
+ select = "define[ \t]+[A-Z0-9_]+IO[A-Z]*\\([a-zA-Z][,)]";
+ c_fix = char_macro_def;
+ c_fix_arg = "IO";
+ test_text =
+ "#define BSD43__IOWR(n, x) (('n'<<8)+x)\n"
+ "#define _IOWN(x,y,t) (_IOC_IN|(((t)&_IOCPARM_MASK)<<16)|('x'<<8)|y)\n"
+ "#define _IO(x,y) ('x'<<8|y)";
+ test_text =
+ "#define XX_IO(x) ('x'<<8|256)";
+};
+
+fix = {
+ hackname = io_quotes_use;
+ select = "define[ \t]+[A-Z0-9_]+[ \t]+[A-Z0-9_]+IO[A-Z]*[ \t]*"
+ "\\( *[^,']";
+ c_fix = char_macro_use;
+ c_fix_arg = "IO";
+ test_text = "#define TIOCFOO BSD43__IOWR(T, 1)\n"
+ "#define TIOCFOO \\\\\n"
+ "BSD43__IOWR(T, 1) /* Some are multi-line */";
+};
+
+
+/*
+ * Check for missing ';' in struct
+ */
+fix = {
+ hackname = ip_missing_semi;
+ files = netinet/ip.h;
+ select = "}$";
+ sed = "/^struct/,/^};/s/}$/};/";
+ test_text=
+ "struct mumble {\n"
+ " union {\n"
+ " int x;\n"
+ " }\n"
+ "}; /* mumbled struct */\n";
+};
+
+
+/*
+ * IRIX 6.5.1[89] <internal/sgimacros.h> unconditionally defines
+ * __restrict as restrict iff __c99. This is wrong for C++, which
+ * needs many C99 features, but only supports __restrict.
+ */
+fix = {
+ hackname = irix___restrict;
+ files = internal/sgimacros.h;
+ select = "(#ifdef __c99\n)(#[ \t]*define __restrict restrict)";
+
+ mach = "mips-sgi-irix6.5";
+ c_fix = format;
+ c_fix_arg = "%1"
+ "# ifndef __cplusplus\n%2\n# endif";
+
+ test_text = "#ifdef __c99\n# define __restrict restrict";
+};
+
+/*
+ * IRIX 6.5.22 <internal/math_core.h> uses the SGI c99 __generic() intrinsic
+ * to define the fpclasify, isfinite, isinf, isnan, isnormal and signbit
+ * functions.
+ *
+ * This was probably introduced around IRIX 6.5.18
+ */
+fix = {
+ hackname = irix___generic1;
+ files = internal/math_core.h;
+ mach = "mips-sgi-irix6.5";
+ select = "#define ([a-z]+)\\(x\\) *__generic.*";
+
+ c_fix = format;
+ c_fix_arg = "extern int %1(double);\n"
+ "extern int %1f(float);\n"
+ "extern int %1l(long double);\n"
+ "#define %1(x) (sizeof(x) == sizeof(double) ? _%1(x) \\\n"
+ " : sizeof(x) == sizeof(float) ? _%1f(x) \\\n"
+ " : _%1l(x))\n";
+
+ test_text =
+ "#define isnan(x) __generic(x,,, _isnan, _isnanf, _isnanl,,,)(x)\n";
+};
+
+
+/* Likewise <internal/math_core.h> on IRIX 6.5.19 and later uses the SGI
+ compiler's __generic intrinsic to define isgreater, isgreaterequal,
+ isless, islessequal, islessgreater and isunordered functions. */
+fix = {
+ hackname = irix___generic2;
+ files = internal/math_core.h;
+ mach = "mips-sgi-irix6.5";
+ select = "#define ([a-z]+)\\(x,y\\) *__generic.*";
+
+ c_fix = format;
+ c_fix_arg = "#define %1(x,y) \\\n"
+ " ((sizeof(x)<=4 && sizeof(y)<=4) ? _%1f(x,y) \\\n"
+ " : (sizeof(x)<=8 && sizeof(y)<=8) ? _%1(x,y) \\\n"
+ " : _%1l(x,y))\n";
+
+ test_text =
+ "#define isless(x,y) __generic(x,y,, _isless, _islessf, _islessl,,,)(x,y)";
+};
+
+
+/*
+ * IRIX 5.2's <sys/asm.h> contains an asm comment with a contraction
+ * that causes the assembly preprocessor to complain about an
+ * unterminated character constant.
+ */
+fix = {
+ hackname = irix_asm_apostrophe;
+ files = sys/asm.h;
+
+ select = "^[ \t]*#.*[Ww]e're";
+ c_fix = format;
+ c_fix_arg = "%1 are";
+ c_fix_arg = "^([ \t]*#.*[Ww]e)'re";
+ test_text = "\t# and we're on vacation";
+};
+
+
+/*
+ * IRIX 6.5 complex.h defines _Complex_I and _Imaginary_I in terms of __I__,
+ * which is a MIPSpro compiler builtin. Remove _Imaginary_I and imaginary
+ * definitions which are not supported by GCC.
+ */
+fix = {
+ hackname = irix_complex;
+ mach = "mips-sgi-irix6.5";
+ files = complex.h;
+ select = "#define[ \t]_Complex_I[ \t]\\(\\(float[ \t]_Complex\\)[ \t]\\(__I__\\)\\)";
+ sed = "s/#define[ \t]_Complex_I[ \t]((float[ \t]_Complex)[ \t](__I__))/"
+ "#define _Complex_I (__extension__ 1.0iF)/";
+ sed = "/#define[ \t]imaginary[ \t]_Imaginary/d";
+ sed = "/#define[ \t]_Imaginary_I/d";
+ sed = "s/#define[ \t]I[ \t]_Imaginary_I/#define I _Complex_I/";
+ test_text = "#define _Complex_I ((float _Complex) (__I__))\n"
+ "#define imaginary _Imaginary\n"
+ "// #define _Imaginary_I ((float _Imaginary) 1)\n"
+ "#define _Imaginary_I __I__\n"
+ "#define I _Imaginary_I";
+};
+
+
+/*
+ * Non-traditional "const" declaration in Irix's limits.h.
+ */
+fix = {
+ hackname = irix_limits_const;
+ files = fixinc-test-limits.h, limits.h;
+ select = "^extern const ";
+ c_fix = format;
+ c_fix_arg = "extern __const ";
+ test_text = "extern const char limit; /* test limits */";
+};
+
+
+/*
+ * IRIX 6.5 PTHREAD_*_INITIALIZER need an additional level of braces in
+ * <pthread.h>.
+ */
+fix = {
+ hackname = irix_pthread_init;
+ files = pthread.h;
+ select = "^(#define[ \t]+PTHREAD_.*_INITIALIZER[ \t]+)(\\{ 0 \\})";
+
+ mach = "mips-sgi-irix6.5";
+ c_fix = format;
+ c_fix_arg = "%1{ %2 }";
+ test_text = "#define PTHREAD_MUTEX_INITIALIZER { 0 }\n"
+ "#define PTHREAD_COND_INITIALIZER { 0 }\n"
+ "#define PTHREAD_RWLOCK_INITIALIZER { 0 }";
+};
+
+
+/*
+ * IRIX 6.5.1[78] <sys/socket.h> has a broken definition of socklen_t.
+ * Various socket function prototypes use different types instead,
+ * depending on the API in use (BSD, XPG4/5), but the socklen_t
+ * definition doesn't reflect this (SGI Bug Id 864477, fixed in
+ * IRIX 6.5.19).
+ */
+fix = {
+ hackname = irix_socklen_t;
+ files = sys/socket.h;
+ select = "(#define _SOCKLEN_T\n)(typedef u_int32_t socklen_t;)";
+
+ mach = "mips-sgi-irix6.5";
+ c_fix = format;
+ c_fix_arg = "%1"
+ "#if _NO_XOPEN4 && _NO_XOPEN5\n"
+ "typedef int socklen_t;\n"
+ "#else\n"
+ "%2\n"
+ "#endif /* _NO_XOPEN4 && _NO_XOPEN5 */";
+
+ test_text = "#define _SOCKLEN_T\ntypedef u_int32_t socklen_t;";
+};
+
+/*
+ * IRIX 6.5 <stdint.h> only works with ISO C99 and errors out
+ * otherwise.
+ */
+fix = {
+ hackname = irix_stdint_c99_mode;
+ files = stdint.h;
+ select = "(#ifndef __c99\n)(#error This header file is to be used only for c99 mode compilations)";
+
+ mach = "mips-sgi-irix6.5";
+ c_fix = format;
+ c_fix_arg = "#if 0\n"
+ "%2";
+ test_text =
+ "#ifndef __c99\n#error This header file is to be used only for c99 mode compilations\n#else";
+};
+
+
+/*
+ * IRIX 6.5 <stdint.h> has some *_MIN/MAX constants whose types don't
+ * match the corresponding types, as required by ISO C99.
+ */
+fix = {
+ hackname = irix_stdint_c99_types;
+ files = stdint-irix65.h, stdint.h;
+ mach = "mips-sgi-irix6.5";
+ sed = "s@^#define INT64_MIN.*(-0x7fffffffffffffff - 1)$@"
+ "#define INT64_MIN (-0x7fffffffffffffffLL - 1)@";
+ sed = "s@^#define INT64_MAX.*0x7fffffffffffffff$@"
+ "#define INT64_MAX 0x7fffffffffffffffLL@";
+ sed = "s@^#define UINT32_MAX.*0xffffffff$@"
+ "#define UINT32_MAX 0xffffffffU@";
+ sed = "s@^#define UINT64_MAX.*0xffffffffffffffff$@"
+ "#define UINT64_MAX 0xffffffffffffffffULL@";
+ sed = "s@^#define INTPTR_MIN.*INT32_MIN$@"
+ "#define INTPTR_MIN (-0x7fffffffL - 1)@";
+ sed = "s@^#define INTPTR_MAX.*INT32_MAX$@"
+ "#define INTPTR_MAX 0x7fffffffL@";
+ sed = "s@^#define UINTPTR_MAX.*UINT32_MAX$@"
+ "#define UINTPTR_MAX 0xffffffffUL@";
+ sed = "s@^#define INTPTR_MIN.*INT64_MIN@"
+ "#define INTPTR_MIN (-0x7fffffffffffffffL - 1)@";
+ sed = "s@^#define INTPTR_MAX.*INT64_MAX$@"
+ "#define INTPTR_MAX 0x7fffffffffffffffL@";
+ sed = "s@^#define UINTPTR_MAX.*UINT64_MAX$@"
+ "#define UINTPTR_MAX 0xffffffffffffffffUL@";
+ sed = "s@^#define PTRDIFF_MIN.*INT64_MIN$@"
+ "#define PTRDIFF_MIN (-0x7fffffffffffffffL - 1)@";
+ sed = "s@^#define PTRDIFF_MAX.*INT64_MAX$@"
+ "#define PTRDIFF_MAX 0x7fffffffffffffffL@";
+ sed = "s@^#define SIZE_MAX.*UINT64_MAX$@"
+ "#define SIZE_MAX 0xffffffffffffffffUL@";
+ test_text = "#define INT64_MIN (-0x7fffffffffffffff - 1)\n"
+ "#define INT64_MAX 0x7fffffffffffffff\n"
+ "#define UINT32_MAX 0xffffffff\n"
+ "#define UINT64_MAX 0xffffffffffffffff\n"
+ "#define INTPTR_MIN INT32_MIN\n"
+ "#define INTPTR_MAX INT32_MAX\n"
+ "#define UINTPTR_MAX UINT32_MAX\n"
+ "#define INTPTR_MIN INT64_MIN\n"
+ "#define INTPTR_MAX INT64_MAX\n"
+ "#define UINTPTR_MAX UINT64_MAX\n"
+ "#define PTRDIFF_MIN INT64_MIN\n"
+ "#define PTRDIFF_MAX INT64_MAX\n"
+ "#define SIZE_MAX UINT64_MAX";
+};
+
+
+/*
+ * IRIX 6.5 <stdint.h> uses casts in some macros which cannot thus be used
+ * in preprocessor tests, although ISO C99 requires this.
+ */
+fix = {
+ hackname = irix_stdint_c99_macros;
+ files = stdint-irix65.h, stdint.h;
+ mach = "mips-sgi-irix6.5";
+ sed = "s@^#define INT8_C(x).*int.*_t.*$@#define INT8_C(x) (x)@";
+ sed = "s@^#define INT16_C(x).*int.*_t.*$@#define INT16_C(x) (x)@";
+ sed = "s@^#define INT32_C(x).*int.*_t.*$@#define INT32_C(x) (x)@";
+ sed = "s@^#define INT64_C(x).*int.*_t.*$@#define INT64_C(x) (x ## LL)@";
+ sed = "s@^#define UINT8_C(x).*int.*_t.*$@#define UINT8_C(x) (x)@";
+ sed = "s@^#define UINT16_C(x).*int.*_t.*$@#define UINT16_C(x) (x)@";
+ sed = "s@^#define UINT32_C(x).*int.*_t.*$@#define UINT32_C(x) (x ## U)@";
+ sed = "s@^#define UINT64_C(x).*int.*_t.*$@#define UINT64_C(x) (x ## ULL)@";
+ sed = "s@^#define INTMAX_C(x).*int.*_t.*$@#define INTMAX_C(x) (x ## LL)@";
+ sed = "s@^#define UINTMAX_C(x).*int.*_t.*$@#define UINTMAX_C(x) (x ## ULL)@";
+ test_text = "#define INT8_C(x) (int_least8_t)(x)\n"
+ "#define INT16_C(x) (int_least16_t)(x)\n"
+ "#define INT32_C(x) (int_least32_t)(x)\n"
+ "#define INT64_C(x) (int_least64_t)(x)\n"
+ "#define UINT8_C(x) (uint_least8_t)(x)\n"
+ "#define UINT16_C(x) (uint_least16_t)(x)\n"
+ "#define UINT32_C(x) (uint_least32_t)(x)\n"
+ "#define UINT64_C(x) (uint_least64_t)(x)\n"
+ "#define INTMAX_C(x) (intmax_t)(x)\n"
+ "#define UINTMAX_C(x) (uintmax_t)(x)";
+};
+
+
+/*
+ * IRIX 5.x's stdio.h and IRIX 6.5's internal/stdio_core.h declare
+ * some functions that take a va_list as
+ * taking char *. However, GCC uses void * for va_list, so
+ * calling vfprintf with a va_list fails in C++. */
+fix = {
+ hackname = irix_stdio_va_list;
+ files = stdio.h;
+ files = internal/stdio_core.h;
+
+ select = '/\* va_list \*/ char \*';
+ c_fix = format;
+ c_fix_arg = "__gnuc_va_list";
+ test_text =
+ "extern int printf( const char *, /* va_list */ char * );";
+};
+
+
+/*
+ * IRIX 6.5.19 <internal/wchar_core.h> provides the XPG4 variant of
+ * wcsftime by default. ISO C99 requires the XPG5 variant instead.
+ */
+fix = {
+ hackname = irix_wcsftime;
+ files = internal/wchar_core.h;
+ select = "#if _NO_XOPEN5\n(extern size_t[ \t]+wcsftime.*const char \*.*)";
+
+ mach = "mips-sgi-irix6.5";
+ c_fix = format;
+ 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 *);";
+};
+
+
+/*
+ * These files in Sun OS 4.x and ARM/RISCiX and BSD4.3
+ * use / * * / to concatenate tokens.
+ */
+fix = {
+ hackname = kandr_concat;
+ files = "sparc/asm_linkage.h";
+ files = "sun*/asm_linkage.h";
+ files = "arm/as_support.h";
+ files = "arm/mc_type.h";
+ files = "arm/xcb.h";
+ files = "dev/chardefmac.h";
+ files = "dev/ps_irq.h";
+ files = "dev/screen.h";
+ files = "dev/scsi.h";
+ files = "sys/tty.h";
+ files = "Xm.acorn/XmP.h";
+ files = bsd43/bsd43_.h;
+ select = '/\*\*/';
+ c_fix = format;
+ c_fix_arg = '##';
+ test_text = "#define __CONCAT__(a,b) a/**/b";
+};
+
+
+/* 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++.
+ */
+fix = {
+ hackname = linux_ia64_ucontext;
+ files = "sys/ucontext.h";
+ mach = "ia64-*-linux*";
+ select = '\(\(\(char \*\) &\(\(struct sigcontext \*\) 0\)'
+ '->sc_gr\[0\]\) - \(char \*\) 0\)';
+ c_fix = format;
+ c_fix_arg = "__builtin_offsetof \(struct sigcontext, sc_gr[0]\)";
+ test_text = "# define _SC_GR0_OFFSET\t\\\\\n"
+ "\t(((char *) &((struct sigcontext *) 0)->sc_gr[0]) - (char *) 0)\n";
+};
+
+
+/*
+ * Remove header file warning from sys/time.h. Autoconf's
+ * AC_HEADER_TIME recommends to include both sys/time.h and time.h
+ * which causes warning on LynxOS. Remove the warning.
+ */
+fix = {
+ hackname = lynxos_no_warning_in_sys_time_h;
+ files = sys/time.h;
+ select = "#warning[ \t]+Using <time.h> instead of <sys/time.h>";
+ c_fix = format;
+ c_fix_arg = "";
+ test_text = "#warning Using <time.h> instead of <sys/time.h>";
+};
+
+
+/*
+ * Add missing declaration for putenv.
+ */
+fix = {
+ hackname = lynxos_missing_putenv;
+ mach = '*-*-lynxos*';
+ files = stdlib.h;
+ bypass = 'putenv[ \t]*\\(';
+ select = "extern char \\*getenv[ \t]*_AP\\(\\(const char \\*\\)\\);";
+ c_fix = format;
+ c_fix_arg = "%0\n"
+ "extern int putenv _AP((char *));";
+ c_fix_arg = "extern char \\*getenv[ \t]*_AP\\(\\(const char \\*\\)\\);";
+ test_text = "extern char *getenv _AP((const char *));";
+};
+
+
+/*
+ * Fix BSD machine/ansi.h to use __builtin_va_list to define _BSD_VA_LIST_.
+ *
+ * On NetBSD, machine is a symbolic link to an architecture specific
+ * directory name, so we can't match a specific file name here.
+ */
+fix = {
+ hackname = machine_ansi_h_va_list;
+ select = "define[ \t]+_BSD_VA_LIST_[ \t]";
+ bypass = '__builtin_va_list';
+
+ c_fix = format;
+ c_fix_arg = "%1__builtin_va_list";
+ c_fix_arg = "(define[ \t]+_BSD_VA_LIST_[ \t]+).*";
+
+ test_text = " # define _BSD_VA_LIST_\tchar**";
+};
+
+
+/*
+ * Fix non-ansi machine name defines
+ */
+fix = {
+ hackname = machine_name;
+ c_test = machine_name;
+ c_fix = machine_name;
+
+ test_text = "/* MACH_DIFF: */\n"
+ "#if defined( i386 ) || defined( sparc ) || defined( vax )"
+ "\n/* no uniform test, so be careful :-) */";
+};
+
+
+/*
+ * Some math.h files define struct exception (it's in the System V
+ * Interface Definition), which conflicts with the class exception defined
+ * in the C++ file std/stdexcept.h. We redefine it to __math_exception.
+ * This is not a great fix, but I haven't been able to think of anything
+ * better.
+ */
+fix = {
+ hackname = math_exception;
+ files = math.h;
+ select = "struct exception";
+ /*
+ * This should be bypassed on __cplusplus, but some supposedly C++ C++
+ * aware headers, such as Solaris 8 and 9, don't wrap their struct
+ * 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';
+ c_fix = wrap;
+
+ c_fix_arg = "#ifdef __cplusplus\n"
+ "#define exception __math_exception\n"
+ "#endif\n";
+
+ c_fix_arg = "#ifdef __cplusplus\n"
+ "#undef exception\n"
+ "#endif\n";
+
+ test_text = "typedef struct exception t_math_exception;";
+};
+
+
+/*
+ * This looks pretty broken to me. ``dbl_max_def'' will contain
+ * "define DBL_MAX " at the start, when what we really want is just
+ * the value portion. Can't figure out how to write a test case
+ * for this either :-(
+ */
+fix = {
+ hackname = math_huge_val_from_dbl_max;
+ files = math.h;
+
+ /*
+ * IF HUGE_VAL is defined to be DBL_MAX *and* DBL_MAX is _not_ defined
+ * in math.h, this fix applies.
+ */
+ select = "define[ \t]+HUGE_VAL[ \t]+DBL_MAX";
+ bypass = "define[ \t]+DBL_MAX";
+
+ shell =
+ /*
+ * See if we have a definition for DBL_MAX in float.h.
+ * If we do, we will replace the one in math.h with that one.
+ */
+
+ "\tdbl_max_def=`egrep 'define[ \t]+DBL_MAX[ \t]+.*' float.h "
+ "| sed 's/.*DBL_MAX[ \t]*//' 2>/dev/null`\n\n"
+
+ "\tif ( test -n \"${dbl_max_def}\" ) > /dev/null 2>&1\n"
+ "\tthen sed -e '/define[ \t]*HUGE_VAL[ \t]*DBL_MAX/"
+ "s@DBL_MAX@'\"$dbl_max_def@\"\n"
+ "\telse cat\n"
+ "\tfi";
+
+ test_text =
+ "`echo '#define DBL_MAX\t3.1415e+9 /* really big */' >> float.h`\n"
+ "#define HUGE_VAL DBL_MAX";
+};
+
+
+/*
+ * nested comment
+ */
+fix = {
+ hackname = nested_auth_des;
+ files = rpc/rpc.h;
+ select = '(/\*.*rpc/auth_des\.h>.*)/\*';
+ c_fix = format;
+ c_fix_arg = "%1*/ /*";
+ test_text = "/*#include <rpc/auth_des.h> /* skip this */";
+};
+
+
+/*
+ * Some versions of NetBSD don't expect the C99 inline semantics.
+ */
+fix = {
+ hackname = netbsd_c99_inline_1;
+ mach = "*-*-netbsd*";
+ files = signal.h;
+ 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";
+
+ test_text = "extern __inline int\nsigaddset(sigset_t *set, int signo)\n{}";
+};
+
+
+fix = {
+ hackname = netbsd_c99_inline_2;
+ mach = "*-*-netbsd*";
+ files = signal.h;
+ select = "#define _SIGINLINE extern __inline";
+
+ c_fix = format;
+ c_fix_arg = <<- _EOArg_
+ #ifdef __GNUC_STDC_INLINE__
+ #define _SIGINLINE extern __attribute__((__gnu_inline__)) __inline
+ #else
+ %0
+ #endif
+ _EOArg_;
+
+ test_text = "#define _SIGINLINE extern __inline";
+};
+
+
+/*
+ * NetBSD has a semicolon after the ending '}' for some extern "C".
+ */
+fix = {
+ hackname = netbsd_extra_semicolon;
+ mach = "*-*-netbsd*";
+ files = sys/cdefs.h;
+ select = "#define[ \t]*__END_DECLS[ \t]*};";
+
+ c_fix = format;
+ c_fix_arg = "#define __END_DECLS }";
+
+ test_text = "#define __END_DECLS };";
+};
+
+
+/* newlib's stdint.h has several failures to conform to C99. The fix
+ for these removed a comment that can be matched to identify unfixed
+ versions. */
+fix = {
+ hackname = newlib_stdint_1;
+ files = stdint-newlib.h, stdint.h;
+ select = "@todo - Add support for wint_t types";
+ sed = "s@#define INT32_MIN.*@#define INT32_MIN (-INT32_MAX - 1)@";
+ sed = "s@#define INT32_MAX.*@#define INT32_MAX __INT32_MAX__@";
+ sed = "s@#define UINT32_MAX.*@#define UINT32_MAX __UINT32_MAX__@";
+ sed = "s@#define INT_LEAST32_MIN.*@#define INT_LEAST32_MIN (-INT_LEAST32_MAX - 1)@";
+ sed = "s@#define INT_LEAST32_MAX.*@#define INT_LEAST32_MAX __INT_LEAST32_MAX__@";
+ sed = "s@#define UINT_LEAST32_MAX.*@#define UINT_LEAST32_MAX __UINT_LEAST32_MAX__@";
+ sed = 's@#define INT_FAST\([0-9]*\)_MIN.*@#define INT_FAST\1_MIN (-INT_FAST\1_MAX - 1)@';
+ sed = 's@#define INT_FAST\([0-9]*\)_MAX.*@#define INT_FAST\1_MAX __INT_FAST\1_MAX__@';
+ sed = 's@#define UINT_FAST\([0-9]*\)_MAX.*@#define UINT_FAST\1_MAX __UINT_FAST\1_MAX__@';
+ sed = "s@#define SIZE_MAX.*@#define SIZE_MAX __SIZE_MAX__@";
+ sed = "s@#define PTRDIFF_MIN.*@#define PTRDIFF_MIN (-PTRDIFF_MAX - 1)@";
+ sed = "s@#define PTRDIFF_MAX.*@#define PTRDIFF_MAX __PTRDIFF_MAX__@";
+ sed = "s@#define UINT8_C.*@#define UINT8_C(c) __UINT8_C(c)@";
+ sed = "s@#define UINT16_C.*@#define UINT16_C(c) __UINT16_C(c)@";
+ test_text = "/* @todo - Add support for wint_t types. */\n"
+ "#define INT32_MIN (-2147483647-1)\n"
+ "#define INT32_MAX 2147483647\n"
+ "#define UINT32_MAX 4294967295U\n"
+ "#define INT_LEAST32_MIN (-2147483647-1)\n"
+ "#define INT_LEAST32_MAX 2147483647\n"
+ "#define UINT_LEAST32_MAX 4294967295U\n"
+ "#define INT_FAST8_MIN INT8_MIN\n"
+ "#define INT_FAST8_MAX INT8_MAX\n"
+ "#define UINT_FAST8_MAX UINT8_MAX\n"
+ "#define SIZE_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1)\n"
+ "#define PTRDIFF_MIN (-__STDINT_EXP(LONG_MAX) - 1L)\n"
+ "#define PTRDIFF_MAX __STDINT_EXP(LONG_MAX)\n"
+ "#define UINT8_C(x) x##U\n"
+ "#define UINT16_C(x) x##U";
+};
+
+
+fix = {
+ hackname = newlib_stdint_2;
+ files = stdint-newlib.h, stdint.h;
+ select = "@todo - Add support for wint_t types";
+ c_fix = format;
+ c_fix_arg = "#define INTMAX_MAX __INTMAX_MAX__\n"
+ "#define INTMAX_MIN (-INTMAX_MAX - 1)\n"
+ "#define UINTMAX_MAX __UINTMAX_MAX__\n"
+ "#define WCHAR_MAX __WCHAR_MAX__\n"
+ "#define WCHAR_MIN __WCHAR_MIN__\n"
+ "#define WINT_MAX __WINT_MAX__\n"
+ "#define WINT_MIN __WINT_MIN__\n\n"
+ "%0";
+ c_fix_arg = '/\*\* Macros for minimum-width integer constant expressions \*/';
+ test_text = "/* @todo - Add support for wint_t types. */\n"
+ "/** Macros for minimum-width integer constant expressions */";
+};
+
+
+/*
+ * NeXT 3.2 adds const prefix to some math functions.
+ * These conflict with the built-in functions.
+ */
+fix = {
+ hackname = next_math_prefix;
+ files = ansi/math.h;
+ select = "^extern[ \t]+double[ \t]+__const__[ \t]";
+
+ c_fix = format;
+ c_fix_arg = "extern double %1(";
+ c_fix_arg = "^extern[ \t]+double[ \t]+__const__[ \t]+([a-z]+)\\(";
+
+ test_text = "extern\tdouble\t__const__\tmumble();";
+};
+
+
+/*
+ * NeXT 3.2 uses the word "template" as a parameter for some
+ * functions. GCC reports an invalid use of a reserved key word
+ * with the built-in functions.
+ */
+fix = {
+ hackname = next_template;
+ files = bsd/libc.h;
+ select = "[ \t]template\\)";
+
+ c_fix = format;
+ c_fix_arg = "(%1)";
+ c_fix_arg = "\\(([^)]*)[ \t]template\\)";
+ test_text = "extern mumble( char * template); /* fix */";
+};
+
+
+/*
+ * NeXT 3.2 includes the keyword volatile in the abort() and exit()
+ * function prototypes. That conflicts with the built-in functions.
+ */
+fix = {
+ hackname = next_volitile;
+ files = ansi/stdlib.h;
+ select = "^extern[ \t]+volatile[ \t]+void[ \t]";
+
+ c_fix = format;
+ c_fix_arg = "extern void %1(";
+ c_fix_arg = "^extern[ \t]+volatile[ \t]+void[ \t]+(exit|abort)\\(";
+
+ test_text = "extern\tvolatile\tvoid\tabort();";
+};
+
+
+/*
+ * NeXT 2.0 defines 'int wait(union wait*)', which conflicts with Posix.1.
+ * Note that version 3 of the NeXT system has wait.h in a different directory,
+ * so that this code won't do anything. But wait.h in version 3 has a
+ * conditional, so it doesn't need this fix. So everything is okay.
+ */
+fix = {
+ hackname = next_wait_union;
+ files = sys/wait.h;
+
+ select = 'wait\(union wait';
+ c_fix = format;
+ c_fix_arg = "wait(void";
+ test_text = "extern pid_d wait(union wait*);";
+};
+
+
+/*
+ * a missing semi-colon at the end of the nodeent structure definition.
+ */
+fix = {
+ hackname = nodeent_syntax;
+ files = netdnet/dnetdb.h;
+ select = "char[ \t]*\\*na_addr[ \t]*$";
+ c_fix = format;
+ c_fix_arg = "%0;";
+ test_text = "char *na_addr\t";
+};
+
+/*
+ * Fix OpenBSD's NULL definition.
+ */
+fix = {
+ hackname = openbsd_null_definition;
+ mach = "*-*-openbsd*";
+ files = locale.h, stddef.h, stdio.h, string.h,
+ time.h, unistd.h, wchar.h, sys/param.h;
+ select = "__GNUG__";
+ c_fix = format;
+ c_fix_arg = "#ifndef NULL\n"
+ "#ifdef __cplusplus\n"
+ "#ifdef __GNUG__\n"
+ "#define NULL\t__null\n"
+ "#else\t /* ! __GNUG__ */\n"
+ "#define NULL\t0L\n"
+ "#endif\t /* __GNUG__ */\n"
+ "#else\t /* ! __cplusplus */\n"
+ "#define NULL\t((void *)0)\n"
+ "#endif\t /* __cplusplus */\n"
+ "#endif\t /* !NULL */";
+
+ c_fix_arg = "^#ifndef[ \t]*NULL\n"
+ "^#ifdef[ \t]*__GNUG__\n"
+ "^#define[ \t]*NULL[ \t]*__null\n"
+ "^#else\n"
+ "^#define[ \t]*NULL[ \t]*0L\n"
+ "^#endif\n"
+ "^#endif";
+ test_text =
+ "#ifndef NULL\n"
+ "#ifdef __GNUG__\n"
+ "#define NULL __null\n"
+ "#else\n"
+ "#define NULL 0L\n"
+ "#endif\n"
+ "#endif\n";
+};
+
+/*
+ * obstack.h used casts as lvalues.
+ *
+ * We need to change postincrements of casted pointers (which are
+ * then dereferenced and assigned into) of the form
+ *
+ * *((TYPE*)PTRVAR)++ = (VALUE)
+ *
+ * into expressions like
+ *
+ * ((*((TYPE*)PTRVAR) = (VALUE)), (PTRVAR += sizeof (TYPE)))
+ *
+ * which is correct for the cases used in obstack.h since PTRVAR is
+ * of type char * and the value of the expression is not used.
+ */
+fix = {
+ hackname = obstack_lvalue_cast;
+ files = obstack.h;
+ select = '\*\(\(([^()]*)\*\)(.*)\)\+\+ = \(([^()]*)\)';
+ c_fix = format;
+ c_fix_arg = "((*((%1*)%2) = (%3)), (%2 += sizeof (%1)))";
+ 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
+ * defining regex.h related types. This causes libg++ build and usage
+ * failures. Fixing this correctly requires checking and modifying 3 files.
+ */
+fix = {
+ hackname = osf_namespace_a;
+ files = reg_types.h;
+ files = sys/lc_core.h;
+ test = " -r reg_types.h";
+ test = " -r sys/lc_core.h";
+ test = " -n \"`grep '} regex_t;' reg_types.h`\"";
+ test = " -z \"`grep __regex_t regex.h`\"";
+
+ c_fix = format;
+ c_fix_arg = "__%0";
+ c_fix_arg = "reg(ex|off|match)_t";
+
+ test_text = "`touch sys/lc_core.h`"
+ "typedef struct {\n int stuff, mo_suff;\n} regex_t;\n"
+ "extern regex_t re;\n"
+ "extern regoff_t ro;\n"
+ "extern regmatch_t rm;\n";
+};
+
+fix = {
+ hackname = osf_namespace_c;
+ files = regex.h;
+ test = " -r reg_types.h";
+ test = " -r sys/lc_core.h";
+ test = " -n \"`grep '} regex_t;' reg_types.h`\"";
+ test = " -z \"`grep __regex_t regex.h`\"";
+
+ select = "#include <reg_types\.h>.*";
+ c_fix = format;
+ c_fix_arg = "%0\n"
+ "typedef __regex_t\tregex_t;\n"
+ "typedef __regoff_t\tregoff_t;\n"
+ "typedef __regmatch_t\tregmatch_t;";
+
+ test_text = "#include <reg_types.h>";
+};
+
+
+/*
+ * On broken glibc-2.3.3 systems an array of incomplete structures is
+ * passed to __sigsetjmp. Fix that to take a pointer instead.
+ */
+fix = {
+ hackname = pthread_incomplete_struct_argument;
+ files = pthread.h;
+ select = "struct __jmp_buf_tag";
+ c_fix = format;
+ c_fix_arg = "%1 *%2%3";
+ c_fix_arg = "^(extern int __sigsetjmp \\(struct __jmp_buf_tag) (__env)\\[1\\](.*)$";
+ test_text = "extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask);";
+};
+
+/*
+ * Fix return type of fread and fwrite on sysV68
+ */
+fix = {
+ hackname = read_ret_type;
+ files = stdio.h;
+ select = "extern int\t.*, fread\\(\\), fwrite\\(\\)";
+ c_fix = format;
+ c_fix_arg = "extern unsigned int fread(), fwrite();\n%1%2";
+ c_fix_arg = "(extern int\t.*), fread\\(\\), fwrite\\(\\)(.*)";
+
+ test_text = "extern int\tfclose(), fflush(), fread(), fwrite(), foo();";
+};
+
+
+/*
+ * Fix casts as lvalues in glibc's <rpc/xdr.h>.
+ */
+fix = {
+ hackname = rpc_xdr_lvalue_cast_a;
+ files = rpc/xdr.h;
+ select = "#define[ \t]*IXDR_GET_LONG.*\\\\\n.*__extension__.*";
+ c_fix = format;
+ c_fix_arg = "#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))";
+ test_text = "#define IXDR_GET_LONG(buf) \\\\\n"
+ "\t((long)ntohl((u_long)*__extension__((u_int32_t*)(buf))++))";
+};
+
+
+fix = {
+ hackname = rpc_xdr_lvalue_cast_b;
+ files = rpc/xdr.h;
+ select = "#define[ \t]*IXDR_PUT_LONG.*\\\\\n.*__extension__.*";
+ c_fix = format;
+ c_fix_arg = "#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))";
+ test_text = "#define IXDR_PUT_LONG(buf, v) \\\\\n"
+ "\t(*__extension__((u_int32_t*)(buf))++ = (long)htonl((u_long)(v)))";
+};
+
+
+/*
+ * function class(double x) conflicts with C++ keyword on rs/6000
+ */
+fix = {
+ hackname = rs6000_double;
+ files = math.h;
+ select = '[^a-zA-Z_]class\(';
+
+ c_fix = format;
+ c_fix_arg = "#ifndef __cplusplus\n%0\n#endif";
+ c_fix_arg = '^.*[^a-zA-Z_]class\(.*';
+
+ test_text = "extern int class();";
+};
+
+
+/*
+ * Wrong fchmod prototype on RS/6000.
+ */
+fix = {
+ hackname = rs6000_fchmod;
+ files = sys/stat.h;
+ select = 'fchmod\(char \*';
+ c_fix = format;
+ c_fix_arg = "fchmod(int";
+ test_text = "extern int fchmod(char *, mode_t);";
+};
+
+
+/*
+ * parameters conflict with C++ new on rs/6000
+ */
+fix = {
+ hackname = rs6000_param;
+ files = "stdio.h";
+ files = "unistd.h";
+
+ select = 'rename\(const char \*old, const char \*new\)';
+ c_fix = format;
+ c_fix_arg = 'rename(const char *_old, const char *_new)';
+
+ test_text = 'extern int rename(const char *old, const char *new);';
+};
+
+
+/*
+ * Solaris 10+ <sys/feature_tests.h> defines _RESTRICT_KYWD as restrict
+ * for C99. This is wrong for C++, which needs many C99 features, but
+ * only supports __restrict.
+ */
+fix = {
+ hackname = solaris___restrict;
+ files = sys/feature_tests.h;
+ select = "#define[ \t]*_RESTRICT_KYWD[ \t]*restrict";
+ mach = "*-*-solaris2*";
+ c_fix = format;
+ c_fix_arg = "#ifdef __cplusplus\n#define\t_RESTRICT_KYWD\t__restrict\n"
+ "#else\n%0\n#endif";
+ test_text = "#define _RESTRICT_KYWD restrict";
+};
+
+
+/*
+ * Solaris 10+ complex.h defines _Complex_I and _Imaginary_I in terms of
+ * themselves, which are Sun Studio compiler intrinsics. Remove _Imaginary_I
+ * and imaginary definitions which are not supported by GCC.
+ */
+fix = {
+ hackname = solaris_complex;
+ mach = "*-*-solaris2.*";
+ files = complex.h;
+ select = "#define[ \t]_Complex_I[ \t]_Complex_I";
+ sed = "s/#define[ \t]_Complex_I[ \t]_Complex_I/"
+ "#define\t_Complex_I\t(__extension__ 1.0iF)/";
+ sed = "/#define[ \t]_Imaginary_I[ \t]_Imaginary_I/d";
+ sed = "/#define[ \t]imaginary[ \t]_Imaginary/d";
+ sed = "s/#define[ \t]I[ \t]\\{1,\\}_Imaginary_I/#define\tI\t\t_Complex_I/";
+ test_text = "#define _Complex_I _Complex_I\n"
+ "#define complex _Complex\n"
+ "#define _Imaginary_I _Imaginary_I\n"
+ "#define imaginary _Imaginary\n"
+ "#undef I\n"
+ "#define I _Imaginary_I";
+};
+
+
+/*
+ * Solaris 10+ <complex.h> is wrapped in #ifndef __cplusplus. Wrap in
+ * extern "C" instead so libstdc++ can use it.
+ */
+fix = {
+ hackname = solaris_complex_cxx;
+ mach = "*-*-solaris2.*";
+ files = complex.h;
+ sed = "/#if[ \t]*!defined(__cplusplus)/c"
+ "#ifdef\t__cplusplus\\\nextern \"C\" {\\\n#endif";
+ sed = "/#endif[ \t]*\\/\\* !defined(__cplusplus) \\*\\//c"
+ "#ifdef\t__cplusplus\\\n}\\\n#endif";
+ test_text = "#if !defined(__cplusplus)\n"
+ "#endif /* !defined(__cplusplus) */";
+};
+
+
+/*
+ * Solaris 8 PTHREAD_COND_INITIALIZER lacks the __pthread_cond_magic field.
+ * COND_MAGIC is only defined in <synch.h> and pollutes the namespace, so
+ * use the value literally instead.
+ */
+fix = {
+ hackname = solaris_cond_init;
+ select = '@\(#\)pthread.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+ files = pthread.h;
+ mach = '*-*-solaris2.8';
+ c_fix = format;
+ c_fix_arg = "%1, 0x4356%2";
+ c_fix_arg = "^(#define[ \t]+PTHREAD_COND_INITIALIZER[ \t]+"
+ "\\{.*0)(\\},[ \t]*0\\}.*)$";
+ test_text =
+ '#pragma ident "@(#)pthread.h 1.29 01/07/07 SMI"'"\n"
+ '#define PTHREAD_COND_INITIALIZER {{{0}, 0}, 0} /* = DEFAULTCV */';
+};
+
+
+/*
+ * 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.
+ */
+fix = {
+ hackname = solaris_math_1;
+ select = '@\(#\)math_c99.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+ bypass = "__GNUC__";
+ files = iso/math_c99.h;
+ c_fix = format;
+ c_fix_arg = "#define\tHUGE_VA%1\t(__builtin_huge_va%2())";
+ c_fix_arg = "^#define[ \t]+HUGE_VA([LF]+)[ \t]+__builtin_huge_va([lf]+)";
+ test_text =
+ '#ident "@(#)math_c99.h 1.9 04/11/01 SMI"'"\n"
+ "#undef HUGE_VAL\n"
+ "#define HUGE_VAL __builtin_huge_val\n"
+ "#undef HUGE_VALF\n"
+ "#define HUGE_VALF __builtin_huge_valf\n"
+ "#undef HUGE_VALL\n"
+ "#define HUGE_VALL __builtin_huge_vall";
+};
+
+fix = {
+ hackname = solaris_math_2;
+ select = '@\(#\)math_c99.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+ bypass = "__GNUC__";
+ files = iso/math_c99.h;
+ c_fix = format;
+ c_fix_arg = "#define\tINFINITY\t(__builtin_inff())";
+ c_fix_arg = "^#define[ \t]+INFINITY[ \t]+__builtin_infinity";
+ test_text =
+ '#ident "@(#)math_c99.h 1.9 04/11/01 SMI"'"\n"
+ "#undef INFINITY\n"
+ "#define INFINITY __builtin_infinity";
+};
+
+fix = {
+ hackname = solaris_math_3;
+ select = '@\(#\)math_c99.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+ bypass = "__GNUC__";
+ files = iso/math_c99.h;
+ c_fix = format;
+ c_fix_arg = "#define\tNAN\t\t(__builtin_nanf(\"\"))";
+ c_fix_arg = "^#define[ \t]+NAN[ \t]+__builtin_nan";
+ test_text =
+ '#ident "@(#)math_c99.h 1.9 04/11/01 SMI"'"\n"
+ "#undef NAN\n"
+ "#define NAN __builtin_nan";
+};
+
+fix = {
+ hackname = solaris_math_4;
+ select = '@\(#\)math_c99.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+ bypass = "__GNUC__";
+ files = iso/math_c99.h;
+ c_fix = format;
+ c_fix_arg = "#define\tfpclassify(x) \\\n"
+ " __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"
+ "#undef fpclassify\n"
+ "#define fpclassify(x) __builtin_fpclassify(x)";
+};
+
+fix = {
+ hackname = solaris_math_8;
+ select = '@\(#\)math_c99\.h' "[ \t]+1\\.[0-9]+[ \t]+[0-9/]+ SMI";
+ bypass = "__GNUC__";
+ files = iso/math_c99.h;
+ c_fix = format;
+ c_fix_arg = "#define\tsignbit(x)\t(sizeof(x) == sizeof(float) \\\n"
+ "\t\t\t ? __builtin_signbitf(x) \\\n"
+ "\t\t\t : sizeof(x) == sizeof(long double) \\\n"
+ "\t\t\t ? __builtin_signbitl(x) \\\n"
+ "\t\t\t : __builtin_signbit(x))";
+ c_fix_arg = "^#define[ \t]+signbit\\(x\\)[ \t]+__builtin_signbit\\(x\\)";
+ test_text = <<- _EOText_
+ #ident "@(#)math_c99.h 1.9 04/11/01 SMI"
+ #undef signbit
+ #define signbit(x) __builtin_signbit(x)
+ _EOText_;
+};
+
+fix = {
+ hackname = solaris_math_9;
+ select = '@\(#\)math_c99.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+ bypass = "__GNUC__";
+ files = iso/math_c99.h;
+ c_fix = format;
+ c_fix_arg = "#define\t%1(x, y)%2__builtin_%1(x, y)";
+ c_fix_arg = "^#define[ \t]+([a-z]+)\\(x, y\\)([ \t]+)\\(\\(x\\) __builtin_[a-z]+\\(y\\)\\)";
+ test_text =
+ '#ident "@(#)math_c99.h 1.9 04/11/01 SMI"'"\n"
+ "#undef isgreater\n"
+ "#define isgreater(x, y) ((x) __builtin_isgreater(y))\n"
+ "#undef isgreaterequal\n"
+ "#define isgreaterequal(x, y) ((x) __builtin_isgreaterequal(y))\n"
+ "#undef isless\n"
+ "#define isless(x, y) ((x) __builtin_isless(y))\n"
+ "#undef islessequal\n"
+ "#define islessequal(x, y) ((x) __builtin_islessequal(y))\n"
+ "#undef islessgreater\n"
+ "#define islessgreater(x, y) ((x) __builtin_islessgreater(y))\n"
+ "#undef isunordered\n"
+ "#define isunordered(x, y) ((x) __builtin_isunordered(y))";
+};
+
+/*
+ * On Solaris 11, if you do isinf(NaN) you'll get a floating point
+ * exception. Provide an alternative using GCC's builtin.
+ */
+
+fix = {
+ hackname = solaris_math_10;
+ select = '@\(#\)math_c99.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+ files = iso/math_c99.h;
+ c_fix = format;
+ c_fix_arg = "#define\tisinf(x) __builtin_isinf(x)";
+ c_fix_arg = "^#define[ \t]+isinf\\(x\\)[ \t]+__extension__\\([ \t]*\\\\\n"
+ "[ \t]*\\{[ \t]*__typeof\\(x\\)[ \t]*__x_i[ \t]*=[ \t]*\\(x\\);[ \t]*\\\\\n"
+ "[ \t]*__x_i[ \t]*==[ \t]*\\(__typeof\\(__x_i\\)\\)[ \t]*INFINITY[ \t]*\\|\\|[ \t]*\\\\\n"
+ "[ \t]*__x_i[ \t]*==[ \t]*\\(__typeof\\(__x_i\\)\\)[ \t]*\\(-INFINITY\\);[ \t]*\\}\\)";
+ test_text =
+ '#pragma ident "@(#)math_c99.h 1.12 07/01/21 SMI"'"\n"
+ "#undef isinf\n"
+ "#define isinf(x) __extension__( \\\\\n"
+ " { __typeof(x) __x_i = (x); \\\\\n"
+ " __x_i == (__typeof(__x_i)) INFINITY || \\\\\n"
+ " __x_i == (__typeof(__x_i)) (-INFINITY); })";
+};
+
+/*
+ * 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
+ * __STDC__ defined (e.g. by -ansi) it is a union. So change the
+ * initializer to "{0}" instead
+ */
+fix = {
+ hackname = solaris_mutex_init_2;
+ select = '@\(#\)pthread.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+ files = pthread.h;
+ /*
+ * On Solaris 10, this fix is unnecessary because upad64_t is
+ * always defined correctly regardless of the definition of the
+ * __STDC__ macro. The first "mach" pattern matches up to
+ * solaris9. The second "mach" pattern will not match any two (or
+ * more) digit solaris version, but it will match e.g. 2.5.1.
+ */
+ mach = '*-*-solaris2.[0-9]', '*-*-solaris2.[0-9][!0-9]*';
+ c_fix = format;
+ c_fix_arg = "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n"
+ "%0\n"
+ "#else\n"
+ "%1, {0}}%4\n"
+ "#endif";
+ c_fix_arg = "(^#define[ \t]+PTHREAD_(MUTEX|COND)_INITIALIZER[ \t]+"
+ "(|/\*.*\*/[ \t]*\\\\\n[ \t]*)\\{.*)"
+ ",[ \t]*0\\}" "(|[ \t].*)$";
+ test_text =
+ '#ident "@(#)pthread.h 1.26 98/04/12 SMI"'"\n"
+ "#define PTHREAD_MUTEX_INITIALIZER\t{{{0},0}, {{{0}}}, 0}\n"
+ "#define PTHREAD_COND_INITIALIZER\t{{{0}, 0}, 0}\t/* DEFAULTCV */\n"
+ "#define PTHREAD_MUTEX_INITIALIZER /* = DEFAULTMUTEX */ \\\\\n"
+ " {{0, 0, 0, DEFAULT_TYPE, _MUTEX_MAGIC}, {{{0}}}, 0}\n"
+ "#define PTHREAD_COND_INITIALIZER /* = DEFAULTCV */ \\\\\n"
+ " {{{0, 0, 0, 0}, DEFAULT_TYPE, _COND_MAGIC}, 0}";
+};
+
+
+/*
+ * Sun Solaris defines PTHREAD_RWLOCK_INITIALIZER with a "0" for some
+ * fields of the pthread_rwlock_t structure, which are of type
+ * upad64_t, which itself is typedef'd to int64_t, but with __STDC__
+ * defined (e.g. by -ansi) it is a union. So change the initializer
+ * to "{0}" instead.
+ */
+fix = {
+ hackname = solaris_rwlock_init_1;
+ select = '@\(#\)pthread.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+ files = pthread.h;
+ mach = '*-*-solaris*';
+ c_fix = format;
+ c_fix_arg = "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n"
+ "%0\n"
+ "#else\n"
+ "%1{0, 0, 0, {{0}, {0}, {0}}, {{0}, {0}}, {{0}, {0}}}\n"
+ "#endif";
+ c_fix_arg = "(^#define[ \t]+PTHREAD_RWLOCK_INITIALIZER[ \t]+)"
+ "\\{0, 0, 0, \\{0, 0, 0\\}, \\{0, 0\\}, \\{0, 0\\}\\}[ \t]*$";
+
+ test_text =
+ '#ident "@(#)pthread.h 1.26 98/04/12 SMI"'"\n"
+ "#define PTHREAD_RWLOCK_INITIALIZER\t{0, 0, 0, {0, 0, 0}, {0, 0}, {0, 0}}";
+};
+
+
+/*
+ * Sun Solaris defines PTHREAD_ONCE_INIT as an array containing a
+ * structure. As such, it need two levels of brackets, but only
+ * contains one. Wrap the macro definition in an extra layer.
+ */
+fix = {
+ hackname = solaris_once_init_1;
+ select = '@\(#\)pthread.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+ files = pthread.h;
+ mach = '*-*-solaris*';
+ c_fix = format;
+ c_fix_arg = "%1{%2}%3";
+ c_fix_arg = "(^#define[ \t]+PTHREAD_ONCE_INIT[ \t]+\\{)([^}]+)(\\})[ \t]*$";
+ test_text =
+ '#pragma ident "@(#)pthread.h 1.37 04/09/28 SMI"'"\n"
+ "#define PTHREAD_ONCE_INIT\t{0, 0, 0, PTHREAD_ONCE_NOTDONE}";
+};
+
+
+/*
+ * Sun Solaris defines PTHREAD_ONCE_INIT with a "0" for some
+ * fields of the pthread_once_t structure, which are of type
+ * upad64_t, which itself is typedef'd to int64_t, but with __STDC__
+ * defined (e.g. by -ansi) it is a union. So change the initializer
+ * to "{0}" instead. This test relies on solaris_once_init_1.
+ */
+fix = {
+ hackname = solaris_once_init_2;
+ select = '@\(#\)pthread.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
+ files = pthread.h;
+ /*
+ * On Solaris 10, this fix is unnecessary because upad64_t is
+ * always defined correctly regardless of the definition of the
+ * __STDC__ macro. The first "mach" pattern matches up to
+ * solaris9. The second "mach" pattern will not match any two (or
+ * more) digit solaris version, but it will match e.g. 2.5.1.
+ */
+ mach = '*-*-solaris2.[0-9]', '*-*-solaris2.[0-9][!0-9]*';
+ c_fix = format;
+ c_fix_arg = "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n"
+ "%0\n"
+ "#else\n"
+ "%1{0}, {0}, {0}, {%3}%4\n"
+ "#endif";
+ c_fix_arg = "(^#define[ \t]+PTHREAD_ONCE_INIT[ \t]+\\{\\{)"
+ "(0, 0, 0, )(PTHREAD_[A-Z_]+)(\\}\\})[ \t]*$";
+ test_text =
+ '#ident "@(#)pthread.h 1.26 98/04/12 SMI"'"\n"
+ "#define PTHREAD_ONCE_INIT\t{{0, 0, 0, PTHREAD_ONCE_NOTDONE}}\n";
+};
+
+
+/*
+ * Sun Solaris 2 has a version of sys/int_const.h that defines
+ * UINT8_C and UINT16_C to unsigned constants.
+ */
+fix = {
+ hackname = solaris_int_const;
+ files = sys/int_const.h;
+ mach = '*-*-solaris2*';
+ c_fix = format;
+ c_fix_arg = "#define\tUINT8_C(c)\t(c)\n"
+ "%1\n"
+ "#define\tUINT16_C(c)\t(c)";
+ select = "^#define[ \t]+UINT8_C\\(c\\)[ \t]+__CONCAT__.*\n"
+ "(/\*.*\*/)\n"
+ "#define[ \t]+UINT16_C\\(c\\)[ \t]+__CONCAT__.*";
+ test_text =
+ "#define UINT8_C(c) __CONCAT__(c,u)\n"
+ "/* CSTYLED */\n"
+ "#define UINT16_C(c) __CONCAT__(c,u)";
+};
+
+
+/*
+ * Sun Solaris 2 has a version of sys/int_limits.h that defines
+ * UINT8_MAX and UINT16_MAX to unsigned constants.
+ */
+fix = {
+ hackname = solaris_int_limits_1;
+ files = sys/int_limits.h;
+ mach = '*-*-solaris2*';
+ c_fix = format;
+ c_fix_arg = "#define\tUINT8_MAX\t(255)\n"
+ "#define\tUINT16_MAX\t(65535)";
+ select = "^#define[ \t]+UINT8_MAX[ \t]+\\(255U\\)\n"
+ "#define[ \t]+UINT16_MAX[ \t]+\\(65535U\\)";
+ test_text =
+ "#define UINT8_MAX (255U)\n"
+ "#define UINT16_MAX (65535U)";
+};
+
+
+/*
+ * Sun Solaris 2 has a version of sys/int_limits.h that defines
+ * INT_FAST16 limits to wrong values for sys/int_types.h.
+ */
+fix = {
+ hackname = solaris_int_limits_2;
+ files = sys/int_limits.h;
+ mach = '*-*-solaris2*';
+ c_fix = format;
+ c_fix_arg = "#define\t%1_FAST16_%2 %132_%2";
+ select = "^#define[ \t]+(INT|UINT)_FAST16_(MAX|MIN)[ \t](INT|UINT)16.*";
+ test_text =
+ "#define INT_FAST16_MAX INT16_MAX\n"
+ "#define UINT_FAST16_MAX UINT16_MAX\n"
+ "#define INT_FAST16_MIN INT16_MIN";
+};
+
+
+/*
+ * Sun Solaris 2 has a version of sys/int_limits.h that defines
+ * SIZE_MAX as unsigned long.
+ */
+fix = {
+ hackname = solaris_int_limits_3;
+ files = sys/int_limits.h;
+ mach = '*-*-solaris2*';
+ c_fix = format;
+ c_fix_arg = "#define\tSIZE_MAX\t4294967295U";
+ select = "^#define[ \t]+SIZE_MAX[ \t]+4294967295UL";
+ test_text =
+ "#define SIZE_MAX 4294967295UL";
+};
+
+
+/*
+ * Sun Solaris up to 9 has a version of sys/int_types.h that forbids use
+ * of Standard C99 64-bit types in 32-bit mode.
+ */
+fix = {
+ hackname = solaris_int_types;
+ select = "__STDC__ - 0 == 0";
+ bypass = "_LONGLONG_TYPE";
+ files = sys/int_types.h;
+ c_fix = format;
+ c_fix_arg =
+ "(defined(_STDC_C99) || !defined(_STRICT_STDC) || defined(__GNUC__))";
+ test_text =
+ "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n"
+ "typedef long long int64_t;\n"
+ "#endif\n\n"
+ "#if defined(_LP64) || (__STDC__ - 0 == 0 && !defined(_NO_LONGLONG))\n"
+ "typedef int64_t intmax_t;\n"
+ "#endif";
+};
+
+
+/*
+ * Sun Solaris 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.
+ */
+fix = {
+ hackname = solaris_stdio_tag;
+ files = stdio_tag.h;
+
+ select = '__cplusplus < 54321L';
+ /* In Solaris 10, the code in stdio_tag.h is conditionalized on
+ "!defined(__GNUC__)" so we no longer need to fix it. */
+ bypass = '__GNUC__';
+ sed = 's/defined(__cplusplus) && (__cplusplus < 54321L)/0/';
+
+ test_text = "#if\tdefined(__cplusplus) && (__cplusplus < 54321L)";
+};
+
+
+/*
+ * On Solaris 8 and 9, __va_list needs to become a typedef for
+ * __builtin_va_list to make -Wmissing-format-attribute work.
+ */
+fix = {
+ hackname = solaris_sys_va_list;
+ files = sys/va_list.h;
+ mach = '*-*-solaris2.[89]';
+ select = "#if.*__STDC__.*\n"
+ "typedef void \\*__va_list;\n"
+ "#else\n"
+ "typedef char \\*__va_list;\n"
+ "#endif";
+
+ c_fix = format;
+ c_fix_arg = "#ifdef __GNUC__\n"
+ "typedef __builtin_va_list __va_list;\n"
+ "#else\n"
+ "%0\n"
+ "#endif";
+ test_text = "#if defined(__STDC__) && !defined(__ia64)\n"
+ "typedef void *__va_list;\n"
+ "#else\n"
+ "typedef char *__va_list;\n"
+ "#endif";
+};
+
+
+/*
+ * a missing semi-colon at the end of the statsswtch structure definition.
+ */
+fix = {
+ hackname = statsswtch;
+ files = rpcsvc/rstat.h;
+ select = "boottime$";
+ c_fix = format;
+ c_fix_arg = "boottime;";
+ test_text = "struct statswtch {\n int boottime\n};";
+};
+
+
+/*
+ * Arrange for stdio.h to use stdarg.h to define __gnuc_va_list.
+ * On 4BSD-derived systems, stdio.h defers to machine/ansi.h; that's
+ * OK too.
+ */
+fix = {
+ hackname = stdio_stdarg_h;
+ files = stdio.h;
+ bypass = "include.*(stdarg\.h|machine/ansi\.h)";
+ /*
+ * On Solaris 10, this fix is unncessary; <stdio.h> includes
+ * <iso/stdio_iso.h>, which includes <sys/va_list.h>.
+ */
+ mach = '*-*-solaris2.1[0-9]*';
+ not_machine = true;
+
+ c_fix = wrap;
+
+ c_fix_arg = "#define __need___va_list\n#include <stdarg.h>\n";
+
+ test_text = "";
+};
+
+
+/*
+ * Don't use or define the name va_list in stdio.h. This is for
+ * ANSI. Note _BSD_VA_LIST_ is dealt with elsewhere. The presence
+ * of __gnuc_va_list, __DJ_va_list, or _G_va_list is taken to
+ * indicate that the header knows what it's doing -- under SUSv2,
+ * stdio.h is required to define va_list, and we shouldn't break
+ * that. On IRIX 6.5, internal/wchar_core.h used to get its
+ * definition of va_list from stdio.h. Since this doesn't happen any
+ * longer, use __gnuc_va_list there, too.
+ */
+fix = {
+ hackname = stdio_va_list;
+ files = stdio.h;
+ files = internal/stdio_core.h;
+ files = internal/wchar_core.h;
+ bypass = '__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list|_G_va_list';
+ /*
+ * On Solaris 10, the definition in
+ * <stdio.h> is guarded appropriately by the _XPG4 feature macro;
+ * there is therefore no need for this fix there.
+ */
+ mach = '*-*-solaris2.1[0-9]*';
+ not_machine = true;
+
+ /*
+ * Use __gnuc_va_list in arg types in place of va_list.
+ * On 386BSD use __gnuc_va_list instead of _VA_LIST_. On Tru64 UNIX V5.1A
+ * use __gnuc_va_list instead of __VA_LIST__. We're hoping the
+ * trailing parentheses and semicolon save all other systems from this.
+ * Define __not_va_list__ (something harmless and unused)
+ * instead of va_list.
+ * Don't claim to have defined va_list.
+ */
+ sed = "s@[ \t]va_list\\([ \t)]\\)@ __gnuc_va_list\\1@\n"
+ "s@(va_list)&@(__gnuc_va_list)\\&@\n"
+ "s@ _VA_LIST_));@ __gnuc_va_list));@\n"
+ "s@ __VA_LIST__));@ __gnuc_va_list));@\n"
+ "s@ va_list@ __not_va_list__@\n"
+ "s@\\*va_list@*__not_va_list__@\n"
+ "s@ __va_list)@ __gnuc_va_list)@\n"
+ "s@typedef[ \t]\\(.*\\)[ \t]va_list[ \t]*;"
+ "@typedef \\1 __not_va_list__;@\n"
+ "s@typedef[ \t]*__va_list__@typedef __gnuc_va_list@\n"
+ "s@GNUC_VA_LIST@GNUC_Va_LIST@\n"
+ "s@_VA_LIST_DEFINED@_Va_LIST_DEFINED@\n"
+ "s@_NEED___VA_LIST@_NEED___Va_LIST@\n"
+ "s@VA_LIST@DUMMY_VA_LIST@\n"
+ "s@_Va_LIST@_VA_LIST@";
+ test_text = "extern void mumble( va_list);";
+};
+
+
+/*
+ * Fix headers that use va_list from stdio.h to use the updated
+ * va_list from the stdio_va_list change. Note _BSD_VA_LIST_ is
+ * dealt with elsewhere. The presence of __gnuc_va_list,
+ * __DJ_va_list, or _G_va_list is taken to indicate that the header
+ * knows what it's doing.
+ */
+fix = {
+ hackname = stdio_va_list_clients;
+ files = com_err.h;
+ files = cps.h;
+ files = curses.h;
+ files = krb5.h;
+ files = lc_core.h;
+ files = pfmt.h;
+ files = wchar.h;
+ files = curses_colr/curses.h;
+ bypass = '__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list|_G_va_list';
+ /* Don't fix, if we use va_list from stdarg.h, or if the use is
+ otherwise protected. */
+ bypass = 'include <stdarg\.h>|#ifdef va_start';
+
+ /*
+ * Use __gnuc_va_list in arg types in place of va_list.
+ * On 386BSD use __gnuc_va_list instead of _VA_LIST_. On Tru64 UNIX V5.1A
+ * use __gnuc_va_list instead of __VA_LIST__. We're hoping the
+ * trailing parentheses and semicolon save all other systems from this.
+ * Define __not_va_list__ (something harmless and unused)
+ * instead of va_list.
+ * Don't claim to have defined va_list.
+ */
+ sed = "s@[ \t]va_list\\([ \t)]\\)@ __gnuc_va_list\\1@\n"
+ "s@(va_list)&@(__gnuc_va_list)\\&@\n"
+ "s@ _VA_LIST_));@ __gnuc_va_list));@\n"
+ "s@ __VA_LIST__));@ __gnuc_va_list));@\n"
+ "s@ va_list@ __not_va_list__@\n"
+ "s@\\*va_list@*__not_va_list__@\n"
+ "s@ __va_list)@ __gnuc_va_list)@\n"
+ "s@typedef[ \t]\\(.*\\)[ \t]va_list[ \t]*;"
+ "@typedef \\1 __not_va_list__;@\n"
+ "s@typedef[ \t]*__va_list__@typedef __gnuc_va_list@\n"
+ "s@GNUC_VA_LIST@GNUC_Va_LIST@\n"
+ "s@_VA_LIST_DEFINED@_Va_LIST_DEFINED@\n"
+ "s@_NEED___VA_LIST@_NEED___Va_LIST@\n"
+ "s@VA_LIST@DUMMY_VA_LIST@\n"
+ "s@_Va_LIST@_VA_LIST@";
+ test_text = "extern void mumble( va_list);";
+};
+
+
+/*
+ * "!__STDC__" or "__STDC__==0" or "__STDC__!=1" or "__STDC__-0==0"
+ * is "!defined( __STRICT_ANSI__ )"
+ */
+fix = {
+ hackname = strict_ansi_not;
+ select = "^([ \t]*#[ \t]*if.*)"
+ "(!__STDC__"
+ "|__STDC__[ \t]*==[ \t]*0"
+ "|__STDC__[ \t]*!=[ \t]*1"
+ "|__STDC__[ \t]*-[ \t]*0[ \t]*==[ \t]*0)";
+ /* Tru64 UNIX V4.0F/V5.1 <standards.h> supports GCC usage of __STDC__. */
+ bypass = 'GNU and MIPS C compilers define __STDC__ differently';
+ /* GNU gmp.h uses "__STDC__ != 1" only if __SCO_VERSION__, which
+ is not defined by GCC, so it is safe. */
+ bypass = '__SCO_VERSION__.*__STDC__ != 1';
+ c_test = stdc_0_in_system_headers;
+
+ c_fix = format;
+ c_fix_arg = "%1 !defined(__STRICT_ANSI__)";
+
+ test_text = "#if !__STDC__ \n"
+ "#if __STDC__ == 0\n"
+ "#if __STDC__ != 1\n"
+ "#if __STDC__ - 0 == 0"
+ "/* not std C */\nint foo;\n"
+ "\n#end-end-end-end-if :-)";
+};
+
+/*
+ * "__STDC__-0==0"
+ * is "!defined( __STRICT_ANSI__ )" on continued #if-s
+ */
+fix = {
+ hackname = strict_ansi_not_ctd;
+ files = math.h, limits.h, stdio.h, signal.h,
+ stdlib.h, sys/signal.h, time.h;
+ /*
+ * Starting at the beginning of a line, skip white space and
+ * a leading "(" or "&&" or "||". One of those must be found.
+ * Then, zero, one or more copies of a "defined(_FOO_BAR_) &&"
+ * expression. If these are nested, then they must accumulate
+ * because we won't match any closing parentheses. Finally,
+ * after skipping over all that, we must then match our suspect
+ * phrase: "__STDC__-0==0" with or without white space.
+ */
+ select = "^([ \t]*" '(\(|&&|\|\|)'
+ "([ \t(]*!*[ \t]*defined\\([a-zA-Z_0-9]+\\)[ \t]*[|&][|&])*"
+ "[ \t(]*)"
+ "(__STDC__[ \t]*(|-[ \t]*0[ \t]*)==[ \t]*0)";
+ c_test = stdc_0_in_system_headers;
+
+ c_fix = format;
+ c_fix_arg = "%1 !defined(__STRICT_ANSI__)";
+
+ test_text = "#if 1 && \\\\\n"
+ "&& defined(mumbling) |& (__STDC__ - 0 == 0) \\\\\n"
+ "( __STDC__ == 0 && !defined(_XOPEN_SOURCE) \\\\\n"
+ "|| __STDC__ - 0 == 0 ) /* not std C */\n"
+ "int foo;\n#endif";
+};
+
+
+/*
+ * "__STDC__!=0" or "__STDC__==1" or "__STDC__-0==1"
+ * is "defined( __STRICT_ANSI__ )"
+ */
+fix = {
+ hackname = strict_ansi_only;
+ select = "^([ \t]*#[ \t]*if.*)"
+ "(__STDC__[ \t]*!=[ \t]*0"
+ "|__STDC__[ \t]*==[ \t]*1"
+ "|__STDC__[ \t]*-[ \t]*0[ \t]*==[ \t]*1"
+ "|__STDC__[ \t]*-[ \t]*0[ \t]*!=[ \t]*0)";
+ c_test = stdc_0_in_system_headers;
+
+ c_fix = format;
+ c_fix_arg = "%1 defined(__STRICT_ANSI__)";
+
+ test_text = "#if __STDC__ == 1 /* is std C\n */\nint foo;\n#endif";
+};
+
+
+/*
+ * IRIX 4.0.5 <rpc/xdr.h> uses struct __file_s
+ * in prototype without previous definition.
+ */
+fix = {
+ hackname = struct_file;
+ files = rpc/xdr.h;
+ select = '^.*xdrstdio_create.*struct __file_s';
+ c_fix = format;
+ c_fix_arg = "struct __file_s;\n%0";
+ test_text = "extern void xdrstdio_create( struct __file_s* );";
+};
+
+
+/*
+ * IRIX 4.0.5 <rpc/auth.h> uses struct sockaddr
+ * in prototype without previous definition.
+ *
+ * Don't fix OpenBSD, which uses struct sockaddr_in prototyping the same
+ * function, and does define it.
+ */
+fix = {
+ hackname = struct_sockaddr;
+ files = rpc/auth.h;
+ select = "^.*authdes_create.*struct sockaddr[^_]";
+ bypass = "<sys/socket\.h>";
+ bypass = "struct sockaddr;\n";
+ c_fix = format;
+ c_fix_arg = "struct sockaddr;\n%0";
+ test_text = "extern AUTH* authdes_create( struct sockaddr* );";
+};
+
+
+/*
+ * Apply fix this to all OSs since this problem seems to effect
+ * more than just SunOS.
+ */
+fix = {
+ hackname = sun_auth_proto;
+ files = rpc/auth.h;
+ files = rpc/clnt.h;
+ files = rpc/svc.h;
+ files = rpc/xdr.h;
+ bypass = "__cplusplus";
+ /*
+ * Select those files containing '(*name)()'.
+ */
+ select = '\(\*[a-z][a-z_]*\)\(\)';
+
+ c_fix = format;
+ c_fix_arg = "#ifdef __cplusplus\n%1(...);%2\n"
+ "#else\n%1();%2\n#endif";
+ c_fix_arg = '(.*\(\*[a-z][a-z_]*\))\(\);(.*)';
+
+ test_text =
+ "struct auth_t {\n"
+ " int (*name)(); /* C++ bad */\n"
+ "};";
+};
+
+
+/*
+ * Fix bogus #ifdef on SunOS 4.1.
+ */
+fix = {
+ hackname = sun_bogus_ifdef;
+ files = "hsfs/hsfs_spec.h";
+ files = "hsfs/iso_spec.h";
+ select = '#ifdef(.*\|\|.*)';
+ c_fix = format;
+ c_fix_arg = "#if%1";
+
+ test_text = "#ifdef __i386__ || __vax__ || __sun4c__";
+};
+
+
+/*
+ * Fix the CAT macro in SunOS memvar.h.
+ */
+fix = {
+ hackname = sun_catmacro;
+ files = pixrect/memvar.h;
+ select = "^#define[ \t]+CAT\\(a,b\\).*";
+ c_fix = format;
+
+ c_fix_arg =
+ "#ifdef __STDC__\n"
+ "# define CAT(a,b) a##b\n"
+ "#else\n%0\n#endif";
+
+ test_text =
+ "#define CAT(a,b)\ta/**/b";
+};
+
+
+/*
+ * Fix return type of free and {c,m,re}alloc in <malloc.h> on SunOS 4.1.
+ * Also fix return type of {m,re}alloc in <malloc.h> on sysV68
+ */
+fix = {
+ hackname = sun_malloc;
+ files = malloc.h;
+ bypass = "_CLASSIC_ANSI_TYPES";
+
+ sed = "s/typedef[ \t]char \\*\tmalloc_t/typedef void \\*\tmalloc_t/g";
+ sed = "s/int[ \t][ \t]*free/void\tfree/g";
+ sed = "s/char\\([ \t]*\\*[ \t]*malloc\\)/void\\1/g";
+ sed = "s/char\\([ \t]*\\*[ \t]*realloc\\)/void\\1/g";
+ sed = "s/char\\([ \t]*\\*[ \t]*calloc\\)/void\\1/g";
+
+ test_text =
+ "typedef char *\tmalloc_t;\n"
+ "int \tfree();\n"
+ "char*\tmalloc();\n"
+ "char*\tcalloc();\n"
+ "char*\trealloc();";
+};
+
+
+/*
+ * Check for yet more missing ';' in struct (in SunOS 4.0.x)
+ */
+fix = {
+ hackname = sun_rusers_semi;
+ files = rpcsvc/rusers.h;
+ select = "_cnt$";
+ sed = "/^struct/,/^};/s/_cnt$/_cnt;/";
+ test_text = "struct mumble\n int _cnt\n};";
+};
+
+
+/*
+ * signal.h on SunOS defines signal using (),
+ * which causes trouble when compiling with g++ -pedantic.
+ */
+fix = {
+ hackname = sun_signal;
+ files = sys/signal.h;
+ files = signal.h;
+ select = "^void\t" '\(\*signal\(\)\)\(\);.*';
+
+ c_fix = format;
+ c_fix_arg =
+ "#ifdef __cplusplus\n"
+ "void\t(*signal(...))(...);\n"
+ "#else\n%0\n#endif";
+
+ test_text = "void\t(*signal())();";
+};
+
+
+/*
+ * Correct the return type for strlen in strings.h in SunOS 4.
+ */
+fix = {
+ hackname = sunos_strlen;
+ files = strings.h;
+ select = "int[ \t]*strlen\\(\\);(.*)";
+ c_fix = format;
+ c_fix_arg = "__SIZE_TYPE__ strlen();%1";
+ test_text = " int\tstrlen(); /* string length */";
+};
+
+
+/*
+ * Disable apparent native compiler optimization cruft in SVR4.2 <string.h>
+ * that is visible to any ANSI compiler using this include. Simply
+ * delete the lines that #define some string functions to internal forms.
+ */
+fix = {
+ hackname = svr4_disable_opt;
+ files = string.h;
+ select = '#define.*__std_hdr_';
+ sed = '/#define.*__std_hdr_/d';
+ test_text = "#define strlen __std_hdr_strlen\n";
+};
+
+
+/*
+ * Fix broken decl of getcwd present on some svr4 systems.
+ */
+fix = {
+ hackname = svr4_getcwd;
+ files = stdlib.h;
+ files = unistd.h;
+ files = prototypes.h;
+ select = 'getcwd\(char \*, int\)';
+
+ c_fix = format;
+ c_fix_arg = "getcwd(char *, size_t)";
+
+ test_text = "extern char* getcwd(char *, int);";
+};
+
+
+/*
+ * Fix broken decl of profil present on some svr4 systems.
+ */
+fix = {
+ hackname = svr4_profil;
+ files = stdlib.h;
+ files = unistd.h;
+
+ select =
+ 'profil\(unsigned short \*, unsigned int, unsigned int, unsigned int\)';
+ /* The fix is wrong on IRIX 5/6 and creates a conflict with another
+ prototype in <sys/profil.h>. */
+ bypass = 'Silicon Graphics';
+ c_fix = format;
+ c_fix_arg = 'profil(unsigned short *, size_t, int, unsigned int)';
+
+ test_text =
+ 'profil(unsigned short *, unsigned int, unsigned int, unsigned int);';
+};
+
+
+/*
+ * 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.
+ */
+fix = {
+ hackname = svr4_sighandler_type;
+ files = sys/signal.h;
+ select = 'void *\(\*\)\(\)';
+ c_fix = format;
+ c_fix_arg = "void (*)(int)";
+ test_text = "#define SIG_DFL (void(*)())0\n"
+ "#define SIG_IGN (void (*)())0\n";
+};
+
+
+/*
+ * Some SysV r4 systems, including Sequent's DYNIX/ptx, use the local
+ * function 'getrnge' in <regexp.h> before they declare it. For these
+ * systems add a 'static int' declaration of 'getrnge' into <regexp.h>
+ * early on.
+ *
+ * 'getrnge' traditionally manipulates a file-scope global called 'size',
+ * so put the declaration right after the declaration of 'size'.
+ *
+ * Don't do this if there is already a `static void getrnge' declaration
+ * present, since this would cause a redeclaration error. Solaris 2.x has
+ * such a declaration.
+ */
+fix = {
+ hackname = svr4_undeclared_getrnge;
+ files = regexp.h;
+ select = "getrnge";
+ bypass = "static void getrnge";
+ c_fix = format;
+ c_fix_arg = "%0\n"
+ "static int getrnge ();";
+ c_fix_arg = "^static int[ \t]+size;";
+ test_text = "static int size;\n"
+ "/* stuff which calls getrnge() */\n"
+ "static getrnge()\n"
+ "{}";
+};
+
+
+/*
+ * 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.
+ * Correct the argument type for ffs in string.h on Alpha OSF/1 V2.0.
+ * Add missing const for strdup on OSF/1 V3.0.
+ * On sysV88 layout is slightly different.
+ */
+fix = {
+ hackname = sysv68_string;
+ files = testing.h;
+ files = string.h;
+ bypass = "_CLASSIC_ANSI_TYPES";
+
+ sed = "s/extern[ \t]*int[ \t]*strlen();/extern unsigned int strlen();/";
+ sed = "s/extern[ \t]*int[ \t]*ffs[ \t]*(long);/extern int ffs(int);/";
+ sed = "s/strdup(char \\*s1);/strdup(const char *s1);/";
+
+ sed = "/^extern char$/N";
+ sed = "s/^extern char\\(\\n\t\\*memccpy(),\\)$/extern void\\1/";
+
+ sed = "/^extern int$/N";
+ sed = "s/^extern int\\(\\n\tstrlen(),\\)/extern size_t\\1/";
+
+ sed = "/^\tstrncmp(),$/N";
+ sed = 's/^\(' "\t" 'strncmp()\),\n\(' "\t" 'strlen(),\)$/'
+ '\1;' "\\\nextern unsigned int\\\n\\2/";
+
+ test_text =
+ "extern int strlen();\n"
+
+ "extern int ffs(long);\n"
+
+ "extern char\n"
+ "\t*memccpy(),\n"
+ "\tmemcpy();\n"
+
+ "extern int\n"
+ "\tstrcmp(),\n"
+ "\tstrncmp(),\n"
+ "\tstrlen(),\n"
+ "\tstrspn();\n"
+
+ "extern int\n"
+ "\tstrlen(), strspn();";
+};
+
+
+/*
+ * Fix return type of calloc, malloc, realloc, bsearch and exit
+ */
+fix = {
+ hackname = sysz_stdlib_for_sun;
+ files = stdlib.h;
+ bypass = "_CLASSIC_ANSI_TYPES";
+
+ select = "char[ \t]*\\*[ \t]*(calloc|malloc|realloc|bsearch)[ \t]*\\(";
+ c_fix = format;
+ c_fix_arg = "void *\t%1(";
+
+ test_text =
+ "extern char*\tcalloc(size_t);\n"
+ "extern char*\tmalloc(size_t);\n"
+ "extern char*\trealloc(void*,size_t);\n"
+ "extern char*\tbsearch(void*,size_t,size_t);\n";
+};
+
+
+/*
+ * __thread is now a keyword.
+ */
+fix = {
+ hackname = thread_keyword;
+ files = "pthread.h";
+ files = "bits/sigthread.h";
+ select = "([* ])__thread([,)])";
+ c_fix = format;
+ c_fix_arg = "%1__thr%2";
+
+ test_text =
+ "extern int pthread_create (pthread_t *__restrict __thread,\n"
+ "extern int pthread_kill (pthread_t __thread, int __signo);\n"
+ "extern int pthread_cancel (pthread_t __thread);";
+};
+
+/*
+ * if the #if says _cplusplus, not the double underscore __cplusplus
+ * that it should be
+ */
+fix = {
+ hackname = tinfo_cplusplus;
+ files = tinfo.h;
+ select = "[ \t]_cplusplus";
+
+ c_fix = format;
+ c_fix_arg = " __cplusplus";
+ test_text = "#ifdef _cplusplus\nint bogus;\n#endif";
+};
+
+
+/*
+ * parameters not const on DECstation Ultrix V4.0 and OSF/1.
+ */
+fix = {
+ hackname = ultrix_const;
+ files = stdio.h;
+ select = 'perror\( char \*';
+
+ c_fix = format;
+ c_fix_arg = "%1 const %3 *__";
+ c_fix_arg = "([ \t*](perror|fputs|fwrite|scanf|fscanf)\\(.*)"
+ "[ \t]+(char|void) \\*__";
+
+ test_text =
+ "extern void perror( char *__s );\n"
+ "extern int fputs( char *__s, FILE *);\n"
+ "extern size_t fwrite( void *__ptr, size_t, size_t, FILE *);\n"
+ "extern int fscanf( FILE *__stream, char *__format, ...);\n"
+ "extern int scanf( char *__format, ...);\n";
+};
+
+
+/*
+ * parameters not const on DECstation Ultrix V4.0 and OSF/1.
+ */
+fix = {
+ hackname = ultrix_const2;
+ files = stdio.h;
+
+ select = '\*fopen\( char \*';
+ c_fix = format;
+ c_fix_arg = "%1( const char *%3, const char *";
+ c_fix_arg = "([ \t*](fopen|sscanf|popen|tempnam))\\("
+ "[ \t]*char[ \t]*\\*([^,]*),"
+ "[ \t]*char[ \t]*\\*[ \t]*";
+
+ test_text =
+ "extern FILE *fopen( char *__filename, char *__type );\n"
+ "extern int sscanf( char *__s, char *__format, ...);\n"
+ "extern FILE *popen(char *, char *);\n"
+ "extern char *tempnam(char*,char*);\n";
+};
+
+
+/*
+ * Fix definitions of macros used by va-i960.h in VxWorks header file.
+ */
+fix = {
+ hackname = va_i960_macro;
+ files = arch/i960/archI960.h;
+ select = "__(vsiz|vali|vpad|alignof__)";
+
+ c_fix = format;
+ c_fix_arg = "__vx%1";
+
+ test_text =
+ "extern int __vsiz vsiz;\n"
+ "extern int __vali vali;\n"
+ "extern int __vpad vpad;\n"
+ "#define __alignof__(x) ...";
+};
+
+
+/*
+ * AIX and Interix headers define NULL to be cast to a void pointer,
+ * which is illegal in ANSI C++.
+ */
+fix = {
+ hackname = void_null;
+ files = curses.h;
+ files = dbm.h;
+ files = locale.h;
+ files = stdio.h;
+ files = stdlib.h;
+ files = string.h;
+ files = time.h;
+ files = unistd.h;
+ files = sys/dir.h;
+ files = sys/param.h;
+ files = sys/types.h;
+ /* avoid changing C++ friendly NULL */
+ bypass = __cplusplus;
+ select = "^#[ \t]*define[ \t]+NULL[ \t]+\\(\\(void[ \t]*\\*\\)0\\)";
+ c_fix = format;
+ c_fix_arg = "#define NULL 0";
+ test_text = "# define\tNULL \t((void *)0) /* typed NULL */";
+};
+
+
+/*
+ * Make VxWorks header which is almost gcc ready fully gcc ready.
+ */
+fix = {
+ hackname = vxworks_gcc_problem;
+ files = types/vxTypesBase.h;
+ select = "__GNUC_TYPEOF_FEATURE_BROKEN_USE_DEFAULT_UNTIL_FIXED__";
+
+ sed = "s/#ifdef __GNUC_TYPEOF_FEATURE_BROKEN_USE_DEFAULT_UNTIL_FIXED__/"
+ "#if 1/";
+
+ sed = "/[ \t]size_t/i\\\n"
+ "#ifndef _GCC_SIZE_T\\\n"
+ "#define _GCC_SIZE_T\n";
+
+ sed = "/[ \t]size_t/a\\\n"
+ "#endif\n";
+
+ sed = "/[ \t]ptrdiff_t/i\\\n"
+ "#ifndef _GCC_PTRDIFF_T\\\n"
+ "#define _GCC_PTRDIFF_T\n";
+
+ sed = "/[ \t]ptrdiff_t/a\\\n"
+ "#endif\n";
+
+ sed = "/[ \t]wchar_t/i\\\n"
+ "#ifndef _GCC_WCHAR_T\\\n"
+ "#define _GCC_WCHAR_T\n";
+
+ sed = "/[ \t]wchar_t/a\\\n"
+ "#endif\n";
+
+ test_text =
+ "#ifdef __GNUC_TYPEOF_FEATURE_BROKEN_USE_DEFAULT_UNTIL_FIXED__\n"
+ "typedef unsigned int size_t;\n"
+ "typedef long ptrdiff_t;\n"
+ "typedef unsigned short wchar_t;\n"
+ "#endif /* __GNUC_TYPEOF_FEATURE_BROKEN_USE_DEFAULT_UNTIL_FIXED__ */\n";
+};
+
+
+/*
+ * Fix VxWorks <time.h> to not require including <vxTypes.h>.
+ */
+fix = {
+ hackname = vxworks_needs_vxtypes;
+ files = time.h;
+ select = "uint_t([ \t]+_clocks_per_sec)";
+ c_fix = format;
+ c_fix_arg = "unsigned int%1";
+ test_text = "uint_t\t_clocks_per_sec;";
+};
+
+
+/*
+ * Fix VxWorks <sys/stat.h> to not require including <vxWorks.h>.
+ */
+fix = {
+ hackname = vxworks_needs_vxworks;
+ files = sys/stat.h;
+ test = " -r types/vxTypesOld.h";
+ test = " -n \"`egrep '#include' $file`\"";
+ test = " -n \"`egrep ULONG $file`\"";
+ select = "#[ \t]define[ \t]+__INCstath";
+
+ sed = "/#[ \t]define[ \t][ \t]*__INCstath/a\\\n"
+ "#include <types/vxTypesOld.h>\n";
+
+ test_text = "`touch types/vxTypesOld.h`"
+ "#include </dev/null> /* ULONG */\n"
+ "# define\t__INCstath <sys/stat.h>";
+};
+
+
+/*
+ * Another bad dependency in VxWorks 5.2 <time.h>.
+ */
+fix = {
+ hackname = vxworks_time;
+ files = time.h;
+ test = " -r vxWorks.h";
+
+ select = "#[ \t]*define[ \t]+VOIDFUNCPTR[ \t].*";
+ c_fix = format;
+
+ c_fix_arg =
+ "#ifndef __gcc_VOIDFUNCPTR_defined\n"
+ "#ifdef __cplusplus\n"
+ "typedef void (*__gcc_VOIDFUNCPTR) (...);\n"
+ "#else\n"
+ "typedef void (*__gcc_VOIDFUNCPTR) ();\n"
+ "#endif\n"
+ "#define __gcc_VOIDFUNCPTR_defined\n"
+ "#endif\n"
+ "#define VOIDFUNCPTR __gcc_VOIDFUNCPTR";
+
+ test_text = "`touch vxWorks.h`"
+ "#define VOIDFUNCPTR (void(*)())";
+};
+
+
+/*
+ * 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
+ * we find __cplusplus in the file. These were found on the RS/6000.
+ */
+fix = {
+ hackname = x11_class;
+ files = X11/ShellP.h;
+ bypass = __cplusplus;
+ select = "^([ \t]*char \\*)class;(.*)";
+ c_fix = format;
+ c_fix_arg = "#ifdef __cplusplus\n%1c_class;%2\n"
+ "#else\n%1class;%2\n#endif";
+ test_text =
+ "struct {\n"
+ " char *class;\n"
+ "} mumble;\n";
+};
+
+
+/*
+ * class in Xm/BaseClassI.h
+ */
+fix = {
+ hackname = x11_class_usage;
+ files = Xm/BaseClassI.h;
+ bypass = "__cplusplus";
+
+ select = " class\\)";
+ c_fix = format;
+ c_fix_arg = " c_class)";
+
+ test_text = "extern mumble (int class);\n";
+};
+
+
+/*
+ * new in Xm/Traversal.h
+ */
+fix = {
+ hackname = x11_new;
+ files = Xm/Traversal.h;
+ bypass = __cplusplus;
+
+ sed = "/Widget\told, new;/i\\\n"
+ "#ifdef __cplusplus\\\n"
+ "\\\tWidget\told, c_new;\\\n"
+ "#else\n";
+
+ sed = "/Widget\told, new;/a\\\n"
+ "#endif\n";
+
+ sed = "s/Widget new,/Widget c_new,/g";
+ test_text =
+ "struct wedge {\n"
+ " Widget\told, new;\n"
+ "};\nextern Wedged( Widget new, Widget old );";
+};
+
+
+/*
+ * Incorrect sprintf declaration in X11/Xmu.h
+ */
+fix = {
+ hackname = x11_sprintf;
+ files = X11/Xmu.h;
+ files = X11/Xmu/Xmu.h;
+ select = "^extern char \\*\tsprintf\\(\\);$";
+
+ c_fix = format;
+ c_fix_arg = "#ifndef __STDC__\n%0\n#endif /* !defined __STDC__ */";
+
+ test_text = "extern char *\tsprintf();";
+};
+
+/*EOF*/
diff --git a/fixincludes/mkfixinc.sh b/fixincludes/mkfixinc.sh
new file mode 100755
index 000000000..b45f1795d
--- /dev/null
+++ b/fixincludes/mkfixinc.sh
@@ -0,0 +1,36 @@
+#! /bin/sh
+
+if [ $# -ne 1 ]
+then
+ echo "Usage: $0 <target-mach-triplet>"
+ exit 1
+fi
+
+machine=$1
+target=fixinc.sh
+
+# Check for special fix rules for particular targets
+case $machine in
+ alpha*-dec-*vms* | \
+ i?86-moss-msdos* | \
+ i?86-*-pe | \
+ i?86-*-cygwin* | \
+ i?86-*-mingw32* | \
+ x86_64-*-mingw32* | \
+ i?86-*-interix* | \
+ *-*-vxworks* | \
+ powerpc-*-eabisim* | \
+ powerpc-*-eabi* | \
+ powerpc-*-rtems* | \
+ powerpcle-*-eabisim* | \
+ powerpcle-*-eabi* )
+ # IF there is no include fixing,
+ # THEN create a no-op fixer and exit
+ (echo "#! /bin/sh" ; echo "exit 0" ) > ${target}
+ ;;
+
+ *)
+ cat < ${srcdir}/fixinc.in > ${target} || exit 1
+ ;;
+esac
+chmod 755 ${target}
diff --git a/fixincludes/mkheaders.in b/fixincludes/mkheaders.in
new file mode 100644
index 000000000..9109b057c
--- /dev/null
+++ b/fixincludes/mkheaders.in
@@ -0,0 +1,104 @@
+#!/bin/sh
+
+# Copyright (C) 2002, 2007, 2009 Free Software Foundation, Inc.
+
+#This file is part of GCC.
+
+#GCC is free software; you can redistribute it and/or modify it under
+#the terms of the GNU General Public License as published by the Free
+#Software Foundation; either version 3, or (at your option) any later
+#version.
+
+#GCC 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 General Public License
+#for more details.
+
+#You should have received a copy of the GNU General Public License
+#along with GCC; see the file COPYING3. If not see
+#<http://www.gnu.org/licenses/>.
+
+# Basic information
+target=@target@
+target_noncanonical=@target_noncanonical@
+version=@gcc_version@
+
+VERBOSE=0
+while [ x$1 = x-v ] ; do
+ shift
+ VERBOSE=`expr $VERBOSE + 1`
+done
+export VERBOSE
+
+if [ x$1 = x--help ] ; then
+ echo "Usage: mkheaders [options] [prefix [isysroot]]"
+ echo "Options:"
+ echo " -v Print more output (may be repeated for even more output)"
+ echo " --help This help"
+ echo " --version Print version information"
+ exit 0
+fi
+
+if [ x$1 = x--version ] ; then
+ echo "mkheaders (GCC) version $version"
+ echo "Copyright 2002, 2007, 2009 Free Software Foundation, Inc."
+ echo "This program is free software; you may redistribute it under the"
+ echo "terms of the GNU General Public License. This program has"
+ echo "absolutely no warranty."
+ exit 0
+fi
+
+# Common prefix for installation directories.
+if [ x$1 != x ] ; then
+ prefix=$1
+ shift
+else
+ prefix=@prefix@
+fi
+
+# Allow for alternate isysroot in which to find headers
+if [ x$1 != x ] ; then
+ isysroot=$1
+ shift
+else
+ isysroot=
+fi
+
+# Directory in which to put host dependent programs and libraries
+exec_prefix=@exec_prefix@
+# Directory in which to put the directories used by the compiler.
+libdir=@libdir@
+libexecdir=@libexecdir@
+# Directory in which the compiler finds libraries, etc.
+libsubdir=${libdir}/gcc/${target_noncanonical}/${version}
+# Directory in which the compiler finds executables
+libexecsubdir=${libexecdir}/gcc/${target_noncanonical}/${version}
+
+itoolsdir=${libexecsubdir}/install-tools
+itoolsdatadir=${libsubdir}/install-tools
+incdir=${libsubdir}/include-fixed
+mkinstalldirs="@SHELL@ ${itoolsdir}/mkinstalldirs"
+
+cd ${itoolsdir}
+rm -rf ${incdir}/*
+
+for ml in `cat ${itoolsdatadir}/fixinc_list`; do
+ sysroot_headers_suffix=`echo ${ml} | sed -e 's/;.*$//'`
+ multi_dir=`echo ${ml} | sed -e 's/^[^;]*;//'`
+ subincdir=${incdir}${multi_dir}
+ . ${itoolsdatadir}/mkheaders.conf
+ if [ x${STMP_FIXINC} != x ] ; then
+ TARGET_MACHINE="${target}" target_canonical="${target}" \
+ MACRO_LIST="${itoolsdatadir}/macro_list" \
+ @SHELL@ ./fixinc.sh ${subincdir} \
+ ${isysroot}${SYSTEM_HEADER_DIR} ${OTHER_FIXINCLUDES_DIRS}
+ rm -f ${subincdir}/syslimits.h
+ if [ -f ${subincdir}/limits.h ]; then
+ mv ${subincdir}/limits.h ${subincdir}/syslimits.h
+ else
+ cp ${itoolsdatadir}/gsyslimits.h ${subincdir}/syslimits.h
+ fi
+ fi
+
+ cp ${itoolsdatadir}/include${multi_dir}/limits.h ${subincdir}
+done
diff --git a/fixincludes/procopen.c b/fixincludes/procopen.c
new file mode 100644
index 000000000..22d4f6793
--- /dev/null
+++ b/fixincludes/procopen.c
@@ -0,0 +1,218 @@
+
+/*
+ * server.c Set up and handle communications with a server process.
+ *
+ * Server Handling copyright 1992-1999, 2004 The Free Software Foundation
+ *
+ * Server Handling is free software.
+ * You may redistribute it and/or modify it under the terms of the
+ * GNU General Public License, as published by the Free Software
+ * Foundation; either version 2, or (at your option) any later version.
+ *
+ * Server Handling 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Server Handling. See the file "COPYING". If not,
+ * write to: The Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ * As a special exception, The Free Software Foundation gives
+ * permission for additional uses of the text contained in his release
+ * of ServerHandler.
+ *
+ * The exception is that, if you link the ServerHandler library with other
+ * files to produce an executable, this does not by itself cause the
+ * resulting executable to be covered by the GNU General Public License.
+ * Your use of that executable is in no way restricted on account of
+ * linking the ServerHandler library code into it.
+ *
+ * This exception does not however invalidate any other reasons why
+ * the executable file might be covered by the GNU General Public License.
+ *
+ * This exception applies only to the code released by The Free
+ * Software Foundation under the name ServerHandler. If you copy code
+ * from other sources under the General Public License into a copy of
+ * ServerHandler, as the General Public License permits, the exception
+ * does not apply to the code that you add in this way. To avoid
+ * misleading anyone as to the status of such modified files, you must
+ * delete this exception notice from them.
+ *
+ * If you write modifications of your own for ServerHandler, it is your
+ * choice whether to permit this exception to apply to your modifications.
+ * If you do not wish that, delete this exception notice.
+ */
+
+#include "fixlib.h"
+#include "server.h"
+
+STATIC const char* def_args[] =
+{ (char *) NULL, (char *) NULL };
+
+/*
+ * chain_open
+ *
+ * Given an FD for an inferior process to use as stdin,
+ * start that process and return a NEW FD that that process
+ * will use for its stdout. Requires the argument vector
+ * for the new process and, optionally, a pointer to a place
+ * to store the child's process id.
+ */
+int
+chain_open (int stdin_fd, tCC** pp_args, pid_t* p_child)
+{
+ t_fd_pair stdout_pair;
+ pid_t ch_id;
+ tCC *pz_cmd;
+
+ stdout_pair.read_fd = stdout_pair.write_fd = -1;
+
+ /*
+ * Create a pipe it will be the child process' stdout,
+ * and the parent will read from it.
+ */
+ if (pipe ((int *) &stdout_pair) < 0)
+ {
+ if (p_child != (pid_t *) NULL)
+ *p_child = NOPROCESS;
+ return -1;
+ }
+
+ /*
+ * If we did not get an arg list, use the default
+ */
+ if (pp_args == (tCC **) NULL)
+ pp_args = def_args;
+
+ /*
+ * If the arg list does not have a program,
+ * assume the "SHELL" from the environment, or, failing
+ * that, then sh. Set argv[0] to whatever we decided on.
+ */
+ if (pz_cmd = *pp_args,
+ (pz_cmd == (char *) NULL) || (*pz_cmd == '\0'))
+ {
+
+ pz_cmd = getenv ("SHELL");
+ if (pz_cmd == (char *) NULL)
+ pz_cmd = "sh";
+ }
+
+#ifdef DEBUG_PRINT
+ printf ("START: %s\n", pz_cmd);
+ {
+ int idx = 0;
+
+ while (pp_args[++idx] != (char *) NULL)
+ printf (" ARG %2d: %s\n", idx, pp_args[idx]);
+ }
+#endif
+
+ /*
+ * Call fork() and see which process we become
+ */
+ ch_id = fork ();
+ switch (ch_id)
+ {
+ case NOPROCESS: /* parent - error in call */
+ close (stdout_pair.read_fd);
+ close (stdout_pair.write_fd);
+ if (p_child != (pid_t *) NULL)
+ *p_child = NOPROCESS;
+ return -1;
+
+ default: /* parent - return opposite FD's */
+ if (p_child != (pid_t *) NULL)
+ *p_child = ch_id;
+#ifdef DEBUG_PRINT
+ printf ("for pid %d: stdin from %d, stdout to %d\n"
+ "for parent: read from %d\n",
+ ch_id, stdin_fd, stdout_pair.write_fd, stdout_pair.read_fd);
+#endif
+ close (stdin_fd);
+ close (stdout_pair.write_fd);
+ return stdout_pair.read_fd;
+
+ case NULLPROCESS: /* child - continue processing */
+ break;
+ }
+
+ /*
+ * Close the pipe end handed back to the parent process
+ */
+ close (stdout_pair.read_fd);
+
+ /*
+ * Close our current stdin and stdout
+ */
+ close (STDIN_FILENO);
+ close (STDOUT_FILENO);
+
+ /*
+ * Make the fd passed in the stdin, and the write end of
+ * the new pipe become the stdout.
+ */
+ dup2 (stdout_pair.write_fd, STDOUT_FILENO);
+ dup2 (stdin_fd, STDIN_FILENO);
+
+ if (*pp_args == (char *) NULL)
+ *pp_args = pz_cmd;
+
+ execvp (pz_cmd, (char**)pp_args);
+ fprintf (stderr, "Error %d: Could not execvp( '%s', ... ): %s\n",
+ errno, pz_cmd, xstrerror (errno));
+ exit (EXIT_PANIC);
+}
+
+
+/*
+ * proc2_open
+ *
+ * Given a pointer to an argument vector, start a process and
+ * place its stdin and stdout file descriptors into an fd pair
+ * structure. The "write_fd" connects to the inferior process
+ * stdin, and the "read_fd" connects to its stdout. The calling
+ * process should write to "write_fd" and read from "read_fd".
+ * The return value is the process id of the created process.
+ */
+pid_t
+proc2_open (t_fd_pair* p_pair, tCC** pp_args)
+{
+ pid_t ch_id;
+
+ /* Create a bi-directional pipe. Writes on 0 arrive on 1 and vice
+ versa, so the parent and child processes will read and write to
+ opposite FD's. */
+ if (pipe ((int *) p_pair) < 0)
+ return NOPROCESS;
+
+ p_pair->read_fd = chain_open (p_pair->read_fd, pp_args, &ch_id);
+ if (ch_id == NOPROCESS)
+ close (p_pair->write_fd);
+
+ return ch_id;
+}
+
+
+/*
+ * proc2_fopen
+ *
+ * Identical to "proc2_open()", except that the "fd"'s are
+ * "fdopen(3)"-ed into file pointers instead.
+ */
+pid_t
+proc2_fopen (t_pf_pair* pf_pair, tCC** pp_args)
+{
+ t_fd_pair fd_pair;
+ pid_t ch_id = proc2_open (&fd_pair, pp_args);
+
+ if (ch_id == NOPROCESS)
+ return ch_id;
+
+ pf_pair->pf_read = fdopen (fd_pair.read_fd, "r");
+ pf_pair->pf_write = fdopen (fd_pair.write_fd, "w");
+ return ch_id;
+}
diff --git a/fixincludes/server.c b/fixincludes/server.c
new file mode 100644
index 000000000..1e50efc9f
--- /dev/null
+++ b/fixincludes/server.c
@@ -0,0 +1,305 @@
+
+/*
+ * server.c Set up and handle communications with a server process.
+ *
+ * Server Handling copyright 1992-1999, 2001 The Free Software Foundation
+ *
+ * Server Handling is free software.
+ * You may redistribute it and/or modify it under the terms of the
+ * GNU General Public License, as published by the Free Software
+ * Foundation; either version 2, or (at your option) any later version.
+ *
+ * Server Handling 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Server Handling. See the file "COPYING". If not,
+ * write to: The Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ * As a special exception, The Free Software Foundation gives
+ * permission for additional uses of the text contained in his release
+ * of ServerHandler.
+ *
+ * The exception is that, if you link the ServerHandler library with other
+ * files to produce an executable, this does not by itself cause the
+ * resulting executable to be covered by the GNU General Public License.
+ * Your use of that executable is in no way restricted on account of
+ * linking the ServerHandler library code into it.
+ *
+ * This exception does not however invalidate any other reasons why
+ * the executable file might be covered by the GNU General Public License.
+ *
+ * This exception applies only to the code released by The Free
+ * Software Foundation under the name ServerHandler. If you copy code
+ * from other sources under the General Public License into a copy of
+ * ServerHandler, as the General Public License permits, the exception
+ * does not apply to the code that you add in this way. To avoid
+ * misleading anyone as to the status of such modified files, you must
+ * delete this exception notice from them.
+ *
+ * If you write modifications of your own for ServerHandler, it is your
+ * choice whether to permit this exception to apply to your modifications.
+ * If you do not wish that, delete this exception notice.
+ */
+
+#include "fixlib.h"
+#include "server.h"
+
+STATIC volatile enum t_bool read_pipe_timeout;
+STATIC pid_t server_master_pid = NOPROCESS;
+
+tSCC* def_args[] =
+{ (char *) NULL, (char *) NULL };
+STATIC t_pf_pair server_pair =
+{ (FILE *) NULL, (FILE *) NULL };
+STATIC pid_t server_id = NULLPROCESS;
+/*
+ * Arbitrary text that should not be found in the shell output.
+ * It must be a single line and appear verbatim at the start of
+ * the terminating output line.
+ */
+tSCC z_done[] = "ShElL-OuTpUt-HaS-bEeN-cOmPlEtEd";
+tSCC* p_cur_dir = (char *) NULL;
+
+/*
+ * load_data
+ *
+ * Read data from a file pointer (a pipe to a process in this context)
+ * until we either get EOF or we get a marker line back.
+ * The read data are stored in a malloc-ed string that is truncated
+ * to size at the end. Input is assumed to be an ASCII string.
+ */
+static char *
+load_data (FILE* fp)
+{
+ char *pz_text;
+ size_t text_size;
+ char *pz_scan;
+ char z_line[1024];
+ t_bool got_done = BOOL_FALSE;
+
+ text_size = sizeof (z_line) * 2;
+ pz_scan = pz_text = XNEWVEC (char, text_size);
+
+ for (;;)
+ {
+ size_t used_ct;
+
+ alarm (10);
+ read_pipe_timeout = BOOL_FALSE;
+ if (fgets (z_line, sizeof (z_line), fp) == (char *) NULL)
+ break;
+
+ if (strncmp (z_line, z_done, sizeof (z_done) - 1) == 0)
+ {
+ got_done = BOOL_TRUE;
+ break;
+ }
+
+ strcpy (pz_scan, z_line);
+ pz_scan += strlen (z_line);
+ used_ct = (size_t) (pz_scan - pz_text);
+
+ if (text_size - used_ct < sizeof (z_line))
+ {
+ size_t off = (size_t) (pz_scan - pz_text);
+
+ text_size += 4096;
+ pz_text = XRESIZEVEC (char, pz_text, text_size);
+ pz_scan = pz_text + off;
+ }
+ }
+
+ alarm (0);
+ if (read_pipe_timeout || ! got_done)
+ {
+ free ((void *) pz_text);
+ return (char *) NULL;
+ }
+
+ while ((pz_scan > pz_text) && ISSPACE (pz_scan[-1]))
+ pz_scan--;
+ *pz_scan = NUL;
+ return XRESIZEVEC (char, pz_text, strlen (pz_text) + 1);
+}
+
+
+/*
+ * close_server
+ *
+ * Make certain the server process is dead, close the
+ * pipes to it and from it, finally NULL out the file pointers
+ */
+void
+close_server (void)
+{
+ if ( (server_id != NULLPROCESS)
+ && (server_master_pid == getpid ()))
+ {
+ kill ((pid_t) server_id, SIGKILL);
+ server_id = NULLPROCESS;
+ server_master_pid = NOPROCESS;
+ fclose (server_pair.pf_read);
+ fclose (server_pair.pf_write);
+ server_pair.pf_read = server_pair.pf_write = (FILE *) NULL;
+ }
+}
+
+/*
+ * sig_handler really only handles the timeout and pipe signals.
+ * This ensures that we do not wait forever on a request
+ * to our server, and also that if the server dies, we do not
+ * die from a sigpipe problem.
+ */
+static void
+sig_handler (int signo ATTRIBUTE_UNUSED)
+{
+#ifdef DEBUG
+ /* FIXME: this is illegal to do in a signal handler. */
+ fprintf (stderr,
+ "fixincl ERROR: sig_handler: killed pid %ld due to %s\n",
+ (long) server_id, signo == SIGPIPE ? "SIGPIPE" : "SIGALRM");
+#endif
+ close_server ();
+ read_pipe_timeout = BOOL_TRUE;
+}
+
+
+/*
+ * server_setup Establish the signal handler for PIPE and ALARM.
+ * Also establishes the current directory to give to the
+ * server process at the start of every server command.
+ */
+static void
+server_setup (void)
+{
+ static int atexit_done = 0;
+ char buff [MAXPATHLEN + 1];
+
+ if (atexit_done++ == 0)
+ atexit (close_server);
+ else
+ fputs ("NOTE: server restarted\n", stderr);
+
+ server_master_pid = getpid ();
+
+ signal (SIGPIPE, sig_handler);
+ signal (SIGALRM, sig_handler);
+
+ fputs ("trap : 1\n", server_pair.pf_write);
+ fflush (server_pair.pf_write);
+ getcwd (buff, MAXPATHLEN + 1);
+ p_cur_dir = xstrdup (buff);
+}
+
+/*
+ * find_shell
+ *
+ * Locate a shell suitable for use. For various reasons
+ * (like the use of "trap" in server_setup(), it must be a
+ * Bourne-like shell.
+ *
+ * Most of the time, /bin/sh is preferred, but sometimes
+ * it's quite broken (like on Ultrix). autoconf lets you
+ * override with $CONFIG_SHELL, so we do the same.
+ */
+
+static const char *
+find_shell (void)
+{
+ char * shell = getenv ("CONFIG_SHELL");
+ if (shell)
+ return shell;
+
+ return "/bin/sh";
+}
+
+
+/*
+ * run_shell
+ *
+ * Run a shell command on the server. The command string
+ * passed in is wrapped inside the sequence:
+ *
+ * cd <original directory>
+ * <command string>
+ * echo
+ * echo <end-of-command-marker>
+ *
+ * This ensures that all commands start at a known place in
+ * the directory structure, that any incomplete output lines
+ * are completed and that our special marker sequence appears on
+ * a line by itself. We have chosen a marker that is
+ * excessively unlikely to be reproduced in normal output:
+ *
+ * "ShElL-OuTpUt-HaS-bEeN-cOmPlEtEd"
+ */
+char *
+run_shell (const char* pz_cmd)
+{
+ tSCC zNoServer[] = "Server not running, cannot run:\n%s\n\n";
+ t_bool retry = BOOL_TRUE;
+
+ do_retry:
+ /* IF the shell server process is not running yet,
+ THEN try to start it. */
+ if (server_id == NULLPROCESS)
+ {
+ def_args[0] = find_shell ();
+
+ server_id = proc2_fopen (&server_pair, def_args);
+ if (server_id > 0)
+ server_setup ();
+ }
+
+ /* IF it is still not running, THEN return the nil string. */
+ if (server_id <= 0)
+ {
+ fprintf (stderr, zNoServer, pz_cmd);
+ return XCNEW (char);
+ }
+
+ /* Make sure the process will pay attention to us, send the
+ supplied command, and then have it output a special marker that
+ we can find. */
+ fprintf (server_pair.pf_write, "cd \"%s\"\n%s\n\necho\necho %s\n",
+ p_cur_dir, pz_cmd, z_done);
+ fflush (server_pair.pf_write);
+
+ /* IF the server died and we received a SIGPIPE,
+ THEN return an empty string. */
+ if (server_id == NULLPROCESS)
+ {
+ fprintf (stderr, zNoServer, pz_cmd);
+ return XCNEW (char);
+ }
+
+ /* Now try to read back all the data. If we fail due to either a
+ sigpipe or sigalrm (timeout), we will return the nil string. */
+ {
+ char *pz = load_data (server_pair.pf_read);
+
+ if (pz == (char *) NULL)
+ {
+ close_server ();
+
+ if (retry)
+ {
+ retry = BOOL_FALSE;
+ goto do_retry;
+ }
+
+ fprintf (stderr, "CLOSING SHELL SERVER - command failure:\n\t%s\n",
+ pz_cmd);
+ pz = XCNEW (char);
+ }
+#ifdef DEBUG
+ fprintf( stderr, "run_shell command success: %s\n", pz );
+#endif
+ return pz;
+ }
+}
diff --git a/fixincludes/server.h b/fixincludes/server.h
new file mode 100644
index 000000000..9eafb03b5
--- /dev/null
+++ b/fixincludes/server.h
@@ -0,0 +1,74 @@
+
+/*
+ * server.c Set up and handle communications with a server process.
+ *
+ * Server Handling copyright 1992-1999 The Free Software Foundation
+ *
+ * Server Handling is free software.
+ * You may redistribute it and/or modify it under the terms of the
+ * GNU General Public License, as published by the Free Software
+ * Foundation; either version 2, or (at your option) any later version.
+ *
+ * Server Handling 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Server Handling. See the file "COPYING". If not,
+ * write to: The Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ * As a special exception, The Free Software Foundation gives
+ * permission for additional uses of the text contained in his release
+ * of ServerHandler.
+ *
+ * The exception is that, if you link the ServerHandler library with other
+ * files to produce an executable, this does not by itself cause the
+ * resulting executable to be covered by the GNU General Public License.
+ * Your use of that executable is in no way restricted on account of
+ * linking the ServerHandler library code into it.
+ *
+ * This exception does not however invalidate any other reasons why
+ * the executable file might be covered by the GNU General Public License.
+ *
+ * This exception applies only to the code released by The Free
+ * Software Foundation under the name ServerHandler. If you copy code
+ * from other sources under the General Public License into a copy of
+ * ServerHandler, as the General Public License permits, the exception
+ * does not apply to the code that you add in this way. To avoid
+ * misleading anyone as to the status of such modified files, you must
+ * delete this exception notice from them.
+ *
+ * If you write modifications of your own for ServerHandler, it is your
+ * choice whether to permit this exception to apply to your modifications.
+ * If you do not wish that, delete this exception notice.
+ */
+
+#ifndef GCC_SERVER_H
+#define GCC_SERVER_H
+
+/*
+ * Dual pipe opening of a child process
+ */
+
+typedef struct
+{
+ int read_fd;
+ int write_fd;
+} t_fd_pair;
+
+typedef struct
+{
+ FILE *pf_read; /* parent read fp */
+ FILE *pf_write; /* parent write fp */
+} t_pf_pair;
+
+char* run_shell( const char* pzCmd );
+pid_t proc2_fopen( t_pf_pair* p_pair, tCC** pp_args );
+pid_t proc2_open( t_fd_pair* p_pair, tCC** pp_args );
+int chain_open( int in_fd, tCC** pp_args, pid_t* p_child );
+void close_server( void );
+
+#endif /* ! GCC_SERVER_H */
diff --git a/fixincludes/system.h b/fixincludes/system.h
new file mode 100644
index 000000000..dca5d57b2
--- /dev/null
+++ b/fixincludes/system.h
@@ -0,0 +1,228 @@
+/* Get common system includes and various definitions and declarations based
+ on autoconf macros.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2009
+ Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC 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 General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+
+#ifndef FIXINC_SYSTEM_H
+#define FIXINC_SYSTEM_H
+
+/* We must include stdarg.h before stdio.h. */
+#include <stdarg.h>
+
+#ifdef HAVE_STDDEF_H
+# include <stddef.h>
+#endif
+
+#include <stdio.h>
+
+/* Define a generic NULL if one hasn't already been defined. */
+#ifndef NULL
+#define NULL 0
+#endif
+
+/* Use the unlocked open routines from libiberty. */
+#define fopen(PATH,MODE) fopen_unlocked(PATH,MODE)
+#define fdopen(FILDES,MODE) fdopen_unlocked(FILDES,MODE)
+#define freopen(PATH,MODE,STREAM) freopen_unlocked(PATH,MODE,STREAM)
+
+/* fixincludes is not a multi-threaded application and therefore we
+ do not have to use the locking functions. In fact, using the locking
+ functions can cause the compiler to be significantly slower under
+ I/O bound conditions (such as -g -O0 on very large source files).
+
+ HAVE_DECL_PUTC_UNLOCKED actually indicates whether or not the stdio
+ code is multi-thread safe by default. If it is set to 0, then do
+ not worry about using the _unlocked functions.
+
+ fputs_unlocked, fwrite_unlocked, and fprintf_unlocked are
+ extensions and need to be prototyped by hand (since we do not
+ define _GNU_SOURCE). */
+
+#if defined HAVE_DECL_PUTC_UNLOCKED && HAVE_DECL_PUTC_UNLOCKED
+
+# ifdef HAVE_PUTC_UNLOCKED
+# undef putc
+# define putc(C, Stream) putc_unlocked (C, Stream)
+# endif
+# ifdef HAVE_PUTCHAR_UNLOCKED
+# undef putchar
+# define putchar(C) putchar_unlocked (C)
+# endif
+# ifdef HAVE_GETC_UNLOCKED
+# undef getc
+# define getc(Stream) getc_unlocked (Stream)
+# endif
+# ifdef HAVE_GETCHAR_UNLOCKED
+# undef getchar
+# define getchar() getchar_unlocked ()
+# endif
+# ifdef HAVE_FPUTC_UNLOCKED
+# undef fputc
+# define fputc(C, Stream) fputc_unlocked (C, Stream)
+# endif
+
+# ifdef HAVE_CLEARERR_UNLOCKED
+# undef clearerr
+# define clearerr(Stream) clearerr_unlocked (Stream)
+# if defined (HAVE_DECL_CLEARERR_UNLOCKED) && !HAVE_DECL_CLEARERR_UNLOCKED
+extern void clearerr_unlocked (FILE *);
+# endif
+# endif
+# ifdef HAVE_FEOF_UNLOCKED
+# undef feof
+# define feof(Stream) feof_unlocked (Stream)
+# if defined (HAVE_DECL_FEOF_UNLOCKED) && !HAVE_DECL_FEOF_UNLOCKED
+extern int feof_unlocked (FILE *);
+# endif
+# endif
+# ifdef HAVE_FILENO_UNLOCKED
+# undef fileno
+# define fileno(Stream) fileno_unlocked (Stream)
+# if defined (HAVE_DECL_FILENO_UNLOCKED) && !HAVE_DECL_FILENO_UNLOCKED
+extern int fileno_unlocked (FILE *);
+# endif
+# endif
+# ifdef HAVE_FFLUSH_UNLOCKED
+# undef fflush
+# define fflush(Stream) fflush_unlocked (Stream)
+# if defined (HAVE_DECL_FFLUSH_UNLOCKED) && !HAVE_DECL_FFLUSH_UNLOCKED
+extern int fflush_unlocked (FILE *);
+# endif
+# endif
+# ifdef HAVE_FGETC_UNLOCKED
+# undef fgetc
+# define fgetc(Stream) fgetc_unlocked (Stream)
+# if defined (HAVE_DECL_FGETC_UNLOCKED) && !HAVE_DECL_FGETC_UNLOCKED
+extern int fgetc_unlocked (FILE *);
+# endif
+# endif
+# ifdef HAVE_FGETS_UNLOCKED
+# undef fgets
+# define fgets(S, n, Stream) fgets_unlocked (S, n, Stream)
+# if defined (HAVE_DECL_FGETS_UNLOCKED) && !HAVE_DECL_FGETS_UNLOCKED
+extern char *fgets_unlocked (char *, int, FILE *);
+# endif
+# endif
+# ifdef HAVE_FPUTS_UNLOCKED
+# undef fputs
+# define fputs(String, Stream) fputs_unlocked (String, Stream)
+# if defined (HAVE_DECL_FPUTS_UNLOCKED) && !HAVE_DECL_FPUTS_UNLOCKED
+extern int fputs_unlocked (const char *, FILE *);
+# endif
+# endif
+# ifdef HAVE_FERROR_UNLOCKED
+# undef ferror
+# define ferror(Stream) ferror_unlocked (Stream)
+# if defined (HAVE_DECL_FERROR_UNLOCKED) && !HAVE_DECL_FERROR_UNLOCKED
+extern int ferror_unlocked (FILE *);
+# endif
+# endif
+# ifdef HAVE_FREAD_UNLOCKED
+# undef fread
+# define fread(Ptr, Size, N, Stream) fread_unlocked (Ptr, Size, N, Stream)
+# if defined (HAVE_DECL_FREAD_UNLOCKED) && !HAVE_DECL_FREAD_UNLOCKED
+extern size_t fread_unlocked (void *, size_t, size_t, FILE *);
+# endif
+# endif
+# ifdef HAVE_FWRITE_UNLOCKED
+# undef fwrite
+# define fwrite(Ptr, Size, N, Stream) fwrite_unlocked (Ptr, Size, N, Stream)
+# if defined (HAVE_DECL_FWRITE_UNLOCKED) && !HAVE_DECL_FWRITE_UNLOCKED
+extern size_t fwrite_unlocked (const void *, size_t, size_t, FILE *);
+# endif
+# endif
+# ifdef HAVE_FPRINTF_UNLOCKED
+# undef fprintf
+/* We can't use a function-like macro here because we don't know if
+ we have varargs macros. */
+# define fprintf fprintf_unlocked
+# if defined (HAVE_DECL_FPRINTF_UNLOCKED) && !HAVE_DECL_FPRINTF_UNLOCKED
+extern int fprintf_unlocked (FILE *, const char *, ...);
+# endif
+# endif
+
+#endif
+
+/* ??? Glibc's fwrite/fread_unlocked macros cause
+ "warning: signed and unsigned type in conditional expression". */
+#undef fread_unlocked
+#undef fwrite_unlocked
+
+#include <sys/types.h>
+#include <errno.h>
+
+#if !defined (errno) && defined (HAVE_DECL_ERRNO) && !HAVE_DECL_ERRNO
+extern int errno;
+#endif
+
+/* Some of glibc's string inlines cause warnings. Plus we'd rather
+ rely on (and therefore test) GCC's string builtins. */
+#define __NO_STRING_INLINES
+
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# ifdef HAVE_STRINGS_H
+# include <strings.h>
+# endif
+#endif
+
+#ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+#endif
+
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+#ifdef HAVE_FCNTL_H
+# include <fcntl.h>
+#else
+# ifdef HAVE_SYS_FILE_H
+# include <sys/file.h>
+# endif
+#endif
+
+/* The HAVE_DECL_* macros are three-state, undefined, 0 or 1. If they
+ are defined to 0 then we must provide the relevant declaration
+ here. These checks will be in the undefined state while configure
+ is running so be careful to test "defined (HAVE_DECL_*)". */
+
+#if defined (HAVE_DECL_ABORT) && !HAVE_DECL_ABORT
+extern void abort (void);
+#endif
+
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+
+/* Test if something is a normal file. */
+#ifndef S_ISREG
+#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
+#endif
+
+/* Filename handling macros. */
+#include "filenames.h"
+
+/* Get libiberty declarations. */
+#include "libiberty.h"
+#include "safe-ctype.h"
+
+#endif /* ! FIXINC_SYSTEM_H */
diff --git a/fixincludes/tests/base/AvailabilityMacros.h b/fixincludes/tests/base/AvailabilityMacros.h
new file mode 100644
index 000000000..81a0da0f7
--- /dev/null
+++ b/fixincludes/tests/base/AvailabilityMacros.h
@@ -0,0 +1,15 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/AvailabilityMacros.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( DARWIN_GCC4_BREAKAGE_CHECK )
+#if defined(__GNUC__) && ((__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+
+#endif /* DARWIN_GCC4_BREAKAGE_CHECK */
diff --git a/fixincludes/tests/base/X11/ShellP.h b/fixincludes/tests/base/X11/ShellP.h
new file mode 100644
index 000000000..45e8e1f70
--- /dev/null
+++ b/fixincludes/tests/base/X11/ShellP.h
@@ -0,0 +1,21 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/X11/ShellP.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( X11_CLASS_CHECK )
+struct {
+#ifdef __cplusplus
+ char *c_class;
+#else
+ char *class;
+#endif
+} mumble;
+
+#endif /* X11_CLASS_CHECK */
diff --git a/fixincludes/tests/base/X11/Xmu.h b/fixincludes/tests/base/X11/Xmu.h
new file mode 100644
index 000000000..5fac5dba9
--- /dev/null
+++ b/fixincludes/tests/base/X11/Xmu.h
@@ -0,0 +1,16 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/X11/Xmu.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( X11_SPRINTF_CHECK )
+#ifndef __STDC__
+extern char * sprintf();
+#endif /* !defined __STDC__ */
+#endif /* X11_SPRINTF_CHECK */
diff --git a/fixincludes/tests/base/Xm/BaseClassI.h b/fixincludes/tests/base/Xm/BaseClassI.h
new file mode 100644
index 000000000..afc3a897e
--- /dev/null
+++ b/fixincludes/tests/base/Xm/BaseClassI.h
@@ -0,0 +1,15 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/Xm/BaseClassI.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( X11_CLASS_USAGE_CHECK )
+extern mumble (int c_class);
+
+#endif /* X11_CLASS_USAGE_CHECK */
diff --git a/fixincludes/tests/base/Xm/Traversal.h b/fixincludes/tests/base/Xm/Traversal.h
new file mode 100644
index 000000000..2b3cba73f
--- /dev/null
+++ b/fixincludes/tests/base/Xm/Traversal.h
@@ -0,0 +1,21 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/Xm/Traversal.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( X11_NEW_CHECK )
+struct wedge {
+#ifdef __cplusplus
+ Widget old, c_new;
+#else
+ Widget old, new;
+#endif
+};
+extern Wedged( Widget c_new, Widget old );
+#endif /* X11_NEW_CHECK */
diff --git a/fixincludes/tests/base/ansi/math.h b/fixincludes/tests/base/ansi/math.h
new file mode 100644
index 000000000..c8a9ca208
--- /dev/null
+++ b/fixincludes/tests/base/ansi/math.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/ansi/math.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( NEXT_MATH_PREFIX_CHECK )
+extern double mumble();
+#endif /* NEXT_MATH_PREFIX_CHECK */
diff --git a/fixincludes/tests/base/ansi/stdlib.h b/fixincludes/tests/base/ansi/stdlib.h
new file mode 100644
index 000000000..e47d49cc8
--- /dev/null
+++ b/fixincludes/tests/base/ansi/stdlib.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/ansi/stdlib.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( NEXT_VOLITILE_CHECK )
+extern void abort();
+#endif /* NEXT_VOLITILE_CHECK */
diff --git a/fixincludes/tests/base/arch/i960/archI960.h b/fixincludes/tests/base/arch/i960/archI960.h
new file mode 100644
index 000000000..b886700c4
--- /dev/null
+++ b/fixincludes/tests/base/arch/i960/archI960.h
@@ -0,0 +1,17 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/arch/i960/archI960.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( VA_I960_MACRO_CHECK )
+extern int __vxvsiz vsiz;
+extern int __vxvali vali;
+extern int __vxvpad vpad;
+#define __vxalignof__(x) ...
+#endif /* VA_I960_MACRO_CHECK */
diff --git a/fixincludes/tests/base/architecture/ppc/math.h b/fixincludes/tests/base/architecture/ppc/math.h
new file mode 100644
index 000000000..dcd04236b
--- /dev/null
+++ b/fixincludes/tests/base/architecture/ppc/math.h
@@ -0,0 +1,88 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/architecture/ppc/math.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+/* 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__ */
diff --git a/fixincludes/tests/base/assert.h b/fixincludes/tests/base/assert.h
new file mode 100644
index 000000000..2642cbe49
--- /dev/null
+++ b/fixincludes/tests/base/assert.h
@@ -0,0 +1,43 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/assert.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+#ifndef FIXINC_WRAP_ASSERT_H_BROKEN_ASSERT_STDLIB
+#define FIXINC_WRAP_ASSERT_H_BROKEN_ASSERT_STDLIB 1
+
+#ifdef __cplusplus
+#include <stdlib.h>
+#endif
+#ifndef FIXINC_WRAP_ASSERT_H_BROKEN_ASSERT_STDIO
+#define FIXINC_WRAP_ASSERT_H_BROKEN_ASSERT_STDIO 1
+
+#include <stdio.h>
+
+
+#if defined( ALPHA___ASSERT_CHECK )
+extern void __assert(const char *, const char *, int);
+#endif /* ALPHA___ASSERT_CHECK */
+
+
+#if defined( ALPHA_ASSERT_CHECK )
+#define assert(EX) ((EX) ? (void)0 : __assert(#EX, __FILE__, __LINE__))
+#endif /* ALPHA_ASSERT_CHECK */
+
+
+#if defined( BROKEN_ASSERT_STDIO_CHECK )
+extern FILE* stderr;
+#endif /* BROKEN_ASSERT_STDIO_CHECK */
+
+
+#if defined( BROKEN_ASSERT_STDLIB_CHECK )
+extern void exit ( int );
+#endif /* BROKEN_ASSERT_STDLIB_CHECK */
+
+#endif /* FIXINC_WRAP_ASSERT_H_BROKEN_ASSERT_STDIO */
+
+#endif /* FIXINC_WRAP_ASSERT_H_BROKEN_ASSERT_STDLIB */
diff --git a/fixincludes/tests/base/bits/huge_val.h b/fixincludes/tests/base/bits/huge_val.h
new file mode 100644
index 000000000..f8bb0495b
--- /dev/null
+++ b/fixincludes/tests/base/bits/huge_val.h
@@ -0,0 +1,27 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/bits/huge_val.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( HUGE_VAL_HEX_CHECK )
+#define HUGE_VAL (__builtin_huge_val())
+
+#endif /* HUGE_VAL_HEX_CHECK */
+
+
+#if defined( HUGE_VALF_HEX_CHECK )
+#define HUGE_VALF (__builtin_huge_valf())
+
+#endif /* HUGE_VALF_HEX_CHECK */
+
+
+#if defined( HUGE_VALL_HEX_CHECK )
+#define HUGE_VALL (__builtin_huge_vall())
+
+#endif /* HUGE_VALL_HEX_CHECK */
diff --git a/fixincludes/tests/base/bits/string2.h b/fixincludes/tests/base/bits/string2.h
new file mode 100644
index 000000000..be6fe601a
--- /dev/null
+++ b/fixincludes/tests/base/bits/string2.h
@@ -0,0 +1,23 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/bits/string2.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( GLIBC_C99_INLINE_3_CHECK )
+# if defined(__cplusplus) || defined(__GNUC_STDC_INLINE__)
+# define __STRING_INLINE inline
+# else
+# define __STRING_INLINE extern __inline
+# endif
+#endif /* GLIBC_C99_INLINE_3_CHECK */
+
+
+#if defined( GLIBC_STRNCPY_CHECK )
+# define strncpy(dest, src, n) __builtin_strncpy (dest, src, n)
+#endif /* GLIBC_STRNCPY_CHECK */
diff --git a/fixincludes/tests/base/bsd/libc.h b/fixincludes/tests/base/bsd/libc.h
new file mode 100644
index 000000000..939a5b1c9
--- /dev/null
+++ b/fixincludes/tests/base/bsd/libc.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/bsd/libc.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( NEXT_TEMPLATE_CHECK )
+extern mumble( char *); /* fix */
+#endif /* NEXT_TEMPLATE_CHECK */
diff --git a/fixincludes/tests/base/c_asm.h b/fixincludes/tests/base/c_asm.h
new file mode 100644
index 000000000..f3e0daaee
--- /dev/null
+++ b/fixincludes/tests/base/c_asm.h
@@ -0,0 +1,20 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/c_asm.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( DEC_INTERN_ASM_CHECK )
+#ifdef __DECC
+float fasm {
+ ... asm stuff ...
+};
+#pragma intrinsic( dasm )
+#endif
+/* END ASM TEST*/
+#endif /* DEC_INTERN_ASM_CHECK */
diff --git a/fixincludes/tests/base/com_err.h b/fixincludes/tests/base/com_err.h
new file mode 100644
index 000000000..6017d2a6c
--- /dev/null
+++ b/fixincludes/tests/base/com_err.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/com_err.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( STDIO_DUMMY_VA_LIST_CLIENTS_CHECK )
+extern void mumble( __gnuc_va_list);
+#endif /* STDIO_DUMMY_VA_LIST_CLIENTS_CHECK */
diff --git a/fixincludes/tests/base/complex.h b/fixincludes/tests/base/complex.h
new file mode 100644
index 000000000..b3fe27aca
--- /dev/null
+++ b/fixincludes/tests/base/complex.h
@@ -0,0 +1,45 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/complex.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( AIX_COMPLEX_CHECK )
+#define _Complex_I (__extension__ 1.0iF)
+
+#endif /* AIX_COMPLEX_CHECK */
+
+
+#if defined( HPUX_IMAGINARY_I_CHECK )
+#define _Complex_I (__extension__ 1.0iF)
+
+#endif /* HPUX_IMAGINARY_I_CHECK */
+
+
+#if defined( IRIX_COMPLEX_CHECK )
+#define _Complex_I (__extension__ 1.0iF)
+#define I _Complex_I
+#endif /* IRIX_COMPLEX_CHECK */
+
+
+#if defined( SOLARIS_COMPLEX_CHECK )
+#define _Complex_I (__extension__ 1.0iF)
+#define complex _Complex
+#undef I
+#define I _Complex_I
+#endif /* SOLARIS_COMPLEX_CHECK */
+
+
+#if defined( SOLARIS_COMPLEX_CXX_CHECK )
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif /* SOLARIS_COMPLEX_CXX_CHECK */
diff --git a/fixincludes/tests/base/ctrl-quotes-def-1.h b/fixincludes/tests/base/ctrl-quotes-def-1.h
new file mode 100644
index 000000000..16b18dc41
--- /dev/null
+++ b/fixincludes/tests/base/ctrl-quotes-def-1.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/ctrl-quotes-def-1.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( CTRL_QUOTES_DEF_CHECK_1 )
+#define _CTRL(c) (c&037)
+#endif /* CTRL_QUOTES_DEF_CHECK_1 */
diff --git a/fixincludes/tests/base/ctype.h b/fixincludes/tests/base/ctype.h
new file mode 100644
index 000000000..deabd5e44
--- /dev/null
+++ b/fixincludes/tests/base/ctype.h
@@ -0,0 +1,65 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/ctype.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( HPUX10_CTYPE_DECLARATIONS1_CHECK )
+#ifdef _PROTOTYPES
+extern int __tolower(int);
+extern int __toupper(int);
+#else /* NOT _PROTOTYPES */
+extern int __tolower();
+extern int __toupper();
+#endif /* _PROTOTYPES */
+
+# define _toupper(__c) __toupper(__c)
+
+
+#endif /* HPUX10_CTYPE_DECLARATIONS1_CHECK */
+
+
+#if defined( HPUX10_CTYPE_DECLARATIONS2_CHECK )
+# if defined(_SB_CTYPE_MACROS) && !defined(__lint)
+
+#ifdef _PROTOTYPES
+ extern int _isalnum(int);
+ extern int _isalpha(int);
+ extern int _iscntrl(int);
+ extern int _isdigit(int);
+ extern int _isgraph(int);
+ extern int _islower(int);
+ extern int _isprint(int);
+ extern int _ispunct(int);
+ extern int _isspace(int);
+ extern int _isupper(int);
+ extern int _isxdigit(int);
+# else /* not _PROTOTYPES */
+ extern int _isalnum();
+ extern int _isalpha();
+ extern int _iscntrl();
+ extern int _isdigit();
+ extern int _isgraph();
+ extern int _islower();
+ extern int _isprint();
+ extern int _ispunct();
+ extern int _isspace();
+ extern int _isupper();
+ extern int _isxdigit();
+#endif /* _PROTOTYPES */
+
+ extern unsigned int *__SB_masks;
+
+#endif /* HPUX10_CTYPE_DECLARATIONS2_CHECK */
+
+
+#if defined( HPUX_CTYPE_MACROS_CHECK )
+: __SB_masks ? (int)__SB_masks[__alnum] & _ISCNTRL
+# define isalpha(__c) (__SB_masks ? (int)__SB_masks[__c] & _IS
+
+#endif /* HPUX_CTYPE_MACROS_CHECK */
diff --git a/fixincludes/tests/base/curses.h b/fixincludes/tests/base/curses.h
new file mode 100644
index 000000000..e05f8912d
--- /dev/null
+++ b/fixincludes/tests/base/curses.h
@@ -0,0 +1,35 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/curses.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( AVOID_BOOL_DEFINE_CHECK )
+#ifndef __cplusplus
+# define bool char
+#endif
+
+#endif /* AVOID_BOOL_DEFINE_CHECK */
+
+
+#if defined( AVOID_BOOL_TYPE_CHECK )
+#ifndef __cplusplus
+typedef unsigned int bool ;
+#endif /* bool
+ type */
+#endif /* AVOID_BOOL_TYPE_CHECK */
+
+
+#if defined( BAD_STRUCT_TERM_CHECK )
+struct term;
+#endif /* BAD_STRUCT_TERM_CHECK */
+
+
+#if defined( VOID_NULL_CHECK )
+#define NULL 0 /* typed NULL */
+#endif /* VOID_NULL_CHECK */
diff --git a/fixincludes/tests/base/errno.h b/fixincludes/tests/base/errno.h
new file mode 100644
index 000000000..e2dd5b1c0
--- /dev/null
+++ b/fixincludes/tests/base/errno.h
@@ -0,0 +1,21 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/errno.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( HPUX_EXTERN_ERRNO_CHECK )
+#ifdef __cplusplus
+extern "C" {
+#endif
+ extern int errno;
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* HPUX_EXTERN_ERRNO_CHECK */
diff --git a/fixincludes/tests/base/features.h b/fixincludes/tests/base/features.h
new file mode 100644
index 000000000..93838c712
--- /dev/null
+++ b/fixincludes/tests/base/features.h
@@ -0,0 +1,23 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/features.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( GLIBC_C99_INLINE_1_CHECK )
+#if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__
+# define __USE_EXTERN_INLINES 1
+#endif
+#endif /* GLIBC_C99_INLINE_1_CHECK */
+
+
+#if defined( GLIBC_C99_INLINE_1A_CHECK )
+#if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__ && (defined __extern_inline || defined __GNUC_GNU_INLINE__)
+# define __USE_EXTERN_INLINES 1
+#endif
+#endif /* GLIBC_C99_INLINE_1A_CHECK */
diff --git a/fixincludes/tests/base/fixinc-test-limits.h b/fixincludes/tests/base/fixinc-test-limits.h
new file mode 100644
index 000000000..0422d0901
--- /dev/null
+++ b/fixincludes/tests/base/fixinc-test-limits.h
@@ -0,0 +1,19 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/fixinc-test-limits.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( HPUX10_CPP_POW_INLINE_CHECK )
+
+#endif /* HPUX10_CPP_POW_INLINE_CHECK */
+
+
+#if defined( IRIX_LIMITS_CONST_CHECK )
+extern __const char limit; /* test limits */
+#endif /* IRIX_LIMITS_CONST_CHECK */
diff --git a/fixincludes/tests/base/hsfs/hsfs_spec.h b/fixincludes/tests/base/hsfs/hsfs_spec.h
new file mode 100644
index 000000000..2c67852bc
--- /dev/null
+++ b/fixincludes/tests/base/hsfs/hsfs_spec.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/hsfs/hsfs_spec.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( SUN_BOGUS_IFDEF_CHECK )
+#if __i386__ || __vax__ || __sun4c__
+#endif /* SUN_BOGUS_IFDEF_CHECK */
diff --git a/fixincludes/tests/base/ia64/sys/getppdp.h b/fixincludes/tests/base/ia64/sys/getppdp.h
new file mode 100644
index 000000000..80fe99ecd
--- /dev/null
+++ b/fixincludes/tests/base/ia64/sys/getppdp.h
@@ -0,0 +1,16 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/ia64/sys/getppdp.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( HPUX_SPU_INFO_CHECK )
+#ifdef _KERNEL
+extern union mpinfou spu_info[];
+#endif
+#endif /* HPUX_SPU_INFO_CHECK */
diff --git a/fixincludes/tests/base/internal/math_core.h b/fixincludes/tests/base/internal/math_core.h
new file mode 100644
index 000000000..f39ac3f90
--- /dev/null
+++ b/fixincludes/tests/base/internal/math_core.h
@@ -0,0 +1,30 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/internal/math_core.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( IRIX___GENERIC1_CHECK )
+extern int isnan(double);
+extern int isnanf(float);
+extern int isnanl(long double);
+#define isnan(x) (sizeof(x) == sizeof(double) ? _isnan(x) \
+ : sizeof(x) == sizeof(float) ? _isnanf(x) \
+ : _isnanl(x))
+
+
+#endif /* IRIX___GENERIC1_CHECK */
+
+
+#if defined( IRIX___GENERIC2_CHECK )
+#define isless(x,y) \
+ ((sizeof(x)<=4 && sizeof(y)<=4) ? _islessf(x,y) \
+ : (sizeof(x)<=8 && sizeof(y)<=8) ? _isless(x,y) \
+ : _islessl(x,y))
+
+#endif /* IRIX___GENERIC2_CHECK */
diff --git a/fixincludes/tests/base/internal/sgimacros.h b/fixincludes/tests/base/internal/sgimacros.h
new file mode 100644
index 000000000..a491e865a
--- /dev/null
+++ b/fixincludes/tests/base/internal/sgimacros.h
@@ -0,0 +1,17 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/internal/sgimacros.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( IRIX___RESTRICT_CHECK )
+#ifdef __c99
+# ifndef __cplusplus
+# define __restrict restrict
+# endif
+#endif /* IRIX___RESTRICT_CHECK */
diff --git a/fixincludes/tests/base/internal/wchar_core.h b/fixincludes/tests/base/internal/wchar_core.h
new file mode 100644
index 000000000..9c9fc4e97
--- /dev/null
+++ b/fixincludes/tests/base/internal/wchar_core.h
@@ -0,0 +1,15 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/internal/wchar_core.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( IRIX_WCSFTIME_CHECK )
+#if _NO_XOPEN5 && !defined(__c99)
+extern size_t wcsftime(wchar_t *, __SGI_LIBC_NAMESPACE_QUALIFIER size_t, const char *, const struct tm *);
+#endif /* IRIX_WCSFTIME_CHECK */
diff --git a/fixincludes/tests/base/inttypes.h b/fixincludes/tests/base/inttypes.h
new file mode 100644
index 000000000..3f556856a
--- /dev/null
+++ b/fixincludes/tests/base/inttypes.h
@@ -0,0 +1,18 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/inttypes.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( HPUX_C99_INTTYPES_CHECK )
+#define UINT8_C(__c) (__c)
+#define UINT16_C(__c) (__c)
+#define INT32_C(__c) (__c)
+#define UINT32_C(__c) __CONCAT__(__c,u)
+
+#endif /* HPUX_C99_INTTYPES_CHECK */
diff --git a/fixincludes/tests/base/io-quotes-def-1.h b/fixincludes/tests/base/io-quotes-def-1.h
new file mode 100644
index 000000000..383ff08f1
--- /dev/null
+++ b/fixincludes/tests/base/io-quotes-def-1.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/io-quotes-def-1.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( IO_QUOTES_DEF_CHECK_1 )
+#define XX_IO(x) (x<<8|256)
+#endif /* IO_QUOTES_DEF_CHECK_1 */
diff --git a/fixincludes/tests/base/iso/math_c99.h b/fixincludes/tests/base/iso/math_c99.h
new file mode 100644
index 000000000..4d9b6311f
--- /dev/null
+++ b/fixincludes/tests/base/iso/math_c99.h
@@ -0,0 +1,77 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/iso/math_c99.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( SOLARIS_MATH_1_CHECK )
+#ident "@(#)math_c99.h 1.9 04/11/01 SMI"
+#undef HUGE_VAL
+#define HUGE_VAL (__builtin_huge_val())
+#undef HUGE_VALF
+#define HUGE_VALF (__builtin_huge_valf())
+#undef HUGE_VALL
+#define HUGE_VALL (__builtin_huge_vall())
+#endif /* SOLARIS_MATH_1_CHECK */
+
+
+#if defined( SOLARIS_MATH_2_CHECK )
+#ident "@(#)math_c99.h 1.9 04/11/01 SMI"
+#undef INFINITY
+#define INFINITY (__builtin_inff())
+#endif /* SOLARIS_MATH_2_CHECK */
+
+
+#if defined( SOLARIS_MATH_3_CHECK )
+#ident "@(#)math_c99.h 1.9 04/11/01 SMI"
+#undef NAN
+#define NAN (__builtin_nanf(""))
+#endif /* SOLARIS_MATH_3_CHECK */
+
+
+#if defined( SOLARIS_MATH_4_CHECK )
+#ident "@(#)math_c99.h 1.9 04/11/01 SMI"
+#undef fpclassify
+#define fpclassify(x) \
+ __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, (x))
+#endif /* SOLARIS_MATH_4_CHECK */
+
+
+#if defined( SOLARIS_MATH_8_CHECK )
+#ident "@(#)math_c99.h 1.9 04/11/01 SMI"
+#undef signbit
+#define signbit(x) (sizeof(x) == sizeof(float) \
+ ? __builtin_signbitf(x) \
+ : sizeof(x) == sizeof(long double) \
+ ? __builtin_signbitl(x) \
+ : __builtin_signbit(x))
+#endif /* SOLARIS_MATH_8_CHECK */
+
+
+#if defined( SOLARIS_MATH_9_CHECK )
+#ident "@(#)math_c99.h 1.9 04/11/01 SMI"
+#undef isgreater
+#define isgreater(x, y) __builtin_isgreater(x, y)
+#undef isgreaterequal
+#define isgreaterequal(x, y) __builtin_isgreaterequal(x, y)
+#undef isless
+#define isless(x, y) __builtin_isless(x, y)
+#undef islessequal
+#define islessequal(x, y) __builtin_islessequal(x, y)
+#undef islessgreater
+#define islessgreater(x, y) __builtin_islessgreater(x, y)
+#undef isunordered
+#define isunordered(x, y) __builtin_isunordered(x, y)
+#endif /* SOLARIS_MATH_9_CHECK */
+
+
+#if defined( SOLARIS_MATH_10_CHECK )
+#pragma ident "@(#)math_c99.h 1.12 07/01/21 SMI"
+#undef isinf
+#define isinf(x) __builtin_isinf(x)
+#endif /* SOLARIS_MATH_10_CHECK */
diff --git a/fixincludes/tests/base/locale.h b/fixincludes/tests/base/locale.h
new file mode 100644
index 000000000..7a7273e10
--- /dev/null
+++ b/fixincludes/tests/base/locale.h
@@ -0,0 +1,25 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/locale.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( OPENBSD_NULL_DEFINITION_CHECK )
+#ifndef NULL
+#ifdef __cplusplus
+#ifdef __GNUG__
+#define NULL __null
+#else /* ! __GNUG__ */
+#define NULL 0L
+#endif /* __GNUG__ */
+#else /* ! __cplusplus */
+#define NULL ((void *)0)
+#endif /* __cplusplus */
+#endif /* !NULL */
+
+#endif /* OPENBSD_NULL_DEFINITION_CHECK */
diff --git a/fixincludes/tests/base/mach-o/dyld.h b/fixincludes/tests/base/mach-o/dyld.h
new file mode 100644
index 000000000..c0620312d
--- /dev/null
+++ b/fixincludes/tests/base/mach-o/dyld.h
@@ -0,0 +1,17 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/mach-o/dyld.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( DARWIN_PRIVATE_EXTERN_CHECK )
+extern int _dyld_func_lookup(
+const char *dyld_func_name,
+unsigned long *address);
+
+#endif /* DARWIN_PRIVATE_EXTERN_CHECK */
diff --git a/fixincludes/tests/base/mach-o/swap.h b/fixincludes/tests/base/mach-o/swap.h
new file mode 100644
index 000000000..1bc65d4c8
--- /dev/null
+++ b/fixincludes/tests/base/mach-o/swap.h
@@ -0,0 +1,26 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/mach-o/swap.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+#ifndef FIXINC_WRAP_MACH_O_SWAP_H_DARWIN_EXTERNC
+#define FIXINC_WRAP_MACH_O_SWAP_H_DARWIN_EXTERNC 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#if defined( DARWIN_EXTERNC_CHECK )
+extern void swap_fat_header();
+
+#endif /* DARWIN_EXTERNC_CHECK */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* FIXINC_WRAP_MACH_O_SWAP_H_DARWIN_EXTERNC */
diff --git a/fixincludes/tests/base/malloc.h b/fixincludes/tests/base/malloc.h
new file mode 100644
index 000000000..3866af8c7
--- /dev/null
+++ b/fixincludes/tests/base/malloc.h
@@ -0,0 +1,18 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/malloc.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( SUN_MALLOC_CHECK )
+typedef void * malloc_t;
+void free();
+void* malloc();
+void* calloc();
+void* realloc();
+#endif /* SUN_MALLOC_CHECK */
diff --git a/fixincludes/tests/base/math.h b/fixincludes/tests/base/math.h
new file mode 100644
index 000000000..9733744ea
--- /dev/null
+++ b/fixincludes/tests/base/math.h
@@ -0,0 +1,104 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/math.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+#ifndef FIXINC_WRAP_MATH_H_MATH_EXCEPTION
+#define FIXINC_WRAP_MATH_H_MATH_EXCEPTION 1
+
+#ifdef __cplusplus
+#define exception __math_exception
+#endif
+
+
+#if defined( AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_2_CHECK )
+#include <architecture/ppc/math.h>
+#endif /* AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_2_CHECK */
+
+
+#if defined( BROKEN_CABS_CHECK )
+#ifdef __STDC__
+
+#else
+
+#endif
+
+ /* This is a comment
+ and it ends here. */
+
+
+#endif /* BROKEN_CABS_CHECK */
+
+
+#if defined( HPPA_HPUX_FP_MACROS_CHECK )
+#endif /* _INCLUDE_HPUX_SOURCE */
+
+#if defined(_INCLUDE_HPUX_SOURCE) || \
+ (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L))
+# define FP_NORMAL 0
+# define FP_ZERO 1
+# define FP_INFINITE 2
+# define FP_SUBNORMAL 3
+# define FP_NAN 4
+#endif
+
+#ifdef _INCLUDE_HPUX_SOURCE
+
+#endif /* HPPA_HPUX_FP_MACROS_CHECK */
+
+
+#if defined( HPUX11_CPP_POW_INLINE_CHECK )
+
+#endif /* HPUX11_CPP_POW_INLINE_CHECK */
+
+
+#if defined( HPUX11_FABSF_CHECK )
+#ifdef _PA_RISC
+#ifndef __cplusplus
+# define fabsf(x) ((float)fabs((double)(float)(x)))
+#endif
+#endif
+#endif /* HPUX11_FABSF_CHECK */
+
+
+#if defined( HPUX8_BOGUS_INLINES_CHECK )
+extern "C" int abs(int);
+
+#endif /* HPUX8_BOGUS_INLINES_CHECK */
+
+
+#if defined( MATH_EXCEPTION_CHECK )
+typedef struct exception t_math_exception;
+#endif /* MATH_EXCEPTION_CHECK */
+
+
+#if defined( MATH_HUGE_VAL_FROM_DBL_MAX_CHECK )
+
+#define HUGE_VAL 3.1415e+9 /* really big */
+#endif /* MATH_HUGE_VAL_FROM_DBL_MAX_CHECK */
+
+
+#if defined( RS6000_DOUBLE_CHECK )
+#ifndef __cplusplus
+extern int class();
+#endif
+#endif /* RS6000_DOUBLE_CHECK */
+
+
+#if defined( STRICT_ANSI_NOT_CTD_CHECK )
+#if 1 && \
+&& defined(mumbling) |& ( !defined(__STRICT_ANSI__)) \
+( !defined(__STRICT_ANSI__) && !defined(_XOPEN_SOURCE) \
+|| !defined(__STRICT_ANSI__) ) /* not std C */
+int foo;
+#endif
+#endif /* STRICT_ANSI_NOT_CTD_CHECK */
+#ifdef __cplusplus
+#undef exception
+#endif
+
+#endif /* FIXINC_WRAP_MATH_H_MATH_EXCEPTION */
diff --git a/fixincludes/tests/base/net/if.h b/fixincludes/tests/base/net/if.h
new file mode 100644
index 000000000..4c25423c5
--- /dev/null
+++ b/fixincludes/tests/base/net/if.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/net/if.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( ALPHA_IF_SEMICOLON_CHECK )
+ struct sockaddr vmif_paddr; /* protocol address */
+#endif /* ALPHA_IF_SEMICOLON_CHECK */
diff --git a/fixincludes/tests/base/netdnet/dnetdb.h b/fixincludes/tests/base/netdnet/dnetdb.h
new file mode 100644
index 000000000..e506c6eab
--- /dev/null
+++ b/fixincludes/tests/base/netdnet/dnetdb.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/netdnet/dnetdb.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( NODEENT_SYNTAX_CHECK )
+char *na_addr ;
+#endif /* NODEENT_SYNTAX_CHECK */
diff --git a/fixincludes/tests/base/netinet/in.h b/fixincludes/tests/base/netinet/in.h
new file mode 100644
index 000000000..2d7f7b852
--- /dev/null
+++ b/fixincludes/tests/base/netinet/in.h
@@ -0,0 +1,24 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/netinet/in.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( HPUX_HTONL_CHECK )
+#if 1
+/*
+ * Macros for number representation conversion.
+ */
+#ifndef ntohl
+#define ntohl(x) (x)
+#define ntohs(x) (x)
+#define htonl(x) (x)
+#define htons(x) (x)
+#endif
+#endif /* ! _XOPEN_SOURCE_EXTENDED */
+#endif /* HPUX_HTONL_CHECK */
diff --git a/fixincludes/tests/base/netinet/ip.h b/fixincludes/tests/base/netinet/ip.h
new file mode 100644
index 000000000..7b2990352
--- /dev/null
+++ b/fixincludes/tests/base/netinet/ip.h
@@ -0,0 +1,19 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/netinet/ip.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( IP_MISSING_SEMI_CHECK )
+struct mumble {
+ union {
+ int x;
+ };
+}; /* mumbled struct */
+
+#endif /* IP_MISSING_SEMI_CHECK */
diff --git a/fixincludes/tests/base/obstack.h b/fixincludes/tests/base/obstack.h
new file mode 100644
index 000000000..ea8e8dd1e
--- /dev/null
+++ b/fixincludes/tests/base/obstack.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/obstack.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( OBSTACK_LVALUE_CAST_CHECK )
+((*((void **) (h)->next_free) = (aptr)), ( (h)->next_free += sizeof (void *)))
+#endif /* OBSTACK_LVALUE_CAST_CHECK */
diff --git a/fixincludes/tests/base/pixrect/memvar.h b/fixincludes/tests/base/pixrect/memvar.h
new file mode 100644
index 000000000..19230cb33
--- /dev/null
+++ b/fixincludes/tests/base/pixrect/memvar.h
@@ -0,0 +1,18 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/pixrect/memvar.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( SUN_CATMACRO_CHECK )
+#ifdef __STDC__
+# define CAT(a,b) a##b
+#else
+#define CAT(a,b) a/**/b
+#endif
+#endif /* SUN_CATMACRO_CHECK */
diff --git a/fixincludes/tests/base/pthread.h b/fixincludes/tests/base/pthread.h
new file mode 100644
index 000000000..834f0519e
--- /dev/null
+++ b/fixincludes/tests/base/pthread.h
@@ -0,0 +1,185 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/pthread.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( AIX_PTHREAD_CHECK )
+#define PTHREAD_MUTEX_INITIALIZER \
+{...init stuff...}
+#endif /* AIX_PTHREAD_CHECK */
+
+
+#if defined( ALPHA_PTHREAD_CHECK )
+# if defined (_PTHREAD_ENV_DECC) || defined (_PTHREAD_ENV_EPCC) || defined (__PRAGMA_EXTERN_PREFIX)
+# define _PTHREAD_USE_PTDNAM_
+# endif
+# if defined (_PTHREAD_ENV_DECC) || defined (__PRAGMA_EXTERN_PREFIX)
+# define _PTHREAD_USE_PTDNAM_
+# endif
+#endif /* ALPHA_PTHREAD_CHECK */
+
+
+#if defined( ALPHA_PTHREAD_GCC_CHECK )
+# define _PTHREAD_ENV_INTELC
+#elif defined (__GNUC__)
+# define _PTHREAD_ENV_GCC
+#else
+# error <pthread.h>: unrecognized compiler.
+#endif
+#endif /* ALPHA_PTHREAD_GCC_CHECK */
+
+
+#if defined( ALPHA_PTHREAD_INIT_CHECK )
+/*
+ * @(#)_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, 0, 0, 0, 0, 0, 0 }
+# define PTHREAD_COND_INITIALIZER {_PTHREAD_CSTATE_SLOW, _PTHREAD_CVALID | _PTHREAD_CVF_STA, 0, 0, 0, 0 }
+# define PTHREAD_MUTEX_INITWITHNAME_NP(_n_,_a_) {_PTHREAD_MSTATE_CONFIG, _PTHREAD_MVALID | _PTHREAD_MVF_STA, _n_, _a_, 0, 0, 0, 0 }
+# define PTHREAD_COND_INITWITHNAME_NP(_n_,_a_) {_PTHREAD_CSTATE_SLOW, _PTHREAD_CVALID | _PTHREAD_CVF_STA, _n_, _a_, 0, 0 }
+#else
+# define PTHREAD_MUTEX_INITIALIZER {0, _PTHREAD_MVALID | _PTHREAD_MVF_STA, 0, 0, 0, 0, 0, 0 }
+# define PTHREAD_MUTEX_INITWITHNAME_NP(_n_,_a_) {0, _PTHREAD_MVALID | _PTHREAD_MVF_STA, _n_, _a_, 0, 0, 0, 0 }
+# define PTHREAD_COND_INITWITHNAME_NP(_n_,_a_) {0, _PTHREAD_CVALID | _PTHREAD_CVF_STA, _n_, _a_, 0, 0 }
+#endif
+
+#define PTHREAD_RWLOCK_INITIALIZER {_PTHREAD_RWVALID | _PTHREAD_RWVF_STA, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+#define PTHREAD_RWLOCK_INITWITHNAME_NP(_n_,_a_) {_PTHREAD_RWVALID | _PTHREAD_RWVF_STA, _n_, _a_, 0, 0, 0, 0, 0, 0, 0 }
+#endif /* ALPHA_PTHREAD_INIT_CHECK */
+
+
+#if defined( GLIBC_MUTEX_INIT_CHECK )
+#define PTHREAD_MUTEX_INITIALIZER \
+ { { 0, 0, 0, 0, 0, 0 } }
+#ifdef __USE_GNU
+# if __WORDSIZE == 64
+# define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
+ { { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0 } }
+# define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
+ { { 0, 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, 0 } }
+# define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
+ { { 0, 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, 0 } }
+# else
+# define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
+ { { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, 0 } }
+# define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
+ { { 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, 0, 0 } }
+# define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
+ { { 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, 0, 0 } }
+# endif
+#endif
+# if __WORDSIZE == 64
+# define PTHREAD_RWLOCK_INITIALIZER \
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+# else
+# define PTHREAD_RWLOCK_INITIALIZER \
+ { { 0, 0, 0, 0, 0, 0, 0, 0 } }
+# endif
+# 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, 0 } }
+# endif
+# endif
+#define PTHREAD_COND_INITIALIZER { { 0, 0, 0, 0, 0, (void *) 0, 0, 0 } }
+#endif /* GLIBC_MUTEX_INIT_CHECK */
+
+
+#if defined( IRIX_PTHREAD_INIT_CHECK )
+#define PTHREAD_MUTEX_INITIALIZER { { 0 } }
+#define PTHREAD_COND_INITIALIZER { { 0 } }
+#define PTHREAD_RWLOCK_INITIALIZER { { 0 } }
+#endif /* IRIX_PTHREAD_INIT_CHECK */
+
+
+#if defined( PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_CHECK )
+extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask);
+#endif /* PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_CHECK */
+
+
+#if defined( SOLARIS_COND_INIT_CHECK )
+#pragma ident "@(#)pthread.h 1.29 01/07/07 SMI"
+#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)
+#define PTHREAD_COND_INITIALIZER {{{0}, 0, 0x4356}, 0} /* = DEFAULTCV */
+#else
+#define PTHREAD_COND_INITIALIZER {{{0}, 0, 0x4356}, {0}} /* = DEFAULTCV */
+#endif
+#endif /* SOLARIS_COND_INIT_CHECK */
+
+
+#if defined( SOLARIS_MUTEX_INIT_2_CHECK )
+#ident "@(#)pthread.h 1.26 98/04/12 SMI"
+#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)
+#define PTHREAD_MUTEX_INITIALIZER {{{0},0}, {{{0}}}, 0}
+#else
+#define PTHREAD_MUTEX_INITIALIZER {{{0},0}, {{{0}}}, {0}}
+#endif
+#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)
+#define PTHREAD_COND_INITIALIZER {{{0}, 0, 0x4356}, 0} /* DEFAULTCV */
+#else
+#define PTHREAD_COND_INITIALIZER {{{0}, 0, 0x4356}, {0}} /* DEFAULTCV */
+#endif
+#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)
+#define PTHREAD_MUTEX_INITIALIZER /* = DEFAULTMUTEX */ \
+ {{0, 0, 0, DEFAULT_TYPE, _MUTEX_MAGIC}, {{{0}}}, 0}
+#else
+#define PTHREAD_MUTEX_INITIALIZER /* = DEFAULTMUTEX */ \
+ {{0, 0, 0, DEFAULT_TYPE, _MUTEX_MAGIC}, {{{0}}}, {0}}
+#endif
+#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)
+#define PTHREAD_COND_INITIALIZER /* = DEFAULTCV */ \
+ {{{0, 0, 0, 0}, DEFAULT_TYPE, _COND_MAGIC}, 0}
+#else
+#define PTHREAD_COND_INITIALIZER /* = DEFAULTCV */ \
+ {{{0, 0, 0, 0}, DEFAULT_TYPE, _COND_MAGIC}, {0}}
+#endif
+#endif /* SOLARIS_MUTEX_INIT_2_CHECK */
+
+
+#if defined( SOLARIS_RWLOCK_INIT_1_CHECK )
+#ident "@(#)pthread.h 1.26 98/04/12 SMI"
+#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)
+#define PTHREAD_RWLOCK_INITIALIZER {0, 0, 0, {0, 0, 0}, {0, 0}, {0, 0}}
+#else
+#define PTHREAD_RWLOCK_INITIALIZER {0, 0, 0, {{0}, {0}, {0}}, {{0}, {0}}, {{0}, {0}}}
+#endif
+#endif /* SOLARIS_RWLOCK_INIT_1_CHECK */
+
+
+#if defined( SOLARIS_ONCE_INIT_1_CHECK )
+#pragma ident "@(#)pthread.h 1.37 04/09/28 SMI"
+#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)
+#define PTHREAD_ONCE_INIT {{0, 0, 0, PTHREAD_ONCE_NOTDONE}}
+#else
+#define PTHREAD_ONCE_INIT {{{0}, {0}, {0}, {PTHREAD_ONCE_NOTDONE}}}
+#endif
+#endif /* SOLARIS_ONCE_INIT_1_CHECK */
+
+
+#if defined( SOLARIS_ONCE_INIT_2_CHECK )
+#ident "@(#)pthread.h 1.26 98/04/12 SMI"
+#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)
+#define PTHREAD_ONCE_INIT {{0, 0, 0, PTHREAD_ONCE_NOTDONE}}
+#else
+#define PTHREAD_ONCE_INIT {{{0}, {0}, {0}, {PTHREAD_ONCE_NOTDONE}}}
+#endif
+
+#endif /* SOLARIS_ONCE_INIT_2_CHECK */
+
+
+#if defined( THREAD_KEYWORD_CHECK )
+extern int pthread_create (pthread_t *__restrict __thr,
+extern int pthread_kill (pthread_t __thr, int __signo);
+extern int pthread_cancel (pthread_t __thr);
+#endif /* THREAD_KEYWORD_CHECK */
diff --git a/fixincludes/tests/base/reg_types.h b/fixincludes/tests/base/reg_types.h
new file mode 100644
index 000000000..950dabb26
--- /dev/null
+++ b/fixincludes/tests/base/reg_types.h
@@ -0,0 +1,20 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/reg_types.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( OSF_NAMESPACE_A_CHECK )
+typedef struct {
+ int stuff, mo_suff;
+} __regex_t;
+extern __regex_t re;
+extern __regoff_t ro;
+extern __regmatch_t rm;
+
+#endif /* OSF_NAMESPACE_A_CHECK */
diff --git a/fixincludes/tests/base/regex.h b/fixincludes/tests/base/regex.h
new file mode 100644
index 000000000..304b790f4
--- /dev/null
+++ b/fixincludes/tests/base/regex.h
@@ -0,0 +1,17 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/regex.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( OSF_NAMESPACE_C_CHECK )
+#include <reg_types.h>
+typedef __regex_t regex_t;
+typedef __regoff_t regoff_t;
+typedef __regmatch_t regmatch_t;
+#endif /* OSF_NAMESPACE_C_CHECK */
diff --git a/fixincludes/tests/base/regexp.h b/fixincludes/tests/base/regexp.h
new file mode 100644
index 000000000..35ec04942
--- /dev/null
+++ b/fixincludes/tests/base/regexp.h
@@ -0,0 +1,18 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/regexp.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( SVR4_UNDECLARED_GETRNGE_CHECK )
+static int size;
+static int getrnge ();
+/* stuff which calls getrnge() */
+static getrnge()
+{}
+#endif /* SVR4_UNDECLARED_GETRNGE_CHECK */
diff --git a/fixincludes/tests/base/rpc/auth.h b/fixincludes/tests/base/rpc/auth.h
new file mode 100644
index 000000000..42ba84707
--- /dev/null
+++ b/fixincludes/tests/base/rpc/auth.h
@@ -0,0 +1,26 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/rpc/auth.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( STRUCT_SOCKADDR_CHECK )
+struct sockaddr;
+extern AUTH* authdes_create( struct sockaddr* );
+#endif /* STRUCT_SOCKADDR_CHECK */
+
+
+#if defined( SUN_AUTH_PROTO_CHECK )
+struct auth_t {
+#ifdef __cplusplus
+ int (*name)(...); /* C++ bad */
+#else
+ int (*name)(); /* C++ bad */
+#endif
+};
+#endif /* SUN_AUTH_PROTO_CHECK */
diff --git a/fixincludes/tests/base/rpc/rpc.h b/fixincludes/tests/base/rpc/rpc.h
new file mode 100644
index 000000000..2e7847897
--- /dev/null
+++ b/fixincludes/tests/base/rpc/rpc.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/rpc/rpc.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( NESTED_AUTH_DES_CHECK )
+/*#include <rpc/auth_des.h> */ /* skip this */
+#endif /* NESTED_AUTH_DES_CHECK */
diff --git a/fixincludes/tests/base/rpc/xdr.h b/fixincludes/tests/base/rpc/xdr.h
new file mode 100644
index 000000000..7b9f9bae9
--- /dev/null
+++ b/fixincludes/tests/base/rpc/xdr.h
@@ -0,0 +1,25 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/rpc/xdr.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( RPC_XDR_LVALUE_CAST_A_CHECK )
+#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
+#endif /* RPC_XDR_LVALUE_CAST_A_CHECK */
+
+
+#if defined( RPC_XDR_LVALUE_CAST_B_CHECK )
+#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
+#endif /* RPC_XDR_LVALUE_CAST_B_CHECK */
+
+
+#if defined( STRUCT_FILE_CHECK )
+struct __file_s;
+extern void xdrstdio_create( struct __file_s* );
+#endif /* STRUCT_FILE_CHECK */
diff --git a/fixincludes/tests/base/rpcsvc/rstat.h b/fixincludes/tests/base/rpcsvc/rstat.h
new file mode 100644
index 000000000..05dc65b66
--- /dev/null
+++ b/fixincludes/tests/base/rpcsvc/rstat.h
@@ -0,0 +1,16 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/rpcsvc/rstat.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( STATSSWTCH_CHECK )
+struct statswtch {
+ int boottime;
+};
+#endif /* STATSSWTCH_CHECK */
diff --git a/fixincludes/tests/base/rpcsvc/rusers.h b/fixincludes/tests/base/rpcsvc/rusers.h
new file mode 100644
index 000000000..727c40925
--- /dev/null
+++ b/fixincludes/tests/base/rpcsvc/rusers.h
@@ -0,0 +1,16 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/rpcsvc/rusers.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( SUN_RUSERS_SEMI_CHECK )
+struct mumble
+ int _cnt;
+};
+#endif /* SUN_RUSERS_SEMI_CHECK */
diff --git a/fixincludes/tests/base/signal.h b/fixincludes/tests/base/signal.h
new file mode 100644
index 000000000..1c4517e2c
--- /dev/null
+++ b/fixincludes/tests/base/signal.h
@@ -0,0 +1,29 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/signal.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( NETBSD_C99_INLINE_1_CHECK )
+extern
+#ifdef __GNUC_STDC_INLINE__
+__attribute__((__gnu_inline__))
+#endif
+__inline int
+sigaddset(sigset_t *set, int signo)
+{}
+#endif /* NETBSD_C99_INLINE_1_CHECK */
+
+
+#if defined( NETBSD_C99_INLINE_2_CHECK )
+#ifdef __GNUC_STDC_INLINE__
+#define _SIGINLINE extern __attribute__((__gnu_inline__)) __inline
+#else
+#define _SIGINLINE extern __inline
+#endif
+#endif /* NETBSD_C99_INLINE_2_CHECK */
diff --git a/fixincludes/tests/base/sparc/asm_linkage.h b/fixincludes/tests/base/sparc/asm_linkage.h
new file mode 100644
index 000000000..5690f7789
--- /dev/null
+++ b/fixincludes/tests/base/sparc/asm_linkage.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sparc/asm_linkage.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( KANDR_CONCAT_CHECK )
+#define __CONCAT__(a,b) a##b
+#endif /* KANDR_CONCAT_CHECK */
diff --git a/fixincludes/tests/base/standards.h b/fixincludes/tests/base/standards.h
new file mode 100644
index 000000000..fccf8063f
--- /dev/null
+++ b/fixincludes/tests/base/standards.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/standards.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( ALPHA___EXTERN_PREFIX_STANDARDS_CHECK )
+#if (_ISO_C_SOURCE>=19990L) && !defined(_LIBC_POLLUTION_H_) && !defined(__DECC) && !defined(__PRAGMA_EXTERN_PREFIX)
+#endif /* ALPHA___EXTERN_PREFIX_STANDARDS_CHECK */
diff --git a/fixincludes/tests/base/stdarg.h b/fixincludes/tests/base/stdarg.h
new file mode 100644
index 000000000..686d0b3d6
--- /dev/null
+++ b/fixincludes/tests/base/stdarg.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/stdarg.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( OPENBSD_VA_START_CHECK )
+#define va_start(v,l) __builtin_va_start((v),l)
+#endif /* OPENBSD_VA_START_CHECK */
diff --git a/fixincludes/tests/base/stdint-aix.h b/fixincludes/tests/base/stdint-aix.h
new file mode 100644
index 000000000..1560e75d6
--- /dev/null
+++ b/fixincludes/tests/base/stdint-aix.h
@@ -0,0 +1,48 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/stdint-aix.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( AIX_STDINT_1_CHECK )
+#define UINT8_MAX (255)
+#define UINT16_MAX (65535)
+#endif /* AIX_STDINT_1_CHECK */
+
+
+#if defined( AIX_STDINT_2_CHECK )
+#define INTPTR_MIN (-INTPTR_MAX-1)
+#define INTPTR_MAX 9223372036854775807L
+#define UINTPTR_MAX 18446744073709551615UL
+#else
+#define INTPTR_MIN (-INTPTR_MAX-1)
+#define INTPTR_MAX 2147483647L
+#define UINTPTR_MAX 4294967295UL
+#endif /* AIX_STDINT_2_CHECK */
+
+
+#if defined( AIX_STDINT_3_CHECK )
+#define PTRDIFF_MIN (-9223372036854775807L - 1)
+#define PTRDIFF_MAX 9223372036854775807L
+#else
+#define PTRDIFF_MIN (-2147483647L - 1)
+#define PTRDIFF_MAX 2147483647L
+#endif /* AIX_STDINT_3_CHECK */
+
+
+#if defined( AIX_STDINT_4_CHECK )
+#define SIZE_MAX 18446744073709551615UL
+#else
+#define SIZE_MAX 4294967295UL
+#endif /* AIX_STDINT_4_CHECK */
+
+
+#if defined( AIX_STDINT_5_CHECK )
+#define UINT8_C(c) c
+#define UINT16_C(c) c
+#endif /* AIX_STDINT_5_CHECK */
diff --git a/fixincludes/tests/base/stdint-darwin.h b/fixincludes/tests/base/stdint-darwin.h
new file mode 100644
index 000000000..7a5d6dadf
--- /dev/null
+++ b/fixincludes/tests/base/stdint-darwin.h
@@ -0,0 +1,79 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/stdint-darwin.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( DARWIN_STDINT_1_CHECK )
+#define UINT8_C(v) v
+#define UINT16_C(v) v
+#endif /* DARWIN_STDINT_1_CHECK */
+
+
+#if defined( DARWIN_STDINT_2_CHECK )
+#if __WORDSIZE == 64
+#define INTPTR_MAX 9223372036854775807L
+#define INTPTR_MIN (-INTPTR_MAX-1)
+#else
+#define INTPTR_MAX 2147483647L
+#define INTPTR_MIN (-INTPTR_MAX-1)
+#endif
+#endif /* DARWIN_STDINT_2_CHECK */
+
+
+#if defined( DARWIN_STDINT_3_CHECK )
+#if __WORDSIZE == 64
+#define UINTPTR_MAX 18446744073709551615UL
+#else
+#define UINTPTR_MAX 4294967295UL
+#endif
+#endif /* DARWIN_STDINT_3_CHECK */
+
+
+#if defined( DARWIN_STDINT_4_CHECK )
+#if __WORDSIZE == 64
+#define SIZE_MAX 18446744073709551615UL
+#else
+#define SIZE_MAX 4294967295UL
+#endif
+#endif /* DARWIN_STDINT_4_CHECK */
+
+
+#if defined( DARWIN_STDINT_5_CHECK )
+#if __WORDSIZE == 64
+#define INTMAX_MIN (-9223372036854775807L - 1)
+#define INTMAX_MAX 9223372036854775807L
+#define UINTMAX_MAX 18446744073709551615UL
+#else
+#define INTMAX_MIN (-9223372036854775807LL - 1)
+#define INTMAX_MAX 9223372036854775807LL
+#define UINTMAX_MAX 18446744073709551615ULL
+#endif
+#endif /* DARWIN_STDINT_5_CHECK */
+
+
+#if defined( DARWIN_STDINT_6_CHECK )
+#if __WORDSIZE == 64
+#define PTRDIFF_MIN (-9223372036854775807L - 1)
+#define PTRDIFF_MAX 9223372036854775807L
+#else
+#define PTRDIFF_MIN (-2147483647 - 1)
+#define PTRDIFF_MAX 2147483647
+#endif
+#endif /* DARWIN_STDINT_6_CHECK */
+
+
+#if defined( DARWIN_STDINT_7_CHECK )
+#if __WORDSIZE == 64
+#define INTMAX_C(v) (v ## L)
+#define UINTMAX_C(v) (v ## UL)
+#else
+#define INTMAX_C(v) (v ## LL)
+#define UINTMAX_C(v) (v ## ULL)
+#endif
+#endif /* DARWIN_STDINT_7_CHECK */
diff --git a/fixincludes/tests/base/stdint-hpux11.h b/fixincludes/tests/base/stdint-hpux11.h
new file mode 100644
index 000000000..6e8ea1349
--- /dev/null
+++ b/fixincludes/tests/base/stdint-hpux11.h
@@ -0,0 +1,36 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/stdint-hpux11.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( HPUX_C99_INTPTR_CHECK )
+#define PTRDIFF_MAX (2147483647l)
+#define PTRDIFF_MIN (-PTRDIFF_MAX - 1)
+#define INTPTR_MAX (2147483647l)
+#define INTPTR_MIN (-INTPTR_MAX - 1)
+#define UINTPTR_MAX (4294967295ul)
+#define SIZE_MAX (4294967295ul)
+
+#endif /* HPUX_C99_INTPTR_CHECK */
+
+
+#if defined( HPUX_C99_INTTYPES2_CHECK )
+#define INT8_C(__c) (__c)
+#define UINT8_C(__c) (__c)
+#define INT16_C(__c) (__c)
+#define UINT16_C(__c) (__c)
+
+#endif /* HPUX_C99_INTTYPES2_CHECK */
+
+
+#if defined( HPUX_STDINT_LEAST_FAST_CHECK )
+# define UINT_FAST64_MAX __UINT64_MAX__
+# define UINT_LEAST64_MAX __UINT64_MAX__
+
+#endif /* HPUX_STDINT_LEAST_FAST_CHECK */
diff --git a/fixincludes/tests/base/stdint-irix65.h b/fixincludes/tests/base/stdint-irix65.h
new file mode 100644
index 000000000..d1757fb55
--- /dev/null
+++ b/fixincludes/tests/base/stdint-irix65.h
@@ -0,0 +1,40 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/stdint-irix65.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( IRIX_STDINT_C99_TYPES_CHECK )
+#define INT64_MIN (-0x7fffffffffffffffLL - 1)
+#define INT64_MAX 0x7fffffffffffffffLL
+#define UINT32_MAX 0xffffffffU
+#define UINT64_MAX 0xffffffffffffffffULL
+#define INTPTR_MIN (-0x7fffffffL - 1)
+#define INTPTR_MAX 0x7fffffffL
+#define UINTPTR_MAX 0xffffffffUL
+#define INTPTR_MIN (-0x7fffffffffffffffL - 1)
+#define INTPTR_MAX 0x7fffffffffffffffL
+#define UINTPTR_MAX 0xffffffffffffffffUL
+#define PTRDIFF_MIN (-0x7fffffffffffffffL - 1)
+#define PTRDIFF_MAX 0x7fffffffffffffffL
+#define SIZE_MAX 0xffffffffffffffffUL
+#endif /* IRIX_STDINT_C99_TYPES_CHECK */
+
+
+#if defined( IRIX_STDINT_C99_MACROS_CHECK )
+#define INT8_C(x) (x)
+#define INT16_C(x) (x)
+#define INT32_C(x) (x)
+#define INT64_C(x) (x ## LL)
+#define UINT8_C(x) (x)
+#define UINT16_C(x) (x)
+#define UINT32_C(x) (x ## U)
+#define UINT64_C(x) (x ## ULL)
+#define INTMAX_C(x) (x ## LL)
+#define UINTMAX_C(x) (x ## ULL)
+#endif /* IRIX_STDINT_C99_MACROS_CHECK */
diff --git a/fixincludes/tests/base/stdint-newlib.h b/fixincludes/tests/base/stdint-newlib.h
new file mode 100644
index 000000000..451a4756a
--- /dev/null
+++ b/fixincludes/tests/base/stdint-newlib.h
@@ -0,0 +1,42 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/stdint-newlib.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( NEWLIB_STDINT_1_CHECK )
+/* @todo - Add support for wint_t types. */
+#define INT32_MIN (-INT32_MAX - 1)
+#define INT32_MAX __INT32_MAX__
+#define UINT32_MAX __UINT32_MAX__
+#define INT_LEAST32_MIN (-INT_LEAST32_MAX - 1)
+#define INT_LEAST32_MAX __INT_LEAST32_MAX__
+#define UINT_LEAST32_MAX __UINT_LEAST32_MAX__
+#define INT_FAST8_MIN (-INT_FAST8_MAX - 1)
+#define INT_FAST8_MAX __INT_FAST8_MAX__
+#define UINT_FAST8_MAX __UINT_FAST8_MAX__
+#define SIZE_MAX __SIZE_MAX__
+#define PTRDIFF_MIN (-PTRDIFF_MAX - 1)
+#define PTRDIFF_MAX __PTRDIFF_MAX__
+#define UINT8_C(c) __UINT8_C(c)
+#define UINT16_C(c) __UINT16_C(c)
+#endif /* NEWLIB_STDINT_1_CHECK */
+
+
+#if defined( NEWLIB_STDINT_2_CHECK )
+/* @todo - Add support for wint_t types. */
+#define INTMAX_MAX __INTMAX_MAX__
+#define INTMAX_MIN (-INTMAX_MAX - 1)
+#define UINTMAX_MAX __UINTMAX_MAX__
+#define WCHAR_MAX __WCHAR_MAX__
+#define WCHAR_MIN __WCHAR_MIN__
+#define WINT_MAX __WINT_MAX__
+#define WINT_MIN __WINT_MIN__
+
+/** Macros for minimum-width integer constant expressions */
+#endif /* NEWLIB_STDINT_2_CHECK */
diff --git a/fixincludes/tests/base/stdint.h b/fixincludes/tests/base/stdint.h
new file mode 100644
index 000000000..3d897f88f
--- /dev/null
+++ b/fixincludes/tests/base/stdint.h
@@ -0,0 +1,23 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/stdint.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( GLIBC_STDINT_CHECK )
+/* This file is part of the GNU C Library. */
+# define UINT8_C(c) c
+# define UINT16_C(c) c
+#endif /* GLIBC_STDINT_CHECK */
+
+
+#if defined( IRIX_STDINT_C99_MODE_CHECK )
+#if 0
+#error This header file is to be used only for c99 mode compilations
+#else
+#endif /* IRIX_STDINT_C99_MODE_CHECK */
diff --git a/fixincludes/tests/base/stdio.h b/fixincludes/tests/base/stdio.h
new file mode 100644
index 000000000..5fda7bd34
--- /dev/null
+++ b/fixincludes/tests/base/stdio.h
@@ -0,0 +1,96 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/stdio.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+#ifndef FIXINC_WRAP_STDIO_H_STDIO_STDARG_H
+#define FIXINC_WRAP_STDIO_H_STDIO_STDARG_H 1
+
+#define __need___va_list
+#include <stdarg.h>
+
+
+#if defined( AAB_AIX_STDIO_CHECK )
+
+#endif /* AAB_AIX_STDIO_CHECK */
+
+
+#if defined( ALPHA_GETOPT_CHECK )
+extern int getopt(int, char *const[], const char *);
+#endif /* ALPHA_GETOPT_CHECK */
+
+
+#if defined( BSD_STDIO_ATTRS_CONFLICT_CHECK )
+#define _BSD_STRING(_BSD_X) _BSD_STRINGX(_BSD_X)
+#define _BSD_STRINGX(_BSD_X) #_BSD_X
+int vfscanf(FILE *, const char *, __builtin_va_list) __asm__ (_BSD_STRING(__USER_LABEL_PREFIX__) "__svfscanf");
+#endif /* BSD_STDIO_ATTRS_CONFLICT_CHECK */
+
+
+#if defined( HPUX10_STDIO_DECLARATIONS_CHECK )
+# define _iob __iob
+
+#endif /* HPUX10_STDIO_DECLARATIONS_CHECK */
+
+
+#if defined( HPUX11_SNPRINTF_CHECK )
+extern int snprintf(char *, size_t, const char *, ...);
+extern int snprintf(char *, _hpux_size_t, const char *, ...);
+extern int snprintf(char *, _hpux_size_t, const char *, ...);
+#endif /* HPUX11_SNPRINTF_CHECK */
+
+
+#if defined( HPUX11_VSNPRINTF_CHECK )
+extern int vsnprintf(char *, _hpux_size_t, const char *, __gnuc_va_list);
+#endif /* HPUX11_VSNPRINTF_CHECK */
+
+
+#if defined( IRIX_STDIO_DUMMY_VA_LIST_CHECK )
+extern int printf( const char *, __gnuc_va_list );
+#endif /* IRIX_STDIO_DUMMY_VA_LIST_CHECK */
+
+
+#if defined( READ_RET_TYPE_CHECK )
+extern unsigned int fread(), fwrite();
+extern int fclose(), fflush(), foo();
+#endif /* READ_RET_TYPE_CHECK */
+
+
+#if defined( RS6000_PARAM_CHECK )
+extern int rename(const char *_old, const char *_new);
+#endif /* RS6000_PARAM_CHECK */
+
+
+#if defined( STDIO_STDARG_H_CHECK )
+
+#endif /* STDIO_STDARG_H_CHECK */
+
+
+#if defined( STDIO_DUMMY_VA_LIST_CHECK )
+extern void mumble( __gnuc_va_list);
+#endif /* STDIO_DUMMY_VA_LIST_CHECK */
+
+
+#if defined( ULTRIX_CONST_CHECK )
+extern void perror( const char *__s );
+extern int fputs( const char *__s, FILE *);
+extern size_t fwrite( const void *__ptr, size_t, size_t, FILE *);
+extern int fscanf( FILE *__stream, const char *__format, ...);
+extern int scanf( const char *__format, ...);
+
+#endif /* ULTRIX_CONST_CHECK */
+
+
+#if defined( ULTRIX_CONST2_CHECK )
+extern FILE *fopen( const char *__filename, const char *__type );
+extern int sscanf( const char *__s, const char *__format, ...);
+extern FILE *popen( const char *, const char *);
+extern char *tempnam( const char *, const char *);
+
+#endif /* ULTRIX_CONST2_CHECK */
+
+#endif /* FIXINC_WRAP_STDIO_H_STDIO_STDARG_H */
diff --git a/fixincludes/tests/base/stdio_tag.h b/fixincludes/tests/base/stdio_tag.h
new file mode 100644
index 000000000..788de24b2
--- /dev/null
+++ b/fixincludes/tests/base/stdio_tag.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/stdio_tag.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( SOLARIS_STDIO_TAG_CHECK )
+#if 0
+#endif /* SOLARIS_STDIO_TAG_CHECK */
diff --git a/fixincludes/tests/base/stdlib.h b/fixincludes/tests/base/stdlib.h
new file mode 100644
index 000000000..d104cc7d5
--- /dev/null
+++ b/fixincludes/tests/base/stdlib.h
@@ -0,0 +1,58 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/stdlib.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( HPUX11_ABS_CHECK )
+#if !defined(_MATH_INCLUDED) || defined(__GNUG__)
+#endif /* HPUX11_ABS_CHECK */
+
+
+#if defined( HPUX_LONG_DOUBLE_CHECK )
+extern long double strtold(const char *, char **);
+
+#endif /* HPUX_LONG_DOUBLE_CHECK */
+
+
+#if defined( HPUX_LONG_DOUBLE_2_CHECK )
+# if !defined(__ia64) || !defined(_PROTOTYPES) || defined(_LONG_DOUBLE_STRUCT)
+
+#endif /* HPUX_LONG_DOUBLE_2_CHECK */
+
+
+#if defined( INT_ABORT_FREE_AND_EXIT_CHECK )
+extern void abort(int);
+extern void free(void*);
+extern void exit(void*);
+#endif /* INT_ABORT_FREE_AND_EXIT_CHECK */
+
+
+#if defined( LYNXOS_MISSING_PUTENV_CHECK )
+extern char *getenv _AP((const char *));
+extern int putenv _AP((char *));
+#endif /* LYNXOS_MISSING_PUTENV_CHECK */
+
+
+#if defined( SVR4_GETCWD_CHECK )
+extern char* getcwd(char *, size_t);
+#endif /* SVR4_GETCWD_CHECK */
+
+
+#if defined( SVR4_PROFIL_CHECK )
+profil(unsigned short *, size_t, int, unsigned int);
+#endif /* SVR4_PROFIL_CHECK */
+
+
+#if defined( SYSZ_STDLIB_FOR_SUN_CHECK )
+extern void * calloc(size_t);
+extern void * malloc(size_t);
+extern void * realloc(void*,size_t);
+extern void * bsearch(void*,size_t,size_t);
+
+#endif /* SYSZ_STDLIB_FOR_SUN_CHECK */
diff --git a/fixincludes/tests/base/string.h b/fixincludes/tests/base/string.h
new file mode 100644
index 000000000..5156cd5c3
--- /dev/null
+++ b/fixincludes/tests/base/string.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/string.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( SVR4_DISABLE_OPT_CHECK )
+
+#endif /* SVR4_DISABLE_OPT_CHECK */
diff --git a/fixincludes/tests/base/strings.h b/fixincludes/tests/base/strings.h
new file mode 100644
index 000000000..60b73ac6e
--- /dev/null
+++ b/fixincludes/tests/base/strings.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/strings.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( SUNOS_STRLEN_CHECK )
+ __SIZE_TYPE__ strlen(); /* string length */
+#endif /* SUNOS_STRLEN_CHECK */
diff --git a/fixincludes/tests/base/sundev/vuid_event.h b/fixincludes/tests/base/sundev/vuid_event.h
new file mode 100644
index 000000000..0f35cb8ad
--- /dev/null
+++ b/fixincludes/tests/base/sundev/vuid_event.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sundev/vuid_event.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( BADQUOTE_CHECK )
+/* does not have matched single quotes */
+#endif /* BADQUOTE_CHECK */
diff --git a/fixincludes/tests/base/sunwindow/win_lock.h b/fixincludes/tests/base/sunwindow/win_lock.h
new file mode 100644
index 000000000..8cd0b19d1
--- /dev/null
+++ b/fixincludes/tests/base/sunwindow/win_lock.h
@@ -0,0 +1,16 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sunwindow/win_lock.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( ECD_CURSOR_CHECK )
+#ifdef ecd_cursor
+#error bogus
+#endif /* ecd+cursor */
+#endif /* ECD_CURSOR_CHECK */
diff --git a/fixincludes/tests/base/sym.h b/fixincludes/tests/base/sym.h
new file mode 100644
index 000000000..0c811a3aa
--- /dev/null
+++ b/fixincludes/tests/base/sym.h
@@ -0,0 +1,16 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sym.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( ALPHA_PARENS_CHECK )
+#ifndef __mips64 /* bogus */
+extern int foo;
+#endif
+#endif /* ALPHA_PARENS_CHECK */
diff --git a/fixincludes/tests/base/sys/_inttypes.h b/fixincludes/tests/base/sys/_inttypes.h
new file mode 100644
index 000000000..dab8961f6
--- /dev/null
+++ b/fixincludes/tests/base/sys/_inttypes.h
@@ -0,0 +1,16 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/_inttypes.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( HPUX_INTTYPE_INT8_T_CHECK )
+typedef signed char int_least8_t;
+typedef signed char int8_t;
+
+#endif /* HPUX_INTTYPE_INT8_T_CHECK */
diff --git a/fixincludes/tests/base/sys/asm.h b/fixincludes/tests/base/sys/asm.h
new file mode 100644
index 000000000..658830a7b
--- /dev/null
+++ b/fixincludes/tests/base/sys/asm.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/asm.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( IRIX_ASM_APOSTROPHE_CHECK )
+ # and we are on vacation
+#endif /* IRIX_ASM_APOSTROPHE_CHECK */
diff --git a/fixincludes/tests/base/sys/cdefs.h b/fixincludes/tests/base/sys/cdefs.h
new file mode 100644
index 000000000..6ccd0b773
--- /dev/null
+++ b/fixincludes/tests/base/sys/cdefs.h
@@ -0,0 +1,24 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/cdefs.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( FREEBSD_GCC3_BREAKAGE_CHECK )
+#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7
+#endif /* FREEBSD_GCC3_BREAKAGE_CHECK */
+
+
+#if defined( FREEBSD_GCC4_BREAKAGE_CHECK )
+#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7 || __GNUC__ >= 3
+#endif /* FREEBSD_GCC4_BREAKAGE_CHECK */
+
+
+#if defined( NETBSD_EXTRA_SEMICOLON_CHECK )
+#define __END_DECLS }
+#endif /* NETBSD_EXTRA_SEMICOLON_CHECK */
diff --git a/fixincludes/tests/base/sys/feature_tests.h b/fixincludes/tests/base/sys/feature_tests.h
new file mode 100644
index 000000000..3bb803c28
--- /dev/null
+++ b/fixincludes/tests/base/sys/feature_tests.h
@@ -0,0 +1,18 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/feature_tests.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( SOLARIS___RESTRICT_CHECK )
+#ifdef __cplusplus
+#define _RESTRICT_KYWD __restrict
+#else
+#define _RESTRICT_KYWD restrict
+#endif
+#endif /* SOLARIS___RESTRICT_CHECK */
diff --git a/fixincludes/tests/base/sys/file.h b/fixincludes/tests/base/sys/file.h
new file mode 100644
index 000000000..ba56a414c
--- /dev/null
+++ b/fixincludes/tests/base/sys/file.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/file.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( HP_SYSFILE_CHECK )
+extern void foo(struct file *, ...); /* HPUX_SOURCE - bad varargs */
+#endif /* HP_SYSFILE_CHECK */
diff --git a/fixincludes/tests/base/sys/int_const.h b/fixincludes/tests/base/sys/int_const.h
new file mode 100644
index 000000000..6f71a15ec
--- /dev/null
+++ b/fixincludes/tests/base/sys/int_const.h
@@ -0,0 +1,16 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/int_const.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( SOLARIS_INT_CONST_CHECK )
+#define UINT8_C(c) (c)
+/* CSTYLED */
+#define UINT16_C(c) (c)
+#endif /* SOLARIS_INT_CONST_CHECK */
diff --git a/fixincludes/tests/base/sys/int_limits.h b/fixincludes/tests/base/sys/int_limits.h
new file mode 100644
index 000000000..bcacd68a9
--- /dev/null
+++ b/fixincludes/tests/base/sys/int_limits.h
@@ -0,0 +1,27 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/int_limits.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( SOLARIS_INT_LIMITS_1_CHECK )
+#define UINT8_MAX (255)
+#define UINT16_MAX (65535)
+#endif /* SOLARIS_INT_LIMITS_1_CHECK */
+
+
+#if defined( SOLARIS_INT_LIMITS_2_CHECK )
+#define INT_FAST16_MAX INT32_MAX
+#define UINT_FAST16_MAX UINT32_MAX
+#define INT_FAST16_MIN INT32_MIN
+#endif /* SOLARIS_INT_LIMITS_2_CHECK */
+
+
+#if defined( SOLARIS_INT_LIMITS_3_CHECK )
+#define SIZE_MAX 4294967295U
+#endif /* SOLARIS_INT_LIMITS_3_CHECK */
diff --git a/fixincludes/tests/base/sys/int_types.h b/fixincludes/tests/base/sys/int_types.h
new file mode 100644
index 000000000..39bb68acd
--- /dev/null
+++ b/fixincludes/tests/base/sys/int_types.h
@@ -0,0 +1,20 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/int_types.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( SOLARIS_INT_TYPES_CHECK )
+#if (defined(_STDC_C99) || !defined(_STRICT_STDC) || defined(__GNUC__)) && !defined(_NO_LONGLONG)
+typedef long long int64_t;
+#endif
+
+#if defined(_LP64) || ((defined(_STDC_C99) || !defined(_STRICT_STDC) || defined(__GNUC__)) && !defined(_NO_LONGLONG))
+typedef int64_t intmax_t;
+#endif
+#endif /* SOLARIS_INT_TYPES_CHECK */
diff --git a/fixincludes/tests/base/sys/machine.h b/fixincludes/tests/base/sys/machine.h
new file mode 100644
index 000000000..a03741372
--- /dev/null
+++ b/fixincludes/tests/base/sys/machine.h
@@ -0,0 +1,16 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/machine.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( AIX_SYSMACHINE_CHECK )
+#define FOO bar \
+ baz \
+ bat
+#endif /* AIX_SYSMACHINE_CHECK */
diff --git a/fixincludes/tests/base/sys/mman.h b/fixincludes/tests/base/sys/mman.h
new file mode 100644
index 000000000..8fa2fb18c
--- /dev/null
+++ b/fixincludes/tests/base/sys/mman.h
@@ -0,0 +1,25 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/mman.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+#ifndef FIXINC_WRAP_SYS_MMAN_H_CXX_UNREADY
+#define FIXINC_WRAP_SYS_MMAN_H_CXX_UNREADY 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#if defined( CXX_UNREADY_CHECK )
+extern void* malloc( size_t );
+#endif /* CXX_UNREADY_CHECK */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* FIXINC_WRAP_SYS_MMAN_H_CXX_UNREADY */
diff --git a/fixincludes/tests/base/sys/pthread.h b/fixincludes/tests/base/sys/pthread.h
new file mode 100644
index 000000000..8b893cfe5
--- /dev/null
+++ b/fixincludes/tests/base/sys/pthread.h
@@ -0,0 +1,27 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/pthread.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( HPUX11_PTHREAD_CONST_CHECK )
+#define __POINTER_SET ((void *) 1L)
+#endif /* HPUX11_PTHREAD_CONST_CHECK */
+
+
+#if defined( HPUX_PTHREAD_INITIALIZERS_CHECK )
+#define PTHREAD_MUTEX_INITIALIZER { \
+ { __PTHREAD_MUTEX_VALID, 0 }, \
+ (PTHREAD_MUTEX_DEFAULT | PTHREAD_PROCESS_PRIVATE), \
+ __SPNLCK_INITIALIZER, \
+ { 0, 0, -1, 0 }, \
+ { 0, __LWP_MTX_VALID }, { 0, 1, 1, 1, 1 }, \
+ { 0, 0 } \
+}
+
+#endif /* HPUX_PTHREAD_INITIALIZERS_CHECK */
diff --git a/fixincludes/tests/base/sys/signal.h b/fixincludes/tests/base/sys/signal.h
new file mode 100644
index 000000000..7a9ecb113
--- /dev/null
+++ b/fixincludes/tests/base/sys/signal.h
@@ -0,0 +1,30 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/signal.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( AIX_VOLATILE_CHECK )
+typedef int sig_atomic_t;
+#endif /* AIX_VOLATILE_CHECK */
+
+
+#if defined( SUN_SIGNAL_CHECK )
+#ifdef __cplusplus
+void (*signal(...))(...);
+#else
+void (*signal())();
+#endif
+#endif /* SUN_SIGNAL_CHECK */
+
+
+#if defined( SVR4_SIGHANDLER_TYPE_CHECK )
+#define SIG_DFL (void (*)(int))0
+#define SIG_IGN (void (*)(int))0
+
+#endif /* SVR4_SIGHANDLER_TYPE_CHECK */
diff --git a/fixincludes/tests/base/sys/socket.h b/fixincludes/tests/base/sys/socket.h
new file mode 100644
index 000000000..3c6e42027
--- /dev/null
+++ b/fixincludes/tests/base/sys/socket.h
@@ -0,0 +1,37 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/socket.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( HPUX11_EXTERN_SENDFILE_CHECK )
+#ifndef _APP32_64BIT_OFF_T
+ extern sbsize_t sendfile __((int, int, off_t, bsize_t,
+ const struct iovec *, int));
+#endif
+
+#endif /* HPUX11_EXTERN_SENDFILE_CHECK */
+
+
+#if defined( HPUX11_EXTERN_SENDPATH_CHECK )
+#ifndef _APP32_64BIT_OFF_T
+ extern sbsize_t sendpath __((int, int, off_t, bsize_t,
+ const struct iovec *, int));
+#endif
+
+#endif /* HPUX11_EXTERN_SENDPATH_CHECK */
+
+
+#if defined( IRIX_SOCKLEN_T_CHECK )
+#define _SOCKLEN_T
+#if _NO_XOPEN4 && _NO_XOPEN5
+typedef int socklen_t;
+#else
+typedef u_int32_t socklen_t;
+#endif /* _NO_XOPEN4 && _NO_XOPEN5 */
+#endif /* IRIX_SOCKLEN_T_CHECK */
diff --git a/fixincludes/tests/base/sys/spinlock.h b/fixincludes/tests/base/sys/spinlock.h
new file mode 100644
index 000000000..a25f65011
--- /dev/null
+++ b/fixincludes/tests/base/sys/spinlock.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/spinlock.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( HP_INLINE_CHECK )
+ # include <machine/mumble.h>
+#endif /* HP_INLINE_CHECK */
diff --git a/fixincludes/tests/base/sys/stat.h b/fixincludes/tests/base/sys/stat.h
new file mode 100644
index 000000000..5c254ea94
--- /dev/null
+++ b/fixincludes/tests/base/sys/stat.h
@@ -0,0 +1,40 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/stat.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( ALPHA___EXTERN_PREFIX_SYS_STAT_CHECK )
+# if defined(__DECC) || defined(__PRAGMA_EXTERN_PREFIX)
+#endif /* ALPHA___EXTERN_PREFIX_SYS_STAT_CHECK */
+
+
+#if defined( GLIBC_C99_INLINE_2_CHECK )
+#ifdef __GNUC_GNU_INLINE__
+extern
+#endif
+__inline__ int fstat64 (int __fd, struct stat64 *__buf) __THROW __nonnull ((2));
+#ifdef __GNUC_GNU_INLINE__
+extern
+#endif
+__inline__ int
+__NTH (fstat64 (int __fd, struct stat64 *__statbuf))
+{}
+#endif /* GLIBC_C99_INLINE_2_CHECK */
+
+
+#if defined( RS6000_FCHMOD_CHECK )
+extern int fchmod(int, mode_t);
+#endif /* RS6000_FCHMOD_CHECK */
+
+
+#if defined( VXWORKS_NEEDS_VXWORKS_CHECK )
+#include </dev/null> /* ULONG */
+# define __INCstath <sys/stat.h>
+#include <types/vxTypesOld.h>
+#endif /* VXWORKS_NEEDS_VXWORKS_CHECK */
diff --git a/fixincludes/tests/base/sys/sysmacros.h b/fixincludes/tests/base/sys/sysmacros.h
new file mode 100644
index 000000000..2fc3398f4
--- /dev/null
+++ b/fixincludes/tests/base/sys/sysmacros.h
@@ -0,0 +1,15 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/sysmacros.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( GLIBC_C99_INLINE_4_CHECK )
+__extension__ extern __inline __attribute__ ((__gnu_inline__)) unsigned int
+extern __inline __attribute__ ((__gnu_inline__)) unsigned int
+#endif /* GLIBC_C99_INLINE_4_CHECK */
diff --git a/fixincludes/tests/base/sys/time.h b/fixincludes/tests/base/sys/time.h
new file mode 100644
index 000000000..1c730c495
--- /dev/null
+++ b/fixincludes/tests/base/sys/time.h
@@ -0,0 +1,19 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/time.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( HPUX_SYSTIME_CHECK )
+struct sigevent;
+#endif /* HPUX_SYSTIME_CHECK */
+
+
+#if defined( LYNXOS_NO_WARNING_IN_SYS_TIME_H_CHECK )
+
+#endif /* LYNXOS_NO_WARNING_IN_SYS_TIME_H_CHECK */
diff --git a/fixincludes/tests/base/sys/types.h b/fixincludes/tests/base/sys/types.h
new file mode 100644
index 000000000..683b5e93e
--- /dev/null
+++ b/fixincludes/tests/base/sys/types.h
@@ -0,0 +1,30 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/types.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( GNU_TYPES_CHECK )
+#if !defined(_GCC_PTRDIFF_T)
+#define _GCC_PTRDIFF_T
+typedef __PTRDIFF_TYPE__ ptrdiff_t;
+#endif
+ /* long int */
+#if !defined(_GCC_SIZE_T)
+#define _GCC_SIZE_T
+typedef __SIZE_TYPE__ size_t;
+#endif
+ /* uint_t */
+#ifndef __cplusplus
+#if !defined(_GCC_WCHAR_T) && ! defined(__cplusplus)
+#define _GCC_WCHAR_T
+typedef __WCHAR_TYPE__ wchar_t;
+#endif
+
+#endif /* ushort_t */
+#endif /* GNU_TYPES_CHECK */
diff --git a/fixincludes/tests/base/sys/ucontext.h b/fixincludes/tests/base/sys/ucontext.h
new file mode 100644
index 000000000..6a873672d
--- /dev/null
+++ b/fixincludes/tests/base/sys/ucontext.h
@@ -0,0 +1,16 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/ucontext.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( LINUX_IA64_UCONTEXT_CHECK )
+# define _SC_GR0_OFFSET \
+ __builtin_offsetof (struct sigcontext, sc_gr[0])
+
+#endif /* LINUX_IA64_UCONTEXT_CHECK */
diff --git a/fixincludes/tests/base/sys/va_list.h b/fixincludes/tests/base/sys/va_list.h
new file mode 100644
index 000000000..8c69e2d57
--- /dev/null
+++ b/fixincludes/tests/base/sys/va_list.h
@@ -0,0 +1,22 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/va_list.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( SOLARIS_SYS_VA_LIST_CHECK )
+#ifdef __GNUC__
+typedef __builtin_va_list __va_list;
+#else
+#if defined(__STDC__) && !defined(__ia64)
+typedef void *__va_list;
+#else
+typedef char *__va_list;
+#endif
+#endif
+#endif /* SOLARIS_SYS_VA_LIST_CHECK */
diff --git a/fixincludes/tests/base/sys/wait.h b/fixincludes/tests/base/sys/wait.h
new file mode 100644
index 000000000..556277cc4
--- /dev/null
+++ b/fixincludes/tests/base/sys/wait.h
@@ -0,0 +1,19 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/wait.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( AIX_SYSWAIT_2_CHECK )
+#define WSTOPSIG(__x) (int)(WIFSTOPPED(__x) ? (int)((((unsigned int)__x) >> 8) & 0xff) : -1)
+#endif /* AIX_SYSWAIT_2_CHECK */
+
+
+#if defined( NEXT_WAIT_UNION_CHECK )
+extern pid_d wait(void*);
+#endif /* NEXT_WAIT_UNION_CHECK */
diff --git a/fixincludes/tests/base/testing.h b/fixincludes/tests/base/testing.h
new file mode 100644
index 000000000..43a4ff715
--- /dev/null
+++ b/fixincludes/tests/base/testing.h
@@ -0,0 +1,122 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/testing.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( ALPHA___EXTERN_PREFIX_CHECK )
+#if (defined(__DECC) || defined(__PRAGMA_EXTERN_PREFIX))
+#pragma extern_prefix "_P"
+# if (defined(__DECC) || defined(__PRAGMA_EXTERN_PREFIX))
+# pragma extern_prefix "_E"
+# if !defined(_LIBC_POLLUTION_H_) && (defined(__DECC) || defined(__PRAGMA_EXTERN_PREFIX))
+# pragma extern_prefix ""
+#endif /* ALPHA___EXTERN_PREFIX_CHECK */
+
+
+#if defined( ALPHA_BAD_LVAL_CHECK )
+#pragma extern_prefix "_FOO"
+#define something _FOOsomething
+#define mumble _FOOmumble
+#endif /* ALPHA_BAD_LVAL_CHECK */
+
+
+#if defined( AVOID_WCHAR_T_TYPE_CHECK )
+#ifndef __cplusplus
+typedef unsigned short wchar_t ;
+#endif /* wchar_t
+ type */
+#endif /* AVOID_WCHAR_T_TYPE_CHECK */
+
+
+#if defined( CTRL_QUOTES_DEF_CHECK )
+#define BSD43_CTRL(n, x) ((n<<8)+x)
+
+#endif /* CTRL_QUOTES_DEF_CHECK */
+
+
+#if defined( CTRL_QUOTES_USE_CHECK )
+#define TCTRLFOO BSD43_CTRL('T', 1)
+#endif /* CTRL_QUOTES_USE_CHECK */
+
+
+#if defined( DJGPP_WCHAR_H_CHECK )
+#include <stddef.h>
+#include <sys/djtypes.h>
+extern __DJ_wint_t x;
+
+#endif /* DJGPP_WCHAR_H_CHECK */
+
+
+#if defined( HPUX11_SIZE_T_CHECK )
+#define _hpux_size_t size_t
+ extern int getpwuid_r( char *, _hpux_size_t, struct passwd **);
+
+#endif /* HPUX11_SIZE_T_CHECK */
+
+
+#if defined( IO_QUOTES_DEF_CHECK )
+#define BSD43__IOWR(n, x) ((n<<8)+x)
+#define _IOWN(x,y,t) (_IOC_IN|(((t)&_IOCPARM_MASK)<<16)|(x<<8)|y)
+#define _IO(x,y) (x<<8|y)
+#endif /* IO_QUOTES_DEF_CHECK */
+
+
+#if defined( IO_QUOTES_USE_CHECK )
+#define TIOCFOO BSD43__IOWR('T', 1)
+#define TIOCFOO \
+BSD43__IOWR('T', 1) /* Some are multi-line */
+#endif /* IO_QUOTES_USE_CHECK */
+
+
+#if defined( MACHINE_ANSI_H_VA_LIST_CHECK )
+ # define _BSD_VA_LIST_ __builtin_va_list
+#endif /* MACHINE_ANSI_H_VA_LIST_CHECK */
+
+
+#if defined( MACHINE_NAME_CHECK )
+/* MACH_DIFF: */
+#if defined( i386 ) || defined( sparc ) || defined( vax )
+/* no uniform test, so be careful :-) */
+#endif /* MACHINE_NAME_CHECK */
+
+
+#if defined( STRICT_ANSI_NOT_CHECK )
+#if !defined(__STRICT_ANSI__)
+#if !defined(__STRICT_ANSI__)
+#if !defined(__STRICT_ANSI__)
+#if !defined(__STRICT_ANSI__)/* not std C */
+int foo;
+
+#end-end-end-end-if :-)
+#endif /* STRICT_ANSI_NOT_CHECK */
+
+
+#if defined( STRICT_ANSI_ONLY_CHECK )
+#if defined(__STRICT_ANSI__) /* is std C
+ */
+int foo;
+#endif
+#endif /* STRICT_ANSI_ONLY_CHECK */
+
+
+#if defined( SYSV68_STRING_CHECK )
+extern unsigned int strlen();
+extern int ffs(int);
+extern void
+ *memccpy(),
+ memcpy();
+extern int
+ strcmp(),
+ strncmp();
+extern unsigned int
+ strlen(),
+ strspn();
+extern size_t
+ strlen(), strspn();
+#endif /* SYSV68_STRING_CHECK */
diff --git a/fixincludes/tests/base/tgmath.h b/fixincludes/tests/base/tgmath.h
new file mode 100644
index 000000000..f06dc89a2
--- /dev/null
+++ b/fixincludes/tests/base/tgmath.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/tgmath.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( GLIBC_TGMATH_CHECK )
+# define __floating_type(type) (__builtin_classify_type ((type) 0) == 8 || (__builtin_classify_type ((type) 0) == 9 && __builtin_classify_type (__real__ ((type) 0)) == 8))
+#endif /* GLIBC_TGMATH_CHECK */
diff --git a/fixincludes/tests/base/time.h b/fixincludes/tests/base/time.h
new file mode 100644
index 000000000..cf22e2014
--- /dev/null
+++ b/fixincludes/tests/base/time.h
@@ -0,0 +1,27 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/time.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( VXWORKS_NEEDS_VXTYPES_CHECK )
+unsigned int _clocks_per_sec;
+#endif /* VXWORKS_NEEDS_VXTYPES_CHECK */
+
+
+#if defined( VXWORKS_TIME_CHECK )
+#ifndef __gcc_VOIDFUNCPTR_defined
+#ifdef __cplusplus
+typedef void (*__gcc_VOIDFUNCPTR) (...);
+#else
+typedef void (*__gcc_VOIDFUNCPTR) ();
+#endif
+#define __gcc_VOIDFUNCPTR_defined
+#endif
+#define VOIDFUNCPTR __gcc_VOIDFUNCPTR
+#endif /* VXWORKS_TIME_CHECK */
diff --git a/fixincludes/tests/base/tinfo.h b/fixincludes/tests/base/tinfo.h
new file mode 100644
index 000000000..46bc611e4
--- /dev/null
+++ b/fixincludes/tests/base/tinfo.h
@@ -0,0 +1,16 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/tinfo.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( TINFO_CPLUSPLUS_CHECK )
+#ifdef __cplusplus
+int bogus;
+#endif
+#endif /* TINFO_CPLUSPLUS_CHECK */
diff --git a/fixincludes/tests/base/types/vxTypesBase.h b/fixincludes/tests/base/types/vxTypesBase.h
new file mode 100644
index 000000000..76a9338d9
--- /dev/null
+++ b/fixincludes/tests/base/types/vxTypesBase.h
@@ -0,0 +1,30 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/types/vxTypesBase.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( VXWORKS_GCC_PROBLEM_CHECK )
+#if 1
+#ifndef _GCC_SIZE_T
+#define _GCC_SIZE_T
+typedef unsigned int size_t;
+#endif
+#ifndef _GCC_PTRDIFF_T
+#define _GCC_PTRDIFF_T
+typedef long ptrdiff_t;
+#endif
+#ifndef __cplusplus
+#ifndef _GCC_WCHAR_T
+#define _GCC_WCHAR_T
+typedef unsigned short wchar_t;
+#endif
+#endif
+#endif /* __GNUC_TYPEOF_FEATURE_BROKEN_USE_DEFAULT_UNTIL_FIXED__ */
+
+#endif /* VXWORKS_GCC_PROBLEM_CHECK */
diff --git a/fixincludes/tests/base/unistd.h b/fixincludes/tests/base/unistd.h
new file mode 100644
index 000000000..756451d83
--- /dev/null
+++ b/fixincludes/tests/base/unistd.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/unistd.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( ALPHA_SBRK_CHECK )
+extern void *sbrk(ptrdiff_t increment);
+#endif /* ALPHA_SBRK_CHECK */