diff options
Diffstat (limited to 'gcc/fixinc')
33 files changed, 1855 insertions, 1064 deletions
diff --git a/gcc/fixinc/Makefile.in b/gcc/fixinc/Makefile.in index 88f615da36e..d0dfb0c2f4b 100644 --- a/gcc/fixinc/Makefile.in +++ b/gcc/fixinc/Makefile.in @@ -1,6 +1,6 @@ # Makefile for GNU compilers. # -# Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. +# Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc. #This file is part of GNU CC. @@ -22,8 +22,15 @@ # The makefile built from this file lives in the fixinc subdirectory. # Its purpose is to build the any-platforms fixinc.sh script. +SHELL=/bin/sh + +# 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 > + FL_LIST = $(CFLAGS) $(CPPFLAGS) $(WARN_CFLAGS) -FIXINC_DEFS = -DIN_GCC $(FL_LIST) $(INCLUDES) +FIXINC_DEFS = -DIN_GCC -DHAVE_CONFIG_H $(FL_LIST) $(INCLUDES) # Directory where sources are, from where we are. srcdir = @srcdir@ @@ -78,11 +85,11 @@ twoprocess : test-stamp $(AF) full-stamp : $(ALLOBJ) $(LIBERTY) $(CC) $(FIXINC_DEFS) $(LDFLAGS) -o $(FI) $(ALLOBJ) $(LIBERTY) - touch $@ + $(STAMP) $@ test-stamp : $(TESTOBJ) $(LIBERTY) $(CC) $(FIXINC_DEFS) $(LDFLAGS) -o $(FI) $(TESTOBJ) $(LIBERTY) - touch $@ + $(STAMP) $@ $(AF): $(FIXOBJ) $(LIBERTY) $(CC) $(FIXINC_DEFS) $(LDFLAGS) -o $@ $(FIXOBJ) $(LIBERTY) @@ -115,7 +122,7 @@ maintainer-clean : clean # We still copy the script because we still have alternative scripts. # install-bin : $(TARGETS) - ./fixincl -v + ./fixincl -v < /dev/null @if [ -f ../fixinc.sh ] ; then rm -f ../fixinc.sh || \ mv -f ../fixinc.sh ../fixinc.sh.$$ || exit 1 ; else : ; fi @cp $(srcdir)/fixincl.sh ../fixinc.sh diff --git a/gcc/fixinc/README b/gcc/fixinc/README index c04b3fdda9e..06fe879245e 100644 --- a/gcc/fixinc/README +++ b/gcc/fixinc/README @@ -36,6 +36,9 @@ please, to me: bkorb@gnu.org. Here are the rules for making fixes in the inclhack.def file: +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. :-) @@ -181,6 +184,25 @@ Here are the rules for making fixes in the inclhack.def file: replaced. You may delete text by supplying an empty string for the 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: ================== diff --git a/gcc/fixinc/check.tpl b/gcc/fixinc/check.tpl index de415110863..fd03b3ea609 100644 --- a/gcc/fixinc/check.tpl +++ b/gcc/fixinc/check.tpl @@ -1,4 +1,4 @@ -[= autogen template sh=check.sh =] +[= autogen5 template sh=check.sh =] [= # # This file contanes the shell template to run tests on the fixes @@ -25,86 +25,84 @@ export TARGET_MACHINE DESTDIR SRCDIR FIND_BASE VERBOSE INPUT ORIGDIR rm -rf ${DESTDIR} ${SRCDIR} mkdir ${DESTDIR} ${SRCDIR} - -( cd ${SRCDIR} - set +e - for f in [= - - _EVAL fix.files _stack _join "echo ` - - for f in %s - do case $f in - */* ) echo $f | sed 's;/[^/]*$;;' ;; - esac - done | sort -u - - ` " _printf _shell =] - do - mkdir $f || mkdir -p $f - done ) > /dev/null 2>&1 - +( +[= + (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 =][= +FOR fix =][= - _IF test_text _count 1 > =] -# -# [=hackname=] has [=_EVAL test_text _count=] tests -# -sfile=[= - _IF files _exist =][= - files[0] =][= - _ELSE =]testing.h[= - _ENDIF =][= - _FOR test_text FROM 1 =] -dfile=`dirname $sfile`/[=hackname "#_A-Z" "#-a-z" _tr=]-[=_EVAL _index=].h -cat >> $sfile <<_HACK_EOF_ + 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( [=hackname _up=]_CHECK_[=_EVAL _index=] ) +#if defined( [=(. HACK)=]_CHECK_[=(for-index)=] ) [=test_text=] -#endif /* [=hackname _up=]_CHECK_[=_EVAL _index=] */ +#endif /* [=(. HACK)=]_CHECK_[=(for-index)=] */ _HACK_EOF_ -echo $sfile | ../../fixincl -mv -f $sfile $dfile -[ -f ${DESTDIR}/$sfile ] && mv ${DESTDIR}/$sfile ${DESTDIR}/$dfile[= - /test_text =][= - _ENDIF =][= +echo [=(. sfile)=] | ../../fixincl +mv -f [=(. sfile)=] [=(. dfile)=]-[=(for-index)=].h +[ -f ${DESTDIR}/[=(. sfile)=] ] && [=# + =]mv ${DESTDIR}/[=(. sfile)=] ${DESTDIR}/[=(. dfile)=]-[=(for-index)=].h[= -/fix + ENDFOR test_text =][= + + ENDIF multi-test =][= + +ENDFOR fix =][= -_FOR fix =][= - - _IF test_text _exist ! =][= - _IF replace _exist ! =] -echo No test for [=hackname=] in inc/[= - _IF files _exist =][= - files[0] =][= - _ELSE =]testing.h[= - _ENDIF =][= - _ENDIF =][= - _ELSE =] +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 files _exist =][= + IF (exist? "files") =][= files[0] =][= - _ELSE =]testing.h[= - _ENDIF =] <<_HACK_EOF_ + ELSE =]testing.h[= + ENDIF =] <<_HACK_EOF_ -#if defined( [=hackname _up=]_CHECK ) +#if defined( [=(. HACK)=]_CHECK ) [=test_text=] -#endif /* [=hackname _up=]_CHECK */ +#endif /* [=(. HACK)=]_CHECK */ _HACK_EOF_ -[=_ENDIF =][= +[=ENDIF =][= -/fix +ENDFOR fix =] -find . -type f | sed 's;\./;;' | sort | ../../fixincl +find . -type f | sed 's;^\./;;' | sort | ../../fixincl cd ${DESTDIR} exitok=true @@ -137,7 +135,7 @@ do : else - diff -c $f ${TESTBASE}/$f >&2 || : + diff -u $f ${TESTBASE}/$f >&2 || : exitok=false fi done @@ -173,6 +171,6 @@ else fi $exitok[= -_eval _outfile "chmod +x %s" _printf _shell +(set-writable) =] diff --git a/gcc/fixinc/fixfixes.c b/gcc/fixinc/fixfixes.c index 56b9f5493c7..afdecfc9e08 100644 --- a/gcc/fixinc/fixfixes.c +++ b/gcc/fixinc/fixfixes.c @@ -30,14 +30,6 @@ Here are the rules: This may be useful, for example, if there are interesting strings or pre-compiled regular expressions stored there. - It is also possible to access fix descriptions by using the - index of a known fix, "my_fix_name" for example: - - tFixDesc* p_desc = fixDescList + MY_FIX_NAME_FIXIDX; - tTestDesc* p_tlist = p_desc->p_test_desc; - - regexec (p_tlist->p_test_regex, ...) - = = = = = = = = = = = = = = = = = = = = = = = = = This file is part of GNU CC. diff --git a/gcc/fixinc/fixinc.dgux b/gcc/fixinc/fixinc.dgux index 23f63da0860..d73d4e85a00 100755 --- a/gcc/fixinc/fixinc.dgux +++ b/gcc/fixinc/fixinc.dgux @@ -221,12 +221,4 @@ fi done -if [ x${INSTALL_ASSERT_H} != x ] -then - cd ${ORIG_DIR} - rm -f include/assert.h - cp ${srcdir}/assert.h include/assert.h || exit 1 - chmod a+r include/assert.h -fi - exit 0 diff --git a/gcc/fixinc/fixinc.interix b/gcc/fixinc/fixinc.interix index 42bde423cbe..d0fe4cfba78 100644 --- a/gcc/fixinc/fixinc.interix +++ b/gcc/fixinc/fixinc.interix @@ -162,12 +162,4 @@ done done # for include directory list -if [ x${INSTALL_ASSERT_H} != x ] -then - cd ${ORIG_DIR} - rm -f include/assert.h - cp ${srcdir}/assert.h include/assert.h || exit 1 - chmod a+r include/assert.h -fi - exit 0 diff --git a/gcc/fixinc/fixinc.ptx b/gcc/fixinc/fixinc.ptx index 700a725bd35..b4f92689981 100644 --- a/gcc/fixinc/fixinc.ptx +++ b/gcc/fixinc/fixinc.ptx @@ -263,12 +263,4 @@ fi done -if [ x${INSTALL_ASSERT_H} != x ] -then - cd ${ORIG_DIR} - rm -f include/assert.h - cp ${srcdir}/assert.h include/assert.h || exit 1 - chmod a+r include/assert.h -fi - exit 0 diff --git a/gcc/fixinc/fixinc.svr4 b/gcc/fixinc/fixinc.svr4 index bc2eab1f45c..4bb69fc523a 100755 --- a/gcc/fixinc/fixinc.svr4 +++ b/gcc/fixinc/fixinc.svr4 @@ -1806,12 +1806,4 @@ chmod a+r ${LIB}/sys/byteorder.h done -if [ x${INSTALL_ASSERT_H} != x ] -then - cd ${ORIG_DIR} - rm -f include/assert.h - cp ${srcdir}/assert.h include/assert.h || exit 1 - chmod a+r include/assert.h -fi - exit 0 diff --git a/gcc/fixinc/fixinc.winnt b/gcc/fixinc/fixinc.winnt index 323b79a93b8..8fd6e53331f 100644 --- a/gcc/fixinc/fixinc.winnt +++ b/gcc/fixinc/fixinc.winnt @@ -229,12 +229,4 @@ for file in $files; do rmdir $LIB/$file > NUL 2>&1 done -if [ x${INSTALL_ASSERT_H} != x ] -then - cd ${ORIG_DIR} - rm -f include/assert.h - cp ${srcdir}/assert.h include/assert.h || exit 1 - chmod a+r include/assert.h -fi - exit 0 diff --git a/gcc/fixinc/fixinc.wrap b/gcc/fixinc/fixinc.wrap index 46318967c70..e242d5aa5cf 100755 --- a/gcc/fixinc/fixinc.wrap +++ b/gcc/fixinc/fixinc.wrap @@ -133,12 +133,4 @@ fi done -if [ x${INSTALL_ASSERT_H} != x ] -then - cd ${ORIG_DIR} - rm -f include/assert.h - cp ${srcdir}/assert.h include/assert.h || exit 1 - chmod a+r include/assert.h -fi - exit 0 diff --git a/gcc/fixinc/fixincl.c b/gcc/fixinc/fixincl.c index bd134255b8f..a1746af5269 100644 --- a/gcc/fixinc/fixincl.c +++ b/gcc/fixinc/fixincl.c @@ -29,6 +29,9 @@ Boston, MA 02111-1307, USA. */ #endif #include <signal.h> +#if ! defined( SIGCHLD ) && defined( SIGCLD ) +# define SIGCHLD SIGCLD +#endif #ifndef SEPARATE_FIX_PROC #include "server.h" #endif @@ -67,7 +70,7 @@ typedef enum { te_verbose verbose_level = VERB_PROGRESS; int have_tty = 0; -#define VLEVEL(l) (verbose_level >= l) +#define VLEVEL(l) ((unsigned int) verbose_level >= (unsigned int) l) #define NOT_SILENT VLEVEL(VERB_FIXES) pid_t process_chain_head = (pid_t) -1; @@ -217,12 +220,14 @@ initialize ( argc, argv ) char** argv; { 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" -#ifdef __STDC__ "each of these must be defined:\n" -#define _ENV_(v,m,n,t) "\t" n " - " t "\n" -ENV_TABLE -#undef _ENV_ +# define _ENV_(v,m,n,t) "\t" n " - " t "\n" + ENV_TABLE +# undef _ENV_ #endif ; @@ -249,6 +254,12 @@ ENV_TABLE 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 + #define _ENV_(v,m,n,t) { tSCC var[] = n; \ v = getenv (var); if (m && (v == NULL)) { \ fprintf (stderr, var_not_found, var); \ @@ -908,7 +919,7 @@ fix_with_system (p_fixd, pz_fix_file, pz_file_source, pz_temp_file) /* * Now add the fix number and file names that may be needed */ - sprintf (pz_scan, "%ld %s %s %s", p_fixd - fixDescList, + sprintf (pz_scan, "%ld \'%s\' \'%s\' \'%s\'", p_fixd - fixDescList, pz_fix_file, pz_file_source, pz_temp_file); } else /* NOT an "internal" fix: */ @@ -927,7 +938,7 @@ fix_with_system (p_fixd, pz_fix_file, pz_file_source, pz_temp_file) 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"; + tSCC z_cmd_fmt[] = " \'%s\' | cat > \'%s\'"; #else /* Don't use positional formatting arguments because some lame-o implementations cannot cope :-(. */ @@ -1250,7 +1261,7 @@ test_for_changes (read_fd) { FILE *in_fp = fdopen (read_fd, "r"); FILE *out_fp = (FILE *) NULL; - char *pz_cmp = pz_curr_data; + unsigned char *pz_cmp = (unsigned char*)pz_curr_data; #ifdef DO_STATS fixed_ct++; @@ -1262,6 +1273,7 @@ test_for_changes (read_fd) 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. @@ -1280,8 +1292,9 @@ test_for_changes (read_fd) altered_ct++; #endif /* IF there are matched data, write the matched part now. */ - if (pz_cmp != pz_curr_data) - fwrite (pz_curr_data, (size_t)(pz_cmp - pz_curr_data), 1, out_fp); + 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); diff --git a/gcc/fixinc/fixincl.sh b/gcc/fixinc/fixincl.sh index 18b5fb24651..b84d7014d97 100755 --- a/gcc/fixinc/fixincl.sh +++ b/gcc/fixinc/fixincl.sh @@ -97,6 +97,13 @@ esac ORIGDIR=`${PWDCMD}` export ORIGDIR FIXINCL=${ORIGDIR}/fixinc/fixincl +if [ ! -x $FIXINCL ] ; then + FIXINCL=${ORIGDIR}/fixincl + if [ ! -x $FIXINCL ] ; then + echo "Cannot find working fixincl" >&2 + exit 1 + fi +fi export FIXINCL # Make LIB absolute only if needed to avoid problems with the amd. @@ -470,11 +477,3 @@ then echo fixincludes is done ; fi done # # # # # # # # # # # # # # # # # # # # # # - -if [ x${INSTALL_ASSERT_H} != x ] && [ -f ${srcdir}/assert.h ] -then - cd $ORIGDIR - rm -f include/assert.h - cp ${srcdir}/assert.h include/assert.h || exit 1 - chmod a+r include/assert.h -fi diff --git a/gcc/fixinc/fixincl.tpl b/gcc/fixinc/fixincl.tpl index 780bdb8d2cb..e8aefd05dfe 100644 --- a/gcc/fixinc/fixincl.tpl +++ b/gcc/fixinc/fixincl.tpl @@ -1,4 +1,4 @@ -[= autogen template -*- Mode: C -*- +[= AutoGen5 Template -*- Mode: C -*- x=fixincl.x =] /* * DO NOT EDIT THIS FILE - it has been generated @@ -7,171 +7,168 @@ x=fixincl.x =] * files which are fixed to work correctly with ANSI C and placed in a * directory that GNU C will search. * - * This file contains [=_eval fix _count =] fixup descriptions. + * This file contains [=(count "fix")=] fixup descriptions. * * See README for more information. * * inclhack copyright (c) 1998, 1999, 2000, 2001 * The Free Software Foundation, Inc. * -[=_eval inclhack "# * " _gpl=] + [=(define re-ct 0) (define max-mach 0) (define ct 0) + (define HACK "") (define Hack "") (define tmp "") + (gpl "inclhack" " * ")=] */ -[= _SETENV re_ct 0 =][= _SETENV max_mach 0 =][= +[= -_FOR fix =] +FOR fix =] /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of [=hackname _cap=] 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. =] -#define [=hackname _up #_FIXIDX + #%-32s _printf=] [=_eval _index=] -tSCC z[=hackname _cap=]Name[] = - [=hackname _krstr=]; +tSCC z[=(. Hack)=]Name[] = + "[=hackname=]"; /* * File name selection pattern */[= - _IF files _exist=] -tSCC z[=hackname _cap=]List[] = - "[=_FOR files =]|[=files=][=/files=]|";[= + IF (exist? "files")=] +tSCC z[=(. Hack)=]List[] = + "[=FOR files =]|[=files=][=ENDFOR=]|";[= - _ELSE =] -#define z[=hackname _cap=]List (char*)NULL[= - _ENDIF "files _exist" =] + ELSE =] +#define z[=(. Hack)=]List (char*)NULL[= + ENDIF (exist? "files") =] /* * Machine/OS name selection pattern */[= - _IF mach _exist=] -tSCC* apz[=hackname _cap=]Machs[] = {[= - _SETENV this_mach 0 =][= + IF (exist? "mach")=] +tSCC* apz[=(. Hack)=]Machs[] = {[= + (set! ct 0) =][= - _FOR mach =] - [=mach _krstr=],[= - _SETENV this_mach mach _len this_mach _env _val 5 + + - =][= /mach=] + FOR mach =] + [= + (set! tmp (get "mach")) + (set! ct (+ ct (string-length tmp) 5)) + (kr-string tmp)=],[= + ENDFOR=] (const char*)NULL };[= - _SETENV max_mach _mark this_mach _env _val max_mach _env _val _max =][= + (if (> ct max-mach) (set! max-mach ct)) =][= - _ELSE =] -#define apz[=hackname _cap=]Machs (const char**)NULL[= - _ENDIF "files _exist" =][= + ELSE =] +#define apz[=(. Hack)=]Machs (const char**)NULL[= + ENDIF (exist? "files") =][= - _IF select _exist=] + IF (exist? "select")=] /* * content selection pattern - do fix if pattern found */[= - _FOR select =] -tSCC z[=hackname _cap=]Select[=_eval _index=][] = - [=select _krstr=];[= - /select =][= - _ENDIF =][= + FOR select =] +tSCC z[=(. Hack)=]Select[=(for-index)=][] = + [=(kr-string (get "select"))=];[= + ENDFOR select =][= + ENDIF =][= - _IF bypass _exist=] + IF (exist? "bypass")=] /* * content bypass pattern - skip fix if pattern found */[= - _FOR bypass =] -tSCC z[=hackname _cap=]Bypass[=_eval _index=][] = - [=bypass _krstr=];[= - /bypass =][= - _ENDIF =][= + FOR bypass =] +tSCC z[=(. Hack)=]Bypass[=(for-index)=][] = + [=(kr-string (get "bypass"))=];[= + ENDFOR bypass =][= + ENDIF =][= - _IF test _exist=] + IF (exist? "test")=] /* * perform the 'test' shell command - do fix on success */[= - _FOR test =] -tSCC z[=hackname _cap=]Test[=_eval _index=][] = - [=test _krstr=];[= - /test =][= - _ENDIF =][= + FOR test =] +tSCC z[=(. Hack)=]Test[=(for-index)=][] = + [=(kr-string (get "test"))=];[= + ENDFOR =][= + ENDIF =][= - _IF c_test _exist=] + IF (exist? "c_test")=] /* * perform the C function call test */[= - _FOR c_test =] -tSCC z[=hackname _cap=]FTst[=_eval _index=][] = "[=c_test=]";[= - /c_test =][= - _ENDIF =][= + 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"))) -# Build the array of test descriptions for this fix: =][= - - _IF select _exist - bypass _exist | - test _exist | - c_test _exist | + (= 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 =][= -#define [=hackname _up =]_TEST_CT [= - _eval select _count - bypass _count + - test _count + - c_test _count + =][= -_SETENV re_ct - re_ct _env _val - select _count + - bypass _count + =] -static tTestDesc a[=hackname _cap=]Tests[] = {[= - - _FOR test =] - { TT_TEST, z[=hackname _cap=]Test[=_eval _index=], 0 /* unused */ },[= - /test =][= - - _FOR c_test =] - { TT_FUNCTION, z[=hackname _cap=]FTst[=_eval _index=], 0 /* unused */ },[= - /c_test =][= - - _FOR bypass =] - { TT_NEGREP, z[=hackname _cap=]Bypass[=_eval _index=], (regex_t*)NULL },[= - /bypass =][= - - _FOR select =] - { TT_EGREP, z[=hackname _cap=]Select[=_eval _index=], (regex_t*)NULL },[= - /select =] };[= - _ELSE =] -#define [=hackname _up=]_TEST_CT 0 -#define a[=hackname _cap=]Tests (tTestDesc*)NULL[= - _ENDIF =] + 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 [=hackname _cap=] + * Fix Command Arguments for [=(. Hack)=] */ -static const char* apz[=hackname _cap=]Patch[] = {[= - _IF sed _exist =] "sed"[= - _FOR sed=], - "-e", [=sed _krstr=][= - /sed=],[= +static const char* apz[=(. Hack)=]Patch[] = {[= + IF (exist? "sed")=] "sed"[= + FOR sed=], + "-e", [=(kr-string (get "sed"))=][= + ENDFOR sed=],[= - _ELIF shell _exist =] "sh", "-c", - [=shell _krstr=],[= + ELIF (exist? "shell")=] "sh", "-c", + [=(kr-string (get "shell"))=],[= - _ELIF c_fix _exist =] - [= - c_fix _krstr=],[= + ELIF (exist? "c_fix")=] + [=(kr-string (get "c_fix"))=],[= - _FOR c_fix_arg =] - [=c_fix_arg _krstr=],[= - /c_fix_arg =][= + FOR c_fix_arg =] + [=(kr-string (get "c_fix_arg"))=],[= + ENDFOR c_fix_arg =][= - _ELIF replace _len =] -[=replace _krstr=],[= + ELIF (> (len "replace") 0) =] +[=(kr-string (get "replace"))=],[= - _ENDIF=] + ENDIF=] (char*)NULL }; -[=/fix=] +[=ENDFOR fix=] /* * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -181,25 +178,39 @@ static const char* apz[=hackname _cap=]Patch[] = {[= 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 [= _eval re_ct _env =] -#define MACH_LIST_SIZE_LIMIT [= _eval max_mach _env _val 128 + =] -#define FIX_COUNT [= _eval fix _count =] +#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" =] - { z[=hackname _cap=]Name, z[=hackname _cap=]List, - apz[=hackname _cap=]Machs, - [=hackname _up=]_TEST_CT, [= - _IF not_machine _exist =]FD_MACH_IFNOT[= - _ELSE =]FD_MACH_ONLY[= - _ENDIF =][= - _IF shell _exist =] | FD_SHELL_SCRIPT[= - _ELIF c_fix _exist =] | FD_SUBROUTINE[= - _ELIF replace _exist =] | FD_REPLACEMENT[= - _ENDIF =], - a[=hackname _cap=]Tests, apz[=hackname _cap=]Patch, 0 }[= - -/fix=] +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/gcc/fixinc/fixincl.x b/gcc/fixinc/fixincl.x index f0d2ce47abd..675e6755c47 100644 --- a/gcc/fixinc/fixincl.x +++ b/gcc/fixinc/fixincl.x @@ -5,14 +5,14 @@ * files which are fixed to work correctly with ANSI C and placed in a * directory that GNU C will search. * - * This file contains 131 fixup descriptions. + * This file contains 143 fixup descriptions. * * See README for more information. * * inclhack copyright (c) 1998, 1999, 2000, 2001 * The Free Software Foundation, Inc. * - * inclhack is free software. + * inclhack 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 @@ -32,43 +32,33 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Aaa_Ki_Iface fix + * Description of Aaa_Bad_Fixes fix */ -#define AAA_KI_IFACE_FIXIDX 0 -tSCC zAaa_Ki_IfaceName[] = - "AAA_ki_iface"; +tSCC zAaa_Bad_FixesName[] = + "AAA_bad_fixes"; /* * File name selection pattern */ -tSCC zAaa_Ki_IfaceList[] = - "|sys/ki_iface.h|"; +tSCC zAaa_Bad_FixesList[] = + "|sundev/ipi_error.h|"; /* * Machine/OS name selection pattern */ -#define apzAaa_Ki_IfaceMachs (const char**)NULL - -/* - * content selection pattern - do fix if pattern found - */ -tSCC zAaa_Ki_IfaceSelect0[] = - "These definitions are for HP Internal developers"; - -#define AAA_KI_IFACE_TEST_CT 1 -static tTestDesc aAaa_Ki_IfaceTests[] = { - { TT_EGREP, zAaa_Ki_IfaceSelect0, (regex_t*)NULL }, }; +#define apzAaa_Bad_FixesMachs (const char**)NULL +#define AAA_BAD_FIXES_TEST_CT 0 +#define aAaa_Bad_FixesTests (tTestDesc*)NULL /* - * Fix Command Arguments for Aaa_Ki_Iface + * Fix Command Arguments for Aaa_Bad_Fixes */ -static const char* apzAaa_Ki_IfacePatch[] = { +static const char* apzAaa_Bad_FixesPatch[] = { (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * Description of Aaa_Ki fix */ -#define AAA_KI_FIXIDX 1 tSCC zAaa_KiName[] = "AAA_ki"; @@ -102,7 +92,6 @@ static const char* apzAaa_KiPatch[] = { * * Description of Aaa_Ki_Calls fix */ -#define AAA_KI_CALLS_FIXIDX 2 tSCC zAaa_Ki_CallsName[] = "AAA_ki_calls"; @@ -136,7 +125,6 @@ static const char* apzAaa_Ki_CallsPatch[] = { * * Description of Aaa_Ki_Defs fix */ -#define AAA_KI_DEFS_FIXIDX 3 tSCC zAaa_Ki_DefsName[] = "AAA_ki_defs"; @@ -168,35 +156,74 @@ static const char* apzAaa_Ki_DefsPatch[] = { /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Aaa_Bad_Fixes fix + * Description of Aaa_Ki_Iface fix */ -#define AAA_BAD_FIXES_FIXIDX 4 -tSCC zAaa_Bad_FixesName[] = - "AAA_bad_fixes"; +tSCC zAaa_Ki_IfaceName[] = + "AAA_ki_iface"; /* * File name selection pattern */ -tSCC zAaa_Bad_FixesList[] = - "|sundev/ipi_error.h|"; +tSCC zAaa_Ki_IfaceList[] = + "|sys/ki_iface.h|"; /* * Machine/OS name selection pattern */ -#define apzAaa_Bad_FixesMachs (const char**)NULL -#define AAA_BAD_FIXES_TEST_CT 0 -#define aAaa_Bad_FixesTests (tTestDesc*)NULL +#define apzAaa_Ki_IfaceMachs (const char**)NULL /* - * Fix Command Arguments for Aaa_Bad_Fixes + * content selection pattern - do fix if pattern found */ -static const char* apzAaa_Bad_FixesPatch[] = { +tSCC zAaa_Ki_IfaceSelect0[] = + "These definitions are for HP Internal developers"; + +#define AAA_KI_IFACE_TEST_CT 1 +static tTestDesc aAaa_Ki_IfaceTests[] = { + { TT_EGREP, zAaa_Ki_IfaceSelect0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Aaa_Ki_Iface + */ +static const char* apzAaa_Ki_IfacePatch[] = { + (char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * + * Description of Aaa_Standards fix + */ +tSCC zAaa_StandardsName[] = + "AAA_standards"; + +/* + * File name selection pattern + */ +tSCC zAaa_StandardsList[] = + "|standards.h|"; +/* + * Machine/OS name selection pattern + */ +#define apzAaa_StandardsMachs (const char**)NULL + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zAaa_StandardsSelect0[] = + "GNU and MIPS C compilers define __STDC__ differently"; + +#define AAA_STANDARDS_TEST_CT 1 +static tTestDesc aAaa_StandardsTests[] = { + { TT_EGREP, zAaa_StandardsSelect0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Aaa_Standards + */ +static const char* apzAaa_StandardsPatch[] = { (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * Description of Aaa_Time fix */ -#define AAA_TIME_FIXIDX 5 tSCC zAaa_TimeName[] = "AAA_time"; @@ -230,7 +257,6 @@ static const char* apzAaa_TimePatch[] = { * * Description of Aab_Dgux_Int_Varargs fix */ -#define AAB_DGUX_INT_VARARGS_FIXIDX 6 tSCC zAab_Dgux_Int_VarargsName[] = "AAB_dgux_int_varargs"; @@ -251,64 +277,48 @@ tSCC zAab_Dgux_Int_VarargsList[] = */ static const char* apzAab_Dgux_Int_VarargsPatch[] = { "#ifndef __INT_VARARGS_H\n\ -#define __INT_VARARGS_H\n\ -\n\ +#define __INT_VARARGS_H\n\n\ /************************************************************************/\n\ /* _INT_VARARGS.H - Define the common stuff for varargs/stdarg/stdio. */\n\ -/************************************************************************/\n\ -\n\ +/************************************************************************/\n\n\ /*\n\ ** This file is a DG internal header. Never include this\n\ ** file directly.\n\ -*/\n\ -\n\ +*/\n\n\ #ifndef ___int_features_h\n\ -#include <sys/_int_features.h>\n\ -#endif\n\ -\n\ +#include <sys/_int_features.h>\n\ +#endif\n\n\ #if !(defined(_VA_LIST) || defined(_VA_LIST_))\n\ #define _VA_LIST\n\ -#define _VA_LIST_\n\ -\n\ -#ifdef __LINT__\n\ -\n\ +#define _VA_LIST_\n\n\ +#ifdef __LINT__\n\n\ #ifdef __STDC__\n\ typedef void * va_list;\n\ #else\n\ typedef char * va_list;\n\ -#endif\n\ -\n\ +#endif\n\n\ #else\n\ -#if _M88K_ANY\n\ -\n\ -#if defined(__DCC__)\n\ -\n\ +#if _M88K_ANY\n\n\ +#if defined(__DCC__)\n\n\ typedef struct {\n\ int next_arg;\n\ int *mem_ptr;\n\ int *reg_ptr;\n\ -} va_list;\n\ -\n\ -#else /* ! defined(__DCC__) */\n\ -\n\ +} va_list;\n\n\ +#else /* ! defined(__DCC__) */\n\n\ typedef struct {\n\ int __va_arg; /* argument number */\n\ int *__va_stk; /* start of args passed on stack */\n\ int *__va_reg; /* start of args passed in regs */\n\ -} va_list;\n\ -\n\ -#endif /* ! defined(__DCC__) */\n\ -\n\ -#elif _IX86_ANY\n\ -\n\ +} va_list;\n\n\ +#endif /* ! defined(__DCC__) */\n\n\ +#elif _IX86_ANY\n\n\ #if defined(__GNUC__) || defined(__STDC__)\n\ typedef void * va_list;\n\ #else\n\ typedef char * va_list;\n\ -#endif\n\ -\n\ -#endif /* _IX86_ANY */\n\ -\n\ +#endif\n\n\ +#endif /* _IX86_ANY */\n\n\ #endif /* __LINT__ */\n\ #endif /* !(defined(_VA_LIST) || defined(_VA_LIST_)) */\n\ #endif /* #ifndef __INT_VARARGS_H */\n", @@ -318,7 +328,6 @@ typedef char * va_list;\n\ * * Description of Aab_Fd_Zero_Asm_Posix_Types_H fix */ -#define AAB_FD_ZERO_ASM_POSIX_TYPES_H_FIXIDX 7 tSCC zAab_Fd_Zero_Asm_Posix_Types_HName[] = "AAB_fd_zero_asm_posix_types_h"; @@ -352,8 +361,7 @@ static const char* apzAab_Fd_Zero_Asm_Posix_Types_HPatch[] = { 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\ + #include_next <asm/posix_types.h>\n\n\ #if defined(__FD_ZERO) && !defined(__GLIBC__)\n\ #undef __FD_ZERO\n\ #define __FD_ZERO(fdsetp) \\\n\ @@ -364,8 +372,7 @@ static const char* apzAab_Fd_Zero_Asm_Posix_Types_HPatch[] = { \t\t\t: \"a\" (0), \"0\" (__FDSET_LONGS), \\\n\ \t\t\t \"1\" ((__kernel_fd_set *) (fdsetp)) :\"memory\"); \\\n\ } while (0)\n\ -#endif\n\ -\n\ +#endif\n\n\ #define _POSIX_TYPES_H_WRAPPER\n\ #endif /* _POSIX_TYPES_H_WRAPPER */\n", (char*)NULL }; @@ -374,7 +381,6 @@ static const char* apzAab_Fd_Zero_Asm_Posix_Types_HPatch[] = { * * Description of Aab_Fd_Zero_Gnu_Types_H fix */ -#define AAB_FD_ZERO_GNU_TYPES_H_FIXIDX 8 tSCC zAab_Fd_Zero_Gnu_Types_HName[] = "AAB_fd_zero_gnu_types_h"; @@ -399,8 +405,7 @@ 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\ + #include_next <gnu/types.h>\n\n\ #if defined(__FD_ZERO) && !defined(__GLIBC__)\n\ #undef __FD_ZERO\n\ # define __FD_ZERO(fdsetp) \\\n\ @@ -411,8 +416,7 @@ static const char* apzAab_Fd_Zero_Gnu_Types_HPatch[] = { \t: \"a\" (0), \"0\" (__FDSET_LONGS), \\\n\ \t\t \"1\" ((__fd_set *) (fdsetp)) :\"memory\"); \\\n\ } while (0)\n\ -#endif\n\ -\n\ +#endif\n\n\ #define _TYPES_H_WRAPPER\n\ #endif /* _TYPES_H_WRAPPER */\n", (char*)NULL }; @@ -421,7 +425,6 @@ static const char* apzAab_Fd_Zero_Gnu_Types_HPatch[] = { * * Description of Aab_Fd_Zero_Selectbits_H fix */ -#define AAB_FD_ZERO_SELECTBITS_H_FIXIDX 9 tSCC zAab_Fd_Zero_Selectbits_HName[] = "AAB_fd_zero_selectbits_h"; @@ -446,8 +449,7 @@ 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\ + #include_next <selectbits.h>\n\n\ #if defined(__FD_ZERO) && defined(__GLIBC__) \\\n\ \t&& defined(__GLIBC_MINOR__) && __GLIBC__ == 2 \\\n\ \t&& __GLIBC_MINOR__ == 0\n\ @@ -462,8 +464,7 @@ static const char* apzAab_Fd_Zero_Selectbits_HPatch[] = { \"1\" ((__fd_mask *) (fdsetp)) \\\n\ : \"memory\"); \\\n\ } while (0)\n\ -#endif\n\ -\n\ +#endif\n\n\ #define _SELECTBITS_H_WRAPPER\n\ #endif /* _SELECTBITS_H_WRAPPER */\n", (char*)NULL }; @@ -472,7 +473,6 @@ static const char* apzAab_Fd_Zero_Selectbits_HPatch[] = { * * Description of Aab_Sun_Memcpy fix */ -#define AAB_SUN_MEMCPY_FIXIDX 10 tSCC zAab_Sun_MemcpyName[] = "AAB_sun_memcpy"; @@ -502,8 +502,7 @@ static tTestDesc aAab_Sun_MemcpyTests[] = { static const char* apzAab_Sun_MemcpyPatch[] = { "/* This file was generated by fixincludes */\n\ #ifndef __memory_h__\n\ -#define __memory_h__\n\ -\n\ +#define __memory_h__\n\n\ #ifdef __STDC__\n\ extern void *memccpy();\n\ extern void *memchr();\n\ @@ -514,10 +513,8 @@ 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 /* __STDC__ */\n\n\ +extern int memcmp();\n\n\ #endif /* __memory_h__ */\n", (char*)NULL }; @@ -525,7 +522,6 @@ extern int memcmp();\n\ * * Description of Aab_Svr4_Replace_Byteorder fix */ -#define AAB_SVR4_REPLACE_BYTEORDER_FIXIDX 11 tSCC zAab_Svr4_Replace_ByteorderName[] = "AAB_svr4_replace_byteorder"; @@ -553,142 +549,106 @@ tSCC* apzAab_Svr4_Replace_ByteorderMachs[] = { */ static const char* apzAab_Svr4_Replace_ByteorderPatch[] = { "#ifndef _SYS_BYTEORDER_H\n\ -#define _SYS_BYTEORDER_H\n\ -\n\ +#define _SYS_BYTEORDER_H\n\n\ /* Functions to convert `short' and `long' quantities from host byte order\n\ - to (internet) network byte order (i.e. big-endian).\n\ -\n\ - Written by Ron Guilmette (rfg@ncd.com).\n\ -\n\ - This isn't actually used by GCC. It is installed by fixinc.svr4.\n\ -\n\ - For big-endian machines these functions are essentially no-ops.\n\ -\n\ + to (internet) network byte order (i.e. big-endian).\n\n\ + Written by Ron Guilmette (rfg@ncd.com).\n\n\ + This isn't actually used by GCC. It is installed by fixinc.svr4.\n\n\ + For big-endian machines these functions are essentially no-ops.\n\n\ For little-endian machines, we define the functions using specialized\n\ - asm sequences in cases where doing so yields better code (e.g. i386). */\n\ -\n\ + asm sequences in cases where doing so yields better code (e.g. i386). */\n\n\ #if !defined (__GNUC__) && !defined (__GNUG__)\n\ #error You lose! This file is only useful with GNU compilers.\n\ -#endif\n\ -\n\ +#endif\n\n\ #ifndef __BYTE_ORDER__\n\ /* Byte order defines. These are as defined on UnixWare 1.1, but with\n\ double underscores added at the front and back. */\n\ #define __LITTLE_ENDIAN__ 1234\n\ #define __BIG_ENDIAN__ 4321\n\ #define __PDP_ENDIAN__ 3412\n\ -#endif\n\ -\n\ +#endif\n\n\ #ifdef __STDC__\n\ static __inline__ unsigned long htonl (unsigned long);\n\ static __inline__ unsigned short htons (unsigned int);\n\ static __inline__ unsigned long ntohl (unsigned long);\n\ static __inline__ unsigned short ntohs (unsigned int);\n\ -#endif /* defined (__STDC__) */\n\ -\n\ -#if defined (__i386__)\n\ -\n\ +#endif /* defined (__STDC__) */\n\n\ +#if defined (__i386__)\n\n\ #ifndef __BYTE_ORDER__\n\ #define __BYTE_ORDER__ __LITTLE_ENDIAN__\n\ -#endif\n\ -\n\ -/* Convert a host long to a network long. */\n\ -\n\ +#endif\n\n\ +/* Convert a host long to a network long. */\n\n\ /* We must use a new-style function definition, so that this will also\n\ be valid for C++. */\n\ static __inline__ unsigned long\n\ htonl (unsigned long __arg)\n\ {\n\ - register unsigned long __result;\n\ -\n\ + register unsigned long __result;\n\n\ __asm__ (\"xchg%B0 %b0,%h0\n\ \tror%L0 $16,%0\n\ \txchg%B0 %b0,%h0\" : \"=q\" (__result) : \"0\" (__arg));\n\ return __result;\n\ -}\n\ -\n\ -/* Convert a host short to a network short. */\n\ -\n\ +}\n\n\ +/* Convert a host short to a network short. */\n\n\ static __inline__ unsigned short\n\ htons (unsigned int __arg)\n\ {\n\ - register unsigned short __result;\n\ -\n\ + register unsigned short __result;\n\n\ __asm__ (\"xchg%B0 %b0,%h0\" : \"=q\" (__result) : \"0\" (__arg));\n\ return __result;\n\ -}\n\ -\n\ +}\n\n\ #elif ((defined (__i860__) && !defined (__i860_big_endian__))\t\\\n\ || defined (__ns32k__) || defined (__vax__)\t\t\\\n\ - || defined (__spur__) || defined (__arm__))\n\ -\n\ + || defined (__spur__) || defined (__arm__))\n\n\ #ifndef __BYTE_ORDER__\n\ #define __BYTE_ORDER__ __LITTLE_ENDIAN__\n\ -#endif\n\ -\n\ +#endif\n\n\ /* For other little-endian machines, using C code is just as efficient as\n\ - using assembly code. */\n\ -\n\ -/* Convert a host long to a network long. */\n\ -\n\ + using assembly code. */\n\n\ +/* Convert a host long to a network long. */\n\n\ static __inline__ unsigned long\n\ htonl (unsigned long __arg)\n\ {\n\ - register unsigned long __result;\n\ -\n\ + register unsigned long __result;\n\n\ __result = (__arg >> 24) & 0x000000ff;\n\ __result |= (__arg >> 8) & 0x0000ff00;\n\ __result |= (__arg << 8) & 0x00ff0000;\n\ __result |= (__arg << 24) & 0xff000000;\n\ return __result;\n\ -}\n\ -\n\ -/* Convert a host short to a network short. */\n\ -\n\ +}\n\n\ +/* Convert a host short to a network short. */\n\n\ static __inline__ unsigned short\n\ htons (unsigned int __arg)\n\ {\n\ - register unsigned short __result;\n\ -\n\ + register unsigned short __result;\n\n\ __result = (__arg << 8) & 0xff00;\n\ __result |= (__arg >> 8) & 0x00ff;\n\ return __result;\n\ -}\n\ -\n\ -#else /* must be a big-endian machine */\n\ -\n\ +}\n\n\ +#else /* must be a big-endian machine */\n\n\ #ifndef __BYTE_ORDER__\n\ #define __BYTE_ORDER__ __BIG_ENDIAN__\n\ -#endif\n\ -\n\ -/* Convert a host long to a network long. */\n\ -\n\ +#endif\n\n\ +/* Convert a host long to a network long. */\n\n\ static __inline__ unsigned long\n\ htonl (unsigned long __arg)\n\ {\n\ return __arg;\n\ -}\n\ -\n\ -/* Convert a host short to a network short. */\n\ -\n\ +}\n\n\ +/* Convert a host short to a network short. */\n\n\ static __inline__ unsigned short\n\ htons (unsigned int __arg)\n\ {\n\ return __arg;\n\ -}\n\ -\n\ -#endif /* big-endian */\n\ -\n\ -/* Convert a network long to a host long. */\n\ -\n\ +}\n\n\ +#endif /* big-endian */\n\n\ +/* Convert a network long to a host long. */\n\n\ static __inline__ unsigned long\n\ ntohl (unsigned long __arg)\n\ {\n\ return htonl (__arg);\n\ -}\n\ -\n\ -/* Convert a network short to a host short. */\n\ -\n\ +}\n\n\ +/* Convert a network short to a host short. */\n\n\ static __inline__ unsigned short\n\ ntohs (unsigned int __arg)\n\ {\n\ @@ -701,7 +661,6 @@ ntohs (unsigned int __arg)\n\ * * Description of Aab_Ultrix_Ansi_Compat fix */ -#define AAB_ULTRIX_ANSI_COMPAT_FIXIDX 12 tSCC zAab_Ultrix_Ansi_CompatName[] = "AAB_ultrix_ansi_compat"; @@ -736,7 +695,6 @@ static const char* apzAab_Ultrix_Ansi_CompatPatch[] = { * * Description of Aab_Ultrix_Limits fix */ -#define AAB_ULTRIX_LIMITS_FIXIDX 13 tSCC zAab_Ultrix_LimitsName[] = "AAB_ultrix_limits"; @@ -758,9 +716,7 @@ tSCC* apzAab_Ultrix_LimitsMachs[] = { * Fix Command Arguments for Aab_Ultrix_Limits */ static const char* apzAab_Ultrix_LimitsPatch[] = { -"/*\t@(#)limits.h\t\t\t\t*/\n\ -/* This file was generated by fixincludes\t*/\n\ -#ifndef _LIMITS_INCLUDED\n\ +"#ifndef _LIMITS_INCLUDED\n\ #define _LIMITS_INCLUDED\n\ #include <sys/limits.h>\n\ #endif /* _LIMITS_INCLUDED */\n", @@ -770,7 +726,6 @@ static const char* apzAab_Ultrix_LimitsPatch[] = { * * Description of Aab_Ultrix_Memory fix */ -#define AAB_ULTRIX_MEMORY_FIXIDX 14 tSCC zAab_Ultrix_MemoryName[] = "AAB_ultrix_memory"; @@ -792,9 +747,7 @@ tSCC* apzAab_Ultrix_MemoryMachs[] = { * Fix Command Arguments for Aab_Ultrix_Memory */ static const char* apzAab_Ultrix_MemoryPatch[] = { -"/*\t@(#)memory.h\t\t\t\t*/\n\ -/* This file was generated by fixincludes\t*/\n\ -#ifndef _MEMORY_INCLUDED\n\ +"#ifndef _MEMORY_INCLUDED\n\ #define _MEMORY_INCLUDED\n\ #include <strings.h>\n\ #endif /* _MEMORY_INCLUDED */\n", @@ -804,7 +757,6 @@ static const char* apzAab_Ultrix_MemoryPatch[] = { * * Description of Aab_Ultrix_String fix */ -#define AAB_ULTRIX_STRING_FIXIDX 15 tSCC zAab_Ultrix_StringName[] = "AAB_ultrix_string"; @@ -826,9 +778,7 @@ tSCC* apzAab_Ultrix_StringMachs[] = { * Fix Command Arguments for Aab_Ultrix_String */ static const char* apzAab_Ultrix_StringPatch[] = { -"/*\t@(#)string.h\t\t\t\t*/\n\ -/* This file was generated by fixincludes\t*/\n\ -#ifndef _STRING_INCLUDED\n\ +"#ifndef _STRING_INCLUDED\n\ #define _STRING_INCLUDED\n\ #include <strings.h>\n\ #endif /* _STRING_INCLUDED */\n", @@ -838,7 +788,6 @@ static const char* apzAab_Ultrix_StringPatch[] = { * * Description of Aix_Pthread fix */ -#define AIX_PTHREAD_FIXIDX 16 tSCC zAix_PthreadName[] = "aix_pthread"; @@ -876,7 +825,6 @@ static const char* apzAix_PthreadPatch[] = { * * Description of Aix_Sysmachine fix */ -#define AIX_SYSMACHINE_FIXIDX 17 tSCC zAix_SysmachineName[] = "aix_sysmachine"; @@ -912,7 +860,6 @@ static const char* apzAix_SysmachinePatch[] = { * * Description of Aix_Syswait fix */ -#define AIX_SYSWAIT_FIXIDX 18 tSCC zAix_SyswaitName[] = "aix_syswait"; @@ -952,7 +899,6 @@ static const char* apzAix_SyswaitPatch[] = { * * Description of Aix_Volatile fix */ -#define AIX_VOLATILE_FIXIDX 19 tSCC zAix_VolatileName[] = "aix_volatile"; @@ -986,9 +932,43 @@ static const char* apzAix_VolatilePatch[] = { /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Alpha___Assert fix + */ +tSCC zAlpha___AssertName[] = + "alpha___assert"; + +/* + * File name selection pattern + */ +tSCC zAlpha___AssertList[] = + "|assert.h|"; +/* + * 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_Getopt fix */ -#define ALPHA_GETOPT_FIXIDX 20 tSCC zAlpha_GetoptName[] = "alpha_getopt"; @@ -1024,7 +1004,6 @@ static const char* apzAlpha_GetoptPatch[] = { * * Description of Alpha_Parens fix */ -#define ALPHA_PARENS_FIXIDX 21 tSCC zAlpha_ParensName[] = "alpha_parens"; @@ -1060,7 +1039,6 @@ static const char* apzAlpha_ParensPatch[] = { * * Description of Alpha_Sbrk fix */ -#define ALPHA_SBRK_FIXIDX 22 tSCC zAlpha_SbrkName[] = "alpha_sbrk"; @@ -1096,7 +1074,6 @@ static const char* apzAlpha_SbrkPatch[] = { * * Description of Arm_Norcroft_Hint fix */ -#define ARM_NORCROFT_HINT_FIXIDX 23 tSCC zArm_Norcroft_HintName[] = "arm_norcroft_hint"; @@ -1132,7 +1109,6 @@ static const char* apzArm_Norcroft_HintPatch[] = { * * Description of Arm_Wchar fix */ -#define ARM_WCHAR_FIXIDX 24 tSCC zArm_WcharName[] = "arm_wchar"; @@ -1169,7 +1145,6 @@ static const char* apzArm_WcharPatch[] = { * * Description of Aux_Asm fix */ -#define AUX_ASM_FIXIDX 25 tSCC zAux_AsmName[] = "aux_asm"; @@ -1205,7 +1180,6 @@ static const char* apzAux_AsmPatch[] = { * * Description of Avoid_Bool_Define fix */ -#define AVOID_BOOL_DEFINE_FIXIDX 26 tSCC zAvoid_Bool_DefineName[] = "avoid_bool_define"; @@ -1251,7 +1225,6 @@ static const char* apzAvoid_Bool_DefinePatch[] = { * * Description of Avoid_Bool_Type fix */ -#define AVOID_BOOL_TYPE_FIXIDX 27 tSCC zAvoid_Bool_TypeName[] = "avoid_bool_type"; @@ -1296,7 +1269,6 @@ static const char* apzAvoid_Bool_TypePatch[] = { * * Description of Avoid_Wchar_T_Type fix */ -#define AVOID_WCHAR_T_TYPE_FIXIDX 28 tSCC zAvoid_Wchar_T_TypeName[] = "avoid_wchar_t_type"; @@ -1333,7 +1305,6 @@ static const char* apzAvoid_Wchar_T_TypePatch[] = { * * Description of Bad_Lval fix */ -#define BAD_LVAL_FIXIDX 29 tSCC zBad_LvalName[] = "bad_lval"; @@ -1368,7 +1339,6 @@ static const char* apzBad_LvalPatch[] = { "sed", * * Description of Bad_Struct_Term fix */ -#define BAD_STRUCT_TERM_FIXIDX 30 tSCC zBad_Struct_TermName[] = "bad_struct_term"; @@ -1404,7 +1374,6 @@ static const char* apzBad_Struct_TermPatch[] = { * * Description of Badquote fix */ -#define BADQUOTE_FIXIDX 31 tSCC zBadquoteName[] = "badquote"; @@ -1440,7 +1409,6 @@ static const char* apzBadquotePatch[] = { * * Description of Broken_Assert_Stdio fix */ -#define BROKEN_ASSERT_STDIO_FIXIDX 32 tSCC zBroken_Assert_StdioName[] = "broken_assert_stdio"; @@ -1483,7 +1451,6 @@ static const char* apzBroken_Assert_StdioPatch[] = { * * Description of Broken_Assert_Stdlib fix */ -#define BROKEN_ASSERT_STDLIB_FIXIDX 33 tSCC zBroken_Assert_StdlibName[] = "broken_assert_stdlib"; @@ -1528,7 +1495,6 @@ static const char* apzBroken_Assert_StdlibPatch[] = { * * Description of Broken_Cabs fix */ -#define BROKEN_CABS_FIXIDX 34 tSCC zBroken_CabsName[] = "broken_cabs"; @@ -1565,7 +1531,6 @@ static const char* apzBroken_CabsPatch[] = { * * Description of Ctrl_Quotes_Def fix */ -#define CTRL_QUOTES_DEF_FIXIDX 35 tSCC zCtrl_Quotes_DefName[] = "ctrl_quotes_def"; @@ -1600,7 +1565,6 @@ static const char* apzCtrl_Quotes_DefPatch[] = { * * Description of Ctrl_Quotes_Use fix */ -#define CTRL_QUOTES_USE_FIXIDX 36 tSCC zCtrl_Quotes_UseName[] = "ctrl_quotes_use"; @@ -1635,7 +1599,6 @@ static const char* apzCtrl_Quotes_UsePatch[] = { * * Description of Cxx_Unready fix */ -#define CXX_UNREADY_FIXIDX 37 tSCC zCxx_UnreadyName[] = "cxx_unready"; @@ -1683,7 +1646,6 @@ extern \"C\" {\n\ * * Description of Dec_Intern_Asm fix */ -#define DEC_INTERN_ASM_FIXIDX 38 tSCC zDec_Intern_AsmName[] = "dec_intern_asm"; @@ -1711,9 +1673,51 @@ static const char* apzDec_Intern_AsmPatch[] = { "sed", /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * 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 */ -#define ECD_CURSOR_FIXIDX 39 tSCC zEcd_CursorName[] = "ecd_cursor"; @@ -1749,7 +1753,6 @@ static const char* apzEcd_CursorPatch[] = { * * Description of Fix_Header_Breakage fix */ -#define FIX_HEADER_BREAKAGE_FIXIDX 40 tSCC zFix_Header_BreakageName[] = "fix_header_breakage"; @@ -1785,9 +1788,93 @@ static const char* apzFix_Header_BreakagePatch[] = { /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Freebsd_Gcc3_Breakage fix + */ +tSCC zFreebsd_Gcc3_BreakageName[] = + "freebsd_gcc3_breakage"; + +/* + * File name selection pattern + */ +tSCC zFreebsd_Gcc3_BreakageList[] = + "|sys/cdefs.h|"; +/* + * 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 Gnu_Types fix + */ +tSCC zGnu_TypesName[] = + "gnu_types"; + +/* + * File name selection pattern + */ +tSCC zGnu_TypesList[] = + "|sys/types.h|stdlib.h|sys/stdtypes.h|stddef.h|memory.h|unistd.h|"; +/* + * Machine/OS name selection pattern + */ +#define apzGnu_TypesMachs (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 */ -#define HP_INLINE_FIXIDX 41 tSCC zHp_InlineName[] = "hp_inline"; @@ -1824,7 +1911,6 @@ static const char* apzHp_InlinePatch[] = { * * Description of Hp_Sysfile fix */ -#define HP_SYSFILE_FIXIDX 42 tSCC zHp_SysfileName[] = "hp_sysfile"; @@ -1859,9 +1945,87 @@ static const char* apzHp_SysfilePatch[] = { /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * 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|math.h|"; +/* + * 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|"; +/* + * 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 Hpux11_Fabsf fix */ -#define HPUX11_FABSF_FIXIDX 43 tSCC zHpux11_FabsfName[] = "hpux11_fabsf"; @@ -1906,7 +2070,6 @@ static const char* apzHpux11_FabsfPatch[] = { * * Description of Hpux11_Uint32_C fix */ -#define HPUX11_UINT32_C_FIXIDX 44 tSCC zHpux11_Uint32_CName[] = "hpux11_uint32_c"; @@ -1940,9 +2103,43 @@ static const char* apzHpux11_Uint32_CPatch[] = { /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Hpux11_Vsnprintf fix + */ +tSCC zHpux11_VsnprintfName[] = + "hpux11_vsnprintf"; + +/* + * File name selection pattern + */ +tSCC zHpux11_VsnprintfList[] = + "|stdio.h|"; +/* + * 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 \\*, __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", + "extern int vsnprintf(char *, __size_t, const char *, __va_list);", + (char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Hpux8_Bogus_Inlines fix */ -#define HPUX8_BOGUS_INLINES_FIXIDX 45 tSCC zHpux8_Bogus_InlinesName[] = "hpux8_bogus_inlines"; @@ -1978,81 +2175,130 @@ static const char* apzHpux8_Bogus_InlinesPatch[] = { "sed", /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Int_Abort_Free_And_Exit fix + * Description of Hpux_Maxint fix */ -#define INT_ABORT_FREE_AND_EXIT_FIXIDX 46 -tSCC zInt_Abort_Free_And_ExitName[] = - "int_abort_free_and_exit"; +tSCC zHpux_MaxintName[] = + "hpux_maxint"; /* * File name selection pattern */ -tSCC zInt_Abort_Free_And_ExitList[] = - "|stdlib.h|"; +tSCC zHpux_MaxintList[] = + "|sys/param.h|values.h|"; /* * Machine/OS name selection pattern */ -#define apzInt_Abort_Free_And_ExitMachs (const char**)NULL +#define apzHpux_MaxintMachs (const char**)NULL /* * content selection pattern - do fix if pattern found */ -tSCC zInt_Abort_Free_And_ExitSelect0[] = - "int[ \t]+(abort|free|exit)[ \t]*\\("; +tSCC zHpux_MaxintSelect0[] = + "^#[ \t]*define[ \t]+MAXINT[ \t]"; -#define INT_ABORT_FREE_AND_EXIT_TEST_CT 1 -static tTestDesc aInt_Abort_Free_And_ExitTests[] = { - { TT_EGREP, zInt_Abort_Free_And_ExitSelect0, (regex_t*)NULL }, }; +/* + * content bypass pattern - skip fix if pattern found + */ +tSCC zHpux_MaxintBypass0[] = + "^#[ \t]*ifndef[ \t]+MAXINT"; /* - * Fix Command Arguments for Int_Abort_Free_And_Exit + * perform the 'test' shell command - do fix on success */ -static const char* apzInt_Abort_Free_And_ExitPatch[] = { +tSCC zHpux_MaxintTest0[] = + "-n \"`egrep '#[ \t]*define[ \t]+MAXINT[ \t]' sys/param.h`\""; + +#define HPUX_MAXINT_TEST_CT 3 +static tTestDesc aHpux_MaxintTests[] = { + { TT_TEST, zHpux_MaxintTest0, 0 /* unused */ }, + { TT_NEGREP, zHpux_MaxintBypass0, (regex_t*)NULL }, + { TT_EGREP, zHpux_MaxintSelect0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Hpux_Maxint + */ +static const char* apzHpux_MaxintPatch[] = { "format", - "void\t%1(", + "#ifndef MAXINT\n\ +%0\n\ +#endif", + "^#[ \t]*define[ \t]+MAXINT[ \t].*", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Isc_Omits_With_Stdc fix + * Description of Hpux_Systime fix */ -#define ISC_OMITS_WITH_STDC_FIXIDX 47 -tSCC zIsc_Omits_With_StdcName[] = - "isc_omits_with_stdc"; +tSCC zHpux_SystimeName[] = + "hpux_systime"; /* * File name selection pattern */ -tSCC zIsc_Omits_With_StdcList[] = - "|stdio.h|math.h|ctype.h|sys/limits.h|sys/fcntl.h|sys/dirent.h|"; +tSCC zHpux_SystimeList[] = + "|sys/time.h|"; /* * Machine/OS name selection pattern */ -#define apzIsc_Omits_With_StdcMachs (const char**)NULL +#define apzHpux_SystimeMachs (const char**)NULL /* * content selection pattern - do fix if pattern found */ -tSCC zIsc_Omits_With_StdcSelect0[] = - "!defined\\(__STDC__\\) && !defined\\(_POSIX_SOURCE\\)"; +tSCC zHpux_SystimeSelect0[] = + "^extern struct sigevent;"; -#define ISC_OMITS_WITH_STDC_TEST_CT 1 -static tTestDesc aIsc_Omits_With_StdcTests[] = { - { TT_EGREP, zIsc_Omits_With_StdcSelect0, (regex_t*)NULL }, }; +#define HPUX_SYSTIME_TEST_CT 1 +static tTestDesc aHpux_SystimeTests[] = { + { TT_EGREP, zHpux_SystimeSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Isc_Omits_With_Stdc + * Fix Command Arguments for Hpux_Systime */ -static const char* apzIsc_Omits_With_StdcPatch[] = { +static const char* apzHpux_SystimePatch[] = { "format", - "!defined(_POSIX_SOURCE)", + "struct sigevent;", + (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|"; +/* + * 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]*\\("; + +#define INT_ABORT_FREE_AND_EXIT_TEST_CT 1 +static tTestDesc aInt_Abort_Free_And_ExitTests[] = { + { 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 */ -#define IO_QUOTES_DEF_FIXIDX 48 tSCC zIo_Quotes_DefName[] = "io_quotes_def"; @@ -2087,7 +2333,6 @@ static const char* apzIo_Quotes_DefPatch[] = { * * Description of Io_Quotes_Use fix */ -#define IO_QUOTES_USE_FIXIDX 49 tSCC zIo_Quotes_UseName[] = "io_quotes_use"; @@ -2120,98 +2365,8 @@ static const char* apzIo_Quotes_UsePatch[] = { /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Hpux_Maxint fix - */ -#define HPUX_MAXINT_FIXIDX 50 -tSCC zHpux_MaxintName[] = - "hpux_maxint"; - -/* - * File name selection pattern - */ -tSCC zHpux_MaxintList[] = - "|sys/param.h|values.h|"; -/* - * Machine/OS name selection pattern - */ -#define apzHpux_MaxintMachs (const char**)NULL - -/* - * content selection pattern - do fix if pattern found - */ -tSCC zHpux_MaxintSelect0[] = - "^#[ \t]*define[ \t]+MAXINT[ \t]"; - -/* - * content bypass pattern - skip fix if pattern found - */ -tSCC zHpux_MaxintBypass0[] = - "^#[ \t]*ifndef[ \t]+MAXINT"; - -/* - * perform the 'test' shell command - do fix on success - */ -tSCC zHpux_MaxintTest0[] = - "-n \"`egrep '#[ \t]*define[ \t]+MAXINT[ \t]' sys/param.h`\""; - -#define HPUX_MAXINT_TEST_CT 3 -static tTestDesc aHpux_MaxintTests[] = { - { TT_TEST, zHpux_MaxintTest0, 0 /* unused */ }, - { TT_NEGREP, zHpux_MaxintBypass0, (regex_t*)NULL }, - { TT_EGREP, zHpux_MaxintSelect0, (regex_t*)NULL }, }; - -/* - * Fix Command Arguments for Hpux_Maxint - */ -static const char* apzHpux_MaxintPatch[] = { - "format", - "#ifndef MAXINT\n\ -%0\n\ -#endif", - "^#[ \t]*define[ \t]+MAXINT[ \t].*", - (char*)NULL }; - -/* * * * * * * * * * * * * * * * * * * * * * * * * * - * - * Description of Hpux_Systime fix - */ -#define HPUX_SYSTIME_FIXIDX 51 -tSCC zHpux_SystimeName[] = - "hpux_systime"; - -/* - * File name selection pattern - */ -tSCC zHpux_SystimeList[] = - "|sys/time.h|"; -/* - * 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 Ip_Missing_Semi fix */ -#define IP_MISSING_SEMI_FIXIDX 52 tSCC zIp_Missing_SemiName[] = "ip_missing_semi"; @@ -2246,7 +2401,6 @@ static const char* apzIp_Missing_SemiPatch[] = { "sed", * * Description of Irix_Asm_Apostrophe fix */ -#define IRIX_ASM_APOSTROPHE_FIXIDX 53 tSCC zIrix_Asm_ApostropheName[] = "irix_asm_apostrophe"; @@ -2283,7 +2437,6 @@ static const char* apzIrix_Asm_ApostrophePatch[] = { * * Description of Irix_Limits_Const fix */ -#define IRIX_LIMITS_CONST_FIXIDX 54 tSCC zIrix_Limits_ConstName[] = "irix_limits_const"; @@ -2291,7 +2444,7 @@ tSCC zIrix_Limits_ConstName[] = * File name selection pattern */ tSCC zIrix_Limits_ConstList[] = - "|limits.h|"; + "|fixinc-test-limits.h|limits.h|"; /* * Machine/OS name selection pattern */ @@ -2317,9 +2470,43 @@ static const char* apzIrix_Limits_ConstPatch[] = { /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * 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|"; +/* + * 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[] = + "(printf\\(.*), /\\* 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", + "%1, __gnuc_va_list", + (char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Isc_Fmod fix */ -#define ISC_FMOD_FIXIDX 55 tSCC zIsc_FmodName[] = "isc_fmod"; @@ -2353,9 +2540,43 @@ static const char* apzIsc_FmodPatch[] = { /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Isc_Omits_With_Stdc fix + */ +tSCC zIsc_Omits_With_StdcName[] = + "isc_omits_with_stdc"; + +/* + * File name selection pattern + */ +tSCC zIsc_Omits_With_StdcList[] = + "|stdio.h|math.h|ctype.h|sys/limits.h|sys/fcntl.h|sys/dirent.h|"; +/* + * Machine/OS name selection pattern + */ +#define apzIsc_Omits_With_StdcMachs (const char**)NULL + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zIsc_Omits_With_StdcSelect0[] = + "!defined\\(__STDC__\\) && !defined\\(_POSIX_SOURCE\\)"; + +#define ISC_OMITS_WITH_STDC_TEST_CT 1 +static tTestDesc aIsc_Omits_With_StdcTests[] = { + { TT_EGREP, zIsc_Omits_With_StdcSelect0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Isc_Omits_With_Stdc + */ +static const char* apzIsc_Omits_With_StdcPatch[] = { + "format", + "!defined(_POSIX_SOURCE)", + (char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Kandr_Concat fix */ -#define KANDR_CONCAT_FIXIDX 56 tSCC zKandr_ConcatName[] = "kandr_concat"; @@ -2391,7 +2612,6 @@ static const char* apzKandr_ConcatPatch[] = { * * Description of Libc1_Ifdefd_Memx fix */ -#define LIBC1_IFDEFD_MEMX_FIXIDX 57 tSCC zLibc1_Ifdefd_MemxName[] = "libc1_ifdefd_memx"; @@ -2440,7 +2660,6 @@ extern [a-z_]+ mem.*(\n\ * * Description of Limits_Ifndefs fix */ -#define LIMITS_IFNDEFS_FIXIDX 58 tSCC zLimits_IfndefsName[] = "limits_ifndefs"; @@ -2479,7 +2698,6 @@ static const char* apzLimits_IfndefsPatch[] = { * * Description of Lynx_Void_Int fix */ -#define LYNX_VOID_INT_FIXIDX 59 tSCC zLynx_Void_IntName[] = "lynx_void_int"; @@ -2515,7 +2733,6 @@ static const char* apzLynx_Void_IntPatch[] = { * * Description of Lynxos_Fcntl_Proto fix */ -#define LYNXOS_FCNTL_PROTO_FIXIDX 60 tSCC zLynxos_Fcntl_ProtoName[] = "lynxos_fcntl_proto"; @@ -2552,7 +2769,6 @@ static const char* apzLynxos_Fcntl_ProtoPatch[] = { * * Description of M88k_Bad_Hypot_Opt fix */ -#define M88K_BAD_HYPOT_OPT_FIXIDX 61 tSCC zM88k_Bad_Hypot_OptName[] = "m88k_bad_hypot_opt"; @@ -2601,7 +2817,6 @@ static __inline__ double fake_hypot (x, y)\n\ * * Description of M88k_Bad_S_If fix */ -#define M88K_BAD_S_IF_FIXIDX 62 tSCC zM88k_Bad_S_IfName[] = "m88k_bad_s_if"; @@ -2640,7 +2855,6 @@ static const char* apzM88k_Bad_S_IfPatch[] = { * * Description of M88k_Multi_Incl fix */ -#define M88K_MULTI_INCL_FIXIDX 63 tSCC zM88k_Multi_InclName[] = "m88k_multi_incl"; @@ -2677,7 +2891,6 @@ static const char* apzM88k_Multi_InclPatch[] = { * * Description of Machine_Ansi_H_Va_List fix */ -#define MACHINE_ANSI_H_VA_LIST_FIXIDX 64 tSCC zMachine_Ansi_H_Va_ListName[] = "machine_ansi_h_va_list"; @@ -2720,7 +2933,6 @@ static const char* apzMachine_Ansi_H_Va_ListPatch[] = { * * Description of Machine_Name fix */ -#define MACHINE_NAME_FIXIDX 65 tSCC zMachine_NameName[] = "machine_name"; @@ -2753,7 +2965,6 @@ static const char* apzMachine_NamePatch[] = { * * Description of Math_Exception fix */ -#define MATH_EXCEPTION_FIXIDX 66 tSCC zMath_ExceptionName[] = "math_exception"; @@ -2801,7 +3012,6 @@ static const char* apzMath_ExceptionPatch[] = { * * Description of Math_Huge_Val_From_Dbl_Max fix */ -#define MATH_HUGE_VAL_FROM_DBL_MAX_FIXIDX 67 tSCC zMath_Huge_Val_From_Dbl_MaxName[] = "math_huge_val_from_dbl_max"; @@ -2836,8 +3046,7 @@ static tTestDesc aMath_Huge_Val_From_Dbl_MaxTests[] = { * 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\ + "\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\ @@ -2848,7 +3057,6 @@ static const char* apzMath_Huge_Val_From_Dbl_MaxPatch[] = { "sh", "-c", * * Description of Math_Huge_Val_Ifndef fix */ -#define MATH_HUGE_VAL_IFNDEF_FIXIDX 68 tSCC zMath_Huge_Val_IfndefName[] = "math_huge_val_ifndef"; @@ -2885,9 +3093,43 @@ static const char* apzMath_Huge_Val_IfndefPatch[] = { /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Nested_Auth_Des fix + */ +tSCC zNested_Auth_DesName[] = + "nested_auth_des"; + +/* + * File name selection pattern + */ +tSCC zNested_Auth_DesList[] = + "|rpc/rpc.h|"; +/* + * 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 Nested_Motorola fix */ -#define NESTED_MOTOROLA_FIXIDX 69 tSCC zNested_MotorolaName[] = "nested_motorola"; @@ -2925,7 +3167,6 @@ static const char* apzNested_MotorolaPatch[] = { "sed", * * Description of Nested_Sys_Limits fix */ -#define NESTED_SYS_LIMITS_FIXIDX 70 tSCC zNested_Sys_LimitsName[] = "nested_sys_limits"; @@ -2959,45 +3200,8 @@ static const char* apzNested_Sys_LimitsPatch[] = { "sed", /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Nested_Auth_Des fix - */ -#define NESTED_AUTH_DES_FIXIDX 71 -tSCC zNested_Auth_DesName[] = - "nested_auth_des"; - -/* - * File name selection pattern - */ -tSCC zNested_Auth_DesList[] = - "|rpc/rpc.h|"; -/* - * 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 News_Os_Recursion fix */ -#define NEWS_OS_RECURSION_FIXIDX 72 tSCC zNews_Os_RecursionName[] = "news_os_recursion"; @@ -3035,7 +3239,6 @@ static const char* apzNews_Os_RecursionPatch[] = { * * Description of Next_Math_Prefix fix */ -#define NEXT_MATH_PREFIX_FIXIDX 73 tSCC zNext_Math_PrefixName[] = "next_math_prefix"; @@ -3072,7 +3275,6 @@ static const char* apzNext_Math_PrefixPatch[] = { * * Description of Next_Template fix */ -#define NEXT_TEMPLATE_FIXIDX 74 tSCC zNext_TemplateName[] = "next_template"; @@ -3109,7 +3311,6 @@ static const char* apzNext_TemplatePatch[] = { * * Description of Next_Volitile fix */ -#define NEXT_VOLITILE_FIXIDX 75 tSCC zNext_VolitileName[] = "next_volitile"; @@ -3146,7 +3347,6 @@ static const char* apzNext_VolitilePatch[] = { * * Description of Next_Wait_Union fix */ -#define NEXT_WAIT_UNION_FIXIDX 76 tSCC zNext_Wait_UnionName[] = "next_wait_union"; @@ -3182,7 +3382,6 @@ static const char* apzNext_Wait_UnionPatch[] = { * * Description of Nodeent_Syntax fix */ -#define NODEENT_SYNTAX_FIXIDX 77 tSCC zNodeent_SyntaxName[] = "nodeent_syntax"; @@ -3218,7 +3417,6 @@ static const char* apzNodeent_SyntaxPatch[] = { * * Description of Osf_Namespace_A fix */ -#define OSF_NAMESPACE_A_FIXIDX 78 tSCC zOsf_Namespace_AName[] = "osf_namespace_a"; @@ -3264,7 +3462,6 @@ static const char* apzOsf_Namespace_APatch[] = { * * Description of Osf_Namespace_C fix */ -#define OSF_NAMESPACE_C_FIXIDX 79 tSCC zOsf_Namespace_CName[] = "osf_namespace_c"; @@ -3319,7 +3516,6 @@ typedef __regmatch_t\tregmatch_t;", * * Description of Pthread_Page_Size fix */ -#define PTHREAD_PAGE_SIZE_FIXIDX 80 tSCC zPthread_Page_SizeName[] = "pthread_page_size"; @@ -3355,7 +3551,6 @@ static const char* apzPthread_Page_SizePatch[] = { * * Description of Read_Ret_Type fix */ -#define READ_RET_TYPE_FIXIDX 81 tSCC zRead_Ret_TypeName[] = "read_ret_type"; @@ -3393,7 +3588,6 @@ static const char* apzRead_Ret_TypePatch[] = { * * Description of Rs6000_Double fix */ -#define RS6000_DOUBLE_FIXIDX 82 tSCC zRs6000_DoubleName[] = "rs6000_double"; @@ -3432,7 +3626,6 @@ static const char* apzRs6000_DoublePatch[] = { * * Description of Rs6000_Fchmod fix */ -#define RS6000_FCHMOD_FIXIDX 83 tSCC zRs6000_FchmodName[] = "rs6000_fchmod"; @@ -3468,7 +3661,6 @@ static const char* apzRs6000_FchmodPatch[] = { * * Description of Rs6000_Param fix */ -#define RS6000_PARAM_FIXIDX 84 tSCC zRs6000_ParamName[] = "rs6000_param"; @@ -3504,7 +3696,6 @@ static const char* apzRs6000_ParamPatch[] = { * * Description of Sco_Static_Func fix */ -#define SCO_STATIC_FUNC_FIXIDX 85 tSCC zSco_Static_FuncName[] = "sco_static_func"; @@ -3546,85 +3737,85 @@ extern \"C\" {\\\n\ /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Sco_Strict_Ansi fix + * Description of Sco_Utime fix */ -#define SCO_STRICT_ANSI_FIXIDX 86 -tSCC zSco_Strict_AnsiName[] = - "sco_strict_ansi"; +tSCC zSco_UtimeName[] = + "sco_utime"; /* * File name selection pattern */ -#define zSco_Strict_AnsiList (char*)NULL +tSCC zSco_UtimeList[] = + "|sys/times.h|"; /* * Machine/OS name selection pattern */ -tSCC* apzSco_Strict_AnsiMachs[] = { - "i?86-*-sco3.2*", +tSCC* apzSco_UtimeMachs[] = { + "i?86-*-sco3.2v4*", (const char*)NULL }; /* * content selection pattern - do fix if pattern found */ -tSCC zSco_Strict_AnsiSelect0[] = - "^[ \t]*#[ \t]*if.*!__STDC__"; +tSCC zSco_UtimeSelect0[] = + "\\(const char \\*, struct utimbuf \\*\\);"; -#define SCO_STRICT_ANSI_TEST_CT 1 -static tTestDesc aSco_Strict_AnsiTests[] = { - { TT_EGREP, zSco_Strict_AnsiSelect0, (regex_t*)NULL }, }; +#define SCO_UTIME_TEST_CT 1 +static tTestDesc aSco_UtimeTests[] = { + { TT_EGREP, zSco_UtimeSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Sco_Strict_Ansi + * Fix Command Arguments for Sco_Utime */ -static const char* apzSco_Strict_AnsiPatch[] = { +static const char* apzSco_UtimePatch[] = { "format", - "%1defined(__STRICT_ANSI__)%2", - "^([ \t]*#[ \t]*if[ \t].*!)__STDC__(.*)", + "(const char *, const struct utimbuf *);", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Sco_Utime fix + * Description of Solaris_Mutex_Init fix */ -#define SCO_UTIME_FIXIDX 87 -tSCC zSco_UtimeName[] = - "sco_utime"; +tSCC zSolaris_Mutex_InitName[] = + "solaris_mutex_init"; /* * File name selection pattern */ -tSCC zSco_UtimeList[] = - "|sys/times.h|"; +tSCC zSolaris_Mutex_InitList[] = + "|pthread.h|"; /* * Machine/OS name selection pattern */ -tSCC* apzSco_UtimeMachs[] = { - "i?86-*-sco3.2v4*", - (const char*)NULL }; +#define apzSolaris_Mutex_InitMachs (const char**)NULL /* * content selection pattern - do fix if pattern found */ -tSCC zSco_UtimeSelect0[] = - "\\(const char \\*, struct utimbuf \\*\\);"; +tSCC zSolaris_Mutex_InitSelect0[] = + "@\\(#\\)pthread.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI"; -#define SCO_UTIME_TEST_CT 1 -static tTestDesc aSco_UtimeTests[] = { - { TT_EGREP, zSco_UtimeSelect0, (regex_t*)NULL }, }; +#define SOLARIS_MUTEX_INIT_TEST_CT 1 +static tTestDesc aSolaris_Mutex_InitTests[] = { + { TT_EGREP, zSolaris_Mutex_InitSelect0, (regex_t*)NULL }, }; /* - * Fix Command Arguments for Sco_Utime + * Fix Command Arguments for Solaris_Mutex_Init */ -static const char* apzSco_UtimePatch[] = { +static const char* apzSolaris_Mutex_InitPatch[] = { "format", - "(const char *, const struct utimbuf *);", + "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n\ +%0\n\ +#else\n\ +%1, {0}}%3\n\ +#endif", + "(^#define[ \t]+PTHREAD_(MUTEX|COND)_INITIALIZER[ \t]+{.*),[ \t]*0}(|[ \t].*)$", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * Description of Statsswtch fix */ -#define STATSSWTCH_FIXIDX 88 tSCC zStatsswtchName[] = "statsswtch"; @@ -3660,7 +3851,6 @@ static const char* apzStatsswtchPatch[] = { * * Description of Stdio_Stdarg_H fix */ -#define STDIO_STDARG_H_FIXIDX 89 tSCC zStdio_Stdarg_HName[] = "stdio_stdarg_h"; @@ -3697,7 +3887,6 @@ static const char* apzStdio_Stdarg_HPatch[] = { * * Description of Stdio_Va_List fix */ -#define STDIO_VA_LIST_FIXIDX 90 tSCC zStdio_Va_ListName[] = "stdio_va_list"; @@ -3740,9 +3929,129 @@ s@_Va_LIST@_VA_LIST@", /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * 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)(.*)"; + +/* + * perform the C function call test + */ +tSCC zStrict_Ansi_NotFTst0[] = "stdc_0_in_system_headers"; + +#define STRICT_ANSI_NOT_TEST_CT 2 +static tTestDesc aStrict_Ansi_NotTests[] = { + { TT_FUNCTION, zStrict_Ansi_NotFTst0, 0 /* unused */ }, + { 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__)%3", + (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|limits.h|stdio.h|signal.h|stdlib.h|time.h|"; +/* + * 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(]*)(__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__)%3", + (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__)%3", + (char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Struct_File fix */ -#define STRUCT_FILE_FIXIDX 91 tSCC zStruct_FileName[] = "struct_file"; @@ -3779,7 +4088,6 @@ static const char* apzStruct_FilePatch[] = { * * Description of Struct_Sockaddr fix */ -#define STRUCT_SOCKADDR_FIXIDX 92 tSCC zStruct_SockaddrName[] = "struct_sockaddr"; @@ -3823,7 +4131,6 @@ static const char* apzStruct_SockaddrPatch[] = { * * Description of Sun_Auth_Proto fix */ -#define SUN_AUTH_PROTO_FIXIDX 93 tSCC zSun_Auth_ProtoName[] = "sun_auth_proto"; @@ -3864,7 +4171,6 @@ static const char* apzSun_Auth_ProtoPatch[] = { * * Description of Sun_Bogus_Ifdef fix */ -#define SUN_BOGUS_IFDEF_FIXIDX 94 tSCC zSun_Bogus_IfdefName[] = "sun_bogus_ifdef"; @@ -3900,7 +4206,6 @@ static const char* apzSun_Bogus_IfdefPatch[] = { * * Description of Sun_Catmacro fix */ -#define SUN_CATMACRO_FIXIDX 95 tSCC zSun_CatmacroName[] = "sun_catmacro"; @@ -3940,7 +4245,6 @@ static const char* apzSun_CatmacroPatch[] = { * * Description of Sun_Malloc fix */ -#define SUN_MALLOC_FIXIDX 96 tSCC zSun_MallocName[] = "sun_malloc"; @@ -3971,7 +4275,6 @@ static const char* apzSun_MallocPatch[] = { "sed", * * Description of Sun_Rusers_Semi fix */ -#define SUN_RUSERS_SEMI_FIXIDX 97 tSCC zSun_Rusers_SemiName[] = "sun_rusers_semi"; @@ -4006,7 +4309,6 @@ static const char* apzSun_Rusers_SemiPatch[] = { "sed", * * Description of Sun_Signal fix */ -#define SUN_SIGNAL_FIXIDX 98 tSCC zSun_SignalName[] = "sun_signal"; @@ -4046,7 +4348,6 @@ void\t(*signal(...))(...);\n\ * * Description of Sunos_Matherr_Decl fix */ -#define SUNOS_MATHERR_DECL_FIXIDX 99 tSCC zSunos_Matherr_DeclName[] = "sunos_matherr_decl"; @@ -4089,7 +4390,6 @@ static const char* apzSunos_Matherr_DeclPatch[] = { * * Description of Sunos_Strlen fix */ -#define SUNOS_STRLEN_FIXIDX 100 tSCC zSunos_StrlenName[] = "sunos_strlen"; @@ -4125,7 +4425,6 @@ static const char* apzSunos_StrlenPatch[] = { * * Description of Svr4__P fix */ -#define SVR4__P_FIXIDX 101 tSCC zSvr4__PName[] = "svr4__p"; @@ -4163,7 +4462,6 @@ static const char* apzSvr4__PPatch[] = { * * Description of Svr4_Getcwd fix */ -#define SVR4_GETCWD_FIXIDX 102 tSCC zSvr4_GetcwdName[] = "svr4_getcwd"; @@ -4199,7 +4497,6 @@ static const char* apzSvr4_GetcwdPatch[] = { * * Description of Svr4_Profil fix */ -#define SVR4_PROFIL_FIXIDX 103 tSCC zSvr4_ProfilName[] = "svr4_profil"; @@ -4233,51 +4530,8 @@ static const char* apzSvr4_ProfilPatch[] = { /* * * * * * * * * * * * * * * * * * * * * * * * * * * - * Description of Gnu_Types fix - */ -#define GNU_TYPES_FIXIDX 104 -tSCC zGnu_TypesName[] = - "gnu_types"; - -/* - * File name selection pattern - */ -tSCC zGnu_TypesList[] = - "|sys/types.h|stdlib.h|sys/stdtypes.h|stddef.h|memory.h|unistd.h|"; -/* - * Machine/OS name selection pattern - */ -#define apzGnu_TypesMachs (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 Sysv68_String fix */ -#define SYSV68_STRING_FIXIDX 105 tSCC zSysv68_StringName[] = "sysv68_string"; @@ -4314,7 +4568,6 @@ extern unsigned int\\\n\ * * Description of Sysz_Stdlib_For_Sun fix */ -#define SYSZ_STDLIB_FOR_SUN_FIXIDX 106 tSCC zSysz_Stdlib_For_SunName[] = "sysz_stdlib_for_sun"; @@ -4350,7 +4603,6 @@ static const char* apzSysz_Stdlib_For_SunPatch[] = { * * Description of Tinfo_Cplusplus fix */ -#define TINFO_CPLUSPLUS_FIXIDX 107 tSCC zTinfo_CplusplusName[] = "tinfo_cplusplus"; @@ -4384,9 +4636,43 @@ static const char* apzTinfo_CplusplusPatch[] = { /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Ultrix_Atexit_Param fix + */ +tSCC zUltrix_Atexit_ParamName[] = + "ultrix_atexit_param"; + +/* + * File name selection pattern + */ +tSCC zUltrix_Atexit_ParamList[] = + "|stdlib.h|"; +/* + * Machine/OS name selection pattern + */ +#define apzUltrix_Atexit_ParamMachs (const char**)NULL + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zUltrix_Atexit_ParamSelect0[] = + "atexit\\(.*\\(\\)"; + +#define ULTRIX_ATEXIT_PARAM_TEST_CT 1 +static tTestDesc aUltrix_Atexit_ParamTests[] = { + { TT_EGREP, zUltrix_Atexit_ParamSelect0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Ultrix_Atexit_Param + */ +static const char* apzUltrix_Atexit_ParamPatch[] = { + "format", + "atexit( void (*__func)( void )", + (char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Ultrix_Atof_Param fix */ -#define ULTRIX_ATOF_PARAM_FIXIDX 108 tSCC zUltrix_Atof_ParamName[] = "ultrix_atof_param"; @@ -4422,7 +4708,6 @@ static const char* apzUltrix_Atof_ParamPatch[] = { * * Description of Ultrix_Const fix */ -#define ULTRIX_CONST_FIXIDX 109 tSCC zUltrix_ConstName[] = "ultrix_const"; @@ -4459,7 +4744,6 @@ static const char* apzUltrix_ConstPatch[] = { * * Description of Ultrix_Const2 fix */ -#define ULTRIX_CONST2_FIXIDX 110 tSCC zUltrix_Const2Name[] = "ultrix_const2"; @@ -4496,7 +4780,6 @@ static const char* apzUltrix_Const2Patch[] = { * * Description of Ultrix_Fix_Fixproto fix */ -#define ULTRIX_FIX_FIXPROTO_FIXIDX 111 tSCC zUltrix_Fix_FixprotoName[] = "ultrix_fix_fixproto"; @@ -4534,7 +4817,6 @@ static const char* apzUltrix_Fix_FixprotoPatch[] = { * * Description of Ultrix_Ifdef fix */ -#define ULTRIX_IFDEF_FIXIDX 112 tSCC zUltrix_IfdefName[] = "ultrix_ifdef"; @@ -4570,7 +4852,6 @@ static const char* apzUltrix_IfdefPatch[] = { * * Description of Ultrix_Math_Ifdef fix */ -#define ULTRIX_MATH_IFDEF_FIXIDX 113 tSCC zUltrix_Math_IfdefName[] = "ultrix_math_ifdef"; @@ -4606,7 +4887,6 @@ static const char* apzUltrix_Math_IfdefPatch[] = { * * Description of Ultrix_Nested_Ioctl fix */ -#define ULTRIX_NESTED_IOCTL_FIXIDX 114 tSCC zUltrix_Nested_IoctlName[] = "ultrix_nested_ioctl"; @@ -4641,7 +4921,6 @@ static const char* apzUltrix_Nested_IoctlPatch[] = { "sed", * * Description of Ultrix_Nested_Svc fix */ -#define ULTRIX_NESTED_SVC_FIXIDX 115 tSCC zUltrix_Nested_SvcName[] = "ultrix_nested_svc"; @@ -4676,7 +4955,6 @@ static const char* apzUltrix_Nested_SvcPatch[] = { "sed", * * Description of Ultrix_Stat fix */ -#define ULTRIX_STAT_FIXIDX 116 tSCC zUltrix_StatName[] = "ultrix_stat"; @@ -4707,8 +4985,7 @@ static const char* apzUltrix_StatPatch[] = { "sed", "-e", "/^#define[ \t]S_IFPORT[ \t]*S_IFIFO$/a\\\n\ \\\n\ /* macro to test for symbolic link */\\\n\ -#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK)\\\n\ -\n", +#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK)\\\n\n", "-e", "/^[ \t]*fstat(),$/a\\\n\ \tlstat(),\n", (char*)NULL }; @@ -4717,7 +4994,6 @@ static const char* apzUltrix_StatPatch[] = { "sed", * * Description of Ultrix_Static fix */ -#define ULTRIX_STATIC_FIXIDX 117 tSCC zUltrix_StaticName[] = "ultrix_static"; @@ -4754,7 +5030,6 @@ static const char* apzUltrix_StaticPatch[] = { "sed", * * Description of Ultrix_Strings fix */ -#define ULTRIX_STRINGS_FIXIDX 118 tSCC zUltrix_StringsName[] = "ultrix_strings"; @@ -4789,7 +5064,6 @@ static const char* apzUltrix_StringsPatch[] = { * * Description of Undefine_Null fix */ -#define UNDEFINE_NULL_FIXIDX 119 tSCC zUndefine_NullName[] = "undefine_null"; @@ -4835,7 +5109,6 @@ static const char* apzUndefine_NullPatch[] = { * * Description of Uw7_Byteorder_Fix fix */ -#define UW7_BYTEORDER_FIX_FIXIDX 120 tSCC zUw7_Byteorder_FixName[] = "uw7_byteorder_fix"; @@ -4866,7 +5139,7 @@ tSCC zUw7_Byteorder_FixSelect0[] = * perform the 'test' shell command - do fix on success */ tSCC zUw7_Byteorder_FixTest0[] = - "-f $DESTDIR/sys/byteorder.h"; + "-f sys/byteorder.h"; #define UW7_BYTEORDER_FIX_TEST_CT 2 static tTestDesc aUw7_Byteorder_FixTests[] = { @@ -4879,14 +5152,13 @@ static tTestDesc aUw7_Byteorder_FixTests[] = { static const char* apzUw7_Byteorder_FixPatch[] = { "format", "", - "^extern.*(htons|ntohs).*\\(in_port_t\\).*\n", + "^extern.*[ \t](htons|ntohs).*\\(in_port_t\\).*;", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * Description of Va_I960_Macro fix */ -#define VA_I960_MACRO_FIXIDX 121 tSCC zVa_I960_MacroName[] = "va_i960_macro"; @@ -4922,7 +5194,6 @@ static const char* apzVa_I960_MacroPatch[] = { * * Description of Void_Null fix */ -#define VOID_NULL_FIXIDX 122 tSCC zVoid_NullName[] = "void_null"; @@ -4958,7 +5229,6 @@ static const char* apzVoid_NullPatch[] = { * * Description of Vxworks_Gcc_Problem fix */ -#define VXWORKS_GCC_PROBLEM_FIXIDX 123 tSCC zVxworks_Gcc_ProblemName[] = "vxworks_gcc_problem"; @@ -5008,7 +5278,6 @@ static const char* apzVxworks_Gcc_ProblemPatch[] = { "sed", * * Description of Vxworks_Needs_Vxtypes fix */ -#define VXWORKS_NEEDS_VXTYPES_FIXIDX 124 tSCC zVxworks_Needs_VxtypesName[] = "vxworks_needs_vxtypes"; @@ -5044,7 +5313,6 @@ static const char* apzVxworks_Needs_VxtypesPatch[] = { * * Description of Vxworks_Needs_Vxworks fix */ -#define VXWORKS_NEEDS_VXWORKS_FIXIDX 125 tSCC zVxworks_Needs_VxworksName[] = "vxworks_needs_vxworks"; @@ -5093,7 +5361,6 @@ static const char* apzVxworks_Needs_VxworksPatch[] = { "sed", * * Description of Vxworks_Time fix */ -#define VXWORKS_TIME_FIXIDX 126 tSCC zVxworks_TimeName[] = "vxworks_time"; @@ -5144,7 +5411,6 @@ typedef void (*__gcc_VOIDFUNCPTR) ();\n\ * * Description of X11_Class fix */ -#define X11_CLASS_FIXIDX 127 tSCC zX11_ClassName[] = "x11_class"; @@ -5191,7 +5457,6 @@ static const char* apzX11_ClassPatch[] = { * * Description of X11_Class_Usage fix */ -#define X11_CLASS_USAGE_FIXIDX 128 tSCC zX11_Class_UsageName[] = "x11_class_usage"; @@ -5234,7 +5499,6 @@ static const char* apzX11_Class_UsagePatch[] = { * * Description of X11_New fix */ -#define X11_NEW_FIXIDX 129 tSCC zX11_NewName[] = "x11_new"; @@ -5275,7 +5539,6 @@ static const char* apzX11_NewPatch[] = { "sed", * * Description of X11_Sprintf fix */ -#define X11_SPRINTF_FIXIDX 130 tSCC zX11_SprintfName[] = "x11_sprintf"; @@ -5314,15 +5577,164 @@ static const char* apzX11_SprintfPatch[] = { * * List of all fixes */ -#define REGEX_COUNT 136 +#define REGEX_COUNT 150 #define MACH_LIST_SIZE_LIMIT 279 -#define FIX_COUNT 131 +#define FIX_COUNT 143 + +/* + * Enumerate the fixes + */ +typedef enum { + AAA_BAD_FIXES_FIXIDX, + AAA_KI_FIXIDX, + AAA_KI_CALLS_FIXIDX, + AAA_KI_DEFS_FIXIDX, + AAA_KI_IFACE_FIXIDX, + AAA_STANDARDS_FIXIDX, + AAA_TIME_FIXIDX, + AAB_DGUX_INT_VARARGS_FIXIDX, + AAB_FD_ZERO_ASM_POSIX_TYPES_H_FIXIDX, + AAB_FD_ZERO_GNU_TYPES_H_FIXIDX, + AAB_FD_ZERO_SELECTBITS_H_FIXIDX, + AAB_SUN_MEMCPY_FIXIDX, + AAB_SVR4_REPLACE_BYTEORDER_FIXIDX, + AAB_ULTRIX_ANSI_COMPAT_FIXIDX, + AAB_ULTRIX_LIMITS_FIXIDX, + AAB_ULTRIX_MEMORY_FIXIDX, + AAB_ULTRIX_STRING_FIXIDX, + AIX_PTHREAD_FIXIDX, + AIX_SYSMACHINE_FIXIDX, + AIX_SYSWAIT_FIXIDX, + AIX_VOLATILE_FIXIDX, + ALPHA___ASSERT_FIXIDX, + ALPHA_GETOPT_FIXIDX, + ALPHA_PARENS_FIXIDX, + ALPHA_SBRK_FIXIDX, + ARM_NORCROFT_HINT_FIXIDX, + ARM_WCHAR_FIXIDX, + AUX_ASM_FIXIDX, + AVOID_BOOL_DEFINE_FIXIDX, + AVOID_BOOL_TYPE_FIXIDX, + AVOID_WCHAR_T_TYPE_FIXIDX, + BAD_LVAL_FIXIDX, + BAD_STRUCT_TERM_FIXIDX, + BADQUOTE_FIXIDX, + BROKEN_ASSERT_STDIO_FIXIDX, + BROKEN_ASSERT_STDLIB_FIXIDX, + BROKEN_CABS_FIXIDX, + CTRL_QUOTES_DEF_FIXIDX, + CTRL_QUOTES_USE_FIXIDX, + CXX_UNREADY_FIXIDX, + DEC_INTERN_ASM_FIXIDX, + DJGPP_WCHAR_H_FIXIDX, + ECD_CURSOR_FIXIDX, + FIX_HEADER_BREAKAGE_FIXIDX, + FREEBSD_GCC3_BREAKAGE_FIXIDX, + GNU_TYPES_FIXIDX, + HP_INLINE_FIXIDX, + HP_SYSFILE_FIXIDX, + HPUX10_CPP_POW_INLINE_FIXIDX, + HPUX11_CPP_POW_INLINE_FIXIDX, + HPUX11_FABSF_FIXIDX, + HPUX11_UINT32_C_FIXIDX, + HPUX11_VSNPRINTF_FIXIDX, + HPUX8_BOGUS_INLINES_FIXIDX, + HPUX_MAXINT_FIXIDX, + HPUX_SYSTIME_FIXIDX, + INT_ABORT_FREE_AND_EXIT_FIXIDX, + IO_QUOTES_DEF_FIXIDX, + IO_QUOTES_USE_FIXIDX, + IP_MISSING_SEMI_FIXIDX, + IRIX_ASM_APOSTROPHE_FIXIDX, + IRIX_LIMITS_CONST_FIXIDX, + IRIX_STDIO_VA_LIST_FIXIDX, + ISC_FMOD_FIXIDX, + ISC_OMITS_WITH_STDC_FIXIDX, + KANDR_CONCAT_FIXIDX, + LIBC1_IFDEFD_MEMX_FIXIDX, + LIMITS_IFNDEFS_FIXIDX, + LYNX_VOID_INT_FIXIDX, + LYNXOS_FCNTL_PROTO_FIXIDX, + M88K_BAD_HYPOT_OPT_FIXIDX, + M88K_BAD_S_IF_FIXIDX, + M88K_MULTI_INCL_FIXIDX, + MACHINE_ANSI_H_VA_LIST_FIXIDX, + MACHINE_NAME_FIXIDX, + MATH_EXCEPTION_FIXIDX, + MATH_HUGE_VAL_FROM_DBL_MAX_FIXIDX, + MATH_HUGE_VAL_IFNDEF_FIXIDX, + NESTED_AUTH_DES_FIXIDX, + NESTED_MOTOROLA_FIXIDX, + NESTED_SYS_LIMITS_FIXIDX, + NEWS_OS_RECURSION_FIXIDX, + NEXT_MATH_PREFIX_FIXIDX, + NEXT_TEMPLATE_FIXIDX, + NEXT_VOLITILE_FIXIDX, + NEXT_WAIT_UNION_FIXIDX, + NODEENT_SYNTAX_FIXIDX, + OSF_NAMESPACE_A_FIXIDX, + OSF_NAMESPACE_C_FIXIDX, + PTHREAD_PAGE_SIZE_FIXIDX, + READ_RET_TYPE_FIXIDX, + RS6000_DOUBLE_FIXIDX, + RS6000_FCHMOD_FIXIDX, + RS6000_PARAM_FIXIDX, + SCO_STATIC_FUNC_FIXIDX, + SCO_UTIME_FIXIDX, + SOLARIS_MUTEX_INIT_FIXIDX, + STATSSWTCH_FIXIDX, + STDIO_STDARG_H_FIXIDX, + STDIO_VA_LIST_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_MATHERR_DECL_FIXIDX, + SUNOS_STRLEN_FIXIDX, + SVR4__P_FIXIDX, + SVR4_GETCWD_FIXIDX, + SVR4_PROFIL_FIXIDX, + SYSV68_STRING_FIXIDX, + SYSZ_STDLIB_FOR_SUN_FIXIDX, + TINFO_CPLUSPLUS_FIXIDX, + ULTRIX_ATEXIT_PARAM_FIXIDX, + ULTRIX_ATOF_PARAM_FIXIDX, + ULTRIX_CONST_FIXIDX, + ULTRIX_CONST2_FIXIDX, + ULTRIX_FIX_FIXPROTO_FIXIDX, + ULTRIX_IFDEF_FIXIDX, + ULTRIX_MATH_IFDEF_FIXIDX, + ULTRIX_NESTED_IOCTL_FIXIDX, + ULTRIX_NESTED_SVC_FIXIDX, + ULTRIX_STAT_FIXIDX, + ULTRIX_STATIC_FIXIDX, + ULTRIX_STRINGS_FIXIDX, + UNDEFINE_NULL_FIXIDX, + UW7_BYTEORDER_FIX_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 ] = { - { zAaa_Ki_IfaceName, zAaa_Ki_IfaceList, - apzAaa_Ki_IfaceMachs, - AAA_KI_IFACE_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT, - aAaa_Ki_IfaceTests, apzAaa_Ki_IfacePatch, 0 }, + { zAaa_Bad_FixesName, zAaa_Bad_FixesList, + apzAaa_Bad_FixesMachs, + AAA_BAD_FIXES_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT, + aAaa_Bad_FixesTests, apzAaa_Bad_FixesPatch, 0 }, { zAaa_KiName, zAaa_KiList, apzAaa_KiMachs, @@ -5339,10 +5751,15 @@ tFixDesc fixDescList[ FIX_COUNT ] = { AAA_KI_DEFS_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT, aAaa_Ki_DefsTests, apzAaa_Ki_DefsPatch, 0 }, - { zAaa_Bad_FixesName, zAaa_Bad_FixesList, - apzAaa_Bad_FixesMachs, - AAA_BAD_FIXES_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT, - aAaa_Bad_FixesTests, apzAaa_Bad_FixesPatch, 0 }, + { zAaa_Ki_IfaceName, zAaa_Ki_IfaceList, + apzAaa_Ki_IfaceMachs, + AAA_KI_IFACE_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT, + aAaa_Ki_IfaceTests, apzAaa_Ki_IfacePatch, 0 }, + + { zAaa_StandardsName, zAaa_StandardsList, + apzAaa_StandardsMachs, + AAA_STANDARDS_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT, + aAaa_StandardsTests, apzAaa_StandardsPatch, 0 }, { zAaa_TimeName, zAaa_TimeList, apzAaa_TimeMachs, @@ -5419,6 +5836,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = { 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_GetoptName, zAlpha_GetoptList, apzAlpha_GetoptMachs, ALPHA_GETOPT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, @@ -5514,6 +5936,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = { 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, @@ -5524,6 +5951,16 @@ tFixDesc fixDescList[ FIX_COUNT ] = { FIX_HEADER_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aFix_Header_BreakageTests, apzFix_Header_BreakagePatch, 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 }, + + { zGnu_TypesName, zGnu_TypesList, + apzGnu_TypesMachs, + GNU_TYPES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aGnu_TypesTests, apzGnu_TypesPatch, 0 }, + { zHp_InlineName, zHp_InlineList, apzHp_InlineMachs, HP_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, @@ -5534,6 +5971,16 @@ tFixDesc fixDescList[ FIX_COUNT ] = { HP_SYSFILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aHp_SysfileTests, apzHp_SysfilePatch, 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 }, + { zHpux11_FabsfName, zHpux11_FabsfList, apzHpux11_FabsfMachs, HPUX11_FABSF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, @@ -5544,21 +5991,31 @@ tFixDesc fixDescList[ FIX_COUNT ] = { HPUX11_UINT32_C_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aHpux11_Uint32_CTests, apzHpux11_Uint32_CPatch, 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_MaxintName, zHpux_MaxintList, + apzHpux_MaxintMachs, + HPUX_MAXINT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aHpux_MaxintTests, apzHpux_MaxintPatch, 0 }, + + { zHpux_SystimeName, zHpux_SystimeList, + apzHpux_SystimeMachs, + HPUX_SYSTIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aHpux_SystimeTests, apzHpux_SystimePatch, 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 }, - { zIsc_Omits_With_StdcName, zIsc_Omits_With_StdcList, - apzIsc_Omits_With_StdcMachs, - ISC_OMITS_WITH_STDC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aIsc_Omits_With_StdcTests, apzIsc_Omits_With_StdcPatch, 0 }, - { zIo_Quotes_DefName, zIo_Quotes_DefList, apzIo_Quotes_DefMachs, IO_QUOTES_DEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, @@ -5569,16 +6026,6 @@ tFixDesc fixDescList[ FIX_COUNT ] = { IO_QUOTES_USE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aIo_Quotes_UseTests, apzIo_Quotes_UsePatch, 0 }, - { zHpux_MaxintName, zHpux_MaxintList, - apzHpux_MaxintMachs, - HPUX_MAXINT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aHpux_MaxintTests, apzHpux_MaxintPatch, 0 }, - - { zHpux_SystimeName, zHpux_SystimeList, - apzHpux_SystimeMachs, - HPUX_SYSTIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aHpux_SystimeTests, apzHpux_SystimePatch, 0 }, - { zIp_Missing_SemiName, zIp_Missing_SemiList, apzIp_Missing_SemiMachs, IP_MISSING_SEMI_TEST_CT, FD_MACH_ONLY, @@ -5594,11 +6041,21 @@ tFixDesc fixDescList[ FIX_COUNT ] = { IRIX_LIMITS_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aIrix_Limits_ConstTests, apzIrix_Limits_ConstPatch, 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 }, + { zIsc_FmodName, zIsc_FmodList, apzIsc_FmodMachs, ISC_FMOD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aIsc_FmodTests, apzIsc_FmodPatch, 0 }, + { zIsc_Omits_With_StdcName, zIsc_Omits_With_StdcList, + apzIsc_Omits_With_StdcMachs, + ISC_OMITS_WITH_STDC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aIsc_Omits_With_StdcTests, apzIsc_Omits_With_StdcPatch, 0 }, + { zKandr_ConcatName, zKandr_ConcatList, apzKandr_ConcatMachs, KANDR_CONCAT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, @@ -5664,6 +6121,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = { MATH_HUGE_VAL_IFNDEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aMath_Huge_Val_IfndefTests, apzMath_Huge_Val_IfndefPatch, 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 }, + { zNested_MotorolaName, zNested_MotorolaList, apzNested_MotorolaMachs, NESTED_MOTOROLA_TEST_CT, FD_MACH_ONLY, @@ -5674,11 +6136,6 @@ tFixDesc fixDescList[ FIX_COUNT ] = { NESTED_SYS_LIMITS_TEST_CT, FD_MACH_ONLY, aNested_Sys_LimitsTests, apzNested_Sys_LimitsPatch, 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 }, - { zNews_Os_RecursionName, zNews_Os_RecursionList, apzNews_Os_RecursionMachs, NEWS_OS_RECURSION_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, @@ -5749,16 +6206,16 @@ tFixDesc fixDescList[ FIX_COUNT ] = { SCO_STATIC_FUNC_TEST_CT, FD_MACH_ONLY, aSco_Static_FuncTests, apzSco_Static_FuncPatch, 0 }, - { zSco_Strict_AnsiName, zSco_Strict_AnsiList, - apzSco_Strict_AnsiMachs, - SCO_STRICT_ANSI_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aSco_Strict_AnsiTests, apzSco_Strict_AnsiPatch, 0 }, - { zSco_UtimeName, zSco_UtimeList, apzSco_UtimeMachs, SCO_UTIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aSco_UtimeTests, apzSco_UtimePatch, 0 }, + { zSolaris_Mutex_InitName, zSolaris_Mutex_InitList, + apzSolaris_Mutex_InitMachs, + SOLARIS_MUTEX_INIT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aSolaris_Mutex_InitTests, apzSolaris_Mutex_InitPatch, 0 }, + { zStatsswtchName, zStatsswtchList, apzStatsswtchMachs, STATSSWTCH_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, @@ -5774,6 +6231,21 @@ tFixDesc fixDescList[ FIX_COUNT ] = { STDIO_VA_LIST_TEST_CT, FD_MACH_ONLY, aStdio_Va_ListTests, apzStdio_Va_ListPatch, 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, @@ -5839,11 +6311,6 @@ tFixDesc fixDescList[ FIX_COUNT ] = { SVR4_PROFIL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aSvr4_ProfilTests, apzSvr4_ProfilPatch, 0 }, - { zGnu_TypesName, zGnu_TypesList, - apzGnu_TypesMachs, - GNU_TYPES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aGnu_TypesTests, apzGnu_TypesPatch, 0 }, - { zSysv68_StringName, zSysv68_StringList, apzSysv68_StringMachs, SYSV68_STRING_TEST_CT, FD_MACH_ONLY, @@ -5859,6 +6326,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = { TINFO_CPLUSPLUS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aTinfo_CplusplusTests, apzTinfo_CplusplusPatch, 0 }, + { zUltrix_Atexit_ParamName, zUltrix_Atexit_ParamList, + apzUltrix_Atexit_ParamMachs, + ULTRIX_ATEXIT_PARAM_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aUltrix_Atexit_ParamTests, apzUltrix_Atexit_ParamPatch, 0 }, + { zUltrix_Atof_ParamName, zUltrix_Atof_ParamList, apzUltrix_Atof_ParamMachs, ULTRIX_ATOF_PARAM_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, diff --git a/gcc/fixinc/fixlib.h b/gcc/fixinc/fixlib.h index 4490d2086ea..6bcc6e2c666 100644 --- a/gcc/fixinc/fixlib.h +++ b/gcc/fixinc/fixlib.h @@ -3,7 +3,7 @@ files which are fixed to work correctly with ANSI C and placed in a directory that GNU C will search. - Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This file is part of GNU CC. @@ -22,11 +22,12 @@ along with GNU CC; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ifndef FIXINCLUDES_FIXLIB_H -#define FIXINCLUDES_FIXLIB_H +#ifndef GCC_FIXLIB_H +#define GCC_FIXLIB_H #include "auto-host.h" -#include "gansidecl.h" +#include "ansidecl.h" +#include "config.h" #include "system.h" #include "gnu-regex.h" @@ -88,7 +89,7 @@ typedef int t_success; #define IGNORE_ARG(a) ((void)(a)) -typedef enum +typedef enum t_bool { BOOL_FALSE, BOOL_TRUE } t_bool; @@ -223,4 +224,4 @@ void mn_get_regexps PARAMS(( regex_t** label_re, regex_t** name_re, tCC *who )); #endif -#endif /* FIXINCLUDES_FIXLIB_H */ +#endif /* ! GCC_FIXLIB_H */ diff --git a/gcc/fixinc/fixtests.c b/gcc/fixinc/fixtests.c index e3da35b8c36..40687cfc755 100644 --- a/gcc/fixinc/fixtests.c +++ b/gcc/fixinc/fixtests.c @@ -47,6 +47,10 @@ Boston, MA 02111-1307, USA. */ #include "fixlib.h" +#define _ENV_(v,m,n,t) extern tCC* v; +ENV_TABLE +#undef _ENV_ + typedef apply_fix_p_t t_test_proc PARAMS(( tCC* file, tCC* text )); typedef struct { @@ -55,7 +59,8 @@ typedef struct { } test_entry_t; #define FIX_TEST_TABLE \ - _FT_( "machine_name", machine_name_test ) + _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 PARAMS(( tCC* file, tCC* text )); \ @@ -116,6 +121,16 @@ TEST_FOR_FIX_PROC_HEAD( machine_name_test ) } +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 diff --git a/gcc/fixinc/genfixes b/gcc/fixinc/genfixes index c0ae1e5f22f..a47e091db7a 100755 --- a/gcc/fixinc/genfixes +++ b/gcc/fixinc/genfixes @@ -68,15 +68,15 @@ set -e case "$1" in fixincl.x | */fixincl.x ) - if (${AG} --help > /dev/null 2>&1) + if [ -z "`${AG} -v | fgrep 'Ver. 5.'`" ] then - echo AutoGen-ing fixincl.x - $AG inclhack.def - else - echo "AutoGen does not appear to be correctly installed." + 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 ;; diff --git a/gcc/fixinc/gnu-regex.c b/gcc/fixinc/gnu-regex.c index a6ebd96e832..99786e2d49d 100644 --- a/gcc/fixinc/gnu-regex.c +++ b/gcc/fixinc/gnu-regex.c @@ -22,10 +22,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include "auto-host.h" -/* GCC LOCAL: we don't need NLS here. */ -#undef ENABLE_NLS - #undef _GNU_SOURCE #define _GNU_SOURCE @@ -33,6 +29,11 @@ # include <config.h> #endif +/* GCC LOCAL: we don't need NLS here. */ +#undef ENABLE_NLS +/* GCC LOCAL: to handle defining alloca. */ +#include "libiberty.h" + /* Do not use a C alloca, we will leak memory and crash. */ #ifdef C_ALLOCA # define REGEX_MALLOC diff --git a/gcc/fixinc/inclhack.def b/gcc/fixinc/inclhack.def index 40332750c1d..aedf09713d3 100644 --- a/gcc/fixinc/inclhack.def +++ b/gcc/fixinc/inclhack.def @@ -6,6 +6,15 @@ 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=XXX \ + pattern='^/\*$' \ + start='DO +NOT +DO +BROKEN +FIXES' \ + 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: */ @@ -16,12 +25,15 @@ FIXINC_DEBUG = yes; /* DO NOT DO BROKEN FIXES (empty replacement fixes) */ /* - * Purge some HP-UX 11 files that are only broken after they are "fixed". + * This file on SunOS 4 has a very large macro. When the sed loop + * tries pull it in, it overflows the pattern space size of the SunOS + * sed (GNU sed does not have this problem). Since the file does not + * require fixing, we remove it from the fixed directory. */ fix = { - hackname = AAA_ki_iface; - files = sys/ki_iface.h; - select = 'These definitions are for HP Internal developers'; + hackname = AAA_bad_fixes; + files = sundev/ipi_error.h; + /* shouldn't there be a select expression here??? */ replace; /* empty replacement -> no fixing the file */ }; @@ -60,15 +72,24 @@ fix = { /* - * This file on SunOS 4 has a very large macro. When the sed loop - * tries pull it in, it overflows the pattern space size of the SunOS - * sed (GNU sed does not have this problem). Since the file does not - * require fixing, we remove it from the fixed directory. + * Purge some HP-UX 11 files that are only broken after they are "fixed". */ fix = { - hackname = AAA_bad_fixes; - files = sundev/ipi_error.h; - /* shouldn't there be a select expression here??? */ + hackname = AAA_ki_iface; + files = sys/ki_iface.h; + select = 'These definitions are for HP Internal developers'; + replace; /* empty replacement -> no fixing the file */ +}; + + +/* + * Tru64 UNIX V4.0F/V5.1 <standards.h> defines _NO_PROTO and _NONSTD_TYPES + * correctly for GCC, but strict_ansi_not breaks it. + */ +fix = { + hackname = AAA_standards; + files = standards.h; + select = 'GNU and MIPS C compilers define __STDC__ differently'; replace; /* empty replacement -> no fixing the file */ }; @@ -86,26 +107,27 @@ fix = { /* And now, the real fixes, replacement text fixes first: */ /* - * Completely replace <_int_varargs.h> with a file that includes gcc's + * Completely replace <_int_varargs.h> with a file that includes gcc's * stdarg.h or varargs.h files as appropriate on DG/UX */ fix = { hackname = AAB_dgux_int_varargs; files = _int_varargs.h; - replace = "#ifndef __INT_VARARGS_H + replace = +"#ifndef __INT_VARARGS_H \#define __INT_VARARGS_H /************************************************************************/ /* _INT_VARARGS.H - Define the common stuff for varargs/stdarg/stdio. */ /************************************************************************/ -/* +/*" " ** This file is a DG internal header. Never include this ** file directly. */ \#ifndef ___int_features_h -\#include <sys/_int_features.h> +\#include <sys/_int_features.h> \#endif \#if !(defined(_VA_LIST) || defined(_VA_LIST_)) @@ -320,6 +342,29 @@ extern int memcmp(); /* + * Completely replace <sys/varargs.h> with a file that includes gcc's + * stdarg.h or varargs.h files as appropriate. + */ +#ifdef SVR4 +fix = { + hackname = AAB_svr4_no_varargs; + files = sys/varargs.h; + replace = "/* This file was generated by fixincludes. */\n" + "#ifndef _SYS_VARARGS_H\n" + "#define _SYS_VARARGS_H\n\n" + + "#ifdef __STDC__\n" + "#include <stdarg.h>\n" + "#else\n" + "#include <varargs.h>\n" + "#endif\n\n" + + "#endif /* _SYS_VARARGS_H */\n"; +}; +#endif + + +/* * Completely replace <sys/byteorder.h>; with a file that implements gcc's * optimized byteswapping. Restricted to "SVR4" machines until either * it is shown to be safe to replace this file always, or we get bolder ;-) @@ -483,29 +528,6 @@ ntohs (unsigned int __arg) /* - * Completely replace <sys/varargs.h> with a file that includes gcc's - * stdarg.h or varargs.h files as appropriate. - */ -#ifdef SVR4 -fix = { - hackname = AAB_svr4_no_varargs; - files = sys/varargs.h; - replace = "/* This file was generated by fixincludes. */\n" - "#ifndef _SYS_VARARGS_H\n" - "#define _SYS_VARARGS_H\n\n" - - "#ifdef __STDC__\n" - "#include <stdarg.h>\n" - "#else\n" - "#include <varargs.h>\n" - "#endif\n\n" - - "#endif /* _SYS_VARARGS_H */\n"; -}; -#endif - - -/* * Cancel out ansi_compat.h on Ultrix. Replace it with an empty file. */ fix = { @@ -525,9 +547,7 @@ fix = { files = limits.h; mach = "*-*-ultrix4.3"; replace = -'/* @(#)limits.h */ -/* This file was generated by fixincludes */ -\#ifndef _LIMITS_INCLUDED +'#ifndef _LIMITS_INCLUDED \#define _LIMITS_INCLUDED \#include <sys/limits.h> \#endif /* _LIMITS_INCLUDED */ @@ -545,9 +565,7 @@ fix = { files = memory.h; mach = "*-*-ultrix4.3"; replace = -'/* @(#)memory.h */ -/* This file was generated by fixincludes */ -\#ifndef _MEMORY_INCLUDED +'#ifndef _MEMORY_INCLUDED \#define _MEMORY_INCLUDED \#include <strings.h> \#endif /* _MEMORY_INCLUDED */ @@ -565,9 +583,7 @@ fix = { files = string.h; mach = "*-*-ultrix4.3"; replace = -'/* @(#)string.h */ -/* This file was generated by fixincludes */ -\#ifndef _STRING_INCLUDED +'#ifndef _STRING_INCLUDED \#define _STRING_INCLUDED \#include <strings.h> \#endif /* _STRING_INCLUDED */ @@ -639,6 +655,19 @@ fix = { /* + * 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);'; +}; + + +/* * Fix getopt declarations in stdio.h and stdlib.h on Alpha OSF/1 and AIX. */ fix = { @@ -1000,6 +1029,21 @@ fix = { /* + * 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 = { @@ -1031,6 +1075,44 @@ fix = { /* + * 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'; +}; + + +/* + * Fix these files to use the same types that we think they should. + */ +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; + + 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> */ @@ -1067,6 +1149,53 @@ fix = { /* + * 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"; +}; + +/* * Keep HP-UX 11 from stomping on C++ math namespace * with defines for fabsf. */ @@ -1087,7 +1216,7 @@ fix = { /* - * In inttypes.h on HPUX 11, the use of __CONCAT__ in the definition + * In inttypes.h on HPUX 11, the use of __CONCAT__ in the definition * of UINT32_C has undefined behavior according to ISO/ANSI: * the arguments to __CONCAT__ are not macro expanded before the * concatination happens so the trailing ')' in the first argument @@ -1095,7 +1224,7 @@ fix = { * invalid pp token. The behavior of invalid pp tokens is undefined. * GCC does not handle these invalid tokens the way the HP compiler does. * This problem will potentially occur anytime macros are used in the - * arguments to __CONCAT__. A general solution to this problem would be to + * arguments to __CONCAT__. A general solution to this problem would be to * insert another layer of macro between __CONCAT__ and its use * in UINT32_C. An example of this solution can be found in the C standard. * A more specific solution, the one used here, is to change the UINT32_C @@ -1115,6 +1244,24 @@ fix = { /* + * Fix hpux 11.00 broken vsnprintf declaration + */ +fix = { + hackname = hpux11_vsnprintf; + files = stdio.h; + select = 'extern int vsnprintf\(char \*, __size_t, const char \*,' + ' __va__list\);'; + + c_fix = format; + c_fix_arg = "extern int vsnprintf(char *, __size_t, const char *," + " __va_list);"; + + test_text = 'extern int vsnprintf(char *, __size_t, const char *,' + ' __va__list);'; +}; + + +/* * get rid of bogus inline definitions in HP-UX 8.0 */ fix = { @@ -1132,43 +1279,54 @@ fix = { /* - * Fix return type of abort and free + * HPUX 10.x sys/param.h defines MAXINT which clashes with values.h */ fix = { - hackname = int_abort_free_and_exit; - files = stdlib.h; - select = "int[ \t]+(abort|free|exit)[ \t]*\\("; + hackname = hpux_maxint; + files = sys/param.h; + files = values.h; + select = "^#[ \t]*define[ \t]+MAXINT[ \t]"; + bypass = "^#[ \t]*ifndef[ \t]+MAXINT"; + test = + "-n \"`egrep '#[ \t]*define[ \t]+MAXINT[ \t]' sys/param.h`\""; c_fix = format; - c_fix_arg = "void\t%1("; + c_fix_arg = "#ifndef MAXINT\n%0\n#endif"; + c_fix_arg = "^#[ \t]*define[ \t]+MAXINT[ \t].*"; - test_text = "extern int abort(int);\n" - "extern int free(void*);\n" - "extern int exit(void*);"; + test_text = '#define MAXINT 0x7FFFFFFF'; }; /* - * On Interactive Unix 2.2, certain traditional Unix definitions - * (notably getc and putc in stdio.h) are omitted if __STDC__ is - * defined, not just if _POSIX_SOURCE is defined. This makes it - * impossible to compile any nontrivial program except with -posix. + * Fix hpux10.20 <sys/time.h> to avoid invalid forward decl */ fix = { - hackname = isc_omits_with_stdc; + hackname = hpux_systime; + files = sys/time.h; + select = "^extern struct sigevent;"; - files = "stdio.h"; - files = "math.h"; - files = "ctype.h"; - files = "sys/limits.h"; - files = "sys/fcntl.h"; - files = "sys/dirent.h"; + c_fix = format; + c_fix_arg = "struct sigevent;"; + + test_text = 'extern struct sigevent;'; +}; + + +/* + * Fix return type of abort and free + */ +fix = { + hackname = int_abort_free_and_exit; + files = stdlib.h; + select = "int[ \t]+(abort|free|exit)[ \t]*\\("; - select = '!defined\(__STDC__\) && !defined\(_POSIX_SOURCE\)'; c_fix = format; - c_fix_arg = '!defined(_POSIX_SOURCE)'; - test_text = "#if !defined(__STDC__) && !defined(_POSIX_SOURCE) /* ? ! */" - "\nint foo;\n#endif"; + c_fix_arg = "void\t%1("; + + test_text = "extern int abort(int);\n" + "extern int free(void*);\n" + "extern int exit(void*);"; }; @@ -1215,41 +1373,6 @@ fix = { /* - * HPUX 10.x sys/param.h defines MAXINT which clashes with values.h - */ -fix = { - hackname = hpux_maxint; - files = sys/param.h; - files = values.h; - select = "^#[ \t]*define[ \t]+MAXINT[ \t]"; - bypass = "^#[ \t]*ifndef[ \t]+MAXINT"; - test = - "-n \"`egrep '#[ \t]*define[ \t]+MAXINT[ \t]' sys/param.h`\""; - - c_fix = format; - c_fix_arg = "#ifndef MAXINT\n%0\n#endif"; - c_fix_arg = "^#[ \t]*define[ \t]+MAXINT[ \t].*"; - - test_text = '#define MAXINT 0x7FFFFFFF'; -}; - - -/* - * 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;'; -}; - - -/* * Check for missing ';' in struct */ fix = { @@ -1287,12 +1410,28 @@ fix = { * Non-traditional "const" declaration in Irix's limits.h. */ fix = { - hackname = irix_limits_const; - files = limits.h; - select = "^extern const "; - c_fix = format; - c_fix_arg = "extern __const "; - test_text = "extern const char limit; /* test\n\tlimits */"; + 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 5.x's stdio.h declares 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; + + select = '(printf\(.*), /\* va_list \*/ char \*'; + c_fix = format; + c_fix_arg = "%1, __gnuc_va_list"; + test_text = + "extern int printf( const char *, /* va_list */ char * );"; }; @@ -1310,6 +1449,30 @@ fix = { /* + * On Interactive Unix 2.2, certain traditional Unix definitions + * (notably getc and putc in stdio.h) are omitted if __STDC__ is + * defined, not just if _POSIX_SOURCE is defined. This makes it + * impossible to compile any nontrivial program except with -posix. + */ +fix = { + hackname = isc_omits_with_stdc; + + files = "stdio.h"; + files = "math.h"; + files = "ctype.h"; + files = "sys/limits.h"; + files = "sys/fcntl.h"; + files = "sys/dirent.h"; + + select = '!defined\(__STDC__\) && !defined\(_POSIX_SOURCE\)'; + c_fix = format; + c_fix_arg = '!defined(_POSIX_SOURCE)'; + test_text = "#if !defined(__STDC__) && !defined(_POSIX_SOURCE) /* ? ! */" + "\nint foo;\n#endif"; +}; + + +/* * These files in Sun OS 4.x and ARM/RISCiX and BSD4.3 * use / * * / to concatenate tokens. */ @@ -1488,7 +1651,7 @@ fix = { /* * 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. */ @@ -1603,6 +1766,19 @@ fix = { /* + * 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 */"; +}; + + +/* * Fix nested comments in Motorola's <limits.h> and <sys/limits.h> */ fix = { @@ -1638,19 +1814,6 @@ fix = { }; /* - * 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 */"; -}; - - -/* * fix bogus recursive stdlib.h in NEWS-OS 4.0C */ fix = { @@ -1820,7 +1983,7 @@ fix = { /* - * function class(double x) conflicts with C++ keyword on rs/6000 + * function class(double x) conflicts with C++ keyword on rs/6000 */ fix = { hackname = rs6000_double; @@ -1849,7 +2012,7 @@ fix = { /* - * parameters conflict with C++ new on rs/6000 + * parameters conflict with C++ new on rs/6000 */ fix = { hackname = rs6000_param; @@ -1865,7 +2028,7 @@ fix = { /* - * The static functions lstat() and fchmod() in <sys/stat.h> + * The static functions lstat() and fchmod() in <sys/stat.h> * cause G++ grief since they're not wrapped in "if __cplusplus". * * On SCO OpenServer 5.0.0 through (at least) 5.0.5 <sys/stat.h> contains @@ -1904,22 +2067,6 @@ fix = { /* - * "!__STDC__" is "!defined( __STRICT_ANSI__ )" - */ -fix = { - hackname = sco_strict_ansi; - mach = "i?86-*-sco3.2*"; - select = "^[ \t]*#[ \t]*if.*!__STDC__"; - - c_fix = format; - c_fix_arg = "%1defined(__STRICT_ANSI__)%2"; - c_fix_arg = "^([ \t]*#[ \t]*if[ \t].*!)__STDC__(.*)"; - - test_text = "#if !__STDC__ /* not standard C */\nint foo;\n#endif"; -}; - - -/* * Fix prototype declaration of utime in sys/times.h. * In 3.2v4.0 the const is missing. */ @@ -1937,6 +2084,34 @@ fix = { /* + * 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; + select = '@\(#\)pthread.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI"; + files = pthread.h; + c_fix = format; + c_fix_arg = "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n" + "%0\n" + "#else\n" + "%1, {0}}%3\n" + "#endif"; + c_fix_arg = "(^#define[ \t]+PTHREAD_(MUTEX|COND)_INITIALIZER[ \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_RWLOCK_INITIALIZER\t" + "{0, 0, 0, {0, 0, 0}, {0, 0}, {0, 0}}"; +}; + + +/* * Sony NEWSOS 5.0 does not support the complete ANSI C standard. */ #ifdef SONY @@ -2051,18 +2226,68 @@ fix = { /* - * Check for strict ansi compliance + * "!__STDC__" or "__STDC__==0" or "__STDC__!=1" or "__STDC__-0==0" + * is "!defined( __STRICT_ANSI__ )" */ -#ifdef STRICT_ANSI fix = { - hackname = strict_ansi; - select = "__STDC__[ \t]*[=!]=[ \t]*[01]"; - sed = "s/__STDC__[ \t]*==[ \t]*0/!defined (__STRICT_ANSI__)/g"; - sed = "s/__STDC__[ \t]*!=[ \t]*0/defined (__STRICT_ANSI__)/g"; - sed = "s/__STDC__[ \t]*==[ \t]*1/defined (__STRICT_ANSI__)/g"; - sed = "s/__STDC__[ \t]*!=[ \t]*1/!defined (__STRICT_ANSI__)/g"; + hackname = strict_ansi_not; + select = "^([ \t]*#[ \t]*if.*)" + "(!__STDC__" + "|__STDC__[ \t]*==[ \t]*0" + "|__STDC__[ \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__)%3"; + + 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, time.h; + select = "^([ \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__)%3"; + + test_text = "#if 1\\\n" + "|| __STDC__ - 0 == 0 /* not std C */\nint 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__)%3"; + + test_text = "#if __STDC__ == 1 /* is std C\n */\nint foo;\n#endif"; }; -#endif /* @@ -2566,7 +2791,7 @@ fix = { #endif -/* +/* * Like svr4_mach_defines, but with newfangled syntax. * Source lines are of #define __i386 #machine(i386). Delete them. */ @@ -2581,27 +2806,6 @@ fix = { /* - * Fix these files to use the same types that we think they should. - */ -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; - - 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 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. @@ -2683,6 +2887,21 @@ fix = { /* + * function parameter to atexit is missing "void" on VAX Ultrix 4.3. + */ +fix = { + hackname = ultrix_atexit_param; + files = stdlib.h; + select = 'atexit\(.*\(\)'; + + c_fix = format; + c_fix_arg = "atexit( void (*__func)( void )"; + + test_text = "int atexit( void (*__func)() );\n"; +}; + + +/* * parameter to atof not const on DECstation Ultrix V4.0 and NEWS-OS 4.2R. */ fix = { @@ -2894,7 +3113,7 @@ fix = { hackname = uw7_byteorder_fix; files = arpa/inet.h; select = "in_port_t"; - test = "-f $DESTDIR/sys/byteorder.h"; + test = "-f sys/byteorder.h"; #ifndef SVR5 mach = "*-*-sysv4*"; mach = "i?86-*-sysv5*"; @@ -2906,12 +3125,12 @@ fix = { c_fix = format; c_fix_arg = ""; - c_fix_arg = "^extern.*(htons|ntohs).*\\(in_port_t\\).*\n"; + c_fix_arg = "^extern.*[ \t](htons|ntohs).*\\(in_port_t\\).*;"; - test_text = "extern htons(in_port_t);" + test_text = "extern in_port_t\thtons __P((in_port_t));\n" + "extern in_port_t\tntohs __P((in_port_t));" "`[ ! -d $DESTDIR/sys ] && mkdir $DESTDIR/sys\n" - "echo '/* DUMMY */' >> sys/byteorder.h\n" - "touch $DESTDIR/sys/byteorder.h`"; + "echo '/* DUMMY */' >> sys/byteorder.h`"; }; diff --git a/gcc/fixinc/mkfixinc.sh b/gcc/fixinc/mkfixinc.sh index f353d5e8be3..29567bd35fc 100755 --- a/gcc/fixinc/mkfixinc.sh +++ b/gcc/fixinc/mkfixinc.sh @@ -35,9 +35,7 @@ esac # Check for special fix rules for particular targets case $machine in - *-*-sysv4* | \ - i?86-*-sysv5* | \ - i?86-*-udk*) + *-*-sysv4* ) fixincludes=fixinc.svr4 ;; diff --git a/gcc/fixinc/server.c b/gcc/fixinc/server.c index e32576fca51..e58a09fa3ab 100644 --- a/gcc/fixinc/server.c +++ b/gcc/fixinc/server.c @@ -2,7 +2,7 @@ /* * server.c Set up and handle communications with a server process. * - * Server Handling copyright 1992-1999 The Free Software Foundation + * 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 @@ -47,7 +47,7 @@ */ #include "auto-host.h" -#include "gansidecl.h" +#include "ansidecl.h" #include "system.h" #include <signal.h> @@ -57,7 +57,7 @@ # define volatile #endif -STATIC volatile t_bool read_pipe_timeout; +STATIC volatile enum t_bool read_pipe_timeout; STATIC pid_t server_master_pid = NOPROCESS; tSCC* def_args[] = @@ -93,10 +93,7 @@ load_data (fp) t_bool got_done = BOOL_FALSE; text_size = sizeof (z_line) * 2; - pz_scan = pz_text = malloc (text_size); - - if (pz_text == (char *) NULL) - return (char *) NULL; + pz_scan = pz_text = xmalloc (text_size); for (;;) { @@ -120,18 +117,9 @@ load_data (fp) if (text_size - used_ct < sizeof (z_line)) { size_t off = (size_t) (pz_scan - pz_text); - void *p; text_size += 4096; - p = realloc ((void *) pz_text, text_size); - if (p == (void *) NULL) - { - fprintf (stderr, "Failed to get 0x%08lX bytes\n", - (long) text_size); - free ((void *) pz_text); - return (char *) NULL; - } - pz_text = (char *) p; + pz_text = xrealloc ((void *) pz_text, text_size); pz_scan = pz_text + off; } } @@ -146,7 +134,7 @@ load_data (fp) while ((pz_scan > pz_text) && ISSPACE (pz_scan[-1])) pz_scan--; *pz_scan = NUL; - return realloc ((void *) pz_text, strlen (pz_text) + 1); + return xrealloc ((void *) pz_text, strlen (pz_text) + 1); } @@ -284,11 +272,8 @@ run_shell (pz_cmd) /* IF it is still not running, THEN return the nil string. */ if (server_id <= 0) { - char *pz = (char *) malloc (1); fprintf (stderr, zNoServer, pz_cmd); - if (pz != (char *) NULL) - *pz = '\0'; - return pz; + return xcalloc (1, 1); } /* Make sure the process will pay attention to us, send the @@ -302,11 +287,8 @@ run_shell (pz_cmd) THEN return an empty string. */ if (server_id == NULLPROCESS) { - char *pz = (char *) malloc (1); fprintf (stderr, zNoServer, pz_cmd); - if (pz != (char *) NULL) - *pz = '\0'; - return pz; + return xcalloc (1, 1); } /* Now try to read back all the data. If we fail due to either a @@ -326,9 +308,7 @@ run_shell (pz_cmd) fprintf (stderr, "CLOSING SHELL SERVER - command failure:\n\t%s\n", pz_cmd); - pz = (char *) malloc (1); - if (pz != (char *) NULL) - *pz = '\0'; + pz = xcalloc (1, 1); } #ifdef DEBUG fprintf( stderr, "run_shell command success: %s\n", pz ); diff --git a/gcc/fixinc/tests/base/arpa/inet.h b/gcc/fixinc/tests/base/arpa/inet.h index 90c240f106d..acd8ed54577 100644 --- a/gcc/fixinc/tests/base/arpa/inet.h +++ b/gcc/fixinc/tests/base/arpa/inet.h @@ -10,4 +10,6 @@ #if defined( UW7_BYTEORDER_FIX_CHECK ) + + #endif /* UW7_BYTEORDER_FIX_CHECK */ diff --git a/gcc/fixinc/tests/base/assert.h b/gcc/fixinc/tests/base/assert.h index 490496ffbd7..45716a3b303 100644 --- a/gcc/fixinc/tests/base/assert.h +++ b/gcc/fixinc/tests/base/assert.h @@ -19,6 +19,11 @@ #include <stdio.h> +#if defined( ALPHA___ASSERT_CHECK ) +extern void __assert(const char *, const char *, int); +#endif /* ALPHA___ASSERT_CHECK */ + + #if defined( BROKEN_ASSERT_STDIO_CHECK ) extern FILE* stderr; #endif /* BROKEN_ASSERT_STDIO_CHECK */ diff --git a/gcc/fixinc/tests/base/curses.h b/gcc/fixinc/tests/base/curses.h index 676718020ea..ba2db2448a0 100644 --- a/gcc/fixinc/tests/base/curses.h +++ b/gcc/fixinc/tests/base/curses.h @@ -19,8 +19,9 @@ #if defined( AVOID_BOOL_TYPE_CHECK ) #ifndef __cplusplus -typedef unsigned int bool ; /* bool type */ -#endif +typedef unsigned int bool ; +#endif /* bool + type */ #endif /* AVOID_BOOL_TYPE_CHECK */ diff --git a/gcc/fixinc/tests/base/fixinc-test-limits.h b/gcc/fixinc/tests/base/fixinc-test-limits.h new file mode 100644 index 00000000000..0422d0901a9 --- /dev/null +++ b/gcc/fixinc/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/gcc/fixinc/tests/base/math.h b/gcc/fixinc/tests/base/math.h index 93722c97350..3690dd9afd9 100644 --- a/gcc/fixinc/tests/base/math.h +++ b/gcc/fixinc/tests/base/math.h @@ -35,6 +35,11 @@ extern double floor(), ceil(), fmod(), fabs _PARAMS((double)); #endif /* FIX_HEADER_BREAKAGE_CHECK */ +#if defined( HPUX11_CPP_POW_INLINE_CHECK ) + +#endif /* HPUX11_CPP_POW_INLINE_CHECK */ + + #if defined( HPUX11_FABSF_CHECK ) #ifdef _PA_RISC #ifndef __cplusplus @@ -99,6 +104,13 @@ extern int class(); #endif /* RS6000_DOUBLE_CHECK */ +#if defined( STRICT_ANSI_NOT_CTD_CHECK ) +#if 1|| !defined(__STRICT_ANSI__) /* not std C */ +int foo; +#endif +#endif /* STRICT_ANSI_NOT_CTD_CHECK */ + + #if defined( SUNOS_MATHERR_DECL_CHECK ) extern int matherr(); #endif /* SUNOS_MATHERR_DECL_CHECK */ diff --git a/gcc/fixinc/tests/base/pthread.h b/gcc/fixinc/tests/base/pthread.h index ccd662a34e6..5f7c724e758 100644 --- a/gcc/fixinc/tests/base/pthread.h +++ b/gcc/fixinc/tests/base/pthread.h @@ -18,3 +18,19 @@ #if defined( PTHREAD_PAGE_SIZE_CHECK ) extern int __page_size; #endif /* PTHREAD_PAGE_SIZE_CHECK */ + + +#if defined( SOLARIS_MUTEX_INIT_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}, 0} /* DEFAULTCV */ +#else +#define PTHREAD_COND_INITIALIZER {{{0}, 0}, {0}} /* DEFAULTCV */ +#endif +#define PTHREAD_RWLOCK_INITIALIZER {0, 0, 0, {0, 0, 0}, {0, 0}, {0, 0}} +#endif /* SOLARIS_MUTEX_INIT_CHECK */ diff --git a/gcc/fixinc/tests/base/stdio.h b/gcc/fixinc/tests/base/stdio.h index c2e82a134fe..87145ce2916 100644 --- a/gcc/fixinc/tests/base/stdio.h +++ b/gcc/fixinc/tests/base/stdio.h @@ -19,6 +19,16 @@ extern int getopt(int, char *const[], const char *); #endif /* ALPHA_GETOPT_CHECK */ +#if defined( HPUX11_VSNPRINTF_CHECK ) +extern int vsnprintf(char *, __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( ISC_OMITS_WITH_STDC_CHECK ) #if !defined(_POSIX_SOURCE) /* ? ! */ int foo; diff --git a/gcc/fixinc/tests/base/stdlib.h b/gcc/fixinc/tests/base/stdlib.h index 1f58af4cb37..9e43d13270f 100644 --- a/gcc/fixinc/tests/base/stdlib.h +++ b/gcc/fixinc/tests/base/stdlib.h @@ -47,3 +47,9 @@ extern void * realloc(void*,size_t); extern void * bsearch(void*,size_t,size_t); #endif /* SYSZ_STDLIB_FOR_SUN_CHECK */ + + +#if defined( ULTRIX_ATEXIT_PARAM_CHECK ) +int atexit( void (*__func)( void ) ); + +#endif /* ULTRIX_ATEXIT_PARAM_CHECK */ diff --git a/gcc/fixinc/tests/base/machine/ansi.h b/gcc/fixinc/tests/base/sys/cdefs.h index cf9f6d569e7..0b345a48ee4 100644 --- a/gcc/fixinc/tests/base/machine/ansi.h +++ b/gcc/fixinc/tests/base/sys/cdefs.h @@ -2,13 +2,13 @@ It has been auto-edited by fixincludes from: - "fixinc/tests/inc/machine/ansi.h" + "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( MACHINE_ANSI_H_VA_LIST_CHECK ) - # define _BSD_VA_LIST_ __builtin_va_list -#endif /* MACHINE_ANSI_H_VA_LIST_CHECK */ +#if defined( FREEBSD_GCC3_BREAKAGE_CHECK ) +#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7 || __GNUC__ >= 3 +#endif /* FREEBSD_GCC3_BREAKAGE_CHECK */ diff --git a/gcc/fixinc/tests/base/sys/types.h b/gcc/fixinc/tests/base/sys/types.h index daf5c659fe0..683b5e93ecd 100644 --- a/gcc/fixinc/tests/base/sys/types.h +++ b/gcc/fixinc/tests/base/sys/types.h @@ -20,9 +20,11 @@ typedef __PTRDIFF_TYPE__ ptrdiff_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 - /* ushort_t */ + +#endif /* ushort_t */ #endif /* GNU_TYPES_CHECK */ diff --git a/gcc/fixinc/tests/base/testing.h b/gcc/fixinc/tests/base/testing.h index 687531e5ce7..aa7dbb10d16 100644 --- a/gcc/fixinc/tests/base/testing.h +++ b/gcc/fixinc/tests/base/testing.h @@ -9,8 +9,17 @@ +#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 _CTRL(c) (c&037) +#define BSD43_CTRL(n, x) ((n<<8)+x) + #endif /* CTRL_QUOTES_DEF_CHECK */ @@ -19,8 +28,18 @@ #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( IO_QUOTES_DEF_CHECK ) -#define XX_IO(x) (x<<8|256) +#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 */ @@ -38,6 +57,11 @@ extern __ptr_t memcpy __P ((__ptr_t __dest, __const __ptr_t __src, #endif /* LIBC1_IFDEFD_MEMX_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 ) @@ -45,11 +69,23 @@ extern __ptr_t memcpy __P ((__ptr_t __dest, __const __ptr_t __src, #endif /* MACHINE_NAME_CHECK */ -#if defined( SCO_STRICT_ANSI_CHECK ) -#if !defined(__STRICT_ANSI__) /* not standard C */ +#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 /* SCO_STRICT_ANSI_CHECK */ +#endif /* STRICT_ANSI_ONLY_CHECK */ #if defined( SYSV68_STRING_CHECK ) diff --git a/gcc/fixinc/tests/base/types/vxTypesBase.h b/gcc/fixinc/tests/base/types/vxTypesBase.h index 7d7a434c8f7..76a9338d970 100644 --- a/gcc/fixinc/tests/base/types/vxTypesBase.h +++ b/gcc/fixinc/tests/base/types/vxTypesBase.h @@ -19,10 +19,12 @@ typedef unsigned int size_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 */ |