Annotation of GNUtools/cc/fixinc.svr4, revision 1.1

1.1     ! root        1: #! /bin/sh
        !             2: #
        !             3: #   fixinc.svr4  --  Install modified versions of certain ANSI-incompatible
        !             4: #   native System V Release 4 system include files.
        !             5: #
        !             6: #   Written by Ron Guilmette ([email protected]).
        !             7: #
        !             8: # This file is part of GNU CC.
        !             9: # 
        !            10: # GNU CC is free software; you can redistribute it and/or modify
        !            11: # it under the terms of the GNU General Public License as published by
        !            12: # the Free Software Foundation; either version 2, or (at your option)
        !            13: # any later version.
        !            14: # 
        !            15: # GNU CC is distributed in the hope that it will be useful,
        !            16: # but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            17: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            18: # GNU General Public License for more details.
        !            19: # 
        !            20: # You should have received a copy of the GNU General Public License
        !            21: # along with GNU CC; see the file COPYING.  If not, write to
        !            22: # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
        !            23: #
        !            24: #      This script munges the native include files provided with System V
        !            25: #      Release 4 systems so as to remove things which are violations of the
        !            26: #      ANSI C standard.  Once munged, the resulting new system include files
        !            27: #      are placed in a directory that GNU C will search *before* searching
        !            28: #      the /usr/include directory. This script should work properly for most
        !            29: #      System V Release 4 systems.  For other types of systems, you should
        !            30: #      use the `fixincludes' script instead.
        !            31: #
        !            32: #      See README-fixinc for more information.
        !            33: 
        !            34: # Directory where gcc sources (and sometimes special include files) live.
        !            35: SRCDIR=${3-${SRCDIR-.}}
        !            36: 
        !            37: # Directory containing the original header files.
        !            38: INPUT=${2-${INPUT-/usr/include}}
        !            39: 
        !            40: # Fail if no arg to specify a directory for the output.
        !            41: if [ x$1 = x ]
        !            42: then echo fixincludes: no output directory specified
        !            43: exit 1
        !            44: fi
        !            45: 
        !            46: # Directory in which to store the results.
        !            47: LIB=${1?"fixincludes: output directory not specified"}
        !            48: 
        !            49: # Make sure it exists.
        !            50: if [ ! -d $LIB ]; then
        !            51:   mkdir $LIB || exit 1
        !            52: fi
        !            53: 
        !            54: ORIG_DIR=`pwd`
        !            55: 
        !            56: # Make LIB absolute if it is relative.
        !            57: # Don't do this if not necessary, since may screw up automounters.
        !            58: case $LIB in
        !            59: /*)
        !            60:        ;;
        !            61: *)
        !            62:        LIB=$ORIG_DIR/$LIB
        !            63:        ;;
        !            64: esac
        !            65: 
        !            66: echo 'Building fixincludes in ' ${LIB}
        !            67: 
        !            68: # Determine whether this filesystem has symbolic links.
        !            69: if ln -s X $LIB/ShouldNotExist 2>/dev/null; then
        !            70:   rm -f $LIB/ShouldNotExist
        !            71:   LINKS=true
        !            72: else
        !            73:   LINKS=false
        !            74: fi
        !            75: 
        !            76: echo 'Making directories:'
        !            77: cd ${INPUT}
        !            78: if $LINKS; then
        !            79:   files=`ls -LR | sed -n s/:$//p`
        !            80: else
        !            81:   files=`find . -type d -print | sed '/^.$/d'`
        !            82: fi
        !            83: for file in $files; do
        !            84:   rm -rf $LIB/$file
        !            85:   if [ ! -d $LIB/$file ]
        !            86:   then mkdir $LIB/$file
        !            87:   fi
        !            88: done
        !            89: 
        !            90: # treetops gets an alternating list
        !            91: # of old directories to copy
        !            92: # and the new directories to copy to.
        !            93: treetops="${INPUT} ${LIB}"
        !            94: 
        !            95: if $LINKS; then
        !            96:   echo 'Making internal symbolic directory links'
        !            97:   for file in $files; do
        !            98:     dest=`ls -ld $file | sed -n 's/.*-> //p'`
        !            99:     if [ "$dest" ]; then    
        !           100:       cwd=`pwd`
        !           101:       # In case $dest is relative, get to $file's dir first.
        !           102:       cd ${INPUT}
        !           103:       cd `echo ./$file | sed -n 's&[^/]*$&&p'`
        !           104:       # Check that the target directory exists.
        !           105:       # Redirections changed to avoid bug in sh on Ultrix.
        !           106:       (cd $dest) > /dev/null 2>&1
        !           107:       if [ $? = 0 ]; then
        !           108:        cd $dest
        !           109:        # X gets the dir that the link actually leads to.
        !           110:        x=`pwd`
        !           111:        # If link leads back into ${INPUT},
        !           112:        # make a similar link here.
        !           113:        if expr $x : "${INPUT}/.*" > /dev/null; then
        !           114:          # Y gets the actual target dir name, relative to ${INPUT}.
        !           115:          y=`echo $x | sed -n "s&${INPUT}/&&p"`
        !           116:          # DOTS is the relative path from ${LIB}/$file's dir back to ${LIB}.
        !           117:          dots=`echo "$file" |
        !           118:            sed -e 's@^./@@' -e 's@/./@/@g' -e 's@[^/][^/]*@..@g' -e 's@..$@@'`
        !           119:          echo $file '->' $dots$y ': Making link'
        !           120:          rm -fr ${LIB}/$file > /dev/null 2>&1
        !           121:          ln -s $dots$y ${LIB}/$file > /dev/null 2>&1
        !           122:        else
        !           123:          # If the link is to outside ${INPUT},
        !           124:          # treat this directory as if it actually contained the files.
        !           125: # This line used to have $dest instead of $x.
        !           126: # $dest seemed to be wrong for links found in subdirectories
        !           127: # of ${INPUT}.  Does this change break anything?
        !           128:          treetops="$treetops $x ${LIB}/$file"
        !           129:        fi
        !           130:       fi
        !           131:       cd $cwd
        !           132:     fi
        !           133:   done
        !           134: fi
        !           135: 
        !           136: set - $treetops
        !           137: while [ $# != 0 ]; do
        !           138:   # $1 is an old directory to copy, and $2 is the new directory to copy to.
        !           139:   echo "Finding header files in $1:"
        !           140:   cd ${INPUT}
        !           141:   cd $1
        !           142:   files=`find . -name '*.h' -type f -print`
        !           143:   echo 'Checking header files:'
        !           144:   for file in $files; do
        !           145:       if [ -r $file ]; then
        !           146:        cp $file $2/$file >/dev/null 2>&1 || echo "Can't copy $file"
        !           147:        chmod +w $2/$file
        !           148:        chmod a+r $2/$file
        !           149: 
        !           150: # The following have been removed from the sed command below
        !           151: # because it is more useful to leave these things in.
        !           152: # The only reason to remove them was for -pedantic,
        !           153: # which isn't much of a reason. -- rms.
        !           154: #        /^[   ]*#[    ]*ident/d
        !           155: 
        !           156: # This code makes Solaris SCSI fail, because it changes the
        !           157: # alignment within some critical structures.  See <sys/scsi/impl/commands.h>.
        !           158: #        s/u_char\([   ][      ]*[a-zA-Z0-9_][a-zA-Z0-9_]*[    ]*:[    ]*[0-9][0-9]*\)/u_int\1/
        !           159: # Disable these also, since they probably aren't safe either.
        !           160: #        s/u_short\([  ][      ]*[a-zA-Z0-9_][a-zA-Z0-9_]*[    ]*:[    ]*[0-9][0-9]*\)/u_int\1/
        !           161: #        s/ushort\([   ][      ]*[a-zA-Z0-9_][a-zA-Z0-9_]*[    ]*:[    ]*[0-9][0-9]*\)/u_int\1/
        !           162: #        s/evcm_t\([   ][      ]*[a-zA-Z0-9_][a-zA-Z0-9_]*[    ]*:[    ]*[0-9][0-9]*\)/u_int\1/
        !           163: #        s/Pbyte\([    ][      ]*[a-zA-Z0-9_][a-zA-Z0-9_]*[    ]*:[    ]*SEQSIZ\)/unsigned int\1/
        !           164: 
        !           165: # The change of u_char, etc, to u_int
        !           166: # applies to bit fields.
        !           167:        sed -e '
        !           168:          s%^\([        ]*#[    ]*else\)[       ]*/[^*].*%\1%
        !           169:          s%^\([        ]*#[    ]*else\)[       ]*[^/   ].*%\1%
        !           170:          s%^\([        ]*#[    ]*endif\)[      ]*/[^*].*%\1%
        !           171:          s%^\([        ]*#[    ]*endif\)[      ]*[^/   ].*%\1%
        !           172:          s/#lint(on)/defined(lint)/g
        !           173:          s/#lint(off)/!defined(lint)/g
        !           174:          s/#machine(\([^)]*\))/defined(__\1__)/g
        !           175:          s/#system(\([^)]*\))/defined(__\1__)/g
        !           176:          s/#cpu(\([^)]*\))/defined(__\1__)/g
        !           177:          /#[a-z]*if.*[  (]m68k/                s/\([^_]\)m68k/\1__m68k__/g
        !           178:          /#[a-z]*if.*[  (]__i386\([^_]\)/      s/__i386/__i386__/g
        !           179:          /#[a-z]*if.*[  (]i386/                s/\([^_]\)i386/\1__i386__/g
        !           180:          /#[a-z]*if.*[  (]sparc/       s/\([^_]\)sparc/\1__sparc__/g
        !           181:          /#[a-z]*if.*[  (]mc68000/     s/\([^_]\)mc68000/\1__mc68000__/g
        !           182:          /#[a-z]*if.*[  (]vax/         s/\([^_]\)vax/\1__vax__/g
        !           183:          /#[a-z]*if.*[  (]sun/         s/\([^_]\)\(sun[a-z0-9]*\)\([^a-z0-9_]\)/\1__\2__\3/g
        !           184:          /#[a-z]*if.*[  (]sun/         s/\([^_]\)\(sun[a-z0-9]*\)$/\1__\2__/g
        !           185:          /#[a-z]*if.*[  (]ns32000/     s/\([^_]\)ns32000/\1__ns32000__/g
        !           186:          /#[a-z]*if.*[  (]pyr/         s/\([^_]\)pyr/\1__pyr__/g
        !           187:          /#[a-z]*if.*[  (]is68k/       s/\([^_]\)is68k/\1__is68k__/g
        !           188:          s/__STDC__[   ][      ]*==[   ][      ]*0/!defined (__STRICT_ANSI__)/g
        !           189:          s/__STDC__[   ][      ]*==[   ][      ]*1/defined (__STRICT_ANSI__)/g
        !           190:          s/__STDC__[   ][      ]*!=[   ][      ]*0/defined (__STRICT_ANSI__)/g
        !           191:          s/__STDC__ - 0 == 0/!defined (__STRICT_ANSI__)/g
        !           192:        ' $2/$file > $2/$file.sed
        !           193:        mv $2/$file.sed $2/$file
        !           194:        if cmp $file $2/$file >/dev/null 2>&1; then
        !           195:           rm $2/$file
        !           196:        else
        !           197:           echo Fixed $file
        !           198:        fi
        !           199:       fi
        !           200:   done
        !           201:   shift; shift
        !           202: done
        !           203: 
        !           204: # Fix first broken decl of getcwd present on some svr4 systems.
        !           205: 
        !           206: file=stdlib.h
        !           207: base=`basename $file`
        !           208: if [ -r ${LIB}/$file ]; then
        !           209:   file_to_fix=${LIB}/$file
        !           210: else
        !           211:   if [ -r ${INPUT}/$file ]; then
        !           212:     file_to_fix=${INPUT}/$file
        !           213:   else
        !           214:     file_to_fix=""
        !           215:   fi
        !           216: fi
        !           217: if [ \! -z "$file_to_fix" ]; then
        !           218:   echo Checking $file_to_fix
        !           219:   sed -e 's/getcwd(char \*, int)/getcwd(char *, size_t)/' $file_to_fix > /tmp/$base
        !           220:   if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
        !           221:     true
        !           222:   else
        !           223:     echo Fixed $file_to_fix
        !           224:     rm -f ${LIB}/$file
        !           225:     cp /tmp/$base ${LIB}/$file
        !           226:     chmod a+r ${LIB}/$file
        !           227:   fi
        !           228:   rm -f /tmp/$base
        !           229: fi
        !           230: 
        !           231: # Fix second broken decl of getcwd present on some svr4 systems.  Also
        !           232: # fix the incorrect decl of profil present on some svr4 systems.
        !           233: 
        !           234: file=unistd.h
        !           235: base=`basename $file`
        !           236: if [ -r ${LIB}/$file ]; then
        !           237:   file_to_fix=${LIB}/$file
        !           238: else
        !           239:   if [ -r ${INPUT}/$file ]; then
        !           240:     file_to_fix=${INPUT}/$file
        !           241:   else
        !           242:     file_to_fix=""
        !           243:   fi
        !           244: fi
        !           245: if [ \! -z "$file_to_fix" ]; then
        !           246:   echo Checking $file_to_fix
        !           247:   sed -e 's/getcwd(char \*, int)/getcwd(char *, size_t)/' $file_to_fix \
        !           248:     | sed -e 's/profil(unsigned short \*, unsigned int, unsigned int, unsigned int)/profil(unsigned short *, size_t, int, unsigned)/' > /tmp/$base
        !           249:   if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
        !           250:     true
        !           251:   else
        !           252:     echo Fixed $file_to_fix
        !           253:     rm -f ${LIB}/$file
        !           254:     cp /tmp/$base ${LIB}/$file
        !           255:     chmod a+r ${LIB}/$file
        !           256:   fi
        !           257:   rm -f /tmp/$base
        !           258: fi
        !           259: 
        !           260: # Fix the definition of NULL in <sys/param.h> so that it is conditional
        !           261: # and so that it is correct for both C and C++.
        !           262: 
        !           263: file=sys/param.h
        !           264: base=`basename $file`
        !           265: if [ -r ${LIB}/$file ]; then
        !           266:   file_to_fix=${LIB}/$file
        !           267: else
        !           268:   if [ -r ${INPUT}/$file ]; then
        !           269:     file_to_fix=${INPUT}/$file
        !           270:   else
        !           271:     file_to_fix=""
        !           272:   fi
        !           273: fi
        !           274: if [ \! -z "$file_to_fix" ]; then
        !           275:   echo Checking $file_to_fix
        !           276:   cp $file_to_fix /tmp/$base
        !           277:   chmod +w /tmp/$base
        !           278:   chmod a+r /tmp/$base
        !           279:   sed -e '/^#define[   ]*NULL[         ]*0$/c\
        !           280: #ifndef NULL\
        !           281: #ifdef __cplusplus\
        !           282: #define __NULL_TYPE\
        !           283: #else /* !defined(__cplusplus) */\
        !           284: #define __NULL_TYPE (void *)\
        !           285: #endif /* !defined(__cplusplus) */\
        !           286: #define NULL (__NULL_TYPE 0)\
        !           287: #endif /* !defined(NULL) */' /tmp/$base > /tmp/$base.sed
        !           288:   if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
        !           289:     true
        !           290:   else
        !           291:     echo Fixed $file_to_fix
        !           292:     rm -f ${LIB}/$file
        !           293:     cp /tmp/$base.sed ${LIB}/$file
        !           294:     chmod a+r ${LIB}/$file
        !           295:   fi
        !           296:   rm -f /tmp/$base /tmp/$base.sed
        !           297: fi
        !           298: 
        !           299: # Likewise fix the definition of NULL in <stdio.h> so that it is conditional
        !           300: # and so that it is correct for both C and C++.
        !           301: 
        !           302: file=stdio.h
        !           303: base=`basename $file`
        !           304: if [ -r ${LIB}/$file ]; then
        !           305:   file_to_fix=${LIB}/$file
        !           306: else
        !           307:   if [ -r ${INPUT}/$file ]; then
        !           308:     file_to_fix=${INPUT}/$file
        !           309:   else
        !           310:     file_to_fix=""
        !           311:   fi
        !           312: fi
        !           313: if [ \! -z "$file_to_fix" ]; then
        !           314:   echo Checking $file_to_fix
        !           315:   cp $file_to_fix /tmp/$base
        !           316:   chmod +w /tmp/$base
        !           317:   sed -e '/^#define[   ]*NULL[         ]*0$/c\
        !           318: #ifdef __cplusplus\
        !           319: #define __NULL_TYPE\
        !           320: #else /* !defined(__cplusplus) */\
        !           321: #define __NULL_TYPE (void *)\
        !           322: #endif /* !defined(__cplusplus) */\
        !           323: #define NULL (__NULL_TYPE 0)' /tmp/$base > /tmp/$base.sed
        !           324:   if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
        !           325:     true
        !           326:   else
        !           327:     echo Fixed $file_to_fix
        !           328:     rm -f ${LIB}/$file
        !           329:     cp /tmp/$base.sed ${LIB}/$file
        !           330:     chmod a+r ${LIB}/$file
        !           331:   fi
        !           332:   rm -f /tmp/$base /tmp/$base.sed
        !           333: fi
        !           334: 
        !           335: # Likewise fix the definition of NULL in <dbm.h> so that it is conditional
        !           336: # and so that it is correct for both C and C++.
        !           337: 
        !           338: file=dbm.h
        !           339: base=`basename $file`
        !           340: if [ -r ${LIB}/$file ]; then
        !           341:   file_to_fix=${LIB}/$file
        !           342: else
        !           343:   if [ -r ${INPUT}/$file ]; then
        !           344:     file_to_fix=${INPUT}/$file
        !           345:   else
        !           346:     file_to_fix=""
        !           347:   fi
        !           348: fi
        !           349: if [ \! -z "$file_to_fix" ]; then
        !           350:   echo Checking $file_to_fix
        !           351:   cp $file_to_fix /tmp/$base
        !           352:   chmod +w /tmp/$base
        !           353:   sed -e '/^#define[   ]*NULL[         ]*((char \*) 0)$/c\
        !           354: #ifndef NULL\
        !           355: #ifdef __cplusplus\
        !           356: #define __NULL_TYPE\
        !           357: #else /* !defined(__cplusplus) */\
        !           358: #define __NULL_TYPE (void *)\
        !           359: #endif /* !defined(__cplusplus) */\
        !           360: #define NULL (__NULL_TYPE 0)\
        !           361: #endif /* !defined(NULL) */' /tmp/$base > /tmp/$base.sed
        !           362:   if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
        !           363:     true
        !           364:   else
        !           365:     echo Fixed $file_to_fix
        !           366:     rm -f ${LIB}/$file
        !           367:     cp /tmp/$base.sed ${LIB}/$file
        !           368:     chmod a+r ${LIB}/$file
        !           369:   fi
        !           370:   rm -f /tmp/$base /tmp/$base.sed
        !           371: fi
        !           372: 
        !           373: # Add a prototyped declaration of mmap to <sys/mman.h>.
        !           374: 
        !           375: file=sys/mman.h
        !           376: base=`basename $file`
        !           377: if [ -r ${LIB}/$file ]; then
        !           378:   file_to_fix=${LIB}/$file
        !           379: else
        !           380:   if [ -r ${INPUT}/$file ]; then
        !           381:     file_to_fix=${INPUT}/$file
        !           382:   else
        !           383:     file_to_fix=""
        !           384:   fi
        !           385: fi
        !           386: if [ \! -z "$file_to_fix" ]; then
        !           387:   echo Checking $file_to_fix
        !           388:   cp $file_to_fix /tmp/$base
        !           389:   chmod +w /tmp/$base
        !           390:   sed -e '/^extern caddr_t mmap();$/c\
        !           391: #ifdef __STDC__\
        !           392: extern caddr_t mmap (caddr_t addr, size_t len, int prot, int flags,\
        !           393:                      int fd, off_t off);\
        !           394: #else /* !defined(__STDC__) */\
        !           395: extern caddr_t mmap ();\
        !           396: #endif /* !defined(__STDC__) */' /tmp/$base > /tmp/$base.sed
        !           397:   if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
        !           398:     true
        !           399:   else
        !           400:     echo Fixed $file_to_fix
        !           401:     rm -f ${LIB}/$file
        !           402:     cp /tmp/$base.sed ${LIB}/$file
        !           403:     chmod a+r ${LIB}/$file
        !           404:   fi
        !           405:   rm -f /tmp/$base /tmp/$base.sed
        !           406: fi
        !           407: 
        !           408: # Fix declarations of `ftw' and `nftw' in <ftw.h>.  On some/most SVR4 systems
        !           409: # the file <ftw.h> contains extern declarations of these functions followed
        !           410: # by explicitly `static' definitions of these functions... and that's not
        !           411: # allowed according to ANSI C.  (Note however that on Solaris, this header
        !           412: # file glitch has been pre-fixed by Sun.  In the Solaris version of <ftw.h>
        !           413: # there are no static definitions of any function so we don't need to do
        !           414: # any of this stuff when on Solaris.
        !           415: 
        !           416: file=ftw.h
        !           417: base=`basename $file`
        !           418: if [ -r ${LIB}/$file ]; then
        !           419:   file_to_fix=${LIB}/$file
        !           420: else
        !           421:   if [ -r ${INPUT}/$file ]; then
        !           422:     file_to_fix=${INPUT}/$file
        !           423:   else
        !           424:     file_to_fix=""
        !           425:   fi
        !           426: fi
        !           427: if test -z "$file_to_fix" || grep 'define      ftw' $file_to_fix > /dev/null; then
        !           428: # Either we have no <ftw.h> file at all, or else we have the pre-fixed Solaris
        !           429: # one.  Either way, we don't have to do anything.
        !           430:   true
        !           431: else
        !           432:   echo Checking $file_to_fix
        !           433:   cp $file_to_fix /tmp/$base
        !           434:   chmod +w /tmp/$base
        !           435:   sed -e '/^extern int ftw(const/i\
        !           436: #if !defined(_STYPES)\
        !           437: static\
        !           438: #else\
        !           439: extern\
        !           440: #endif'\
        !           441:   -e 's/extern \(int ftw(const.*\)$/\1/' \
        !           442:   -e '/^extern int nftw/i\
        !           443: #if defined(_STYPES)\
        !           444: static\
        !           445: #else\
        !           446: extern\
        !           447: #endif'\
        !           448:   -e 's/extern \(int nftw.*\)$/\1/' \
        !           449:   -e '/^extern int ftw(),/c\
        !           450: #if !defined(_STYPES)\
        !           451: static\
        !           452: #else\
        !           453: extern\
        !           454: #endif\
        !           455:   int ftw();\
        !           456: #if defined(_STYPES)\
        !           457: static\
        !           458: #else\
        !           459: extern\
        !           460: #endif\
        !           461:   int nftw();' /tmp/$base > /tmp/$base.sed
        !           462:   if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
        !           463:     true
        !           464:   else
        !           465:     echo Fixed $file_to_fix
        !           466:     rm -f ${LIB}/$file
        !           467:     cp /tmp/$base.sed ${LIB}/$file
        !           468:     chmod a+r ${LIB}/$file
        !           469:   fi
        !           470:   rm -f /tmp/$base /tmp/$base.sed
        !           471: fi
        !           472: 
        !           473: # Add a `static' declaration of `getrnge' into <regexp.h>.
        !           474: 
        !           475: # Don't do this if there is already a `static void getrnge' declaration
        !           476: # present, since this would cause a redeclaration error.  Solaris 2.x has
        !           477: # such a declaration.
        !           478: 
        !           479: file=regexp.h
        !           480: base=`basename $file`
        !           481: if [ -r ${LIB}/$file ]; then
        !           482:   file_to_fix=${LIB}/$file
        !           483: else
        !           484:   if [ -r ${INPUT}/$file ]; then
        !           485:     file_to_fix=${INPUT}/$file
        !           486:   else
        !           487:     file_to_fix=""
        !           488:   fi
        !           489: fi
        !           490: if [ \! -z "$file_to_fix" ]; then
        !           491:   echo Checking $file_to_fix
        !           492:   if grep "static void getrnge" $file_to_fix > /dev/null; then
        !           493:     true
        !           494:   else
        !           495:     cp $file_to_fix /tmp/$base
        !           496:     chmod +w /tmp/$base
        !           497:     sed -e '/^static int[      ]*size;/c\
        !           498: static int     size ;\
        !           499: \
        !           500: static int getrnge ();' /tmp/$base > /tmp/$base.sed
        !           501:     if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
        !           502:       true
        !           503:     else
        !           504:       echo Fixed $file_to_fix
        !           505:       rm -f ${LIB}/$file
        !           506:       cp /tmp/$base.sed ${LIB}/$file
        !           507:       chmod a+r ${LIB}/$file
        !           508:     fi
        !           509:   fi
        !           510:   rm -f /tmp/$base /tmp/$base.sed
        !           511: fi
        !           512: 
        !           513: # Disable apparent native compiler optimization cruft in SVR4.2 <string.h>
        !           514: # that is visible to any ANSI compiler using this include.  Simply
        !           515: # delete the lines that #define some string functions to internal forms.
        !           516: 
        !           517: file=string.h
        !           518: base=`basename $file`
        !           519: if [ -r ${LIB}/$file ]; then
        !           520:   file_to_fix=${LIB}/$file
        !           521: else
        !           522:   if [ -r ${INPUT}/$file ]; then
        !           523:     file_to_fix=${INPUT}/$file
        !           524:   else
        !           525:     file_to_fix=""
        !           526:   fi
        !           527: fi
        !           528: if [ \! -z "$file_to_fix" ]; then
        !           529:   echo Checking $file_to_fix
        !           530:   cp $file_to_fix /tmp/$base
        !           531:   chmod +w /tmp/$base
        !           532:   sed -e '/#define.*__std_hdr_/d' /tmp/$base > /tmp/$base.sed
        !           533:   if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
        !           534:     true
        !           535:   else
        !           536:     echo Fixed $file_to_fix
        !           537:     rm -f ${LIB}/$file
        !           538:     cp /tmp/$base.sed ${LIB}/$file
        !           539:     chmod a+r ${LIB}/$file
        !           540:   fi
        !           541:   rm -f /tmp/$base /tmp/$base.sed
        !           542: fi
        !           543: 
        !           544: # Delete any #defines of `__i386' which may be present in <ieeefp.h>.  They
        !           545: # tend to conflict with the compiler's own definition of this symbol.  (We
        !           546: # will use the compiler's definition.)
        !           547: # Likewise __sparc, for Solaris, and __i860, and a few others
        !           548: # (guessing it is necessary for all of them).
        !           549: 
        !           550: file=ieeefp.h
        !           551: base=`basename $file`
        !           552: if [ -r ${LIB}/$file ]; then
        !           553:   file_to_fix=${LIB}/$file
        !           554: else
        !           555:   if [ -r ${INPUT}/$file ]; then
        !           556:     file_to_fix=${INPUT}/$file
        !           557:   else
        !           558:     file_to_fix=""
        !           559:   fi
        !           560: fi
        !           561: if [ \! -z "$file_to_fix" ]; then
        !           562:   echo Checking $file_to_fix
        !           563:   cp $file_to_fix /tmp/$base
        !           564:   chmod +w /tmp/$base
        !           565:   sed -e '/#define[    ]*__i386 /d' -e '/#define[      ]*__sparc /d' \
        !           566:       -e '/#define[    ]*__i860 /d' -e '/#define[      ]*__m88k /d' \
        !           567:       -e '/#define[    ]*__mips /d' -e '/#define[      ]*__m68k /d' \
        !           568:      /tmp/$base > /tmp/$base.sed
        !           569:   if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
        !           570:     true
        !           571:   else
        !           572:     echo Fixed $file_to_fix 
        !           573:     rm -f ${LIB}/$file
        !           574:     cp /tmp/$base.sed ${LIB}/$file 
        !           575:     chmod a+r ${LIB}/$file
        !           576:   fi
        !           577:   rm -f /tmp/$base /tmp/$base.sed 
        !           578: fi 
        !           579: 
        !           580: # Add a #define of _SIGACTION_ into <sys/signal.h>.
        !           581: # Also fix types of SIG_DFL, SIG_ERR, SIG_IGN, and SIG_HOLD.
        !           582: 
        !           583: file=sys/signal.h
        !           584: base=`basename $file`
        !           585: if [ -r ${LIB}/$file ]; then
        !           586:   file_to_fix=${LIB}/$file
        !           587: else
        !           588:   if [ -r ${INPUT}/$file ]; then
        !           589:     file_to_fix=${INPUT}/$file
        !           590:   else
        !           591:     file_to_fix=""
        !           592:   fi
        !           593: fi
        !           594: if [ \! -z "$file_to_fix" ]; then
        !           595:   echo Checking $file_to_fix
        !           596:   cp $file_to_fix /tmp/$base
        !           597:   chmod +w /tmp/$base
        !           598:   sed -e '/^struct sigaction {/c\
        !           599: #define _SIGACTION_\
        !           600: struct  sigaction  {' \
        !           601:   -e '1,$s/(void *(\*)())/(void (*)(int))/' /tmp/$base > /tmp/$base.sed
        !           602:   if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
        !           603:     true
        !           604:   else
        !           605:     echo Fixed $file_to_fix
        !           606:     rm -f ${LIB}/$file
        !           607:     cp /tmp/$base.sed ${LIB}/$file
        !           608:     chmod a+r ${LIB}/$file
        !           609:   fi
        !           610:   rm -f /tmp/$base /tmp/$base.sed
        !           611: fi
        !           612: 
        !           613: # Fix declarations of `makedev', `major', and `minor' in <sys/mkdev.h>.
        !           614: 
        !           615: file=sys/mkdev.h
        !           616: base=`basename $file`
        !           617: if [ -r ${LIB}/$file ]; then
        !           618:   file_to_fix=${LIB}/$file
        !           619: else
        !           620:   if [ -r ${INPUT}/$file ]; then
        !           621:     file_to_fix=${INPUT}/$file
        !           622:   else
        !           623:     file_to_fix=""
        !           624:   fi
        !           625: fi
        !           626: if [ \! -z "$file_to_fix" ]; then
        !           627:   echo Checking $file_to_fix
        !           628:   cp $file_to_fix /tmp/$base
        !           629:   chmod +w /tmp/$base
        !           630:   sed -e '/^dev_t makedev(const/c\
        !           631: static dev_t makedev(const major_t, const minor_t);' \
        !           632:   -e '/^dev_t makedev()/c\
        !           633: static dev_t makedev();' \
        !           634:   -e '/^major_t major(const/c\
        !           635: static major_t major(const dev_t);' \
        !           636:   -e '/^major_t major()/c\
        !           637: static major_t major();' \
        !           638:   -e '/^minor_t minor(const/c\
        !           639: static minor_t minor(const dev_t);' \
        !           640:   -e '/^minor_t minor()/c\
        !           641: static minor_t minor();' /tmp/$base > /tmp/$base.sed
        !           642:   if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
        !           643:     true
        !           644:   else
        !           645:     echo Fixed $file_to_fix
        !           646:     rm -f ${LIB}/$file
        !           647:     cp /tmp/$base.sed ${LIB}/$file
        !           648:     chmod a+r ${LIB}/$file
        !           649:   fi
        !           650:   rm -f /tmp/$base /tmp/$base.sed
        !           651: fi
        !           652: 
        !           653: # Fix reference to NMSZ in <sys/adv.h>.
        !           654: 
        !           655: file=sys/adv.h
        !           656: base=`basename $file`
        !           657: if [ -r ${LIB}/$file ]; then
        !           658:   file_to_fix=${LIB}/$file
        !           659: else
        !           660:   if [ -r ${INPUT}/$file ]; then
        !           661:     file_to_fix=${INPUT}/$file
        !           662:   else
        !           663:     file_to_fix=""
        !           664:   fi
        !           665: fi
        !           666: if [ \! -z "$file_to_fix" ]; then
        !           667:   echo Checking $file_to_fix
        !           668:   sed 's/\[NMSZ\]/\[RFS_NMSZ\]/g' $file_to_fix > /tmp/$base
        !           669:   if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
        !           670:     true
        !           671:   else
        !           672:     echo Fixed $file_to_fix
        !           673:     rm -f ${LIB}/$file
        !           674:     cp /tmp/$base ${LIB}/$file
        !           675:     chmod a+r ${LIB}/$file
        !           676:   fi
        !           677:   rm -f /tmp/$base
        !           678: fi
        !           679: 
        !           680: # Fix reference to NC_NPI_RAW in <sys/netcspace.h>.  Also fix types of
        !           681: # array initializers.
        !           682: 
        !           683: file=sys/netcspace.h
        !           684: base=`basename $file`
        !           685: if [ -r ${LIB}/$file ]; then
        !           686:   file_to_fix=${LIB}/$file
        !           687: else
        !           688:   if [ -r ${INPUT}/$file ]; then
        !           689:     file_to_fix=${INPUT}/$file
        !           690:   else
        !           691:     file_to_fix=""
        !           692:   fi
        !           693: fi
        !           694: if [ \! -z "$file_to_fix" ]; then
        !           695:   echo Checking $file_to_fix
        !           696:   sed 's/NC_NPI_RAW/NC_TPI_RAW/g' $file_to_fix \
        !           697:     | sed 's/NC_/(unsigned long) NC_/' > /tmp/$base
        !           698:   if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
        !           699:     true
        !           700:   else
        !           701:     echo Fixed $file_to_fix
        !           702:     rm -f ${LIB}/$file
        !           703:     cp /tmp/$base ${LIB}/$file
        !           704:     chmod a+r ${LIB}/$file
        !           705:   fi
        !           706:   rm -f /tmp/$base
        !           707: fi
        !           708: 
        !           709: # Conditionalize all of <fs/rfs/rf_cache.h> on _KERNEL being defined.
        !           710: 
        !           711: file=fs/rfs/rf_cache.h
        !           712: base=`basename $file`
        !           713: if [ -r ${LIB}/$file ]; then
        !           714:   file_to_fix=${LIB}/$file
        !           715: else
        !           716:   if [ -r ${INPUT}/$file ]; then
        !           717:     file_to_fix=${INPUT}/$file
        !           718:   else
        !           719:     file_to_fix=""
        !           720:   fi
        !           721: fi
        !           722: if [ \! -z "$file_to_fix" ]; then
        !           723:   echo Checking $file_to_fix
        !           724:   if grep _KERNEL $file_to_fix > /dev/null; then
        !           725:     true
        !           726:   else
        !           727:     echo '#ifdef _KERNEL' > /tmp/$base
        !           728:     cat $file_to_fix >> /tmp/$base
        !           729:     echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
        !           730:     echo Fixed $file_to_fix
        !           731:     rm -f ${LIB}/$file
        !           732:     cp /tmp/$base ${LIB}/$file
        !           733:     chmod a+r ${LIB}/$file
        !           734:     rm -f /tmp/$base
        !           735:   fi
        !           736: fi
        !           737: 
        !           738: # Conditionalize all of <sys/erec.h> on _KERNEL being defined.
        !           739: 
        !           740: file=sys/erec.h
        !           741: base=`basename $file`
        !           742: if [ -r ${LIB}/$file ]; then
        !           743:   file_to_fix=${LIB}/$file
        !           744: else
        !           745:   if [ -r ${INPUT}/$file ]; then
        !           746:     file_to_fix=${INPUT}/$file
        !           747:   else
        !           748:     file_to_fix=""
        !           749:   fi
        !           750: fi
        !           751: if [ \! -z "$file_to_fix" ]; then
        !           752:   echo Checking $file_to_fix
        !           753:   if grep _KERNEL $file_to_fix > /dev/null; then
        !           754:     true
        !           755:   else
        !           756:     echo '#ifdef _KERNEL' > /tmp/$base
        !           757:     cat $file_to_fix >> /tmp/$base
        !           758:     echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
        !           759:     echo Fixed $file_to_fix
        !           760:     rm -f ${LIB}/$file
        !           761:     cp /tmp/$base ${LIB}/$file
        !           762:     chmod a+r ${LIB}/$file
        !           763:     rm -f /tmp/$base
        !           764:   fi
        !           765: fi
        !           766: 
        !           767: # Conditionalize all of <sys/err.h> on _KERNEL being defined.
        !           768: 
        !           769: file=sys/err.h
        !           770: base=`basename $file`
        !           771: if [ -r ${LIB}/$file ]; then
        !           772:   file_to_fix=${LIB}/$file
        !           773: else
        !           774:   if [ -r ${INPUT}/$file ]; then
        !           775:     file_to_fix=${INPUT}/$file
        !           776:   else
        !           777:     file_to_fix=""
        !           778:   fi
        !           779: fi
        !           780: if [ \! -z "$file_to_fix" ]; then
        !           781:   echo Checking $file_to_fix
        !           782:   if grep _KERNEL $file_to_fix > /dev/null; then
        !           783:     true
        !           784:   else
        !           785:     echo '#ifdef _KERNEL' > /tmp/$base
        !           786:     cat $file_to_fix >> /tmp/$base
        !           787:     echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
        !           788:     echo Fixed $file_to_fix
        !           789:     rm -f ${LIB}/$file
        !           790:     cp /tmp/$base ${LIB}/$file
        !           791:     chmod a+r ${LIB}/$file
        !           792:     rm -f /tmp/$base
        !           793:   fi
        !           794: fi
        !           795: 
        !           796: # Conditionalize all of <sys/char.h> on _KERNEL being defined.
        !           797: 
        !           798: file=sys/char.h
        !           799: base=`basename $file`
        !           800: if [ -r ${LIB}/$file ]; then
        !           801:   file_to_fix=${LIB}/$file
        !           802: else
        !           803:   if [ -r ${INPUT}/$file ]; then
        !           804:     file_to_fix=${INPUT}/$file
        !           805:   else
        !           806:     file_to_fix=""
        !           807:   fi
        !           808: fi
        !           809: if [ \! -z "$file_to_fix" ]; then
        !           810:   echo Checking $file_to_fix
        !           811:   if grep _KERNEL $file_to_fix > /dev/null; then
        !           812:     true
        !           813:   else
        !           814:     echo '#ifdef _KERNEL' > /tmp/$base
        !           815:     cat $file_to_fix >> /tmp/$base
        !           816:     echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
        !           817:     echo Fixed $file_to_fix
        !           818:     rm -f ${LIB}/$file
        !           819:     cp /tmp/$base ${LIB}/$file
        !           820:     chmod a+r ${LIB}/$file
        !           821:     rm -f /tmp/$base
        !           822:   fi
        !           823: fi
        !           824: 
        !           825: # Conditionalize all of <sys/getpages.h> on _KERNEL being defined.
        !           826: 
        !           827: file=sys/getpages.h
        !           828: base=`basename $file`
        !           829: if [ -r ${LIB}/$file ]; then
        !           830:   file_to_fix=${LIB}/$file
        !           831: else
        !           832:   if [ -r ${INPUT}/$file ]; then
        !           833:     file_to_fix=${INPUT}/$file
        !           834:   else
        !           835:     file_to_fix=""
        !           836:   fi
        !           837: fi
        !           838: if [ \! -z "$file_to_fix" ]; then
        !           839:   echo Checking $file_to_fix
        !           840:   if grep _KERNEL $file_to_fix > /dev/null; then
        !           841:     true
        !           842:   else
        !           843:     echo '#ifdef _KERNEL' > /tmp/$base
        !           844:     cat $file_to_fix >> /tmp/$base
        !           845:     echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
        !           846:     echo Fixed $file_to_fix
        !           847:     rm -f ${LIB}/$file
        !           848:     cp /tmp/$base ${LIB}/$file
        !           849:     chmod a+r ${LIB}/$file
        !           850:     rm -f /tmp/$base
        !           851:   fi
        !           852: fi
        !           853: 
        !           854: # Conditionalize all of <sys/map.h> on _KERNEL being defined.
        !           855: 
        !           856: file=sys/map.h
        !           857: base=`basename $file`
        !           858: if [ -r ${LIB}/$file ]; then
        !           859:   file_to_fix=${LIB}/$file
        !           860: else
        !           861:   if [ -r ${INPUT}/$file ]; then
        !           862:     file_to_fix=${INPUT}/$file
        !           863:   else
        !           864:     file_to_fix=""
        !           865:   fi
        !           866: fi
        !           867: if [ \! -z "$file_to_fix" ]; then
        !           868:   echo Checking $file_to_fix
        !           869:   if grep _KERNEL $file_to_fix > /dev/null; then
        !           870:     true
        !           871:   else
        !           872:     echo '#ifdef _KERNEL' > /tmp/$base
        !           873:     cat $file_to_fix >> /tmp/$base
        !           874:     echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
        !           875:     echo Fixed $file_to_fix
        !           876:     rm -f ${LIB}/$file
        !           877:     cp /tmp/$base ${LIB}/$file
        !           878:     chmod a+r ${LIB}/$file
        !           879:     rm -f /tmp/$base
        !           880:   fi
        !           881: fi
        !           882: 
        !           883: # Conditionalize all of <sys/cmn_err.h> on _KERNEL being defined.
        !           884: 
        !           885: file=sys/cmn_err.h
        !           886: base=`basename $file`
        !           887: if [ -r ${LIB}/$file ]; then
        !           888:   file_to_fix=${LIB}/$file
        !           889: else
        !           890:   if [ -r ${INPUT}/$file ]; then
        !           891:     file_to_fix=${INPUT}/$file
        !           892:   else
        !           893:     file_to_fix=""
        !           894:   fi
        !           895: fi
        !           896: if [ \! -z "$file_to_fix" ]; then
        !           897:   echo Checking $file_to_fix
        !           898:   if grep _KERNEL $file_to_fix > /dev/null; then
        !           899:     true
        !           900:   else
        !           901:     echo '#ifdef _KERNEL' > /tmp/$base
        !           902:     cat $file_to_fix >> /tmp/$base
        !           903:     echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
        !           904:     echo Fixed $file_to_fix
        !           905:     rm -f ${LIB}/$file
        !           906:     cp /tmp/$base ${LIB}/$file
        !           907:     chmod a+r ${LIB}/$file
        !           908:     rm -f /tmp/$base
        !           909:   fi
        !           910: fi
        !           911: 
        !           912: # Conditionalize all of <sys/kdebugger.h> on _KERNEL being defined.
        !           913: 
        !           914: file=sys/kdebugger.h
        !           915: base=`basename $file`
        !           916: if [ -r ${LIB}/$file ]; then
        !           917:   file_to_fix=${LIB}/$file
        !           918: else
        !           919:   if [ -r ${INPUT}/$file ]; then
        !           920:     file_to_fix=${INPUT}/$file
        !           921:   else
        !           922:     file_to_fix=""
        !           923:   fi
        !           924: fi
        !           925: if [ \! -z "$file_to_fix" ]; then
        !           926:   echo Checking $file_to_fix
        !           927:   if grep _KERNEL $file_to_fix > /dev/null; then
        !           928:     true
        !           929:   else
        !           930:     echo '#ifdef _KERNEL' > /tmp/$base
        !           931:     cat $file_to_fix >> /tmp/$base
        !           932:     echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
        !           933:     echo Fixed $file_to_fix
        !           934:     rm -f ${LIB}/$file
        !           935:     cp /tmp/$base ${LIB}/$file
        !           936:     chmod a+r ${LIB}/$file
        !           937:     rm -f /tmp/$base
        !           938:   fi
        !           939: fi
        !           940: 
        !           941: # Conditionalize some of <netinet/in.h> on _KERNEL being defined.
        !           942: 
        !           943: file=netinet/in.h
        !           944: base=`basename $file`
        !           945: if [ -r ${LIB}/$file ]; then
        !           946:   file_to_fix=${LIB}/$file
        !           947: else
        !           948:   if [ -r ${INPUT}/$file ]; then
        !           949:     file_to_fix=${INPUT}/$file
        !           950:   else
        !           951:     file_to_fix=""
        !           952:   fi
        !           953: fi
        !           954: if [ \! -z "$file_to_fix" ]; then
        !           955:   echo Checking $file_to_fix
        !           956:   if grep _KERNEL $file_to_fix > /dev/null; then
        !           957:     true
        !           958:   else
        !           959:     sed -e '/#ifdef INKERNEL/i\
        !           960: #ifdef _KERNEL' \
        !           961:     -e '/#endif[       ]*\/\* INKERNEL \*\//a\
        !           962: #endif /* _KERNEL */' \
        !           963:     $file_to_fix > ${LIB}/${file}.sed
        !           964:     rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
        !           965:     echo Fixed $file_to_fix
        !           966:   fi
        !           967: fi
        !           968: 
        !           969: # Conditionalize some of <sys/endian.h> on __GNUC__ and __GNUG__.
        !           970: 
        !           971: file=sys/endian.h
        !           972: base=`basename $file`
        !           973: if [ -r ${LIB}/$file ]; then
        !           974:   file_to_fix=${LIB}/$file
        !           975: else
        !           976:   if [ -r ${INPUT}/$file ]; then
        !           977:     file_to_fix=${INPUT}/$file
        !           978:   else
        !           979:     file_to_fix=""
        !           980:   fi
        !           981: fi
        !           982: if [ \! -z "$file_to_fix" ]; then
        !           983:   echo Checking $file_to_fix
        !           984:   if grep __GNUC__ $file_to_fix > /dev/null; then
        !           985:     true
        !           986:   else
        !           987:     sed -e '/# ifdef   __STDC__/i\
        !           988: #   if !defined (__GNUC__) && !defined (__GNUG__)' \
        !           989:     -e '/#             include <sys\/byteorder.h>/s/           /   /'\
        !           990:     -e '/#   include   <sys\/byteorder.h>/i\
        !           991: #   endif /* !defined (__GNUC__) && !defined (__GNUG__) */'\
        !           992:     $file_to_fix > ${LIB}/${file}.sed
        !           993:     rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
        !           994:     echo Fixed $file_to_fix
        !           995:   fi
        !           996: fi
        !           997: 
        !           998: # Commented out because [email protected] says we don't clearly need it
        !           999: # and the text in types.h is not erroneous.
        !          1000: ## In sys/types.h, don't name the enum for booleans.
        !          1001: #
        !          1002: #file=sys/types.h
        !          1003: #base=`basename $file`
        !          1004: #if [ -r ${LIB}/$file ]; then
        !          1005: #  file_to_fix=${LIB}/$file
        !          1006: #else
        !          1007: #  if [ -r ${INPUT}/$file ]; then
        !          1008: #    file_to_fix=${INPUT}/$file
        !          1009: #  else
        !          1010: #    file_to_fix=""
        !          1011: #  fi
        !          1012: #fi
        !          1013: #if [ \! -z "$file_to_fix" ]; then
        !          1014: #  echo Checking $file_to_fix
        !          1015: #  if grep "enum boolean" $file_to_fix > /dev/null; then
        !          1016: #    sed -e 's/enum boolean/enum/' ${LIB}/$file > ${LIB}/${file}.sed
        !          1017: #    rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
        !          1018: #    echo Fixed $file_to_fix
        !          1019: #  else
        !          1020: #    true
        !          1021: #  fi
        !          1022: #fi
        !          1023: 
        !          1024: # Remove useless extern keyword from struct forward declarations in
        !          1025: # <sys/stream.h> and <sys/strsubr.h>
        !          1026: 
        !          1027: file=sys/stream.h
        !          1028: base=`basename $file`
        !          1029: if [ -r ${LIB}/$file ]; then
        !          1030:   file_to_fix=${LIB}/$file
        !          1031: else
        !          1032:   if [ -r ${INPUT}/$file ]; then
        !          1033:     file_to_fix=${INPUT}/$file
        !          1034:   else
        !          1035:     file_to_fix=""
        !          1036:   fi
        !          1037: fi
        !          1038: if [ \! -z "$file_to_fix" ]; then
        !          1039:   echo Checking $file_to_fix
        !          1040:   sed -e '
        !          1041:     s/extern struct stdata;/struct stdata;/g
        !          1042:     s/extern struct strevent;/struct strevent;/g
        !          1043:   ' $file_to_fix > /tmp/$base 
        !          1044:   if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
        !          1045:     true
        !          1046:   else
        !          1047:     echo Fixed $file_to_fix
        !          1048:     rm -f ${LIB}/$file
        !          1049:     cp /tmp/$base ${LIB}/$file
        !          1050:     chmod a+r ${LIB}/$file
        !          1051:   fi
        !          1052:   rm -f /tmp/$base
        !          1053: fi
        !          1054: 
        !          1055: file=sys/strsubr.h
        !          1056: base=`basename $file`
        !          1057: if [ -r ${LIB}/$file ]; then
        !          1058:   file_to_fix=${LIB}/$file
        !          1059: else
        !          1060:   if [ -r ${INPUT}/$file ]; then
        !          1061:     file_to_fix=${INPUT}/$file
        !          1062:   else
        !          1063:     file_to_fix=""
        !          1064:   fi
        !          1065: fi
        !          1066: if [ \! -z "$file_to_fix" ]; then
        !          1067:   echo Checking $file_to_fix
        !          1068:   sed -e '
        !          1069:     s/extern struct strbuf;/struct strbuf;/g
        !          1070:     s/extern struct uio;/struct uio;/g
        !          1071:     s/extern struct thread;/struct thread;/g
        !          1072:     s/extern struct proc;/struct proc;/g
        !          1073:   ' $file_to_fix > /tmp/$base 
        !          1074:   if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
        !          1075:     true
        !          1076:   else
        !          1077:     echo Fixed $file_to_fix
        !          1078:     rm -f ${LIB}/$file
        !          1079:     cp /tmp/$base ${LIB}/$file
        !          1080:     chmod a+r ${LIB}/$file
        !          1081:   fi
        !          1082:   rm -f /tmp/$base
        !          1083: fi
        !          1084: 
        !          1085: # Put storage class at start of decl, to avoid warning.
        !          1086: file=rpc/types.h
        !          1087: base=`basename $file`
        !          1088: if [ -r ${LIB}/$file ]; then
        !          1089:   file_to_fix=${LIB}/$file
        !          1090: else
        !          1091:   if [ -r ${INPUT}/$file ]; then
        !          1092:     file_to_fix=${INPUT}/$file
        !          1093:   else
        !          1094:     file_to_fix=""
        !          1095:   fi
        !          1096: fi
        !          1097: if [ \! -z "$file_to_fix" ]; then
        !          1098:   echo Checking $file_to_fix
        !          1099:   sed -e '
        !          1100:     s/const extern/extern const/g
        !          1101:   ' $file_to_fix > /tmp/$base 
        !          1102:   if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
        !          1103:     true
        !          1104:   else
        !          1105:     echo Fixed $file_to_fix
        !          1106:     rm -f ${LIB}/$file
        !          1107:     cp /tmp/$base ${LIB}/$file
        !          1108:     chmod a+r ${LIB}/$file
        !          1109:   fi
        !          1110:   rm -f /tmp/$base
        !          1111: fi
        !          1112: 
        !          1113: # Convert functions to prototype form, and fix arg names in <sys/stat.h>.
        !          1114: 
        !          1115: file=sys/stat.h
        !          1116: base=`basename $file`
        !          1117: if [ -r ${LIB}/$file ]; then
        !          1118:   file_to_fix=${LIB}/$file
        !          1119: else
        !          1120:   if [ -r ${INPUT}/$file ]; then
        !          1121:     file_to_fix=${INPUT}/$file
        !          1122:   else
        !          1123:     file_to_fix=""
        !          1124:   fi
        !          1125: fi
        !          1126: if [ \! -z "$file_to_fix" ]; then
        !          1127:   echo Checking $file_to_fix
        !          1128:   cp $file_to_fix /tmp/$base
        !          1129:   chmod +w /tmp/$base
        !          1130:   sed -e '/^stat([     ]*[^c]/{
        !          1131: N
        !          1132: N
        !          1133: s/(.*)\n/( /
        !          1134: s/;\n/, /
        !          1135: s/;$/)/
        !          1136: }' \
        !          1137:   -e '/^lstat([        ]*[^c]/{
        !          1138: N
        !          1139: N
        !          1140: s/(.*)\n/( /
        !          1141: s/;\n/, /
        !          1142: s/;$/)/
        !          1143: }' \
        !          1144:   -e '/^fstat([        ]*[^i]/{
        !          1145: N
        !          1146: N
        !          1147: s/(.*)\n/( /
        !          1148: s/;\n/, /
        !          1149: s/;$/)/
        !          1150: }' \
        !          1151:   -e '/^mknod([        ]*[^c]/{
        !          1152: N
        !          1153: N
        !          1154: N
        !          1155: s/(.*)\n/( /
        !          1156: s/;\n/, /g
        !          1157: s/;$/)/
        !          1158: }' \
        !          1159:   -e '1,$s/\([^A-Za-z]\)path\([^A-Za-z]\)/\1__path\2/g' \
        !          1160:   -e '1,$s/\([^A-Za-z]\)buf\([^A-Za-z]\)/\1__buf\2/g' \
        !          1161:   -e '1,$s/\([^A-Za-z]\)fd\([^A-Za-z]\)/\1__fd\2/g' \
        !          1162:   -e '1,$s/ret\([^u]\)/__ret\1/g' \
        !          1163:   -e '1,$s/\([^_]\)mode\([^_]\)/\1__mode\2/g' \
        !          1164:   -e '1,$s/\([^_r]\)dev\([^_]\)/\1__dev\2/g' /tmp/$base > /tmp/$base.sed
        !          1165:   if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
        !          1166:     true
        !          1167:   else
        !          1168:     echo Fixed $file_to_fix
        !          1169:     rm -f ${LIB}/$file
        !          1170:     cp /tmp/$base.sed ${LIB}/$file
        !          1171:     chmod a+r ${LIB}/$file
        !          1172:   fi
        !          1173:   rm -f /tmp/$base /tmp/$base.sed
        !          1174: fi
        !          1175: 
        !          1176: # Sony NEWSOS 5.0 does not support the complete ANSI C standard.
        !          1177: 
        !          1178: if [ -x /bin/sony ]; then
        !          1179:   if /bin/sony; then
        !          1180: 
        !          1181:     # Change <stdio.h> to not define __filbuf, __flsbuf, and __iob
        !          1182: 
        !          1183:     file=stdio.h
        !          1184:     base=`basename $file`
        !          1185:     if [ -r ${LIB}/$file ]; then
        !          1186:       file_to_fix=${LIB}/$file
        !          1187:     else
        !          1188:       if [ -r ${INPUT}/$file ]; then
        !          1189:         file_to_fix=${INPUT}/$file
        !          1190:       else
        !          1191:         file_to_fix=""
        !          1192:       fi
        !          1193:     fi
        !          1194:     if [ \! -z "$file_to_fix" ]; then
        !          1195:       echo Checking $file_to_fix
        !          1196:       cp $file_to_fix /tmp/$base
        !          1197:       chmod +w /tmp/$base
        !          1198:       sed -e '
        !          1199:         s/__filbuf/_filbuf/g
        !          1200:         s/__flsbuf/_flsbuf/g
        !          1201:         s/__iob/_iob/g
        !          1202:       ' /tmp/$base > /tmp/$base.sed
        !          1203:       mv /tmp/$base.sed /tmp/$base
        !          1204:       if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then
        !          1205:         true
        !          1206:       else
        !          1207:         echo Fixed $file_to_fix
        !          1208:         rm -f ${LIB}/$file
        !          1209:         cp /tmp/$base ${LIB}/$file
        !          1210:         chmod a+r ${LIB}/$file
        !          1211:       fi
        !          1212:       rm -f /tmp/$base
        !          1213:     fi
        !          1214: 
        !          1215:     # Change <ctype.h> to not define __ctype
        !          1216: 
        !          1217:     file=ctype.h
        !          1218:     base=`basename $file`
        !          1219:     if [ -r ${LIB}/$file ]; then
        !          1220:       file_to_fix=${LIB}/$file
        !          1221:     else
        !          1222:       if [ -r ${INPUT}/$file ]; then
        !          1223:         file_to_fix=${INPUT}/$file
        !          1224:       else
        !          1225:         file_to_fix=""
        !          1226:       fi
        !          1227:     fi
        !          1228:     if [ \! -z "$file_to_fix" ]; then
        !          1229:       echo Checking $file_to_fix
        !          1230:       cp $file_to_fix /tmp/$base
        !          1231:       chmod +w /tmp/$base
        !          1232:       sed -e '
        !          1233:         s/__ctype/_ctype/g
        !          1234:       ' /tmp/$base > /tmp/$base.sed
        !          1235:       mv /tmp/$base.sed /tmp/$base
        !          1236:       if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then
        !          1237:         true
        !          1238:       else
        !          1239:         echo Fixed $file_to_fix
        !          1240:         rm -f ${LIB}/$file
        !          1241:         cp /tmp/$base ${LIB}/$file
        !          1242:         chmod a+r ${LIB}/$file
        !          1243:       fi
        !          1244:       rm -f /tmp/$base
        !          1245:     fi
        !          1246:   fi
        !          1247: fi
        !          1248: 
        !          1249: # In limits.h, put #ifndefs around things that are supposed to be defined
        !          1250: # in float.h to avoid redefinition errors if float.h is included first.
        !          1251: # Solaris 2.1 has this problem.
        !          1252: 
        !          1253: file=limits.h
        !          1254: base=`basename $file`
        !          1255: if [ -r ${LIB}/$file ]; then
        !          1256:   file_to_fix=${LIB}/$file
        !          1257: else
        !          1258:   if [ -r ${INPUT}/$file ]; then
        !          1259:     file_to_fix=${INPUT}/$file
        !          1260:   else
        !          1261:     file_to_fix=""
        !          1262:   fi
        !          1263: fi
        !          1264: if [ \! -z "$file_to_fix" ]; then
        !          1265:   echo Checking $file_to_fix
        !          1266:   sed -e '/[   ]FLT_MIN[       ]/i\
        !          1267: #ifndef FLT_MIN'\
        !          1268:       -e '/[   ]FLT_MIN[       ]/a\
        !          1269: #endif'\
        !          1270:       -e '/[   ]FLT_MAX[       ]/i\
        !          1271: #ifndef FLT_MAX'\
        !          1272:       -e '/[   ]FLT_MAX[       ]/a\
        !          1273: #endif'\
        !          1274:       -e '/[   ]FLT_DIG[       ]/i\
        !          1275: #ifndef FLT_DIG'\
        !          1276:       -e '/[   ]FLT_DIG[       ]/a\
        !          1277: #endif'\
        !          1278:       -e '/[   ]DBL_MIN[       ]/i\
        !          1279: #ifndef DBL_MIN'\
        !          1280:       -e '/[   ]DBL_MIN[       ]/a\
        !          1281: #endif'\
        !          1282:       -e '/[   ]DBL_MAX[       ]/i\
        !          1283: #ifndef DBL_MAX'\
        !          1284:       -e '/[   ]DBL_MAX[       ]/a\
        !          1285: #endif'\
        !          1286:       -e '/[   ]DBL_DIG[       ]/i\
        !          1287: #ifndef DBL_DIG'\
        !          1288:       -e '/[   ]DBL_DIG[       ]/a\
        !          1289: #endif' $file_to_fix > /tmp/$base
        !          1290:   if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
        !          1291:     true
        !          1292:   else
        !          1293:     echo Fixed $file_to_fix
        !          1294:     rm -f ${LIB}/$file
        !          1295:     cp /tmp/$base ${LIB}/$file
        !          1296:     chmod a+r ${LIB}/$file
        !          1297:   fi
        !          1298:   rm -f /tmp/$base
        !          1299: fi
        !          1300: 
        !          1301: # Completely replace <sys/varargs.h> with a file that includes gcc's
        !          1302: # stdarg.h or varargs.h files as appropriate.
        !          1303: 
        !          1304: file=sys/varargs.h
        !          1305: if [ -r ${INPUT}/$file ]; then
        !          1306:   echo Replacing $file
        !          1307:   cat > ${LIB}/$file << EOF
        !          1308: /* This file was generated by fixincludes.  */
        !          1309: #ifndef _SYS_VARARGS_H
        !          1310: #define _SYS_VARARGS_H
        !          1311: 
        !          1312: #ifdef __STDC__
        !          1313: #include <stdarg.h>
        !          1314: #else
        !          1315: #include <varargs.h>
        !          1316: #endif
        !          1317: 
        !          1318: #endif  /* _SYS_VARARGS_H */
        !          1319: EOF
        !          1320:   chmod a+r ${LIB}/$file
        !          1321: fi
        !          1322: 
        !          1323: # In math.h, put #ifndefs around things that might be defined in a gcc
        !          1324: # specific math-*.h file.
        !          1325: 
        !          1326: file=math.h
        !          1327: base=`basename $file`
        !          1328: if [ -r ${LIB}/$file ]; then
        !          1329:   file_to_fix=${LIB}/$file
        !          1330: else
        !          1331:   if [ -r ${INPUT}/$file ]; then
        !          1332:     file_to_fix=${INPUT}/$file
        !          1333:   else
        !          1334:     file_to_fix=""
        !          1335:   fi
        !          1336: fi
        !          1337: if [ \! -z "$file_to_fix" ]; then
        !          1338:   echo Checking $file_to_fix
        !          1339:   sed -e '/define[     ]HUGE_VAL[      ]/i\
        !          1340: #ifndef HUGE_VAL'\
        !          1341:       -e '/define[     ]HUGE_VAL[      ]/a\
        !          1342: #endif' $file_to_fix > /tmp/$base
        !          1343:   if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
        !          1344:     true
        !          1345:   else
        !          1346:     echo Fixed $file_to_fix
        !          1347:     rm -f ${LIB}/$file
        !          1348:     cp /tmp/$base ${LIB}/$file
        !          1349:     chmod a+r ${LIB}/$file
        !          1350:   fi
        !          1351:   rm -f /tmp/$base
        !          1352: fi
        !          1353: 
        !          1354: echo 'Removing unneeded directories:'
        !          1355: cd $LIB
        !          1356: files=`find . -type d -print | sort -r`
        !          1357: for file in $files; do
        !          1358:   rmdir $LIB/$file > /dev/null 2>&1
        !          1359: done
        !          1360: 
        !          1361: if $LINKS; then
        !          1362:   echo 'Making internal symbolic non-directory links'
        !          1363:   cd ${INPUT}
        !          1364:   files=`find . -type l -print`
        !          1365:   for file in $files; do
        !          1366:     dest=`ls -ld $file | sed -n 's/.*-> //p'`
        !          1367:     if expr "$dest" : '[^/].*' > /dev/null; then    
        !          1368:       target=${LIB}/`echo file | sed "s|[^/]*\$|$dest|"`
        !          1369:       if [ -f $target ]; then
        !          1370:         ln -s $dest ${LIB}/$file >/dev/null 2>&1
        !          1371:       fi
        !          1372:     fi
        !          1373:   done
        !          1374: fi
        !          1375: 
        !          1376: cd ${ORIG_DIR}
        !          1377: 
        !          1378: echo 'Replacing <sys/byteorder.h>'
        !          1379: rm -f ${LIB}/sys/byteorder.h
        !          1380: cp ${SRCDIR}/byteorder.h ${LIB}/sys/byteorder.h
        !          1381: 
        !          1382: exit 0
        !          1383: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.