Annotation of gcc/fixincludes, revision 1.1.1.6

1.1       root        1: #! /bin/sh
                      2: # Install modified versions of certain ANSI-incompatible system header files
                      3: # which are fixed to work correctly with ANSI C
                      4: # and placed in a directory that GNU C will search.
                      5: 
                      6: # See README-fixinc for more information.
                      7: 
1.1.1.6 ! root        8: # Command to run gcc.
        !             9: GCCCMD=${4-${GCCCMD-gcc}}
        !            10: 
1.1.1.4   root       11: # Directory where gcc sources (and sometimes special include files) live.
                     12: # fixincludes doesn't use this, but fixinc.svr4 does, and I want to make
                     13: # sure somebody doesn't try to use arg3 for something incompatible. -- gumby
                     14: SRCDIR=${3-${SRCDIR-.}}
                     15: 
1.1       root       16: # Directory containing the original header files.
                     17: # (This was named INCLUDES, but that conflicts with a name in Makefile.in.)
                     18: INPUT=${2-${INPUT-/usr/include}}
                     19: 
1.1.1.5   root       20: # Directory in which to store the results.
                     21: LIB=${1?"fixincludes: output directory not specified"}
1.1.1.4   root       22: 
                     23: # Define PWDCMD as a command to use to get the working dir
                     24: # in the form that we want.
                     25: PWDCMD=pwd
                     26: case "`pwd`" in
                     27: //*)
                     28:        # On an Apollo, discard everything before `/usr'.
                     29:        PWDCMD="eval pwd | sed -e 's,.*/usr/,/usr/,'"
                     30:        ;;
                     31: esac
1.1       root       32: 
1.1.1.5   root       33: # Original directory.
                     34: ORIGDIR=`${PWDCMD}`
1.1       root       35: 
                     36: # Make sure it exists.
                     37: if [ ! -d $LIB ]; then
                     38:   mkdir $LIB || exit 1
                     39: fi
                     40: 
1.1.1.5   root       41: # Make LIB absolute only if needed to avoid problems with the amd.
                     42: case $LIB in
                     43: /*)
                     44:        ;;
                     45: *)
                     46:        cd $LIB; LIB=`${PWDCMD}`
                     47:        ;;
                     48: esac
                     49: 
                     50: # Make SRCDIR absolute only if needed to avoid problems with the amd.
                     51: cd $ORIGDIR
                     52: case $SRCDIR in
                     53: /*)
                     54:        ;;
                     55: *)
                     56:        cd $SRCDIR; SRCDIR=`${PWDCMD}`
                     57:        ;;
                     58: esac
1.1       root       59: 
                     60: # Fail if no arg to specify a directory for the output.
                     61: if [ x$1 = x ]
                     62: then echo fixincludes: no output directory specified
                     63: exit 1
                     64: fi
                     65: 
1.1.1.4   root       66: echo Building fixed headers in ${LIB}
1.1       root       67: 
                     68: # Determine whether this system has symbolic links.
                     69: if ln -s X $LIB/ShouldNotExist 2>/dev/null; then
                     70:   rm -f $LIB/ShouldNotExist
                     71:   LINKS=true
1.1.1.6 ! root       72: elif ln -s X /tmp/ShouldNotExist 2>/dev/null; then
        !            73:   rm -f /tmp/ShouldNotExist
        !            74:   LINKS=true
1.1       root       75: else
                     76:   LINKS=false
                     77: fi
                     78: 
1.1.1.4   root       79: echo Finding directories and links to directories
1.1       root       80: cd ${INPUT}
1.1.1.2   root       81: # Find all directories and all symlinks that point to directories.
1.1.1.4   root       82: # Put the list in $files.
                     83: # Each time we find a symlink, add it to newdirs
                     84: # so that we do another find within the dir the link points to.
                     85: # Note that $files may have duplicates in it;
                     86: # later parts of this file are supposed to ignore them.
                     87: dirs="."
                     88: levels=2
                     89: while [ -n "$dirs" ] && [ $levels -gt 0 ]
                     90: do
                     91:     levels=`expr $levels - 1`
                     92:     newdirs=
                     93:     for d in $dirs
                     94:     do
                     95:        echo " Searching $INPUT/$d"
                     96:        if [ "$d" != . ]
                     97:        then
                     98:            d=$d/.
                     99:        fi
                    100: 
                    101:        # Find all directories under $d, relative to $d, excluding $d itself.
                    102:         files="$files `find $d -type d -print | \
                    103:                       sed -e '/\/\.$/d' -e '/^\.$/d'`"
                    104:        # Find all links to directories.
                    105:        # Using `-exec test -d' in find fails on some systems,
                    106:        # and trying to run test via sh fails on others,
                    107:        # so this is the simplest alternative left.
                    108:        # First find all the links, then test each one.
                    109:        theselinks=
                    110:        $LINKS && \
                    111:          theselinks=`find $d -type l -print`
                    112:        for d1 in $theselinks --dummy--
                    113:        do
                    114:            # If the link points to a directory,
                    115:            # add that dir to $newdirs
                    116:            if [ -d $d1 ]
                    117:            then
                    118:                newdirs="$newdirs $d1"
                    119:            fi
                    120:        done
                    121:     done
                    122: 
                    123:     files="$files $newdirs"
                    124:     dirs="$newdirs"
                    125: done
                    126: 
                    127: dirs=
                    128: echo "All directories (including links to directories):"
                    129: echo $files
                    130: 
1.1       root      131: for file in $files; do
                    132:   rm -rf $LIB/$file
                    133:   if [ ! -d $LIB/$file ]
                    134:   then mkdir $LIB/$file
                    135:   fi
                    136: done
1.1.1.4   root      137: mkdir $LIB/root
1.1       root      138: 
                    139: # treetops gets an alternating list
                    140: # of old directories to copy
                    141: # and the new directories to copy to.
                    142: treetops="${INPUT} ${LIB}"
                    143: 
                    144: if $LINKS; then
1.1.1.4   root      145:   echo 'Making symbolic directory links'
1.1       root      146:   for file in $files; do
                    147:     dest=`ls -ld $file | sed -n 's/.*-> //p'`
                    148:     if [ "$dest" ]; then    
1.1.1.4   root      149:       cwd=`${PWDCMD}`
1.1       root      150:       # In case $dest is relative, get to $file's dir first.
                    151:       cd ${INPUT}
                    152:       cd `echo ./$file | sed -n 's&[^/]*$&&p'`
                    153:       # Check that the target directory exists.
                    154:       # Redirections changed to avoid bug in sh on Ultrix.
                    155:       (cd $dest) > /dev/null 2>&1
                    156:       if [ $? = 0 ]; then
                    157:        cd $dest
                    158:        # X gets the dir that the link actually leads to.
1.1.1.4   root      159:        x=`${PWDCMD}`
                    160:        # If a link points to ., make a similar link to .
                    161:        if [ $x = $INPUT ]; then
                    162:          echo $file '->' . ': Making link'
                    163:          rm -fr ${LIB}/$file > /dev/null 2>&1
                    164:          ln -s . ${LIB}/$file > /dev/null 2>&1
1.1       root      165:        # If link leads back into ${INPUT},
                    166:        # make a similar link here.
1.1.1.4   root      167:        elif expr $x : "${INPUT}/.*" > /dev/null; then
1.1       root      168:          # Y gets the actual target dir name, relative to ${INPUT}.
                    169:          y=`echo $x | sed -n "s&${INPUT}/&&p"`
1.1.1.6 ! root      170:          # DOTS is the relative path from ${LIB}/$file's dir back to ${LIB}.
        !           171:          dots=`echo "$file" |
        !           172:            sed -e 's@^./@@' -e 's@/./@/@g' -e 's@[^/][^/]*@..@g' -e 's@..$@@'`
        !           173:          echo $file '->' $dots$y ': Making link'
1.1       root      174:          rm -fr ${LIB}/$file > /dev/null 2>&1
1.1.1.6 ! root      175:          ln -s $dots$y ${LIB}/$file > /dev/null 2>&1
1.1       root      176:        else
1.1.1.4   root      177:          # If the link is to a dir $target outside ${INPUT},
                    178:          # repoint the link at ${INPUT}/root$target
                    179:          # and process $target into ${INPUT}/root$target
1.1       root      180:          # treat this directory as if it actually contained the files.
1.1.1.4   root      181:          echo $file '->' root$x ': Making link'
                    182:          if [ -d $LIB/root$x ]
                    183:          then true
                    184:          else
                    185:            dirname=root$x/
                    186:            dirmade=.
                    187:            cd $LIB
                    188:            while [ x$dirname != x ]; do
                    189:              component=`echo $dirname | sed -e 's|/.*$||'`
                    190:              mkdir $component >/dev/null 2>&1
                    191:              cd $component
                    192:              dirmade=$dirmade/$component
                    193:              dirname=`echo $dirname | sed -e 's|[^/]*/||'`
                    194:            done
                    195:          fi
1.1.1.5   root      196:          # Duplicate directory structure created in ${LIB}/$file in new
                    197:          # root area.
                    198:          for file2 in $files; do
                    199:            case $file2 in
                    200:              $file/./*)
                    201:                dupdir=${LIB}/root$x/`echo $file2 | sed -n "s|^${file}/||p"`
                    202:                echo "Duplicating ${file}'s ${dupdir}"
                    203:                if [ -d ${dupdir} ]
                    204:                then true
                    205:                else
                    206:                  mkdir ${dupdir}
                    207:                fi
                    208:                ;;
                    209:              *)
                    210:                ;;
                    211:            esac
                    212:           done
1.1.1.6 ! root      213:          # DOTS is the relative path from ${LIB}/$file's dir back to ${LIB}.
        !           214:          dots=`echo "$file" |
        !           215:            sed -e 's@^./@@' -e 's@/./@/@g' -e 's@[^/][^/]*@..@g' -e 's@..$@@'`
1.1.1.4   root      216:          rm -fr ${LIB}/$file > /dev/null 2>&1
1.1.1.6 ! root      217:          ln -s ${dots}root$x ${LIB}/$file > /dev/null 2>&1
1.1.1.4   root      218:          treetops="$treetops $x ${LIB}/root$x"
1.1       root      219:        fi
                    220:       fi
                    221:       cd $cwd
                    222:     fi
                    223:   done
                    224: fi
                    225: 
1.1.1.6 ! root      226: required=
1.1.1.5   root      227: set x $treetops
                    228: shift
1.1       root      229: while [ $# != 0 ]; do
                    230:   # $1 is an old directory to copy, and $2 is the new directory to copy to.
                    231:   cd ${INPUT}
                    232:   cd $1
1.1.1.4   root      233: # The same dir can appear more than once in treetops.
                    234: # There's no need to scan it more than once.
                    235:   if [ -f $2/DONE ]
                    236:   then
                    237:     files=
                    238:   else
                    239:     touch $2/DONE
                    240:     echo Fixing directory $1 into $2
                    241: # Check .h files which are symlinks as well as those which are files.
                    242: # A link to a header file will not be processed by anything but this.
                    243:     if $LINKS; then
                    244:       files=`find . -name '*.h' \( -type f -o -type l \) -print`
                    245:     else
                    246:       files=`find . -name '*.h' -type f -print`
                    247:     fi
                    248:     echo Checking header files
                    249:   fi
1.1       root      250: # Note that BSD43_* are used on recent MIPS systems.
                    251:   for file in $files; do
                    252: # This call to egrep is essential, since checking a file with egrep
                    253: # is much faster than actually trying to fix it.
1.1.1.2   root      254: # It is also essential that most files *not* match!
                    255: # Thus, matching every #endif is unacceptable.
1.1       root      256: # But the argument to egrep must be kept small, or many versions of egrep
                    257: # won't be able to handle it.
1.1.1.5   root      258: #
                    259: # We use the pattern [!-.0-~] instead of [^/   ] to match a noncomment
                    260: # following #else or #endif because some buggy egreps think [^/] matches
                    261: # newline, and they thus think `#else ' matches `#e[ndiflse]*[         ]+[^/   ]'.
                    262: #
                    263: # We use the pattern [^a-zA-Z0-9_][_a-ce-km-z][a-z0-9] to match an identifier
                    264: # following #if or #elif that is not surrounded by __.  The `a-ce-km-z'
                    265: # in this pattern lacks `d' and `l'; this means we don't worry about
                    266: # identifiers starting with `d' or `l'.  This is OK, since none of the
                    267: # identifiers below start with `d' or `l'.  It also greatly improves
                    268: # performance, since many files contain lines of the form `#if ... defined ...'
                    269: # or `#if lint'.
                    270:     if egrep '//|[     _]_IO|CTRL|^#define.NULL|^#e[nl][ds][ief]*[     ]+[!-.0-~]|^#[el]*if.*[^a-zA-Z0-9_][_a-ce-km-z][a-z0-9]' $file >/dev/null; then
1.1       root      271:       if [ -r $file ]; then
                    272:        cp $file $2/$file >/dev/null 2>&1       \
                    273:        || echo "Can't copy $file"
                    274:        chmod +w $2/$file
1.1.1.5   root      275:        chmod a+r $2/$file
                    276:        # Here is how the sed commands in braces work.
                    277:        # (It doesn't work to put the comments inside the sed commands.)
                    278:                # Surround each word with spaces, to simplify matching below.
                    279:                # ANSIfy each pre-ANSI machine-dependent symbol
                    280:                # by surrounding it with __ __.
                    281:                # Remove the spaces that we inserted around each word.
1.1       root      282:        sed -e '
                    283:                                   :loop
                    284:          /\\$/                 N
                    285:          /\\$/                 b loop
1.1.1.6 ! root      286:          s%^\([        ]*#[    ]*else\)[       ]*/[^*].*%\1%
        !           287:          s%^\([        ]*#[    ]*else\)[       ]*[^/   ].*%\1%
        !           288:          s%^\([        ]*#[    ]*endif\)[      ]*/[^*].*%\1%
        !           289:          s%^\([        ]*#[    ]*endif\)[      ]*\*[^/].*%\1%
        !           290:          s%^\([        ]*#[    ]*endif\)[      ]*[^/*  ].*%\1%
1.1.1.5   root      291:          /\/\/[^*]/                    s|//\(.*\)$|/*\1*/|
                    292:          /[    ]_IO[A-Z]*[     ]*(/    s/\(_IO[A-Z]*[  ]*(\)\(.\),/\1'\''\2'\'',/
1.1       root      293:          /[    ]BSD43__IO[A-Z]*[       ]*(/    s/(\(.\),/('\''\1'\'',/
1.1.1.6 ! root      294:          /#define._IO/                 s/'\''\([cgxtf]\)'\''/\1/g
1.1.1.5   root      295:          /#define.BSD43__IO/           s/'\''\([cgx]\)'\''/\1/g
                    296:          /[^A-Z0-9_]CTRL[      ]*(/            s/\([^'\'']\))/'\''\1'\'')/
                    297:          /[^A-Z0-9]_CTRL[      ]*(/            s/\([^'\'']\))/'\''\1'\'')/
1.1.1.6 ! root      298:          /#define[     ]*[     ]CTRL/          s/'\''\([cgx]\)'\''/\1/g
        !           299:          /#define[     ]*[     ]_CTRL/         s/'\''\([cgx]\)'\''/\1/g
1.1.1.5   root      300:          /#define.BSD43_CTRL/          s/'\''\([cgx]\)'\''/\1/g
                    301:          /#[el]*if/{
                    302:                s/[a-zA-Z0-9_][a-zA-Z0-9_]*/ & /g
                    303: 
                    304:                s/ bsd4\([0-9]\) / __bsd4\1__ /g
                    305:                s/ _*i386 / __i386__ /g
                    306:                s/ is68k / __is68k__ /g
                    307:                s/ m68k / __m68k__ /g
                    308:                s/ mc680\([0-9]\)0 / __mc680\10__ /g
                    309:                s/ news\([0-9]*\) / __news\1__ /g
                    310:                s/ ns32000 / __ns32000__ /g
                    311:                s/ pyr / __pyr__ /g
                    312:                s/ sony_news / __sony_news__ /g
                    313:                s/ sparc / __sparc__ /g
                    314:                s/ sun\([a-z0-9]*\) / __sun\1__ /g
                    315:                s/ unix / __unix__ /g
                    316:                s/ vax / __vax__ /g
                    317: 
                    318:                s/ \([a-zA-Z0-9_][a-zA-Z0-9_]*\) /\1/g
                    319:          }
1.1.1.3   root      320:          /^#define.NULL[       ]/      i\
1.1       root      321:                #undef NULL
1.1.1.5   root      322:        ' $2/$file > $2/$file.
                    323:        mv $2/$file. $2/$file
1.1       root      324:        if cmp $file $2/$file >/dev/null 2>&1; then
                    325:           rm $2/$file
1.1.1.5   root      326:        else
                    327:           echo Fixed $file
1.1.1.6 ! root      328:           # Find any include directives that use "file".
        !           329:           for include in `egrep '^[    ]*#[    ]*include[      ]*"[^/]' $2/$file | sed -e 's/^[        ]*#[    ]*include[      ]*"\([^"]*\)".*$/\1/'`; do
        !           330:              dir=`echo $file | sed -e s'|/[^/]*$||'`
        !           331:              required="$required $1 $dir/$include $2/$dir/$include"
        !           332:           done
1.1       root      333:        fi
                    334:       fi
                    335:     fi
                    336:   done
                    337:   shift; shift
                    338: done
                    339: 
                    340: cd ${INPUT}
                    341: 
1.1.1.5   root      342: # Install the proper definition of size_t in header files that it comes from.
1.1.1.6 ! root      343: for file in sys/types.h stdlib.h sys/stdtypes.h; do
1.1.1.5   root      344:   if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    345:     cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    346:     chmod +w ${LIB}/$file 2>/dev/null
                    347:     chmod a+r ${LIB}/$file 2>/dev/null
                    348:   fi
                    349: 
                    350:   if [ -r ${LIB}/$file ]; then
                    351:     echo Fixing $file comment
1.1.1.6 ! root      352:     # Get the definition of __SIZE_TYPE__, if any.
1.1.1.5   root      353:     # (This file must be called something.c).
1.1.1.6 ! root      354:     echo "__SIZE_TYPE__" > ${LIB}/types.c
        !           355:     foo=`${GCCCMD} -E -P ${LIB}/types.c`
1.1.1.5   root      356:     rm -f ${LIB}/types.c
                    357:     # Default to our preferred type.
1.1.1.6 ! root      358:     if [ "$foo" = __SIZE_TYPE__ ]; then foo="unsigned long int"; fi
1.1.1.5   root      359:     sed -e "s/typedef[         a-z_]*[         ]size_t/typedef $foo size_t/" ${LIB}/$file > ${LIB}/${file}.sed
                    360:     rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
                    361:     if cmp $file ${LIB}/$file >/dev/null 2>&1; then
                    362:       rm ${LIB}/$file
                    363:     fi
                    364:   fi
                    365: done
                    366: 
1.1       root      367: # Fix one other error in this file: a mismatched quote not inside a C comment.
                    368: file=sundev/vuid_event.h
1.1.1.2   root      369: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    370:   mkdir ${LIB}/sundev 2>/dev/null
                    371:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    372:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      373:   chmod a+r ${LIB}/$file 2>/dev/null
1.1       root      374: fi
                    375: 
                    376: if [ -r ${LIB}/$file ]; then
                    377:   echo Fixing $file comment
1.1.1.5   root      378:   sed -e "s/doesn't/does not/" ${LIB}/$file > ${LIB}/${file}.sed
                    379:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
                    380:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
                    381:     rm ${LIB}/$file
                    382:   fi
                    383: fi
                    384: 
                    385: # Fix these Sun OS files to avoid an invalid identifier in an #ifdef.
                    386: file=sunwindow/win_cursor.h
                    387: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    388: #  mkdir ${LIB}/sunwindow 2>/dev/null
                    389:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    390:   chmod +w ${LIB}/$file 2>/dev/null
                    391: fi
                    392: if [ -r ${LIB}/$file ]; then
                    393:   echo Fixing $file
                    394:   sed -e "s/ecd.cursor/ecd_cursor/" ${LIB}/$file > ${LIB}/${file}.sed
                    395:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
                    396:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
                    397:     rm ${LIB}/$file
                    398:   fi
                    399: fi
                    400: file=sunwindow/win_lock.h
                    401: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    402: #  mkdir ${LIB}/sunwindow 2>/dev/null
                    403:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    404:   chmod +w ${LIB}/$file 2>/dev/null
                    405: fi
                    406: if [ -r ${LIB}/$file ]; then
                    407:   echo Fixing $file
                    408:   sed -e "s/ecd.cursor/ecd_cursor/" ${LIB}/$file > ${LIB}/${file}.sed
                    409:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
1.1       root      410:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
                    411:     rm ${LIB}/$file
                    412:   fi
                    413: fi
                    414: 
1.1.1.3   root      415: # Fix this Sun file to avoid interfering with stddef.h.
1.1       root      416: file=sys/stdtypes.h
1.1.1.2   root      417: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    418:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    419:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      420:   chmod a+r ${LIB}/$file 2>/dev/null
1.1       root      421: fi
                    422: 
                    423: if [ -r ${LIB}/$file ]; then
1.1.1.2   root      424:   echo Fixing $file
1.1.1.6 ! root      425: sed -e '/[      ]size_t.*;/i\
1.1.1.5   root      426: #ifndef _GCC_SIZE_T\
                    427: #define _GCC_SIZE_T' \
1.1.1.6 ! root      428:     -e '/[      ]size_t.*;/a\
1.1.1.5   root      429: #endif' \
1.1.1.6 ! root      430:     -e '/[      ]ptrdiff_t.*;/i\
1.1.1.5   root      431: #ifndef _GCC_PTRDIFF_T\
                    432: #define _GCC_PTRDIFF_T' \
1.1.1.6 ! root      433:     -e '/[      ]ptrdiff_t.*;/a\
1.1.1.5   root      434: #endif' \
1.1.1.6 ! root      435:     -e '/[      ]wchar_t.*;/i\
1.1.1.5   root      436: #ifndef _GCC_WCHAR_T\
                    437: #define _GCC_WCHAR_T' \
1.1.1.6 ! root      438:     -e '/[      ]wchar_t.*;/a\
1.1.1.5   root      439: #endif' ${LIB}/$file > ${LIB}/${file}.sed
                    440:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
1.1       root      441:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
                    442:     rm ${LIB}/$file
                    443:   fi
                    444: fi
                    445: 
1.1.1.6 ! root      446: # Fix this ARM/RISCiX file to avoid interfering with the use of __wchar_t
        !           447: # in cc1plus.
        !           448: file=stdlib.h
        !           449: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
        !           450:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
        !           451:   chmod +w ${LIB}/$file 2>/dev/null
        !           452:   chmod a+r ${LIB}/$file 2>/dev/null
        !           453: fi
        !           454: 
        !           455: if [ -r ${LIB}/$file ]; then
        !           456:   echo Fixing $file
        !           457:   sed -e "s/\(#[       ]*ifndef[       ]*\)__wchar_t/\1_GCC_WCHAR_T/" \
        !           458:       -e "s/\(#[       ]*define[       ]*\)__wchar_t/\1_GCC_WCHAR_T/" \
        !           459:      ${LIB}/$file > ${LIB}/${file}.sed
        !           460:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
        !           461:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
        !           462:     rm ${LIB}/$file
        !           463:   fi
        !           464: fi
        !           465: 
1.1.1.4   root      466: # Fix this file to avoid interfering with stddef.h, but don't mistakenly
                    467: # match e.g. ssize_t present in AIX for the ps/2.
1.1       root      468: file=sys/types.h
1.1.1.2   root      469: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    470:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    471:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      472:   chmod a+r ${LIB}/$file 2>/dev/null
1.1       root      473: fi
                    474: 
                    475: if [ -r ${LIB}/$file ]; then
1.1.1.2   root      476:   echo Fixing $file
1.1.1.5   root      477: sed -e '/[     ]size_t.*;/i\
                    478: #ifndef _GCC_SIZE_T\
                    479: #define _GCC_SIZE_T' \
                    480:     -e '/[     ]size_t.*;/a\
                    481: #endif' ${LIB}/$file > ${LIB}/${file}.sed
                    482:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
1.1       root      483:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
                    484:     rm ${LIB}/$file
                    485:   fi
                    486: fi
                    487: 
1.1.1.6 ! root      488: # Fix HP's use of ../machine/inline.h to refer to
        !           489: # /usr/include/machine/inline.h
        !           490: file=sys/spinlock.h
        !           491: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
        !           492:   cp $file ${LIB}/$file
        !           493: fi
        !           494: if [ -r ${LIB}/$file ] ; then
        !           495:   echo Fixing $file
        !           496:   sed -e 's,"../machine/inline.h",<machine/inline.h>,' \
        !           497:     -e 's,"../machine/psl.h",<machine/psl.h>,' \
        !           498:   ${LIB}/$file > ${LIB}/${file}.sed
        !           499:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
        !           500:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
        !           501:     rm ${LIB}/$file
        !           502:   fi
        !           503: fi
        !           504: 
1.1.1.4   root      505: # Fix an error in this file: the #if says _cplusplus, not the double
                    506: # underscore __cplusplus that it should be
                    507: file=tinfo.h
                    508: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    509:   mkdir ${LIB}/rpcsvc 2>/dev/null
                    510:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    511:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      512:   chmod a+r ${LIB}/$file 2>/dev/null
1.1.1.4   root      513: fi
                    514: 
                    515: if [ -r ${LIB}/$file ]; then
                    516:   echo Fixing $file, __cplusplus macro
                    517:   sed -e 's/[  ]_cplusplus/ __cplusplus/' ${LIB}/$file > ${LIB}/${file}.sed
                    518:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
                    519:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
                    520:     rm ${LIB}/$file
                    521:   fi
                    522: fi
                    523: 
1.1       root      524: # Fix an error in this file: a missing semi-colon at the end of the statsswtch
                    525: # structure definition.
                    526: file=rpcsvc/rstat.h
1.1.1.2   root      527: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    528:   mkdir ${LIB}/rpcsvc 2>/dev/null
                    529:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    530:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      531:   chmod a+r ${LIB}/$file 2>/dev/null
1.1       root      532: fi
                    533: 
                    534: if [ -r ${LIB}/$file ]; then
                    535:   echo Fixing $file, definition of statsswtch
1.1.1.5   root      536:   sed -e 's/boottime$/boottime;/' ${LIB}/$file > ${LIB}/${file}.sed
                    537:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
1.1       root      538:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
                    539:     rm ${LIB}/$file
                    540:   fi
                    541: fi
                    542: 
                    543: # Fix an error in this file: a missing semi-colon at the end of the nodeent
                    544: # structure definition.
                    545: file=netdnet/dnetdb.h
1.1.1.2   root      546: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    547:   mkdir ${LIB}/netdnet 2>/dev/null
                    548:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    549:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      550:   chmod a+r ${LIB}/$file 2>/dev/null
1.1       root      551: fi
                    552: 
                    553: if [ -r ${LIB}/$file ]; then
                    554:   echo Fixing $file, definition of nodeent
1.1.1.5   root      555:   sed -e 's/char.*na_addr *$/char *na_addr;/' ${LIB}/$file > ${LIB}/${file}.sed
                    556:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
1.1       root      557:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
                    558:     rm ${LIB}/$file
                    559:   fi
                    560: fi
                    561: 
                    562: # Check for bad #ifdef line (in Ultrix 4.1)
                    563: file=sys/file.h
1.1.1.2   root      564: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    565:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    566:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      567:   chmod a+r ${LIB}/$file 2>/dev/null
1.1       root      568: fi
                    569: 
                    570: if [ -r ${LIB}/$file ]; then
                    571:   echo Fixing $file, bad \#ifdef line
1.1.1.5   root      572:   sed -e 's/#ifdef KERNEL/#if defined(KERNEL)/' ${LIB}/$file > ${LIB}/${file}.sed
                    573:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
1.1       root      574:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
                    575:     rm ${LIB}/$file
                    576:   fi
                    577: fi
                    578: 
1.1.1.2   root      579: # Check for superfluous `static' (in Ultrix 4.2)
1.1       root      580: file=machine/cpu.h
1.1.1.2   root      581: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    582:   mkdir ${LIB}/machine 2>/dev/null
                    583:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    584:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      585:   chmod a+r ${LIB}/$file 2>/dev/null
1.1       root      586: fi
                    587: 
                    588: if [ -r ${LIB}/$file ]; then
                    589:   echo Fixing $file, superfluous static
1.1.1.5   root      590:   sed -e 's/^static struct tlb_pid_state/struct tlb_pid_state/' ${LIB}/$file > ${LIB}/${file}.sed
                    591:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
1.1       root      592:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
                    593:     rm ${LIB}/$file
                    594:   else
                    595: # This file has an alternative name, mips/cpu.h.  Fix that name, too.
1.1.1.6 ! root      596:     if cmp machine/cpu.h mips/cpu.h > /dev/null 2>&1; then
1.1       root      597:       mkdir ${LIB}/mips 2>&-
                    598:       ln ${LIB}/$file ${LIB}/mips/cpu.h 
                    599:     fi
                    600:   fi
                    601: fi
                    602: 
1.1.1.2   root      603: # Incorrect sprintf declaration in X11/Xmu.h
1.1       root      604: file=X11/Xmu.h
1.1.1.2   root      605: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    606:   mkdir ${LIB}/X11 2>/dev/null
                    607:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    608:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      609:   chmod a+r ${LIB}/$file 2>/dev/null
1.1       root      610: fi
                    611: 
                    612: if [ -r ${LIB}/$file ]; then
                    613:   echo Fixing $file sprintf declaration
1.1.1.5   root      614:   sed -e 's,^extern char \*    sprintf();$,#ifndef __STDC__\
                    615: extern char *  sprintf();\
                    616: #endif /* !defined __STDC__ */,' ${LIB}/$file > ${LIB}/${file}.sed
                    617:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
1.1       root      618:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
                    619:     rm ${LIB}/$file
                    620:   fi
                    621: fi
                    622: 
1.1.1.4   root      623: # Incorrect sprintf declaration in X11/Xmu/Xmu.h
                    624: # (It's not clear whether the right file name is this or X11/Xmu.h.)
                    625: file=X11/Xmu/Xmu.h
                    626: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    627:   mkdir ${LIB}/X11/Xmu 2>/dev/null
                    628:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    629:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      630:   chmod a+r ${LIB}/$file 2>/dev/null
1.1.1.4   root      631: fi
                    632: 
                    633: if [ -r ${LIB}/$file ]; then
                    634:   echo Fixing $file sprintf declaration
1.1.1.5   root      635:   sed -e 's,^extern char \*    sprintf();$,#ifndef __STDC__\
                    636: extern char *  sprintf();\
                    637: #endif /* !defined __STDC__ */,' ${LIB}/$file > ${LIB}/${file}.sed
                    638:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
1.1.1.4   root      639:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
                    640:     rm ${LIB}/$file
                    641:   fi
                    642: fi
                    643: 
1.1       root      644: # Check for missing ';' in struct
                    645: file=netinet/ip.h
1.1.1.2   root      646: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    647:   mkdir ${LIB}/netinet 2>/dev/null
                    648:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    649:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      650:   chmod a+r ${LIB}/$file 2>/dev/null
1.1       root      651: fi
                    652: 
1.1.1.2   root      653: if [ -r ${LIB}/$file ]; then
                    654:   echo Fixing $file
                    655:   sed -e '/^struct/,/^};/s/}$/};/' ${LIB}/$file > ${LIB}/${file}.sed
                    656:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
                    657:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
                    658:     rm -f ${LIB}/$file
                    659:   fi
                    660: fi
1.1       root      661: 
1.1.1.2   root      662: # Fix the CAT macro in SunOS memvar.h.
1.1       root      663: file=pixrect/memvar.h
1.1.1.2   root      664: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    665:   mkdir ${LIB}/pixrect 2>/dev/null
                    666:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    667:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      668:   chmod a+r ${LIB}/$file 2>/dev/null
1.1.1.2   root      669: fi
                    670: 
                    671: if [ -r ${LIB}/$file ]; then
                    672:   echo Fixing $file
                    673:   sed -e '/^#define.CAT(a,b)/ i\
1.1       root      674: #ifdef __STDC__ \
                    675: #define CAT(a,b) a##b\
                    676: #else
                    677: /^#define.CAT(a,b)/ a\
                    678: #endif
1.1.1.2   root      679: ' ${LIB}/$file > ${LIB}/${file}.sed
                    680:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
                    681:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
                    682:     rm -f ${LIB}/$file
1.1       root      683:   fi
                    684: fi
                    685: 
                    686: # Check for yet more missing ';' in struct (in SunOS 4.0.x)
                    687: file=rpcsvc/rusers.h
1.1.1.2   root      688: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    689:   mkdir ${LIB}/rpcsvc 2>/dev/null
                    690:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    691:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      692:   chmod a+r ${LIB}/$file 2>/dev/null
1.1.1.2   root      693: fi
                    694: 
                    695: if [ -r ${LIB}/$file ]; then
                    696:   echo Fixing $file
                    697:   sed -e '/^struct/,/^};/s/_cnt$/_cnt;/' ${LIB}/$file > ${LIB}/${file}.sed
                    698:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
                    699:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
                    700:     rm -f ${LIB}/$file
1.1       root      701:   fi
                    702: fi
                    703: 
                    704: # Fix return type of exit and abort in <stdlib.h> on SunOS 4.1.
1.1.1.6 ! root      705: # Also wrap protection around size_t for m88k-sysv3 systems.
1.1       root      706: file=stdlib.h
1.1.1.2   root      707: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    708:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    709:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      710:   chmod a+r ${LIB}/$file 2>/dev/null
1.1       root      711: fi
1.1.1.2   root      712: 
                    713: if [ -r ${LIB}/$file ]; then
                    714:   echo Fixing $file
                    715:   sed -e 's/int        abort/void      abort/g' \
1.1.1.3   root      716:   -e 's/int    free/void       free/g' \
                    717:   -e 's/char \*        calloc/void \*  calloc/g' \
                    718:   -e 's/char \*        malloc/void \*  malloc/g' \
                    719:   -e 's/char \*        realloc/void \* realloc/g' \
1.1.1.6 ! root      720:   -e 's/int    exit/void       exit/g' \
        !           721:   -e '/typedef[        a-zA-Z_]*[      ]size_t[        ]*;/i\
        !           722: #ifndef _GCC_SIZE_T\
        !           723: #define _GCC_SIZE_T' \
        !           724:   -e '/typedef[        a-zA-Z_]*[      ]size_t[        ]*;/a\
        !           725: #endif' \
        !           726:       ${LIB}/$file > ${LIB}/${file}.sed
1.1.1.2   root      727:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
                    728:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
1.1       root      729:     rm -f ${LIB}/$file
                    730:   fi
                    731: fi
                    732: 
1.1.1.3   root      733: # Fix return type of free and {c,m,re}alloc in <malloc.h> on SunOS 4.1.
                    734: file=malloc.h
                    735: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    736:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    737:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      738:   chmod a+r ${LIB}/$file 2>/dev/null
1.1.1.3   root      739: fi
                    740: 
                    741: if [ -r ${LIB}/$file ]; then
                    742:   echo Fixing $file
                    743:   sed -e 's/typedef[   ]char \*        malloc_t/typedef void \*        malloc_t/g' \
                    744:   -e 's/int[   ][      ]*free/void     free/g' \
                    745:   ${LIB}/$file > ${LIB}/${file}.sed
                    746:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
                    747:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
                    748:     rm -f ${LIB}/$file
                    749:   fi
                    750: fi
                    751: 
1.1       root      752: # Fix bogus #ifdef in <hsfs/hsfs_spec.h> on SunOS 4.1.
                    753: file=hsfs/hsfs_spec.h
1.1.1.2   root      754: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    755:   mkdir ${LIB}/hsfs 2>/dev/null
                    756:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    757:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      758:   chmod a+r ${LIB}/$file 2>/dev/null
1.1.1.2   root      759: fi
                    760: 
1.1       root      761: if [ -r ${LIB}/$file ]; then
1.1.1.2   root      762:   echo Fixing $file
                    763:   sed -e 's/\#ifdef __i386__ || __vax__/\#if __i386__ || __vax__/g' \
1.1.1.5   root      764:     ${LIB}/$file > ${LIB}/${file}.
                    765:   rm -f ${LIB}/$file; mv ${LIB}/${file}. ${LIB}/$file
1.1.1.2   root      766:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
1.1       root      767:     rm -f ${LIB}/$file
                    768:   fi
                    769: fi
                    770: 
                    771: # Fix bogus #ifdef in <hsfs/hsnode.h> on SunOS 4.1.
                    772: file=hsfs/hsnode.h
1.1.1.2   root      773: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    774:   mkdir ${LIB}/hsfs 2>/dev/null
                    775:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    776:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      777:   chmod a+r ${LIB}/$file 2>/dev/null
1.1.1.2   root      778: fi
                    779: 
1.1       root      780: if [ -r ${LIB}/$file ]; then
1.1.1.2   root      781:   echo Fixing $file
                    782:   sed -e 's/\#ifdef __i386__ || __sun4c__/\#if __i386__ || __sun4c__/g' \
                    783:     ${LIB}/$file > ${LIB}/${file}.sed
                    784:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
                    785:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
1.1       root      786:     rm -f ${LIB}/$file
                    787:   fi
                    788: fi
                    789: 
                    790: # Fix bogus #ifdef in <hsfs/iso_spec.h> on SunOS 4.1.
                    791: file=hsfs/iso_spec.h
1.1.1.2   root      792: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    793:   mkdir ${LIB}/hsfs 2>/dev/null
                    794:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    795:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      796:   chmod a+r ${LIB}/$file 2>/dev/null
1.1.1.2   root      797: fi
                    798: 
1.1       root      799: if [ -r ${LIB}/$file ]; then
1.1.1.2   root      800:   echo Fixing $file
                    801:   sed -e 's/\#ifdef __i386__ || __vax__/\#if __i386__ || __vax__/g' \
                    802:     ${LIB}/$file > ${LIB}/${file}.sed
                    803:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
                    804:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
                    805:     rm -f ${LIB}/$file
                    806:   fi
                    807: fi
                    808: 
                    809: # Incorrect #include in Sony News-OS 3.2.
                    810: file=machine/machparam.h
                    811: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    812:   mkdir ${LIB}/machine 2>/dev/null
                    813:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    814:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      815:   chmod a+r ${LIB}/$file 2>/dev/null
1.1.1.2   root      816: fi
                    817: 
                    818: if [ -r ${LIB}/$file ]; then
                    819:   echo Fixing $file, incorrect \#include
                    820:   sed -e 's@"../machine/endian.h"@<machine/endian.h>@' \
1.1.1.5   root      821:     ${LIB}/$file > ${LIB}/${file}.
                    822:   rm -f ${LIB}/$file; mv ${LIB}/${file}. ${LIB}/$file
1.1.1.2   root      823:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
                    824:     rm -f ${LIB}/$file
                    825:   fi
                    826: fi
                    827: 
                    828: # Multiline comment after typedef on IRIX 4.0.1.
                    829: file=sys/types.h
                    830: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    831:   mkdir ${LIB}/sys 2>/dev/null
                    832:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    833:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      834:   chmod a+r ${LIB}/$file 2>/dev/null
1.1.1.2   root      835: fi
                    836: 
                    837: if [ -r ${LIB}/$file ]; then
                    838:   echo Fixing $file, comment in the middle of \#ifdef
                    839:   sed -e 's@type of the result@type of the result */@' \
                    840:     -e 's@of the sizeof@/* of the sizeof@' \
                    841:     ${LIB}/$file > ${LIB}/${file}.sed
                    842:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
                    843:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
1.1.1.5   root      844:     rm -f ${LIB}/$file
                    845:   fi
                    846: fi
                    847: 
                    848: # Turning // comments into /* */ comments trashes this IRIX 4.0.1
                    849: # header file, which embeds // comments inside multi-line /* */
                    850: # comments.  If this looks like the IRIX header file, we refix it by
                    851: # just throwing away the // comments.
                    852: file=fam.h
                    853: if [ -r ${LIB}/$file ]; then
                    854:   if egrep indigo.esd ${LIB}/$file > /dev/null; then
                    855:     echo Fixing $file, overeager sed script
                    856:     rm ${LIB}/$file
                    857:     sed -e 's|//.*$||g' $file > ${LIB}/$file
                    858:     chmod +w ${LIB}/$file 2>/dev/null
                    859:     chmod a+r ${LIB}/$file 2>/dev/null
                    860:   fi
                    861: fi
                    862: 
1.1.1.6 ! root      863: # Some IRIX header files contains the string "//"
        !           864: for file in elf_abi.h elf.h; do
        !           865:   if [ -r ${LIB}/$file ]; then
        !           866:     echo Fixing $file, overeager sed script
        !           867:     sed -e 's|"/\*"\*/|"//"|' ${LIB}/$file > ${LIB}/${file}.sed
        !           868:     rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
        !           869:     if cmp $file ${LIB}/$file >/dev/null 2>&1; then
        !           870:       rm -f ${LIB}/$file
        !           871:     fi
        !           872:   fi
        !           873: done
        !           874: 
        !           875: # Same problem with a file from SunOS 4.1.3 : a header file containing
        !           876: # the string "//" embedded in "/**/"
        !           877: file=sbusdev/audiovar.h
1.1.1.5   root      878: if [ -r ${LIB}/$file ]; then
                    879:   echo Fixing $file, overeager sed script
1.1.1.6 ! root      880:   rm ${LIB}/$file
        !           881:   sed -e 's|//.*$||g' $file > ${LIB}/$file
        !           882:   chmod +w ${LIB}/$file 2>/dev/null
        !           883:   chmod a+r ${LIB}/$file 2>/dev/null
1.1       root      884: fi
                    885: 
1.1.1.3   root      886: # Fix non-ANSI memcpy declaration that conflicts with gcc's builtin
                    887: # declaration on Sun OS 4.x.  We must only fix this on Sun OS 4.x, because
                    888: # many other systems have similar text but correct versions of the file.
                    889: # To ensure only Sun's is fixed, we grep for a likely unique string.
                    890: file=memory.h
1.1.1.5   root      891: if [ -r $file ] && egrep '/\*  @\(#\)memory\.h 1\.[2-4] 8./../.. SMI; from S5R2 1\.2   \*/' $file > /dev/null; then
                    892:   if [ ! -r ${LIB}/$file ]; then
1.1.1.3   root      893:     cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    894:     chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      895:     chmod a+r ${LIB}/$file 2>/dev/null
1.1.1.3   root      896:   fi
                    897:   if [ -r ${LIB}/$file ]; then
                    898:     echo Replacing $file
                    899:     cat > ${LIB}/$file << EOF
                    900: /* This file was generated by fixincludes */
                    901: #ifndef __memory_h__
                    902: #define __memory_h__
                    903: 
                    904: #ifdef __STDC__
                    905: extern void *memccpy();
                    906: extern void *memchr();
                    907: extern void *memcpy();
                    908: extern void *memset();
                    909: #else
                    910: extern char *memccpy();
                    911: extern char *memchr();
                    912: extern char *memcpy();
                    913: extern char *memset();
                    914: #endif /* __STDC__ */
                    915: 
                    916: extern int memcmp();
                    917: 
1.1.1.5   root      918: #endif /* __memory_h__ */
1.1.1.3   root      919: EOF
                    920:   fi
                    921: fi
                    922: 
                    923: # parameters not const on DECstation Ultrix V4.0.
                    924: file=stdio.h
                    925: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    926:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    927:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root      928:   chmod a+r ${LIB}/$file 2>/dev/null
1.1.1.3   root      929: fi
                    930: 
                    931: if [ -r ${LIB}/$file ]; then
                    932:   echo Fixing $file, non-const arg
                    933:   sed -e 's@perror( char \*__s );@perror( const char *__s );@' \
                    934:       -e 's@fputs( char \*__s,@fputs( const char *__s,@' \
                    935:       -e 's@fopen( char \*__filename, char \*__type );@fopen( const char *__filename, const char *__type );@' \
                    936:       -e 's@fwrite( void \*__ptr,@fwrite( const void *__ptr,@' \
                    937:       -e 's@fscanf( FILE \*__stream, char \*__format,@fscanf( FILE *__stream, const char *__format,@' \
                    938:       -e 's@scanf( char \*__format,@scanf( const char *__format,@' \
                    939:       -e 's@sscanf( char \*__s, char \*__format,@sscanf( const char *__s, const char *__format,@' \
                    940:     ${LIB}/$file > ${LIB}/${file}.sed
                    941:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
                    942:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
1.1.1.5   root      943:     rm -f ${LIB}/$file
                    944:   fi
                    945: fi
                    946: 
                    947: # parameters conflict with C++ new on rs/6000 
1.1.1.6 ! root      948: for file in stdio.h unistd.h ; do
        !           949:   if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
        !           950:     cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
        !           951:     chmod +w ${LIB}/$file 2>/dev/null
        !           952:   fi
        !           953: 
        !           954:   if [ -r ${LIB}/$file ]; then
        !           955:     echo Fixing $file, parameter name conflicts
        !           956:     sed -e 's@rename(const char \*old, const char \*new)@rename(const char *_old, const char *_new)@' \
        !           957:       ${LIB}/$file > ${LIB}/${file}.sed
        !           958:     rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
        !           959:     if cmp $file ${LIB}/$file >/dev/null 2>&1; then
        !           960:       rm -f ${LIB}/$file
        !           961:     fi
        !           962:   fi
        !           963: done
        !           964: 
        !           965: # function class(double x) conflicts with C++ keyword on rs/6000 
        !           966: file=math.h
1.1.1.5   root      967: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                    968:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                    969:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.6 ! root      970:   chmod a+r ${LIB}/$file 2>/dev/null
1.1.1.5   root      971: fi
                    972: 
                    973: if [ -r ${LIB}/$file ]; then
1.1.1.6 ! root      974:   if grep 'class[(]' ${LIB}/$file >/dev/null; then
        !           975:     echo Fixing $file
        !           976:     sed -e '/class[(]/i\
        !           977: #ifndef __cplusplus' \
        !           978:         -e '/class[(]/a\
        !           979: #endif' ${LIB}/$file > ${LIB}/${file}.sed
        !           980:     rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
        !           981:     if cmp $file ${LIB}/$file >/dev/null 2>&1; then
        !           982:       rm ${LIB}/$file
        !           983:     fi
        !           984:   fi
        !           985: fi
        !           986: 
        !           987: # Wrong fchmod prototype on RS/6000.
        !           988: file=sys/stat.h
        !           989: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
        !           990:   mkdir ${LIB}/sys 2>/dev/null
        !           991:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
        !           992:   chmod +w ${LIB}/$file 2>/dev/null
        !           993:   chmod a+r ${LIB}/$file 2>/dev/null
        !           994: fi
        !           995: 
        !           996: if [ -r ${LIB}/$file ]; then
        !           997:   echo Fixing $file, fchmod prototype
        !           998:   sed -e 's/fchmod(char \*/fchmod(int/' \
        !           999:     ${LIB}/$file > ${LIB}/$file.sed
        !          1000:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
        !          1001:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
        !          1002:     rm -f ${LIB}/$file
        !          1003:   fi
        !          1004: fi
        !          1005: 
        !          1006: # NeXT 2.0 defines 'int wait(union wait*)', which conflicts with Posix.1.
        !          1007: # Note that version 3 of the NeXT system has wait.h in a different directory,
        !          1008: # so that this code won't do anything.  But wait.h in version 3 has a
        !          1009: # conditional, so it doesn't need this fix.  So everything is okay.
        !          1010: file=sys/wait.h
        !          1011: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
        !          1012:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
        !          1013:   chmod +w ${LIB}/$file 2>/dev/null
        !          1014: fi
        !          1015: 
        !          1016: if [ -r ${LIB}/$file ] \
        !          1017:   && grep 'wait[(]union wait' ${LIB}/$file >/dev/null; then
        !          1018:   echo Fixing $file, bad wait formal
        !          1019:   sed -e 's@wait(union wait@wait(void@' ${LIB}/$file > ${LIB}/${file}.sed
1.1.1.5   root     1020:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
                   1021:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
1.1.1.3   root     1022:     rm -f ${LIB}/$file
                   1023:   fi
                   1024: fi
                   1025: 
1.1.1.4   root     1026: # Don't use or define the name va_list in stdio.h.
                   1027: # This is for ANSI and also to interoperate properly with gvarargs.h.
                   1028: file=stdio.h
                   1029: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                   1030:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                   1031:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root     1032:   chmod a+r ${LIB}/$file 2>/dev/null
1.1.1.4   root     1033: fi
                   1034: 
                   1035: if [ -r ${LIB}/$file ]; then
                   1036:   echo Fixing $file, use of va_list
                   1037:   # Arrange for stdio.h to use stdarg.h to define __gnuc_va_list
                   1038:   (echo "#define __need___va_list"
                   1039:    echo "#include <stdarg.h>") > ${LIB}/${file}.sed
                   1040:   # Use __gnuc_va_list in arg types in place of va_list.
1.1.1.5   root     1041:   # On 386BSD use __gnuc_va_list instead of _VA_LIST_. We're hoping the
                   1042:   # trailing parentheses and semicolon save all other systems from this.
1.1.1.4   root     1043:   # Define __va_list__ (something harmless and unused) instead of va_list.
                   1044:   # Don't claim to have defined va_list.
                   1045:   sed -e 's@ va_list @ __gnuc_va_list @' \
1.1.1.5   root     1046:       -e 's@ va_list)@ __gnuc_va_list)@' \
                   1047:       -e 's@ _VA_LIST_));@ __gnuc_va_list));@' \
1.1.1.4   root     1048:       -e 's@ va_list@ __va_list__@' \
                   1049:       -e 's@\*va_list@*__va_list__@' \
1.1.1.6 ! root     1050:       -e 's@ __va_list)@ __gnuc_va_list)@' \
        !          1051:       -e 's@_NEED___VA_LIST@_NEED___Va_LIST@' \
1.1.1.4   root     1052:       -e 's@VA_LIST@DUMMY_VA_LIST@' \
1.1.1.6 ! root     1053:       -e 's@_NEED___Va_LIST@_NEED___VA_LIST@' \
1.1.1.4   root     1054:     ${LIB}/$file >> ${LIB}/${file}.sed
                   1055:   
                   1056:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
                   1057:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
                   1058:     rm -f ${LIB}/$file
                   1059:   fi
                   1060: fi
                   1061: 
                   1062: # Cancel out ansi_compat.h on Ultrix.  Replace it with empty file.
                   1063: file=ansi_compat.h
                   1064: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                   1065:   if grep -s ULTRIX $file; then
                   1066:     echo "/* This file intentionally left blank.  */" > $LIB/$file
                   1067:   fi
                   1068: fi
                   1069: 
1.1.1.3   root     1070: # parameter to atof not const on DECstation Ultrix V4.0.
1.1.1.4   root     1071: # also get rid of bogus inline definitions in HP-UX 8.0
1.1.1.3   root     1072: file=math.h
                   1073: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
                   1074:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
                   1075:   chmod +w ${LIB}/$file 2>/dev/null
1.1.1.5   root     1076:   chmod a+r ${LIB}/$file 2>/dev/null
1.1.1.3   root     1077: fi
                   1078: 
                   1079: if [ -r ${LIB}/$file ]; then
                   1080:   echo Fixing $file, non-const arg
                   1081:   sed -e 's@atof( char \*__nptr );@atof( const char *__nptr );@' \
1.1.1.6 ! root     1082:       -e 's@inline int abs(int [a-z][a-z]*) {.*}@@' \
        !          1083:       -e 's@inline double abs(double [a-z][a-z]*) {.*}@@' \
        !          1084:       -e 's@inline int sqr(int [a-z][a-z]*) {.*}@@' \
        !          1085:       -e 's@inline double sqr(double [a-z][a-z]*) {.*}@@' \
1.1.1.3   root     1086:     ${LIB}/$file > ${LIB}/${file}.sed
                   1087:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
                   1088:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
1.1.1.5   root     1089:     rm -f ${LIB}/$file
                   1090:   fi
                   1091: fi
                   1092: 
1.1.1.6 ! root     1093: # Avoid nested comments on Ultrix 4.3.
        !          1094: file=rpc/svc.h
        !          1095: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
        !          1096:   mkdir ${LIB}/rpc 2>/dev/null
        !          1097:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
        !          1098:   chmod +w ${LIB}/$file 2>/dev/null
        !          1099:   chmod a+r ${LIB}/$file 2>/dev/null
        !          1100: fi
        !          1101: 
        !          1102: if [ -r ${LIB}/$file ]; then
        !          1103:   echo Fixing $file, nested comment
        !          1104:   sed -e 's@^\( \*     int protocol;  \)/\*@\1*/ /*@' \
        !          1105:     ${LIB}/$file > ${LIB}/$file.sed
        !          1106:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
        !          1107:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
        !          1108:     rm -f ${LIB}/$file
        !          1109:   fi
        !          1110: fi
        !          1111: 
1.1.1.5   root     1112: # In limits.h, put #ifndefs around things that are supposed to be defined
                   1113: # in float.h to avoid redefinition errors if float.h is included first.
                   1114: # On HP/UX this patch does not work, because on HP/UX limits.h uses
                   1115: # multi line comments and the inserted #endif winds up inside the
                   1116: # comment.  Fortunately, HP/UX already uses #ifndefs in limits.h; if
                   1117: # we find a #ifndef FLT_MIN we assume that all the required #ifndefs
                   1118: # are there, and we do not add them ourselves.
1.1.1.6 ! root     1119: for file in limits.h sys/limits.h; do
        !          1120:   if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
        !          1121:     mkdir ${LIB}/sys 2>/dev/null
        !          1122:     cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
        !          1123:     chmod +w ${LIB}/$file 2>/dev/null
        !          1124:     chmod a+r ${LIB}/$file 2>/dev/null
        !          1125:   fi
1.1.1.5   root     1126: 
1.1.1.6 ! root     1127:   if [ -r ${LIB}/$file ]; then
        !          1128:     if egrep 'ifndef[  ]+FLT_MIN' ${LIB}/$file >/dev/null; then
        !          1129:       true
        !          1130:     else
        !          1131:       echo Fixing $file
        !          1132:       sed -e '/[       ]FLT_MIN[       ]/i\
1.1.1.5   root     1133: #ifndef FLT_MIN'\
1.1.1.6 ! root     1134:          -e '/[        ]FLT_MIN[       ]/a\
1.1.1.5   root     1135: #endif'\
1.1.1.6 ! root     1136:          -e '/[        ]FLT_MAX[       ]/i\
1.1.1.5   root     1137: #ifndef FLT_MAX'\
1.1.1.6 ! root     1138:          -e '/[        ]FLT_MAX[       ]/a\
1.1.1.5   root     1139: #endif'\
1.1.1.6 ! root     1140:          -e '/[        ]FLT_DIG[       ]/i\
1.1.1.5   root     1141: #ifndef FLT_DIG'\
1.1.1.6 ! root     1142:          -e '/[        ]FLT_DIG[       ]/a\
1.1.1.5   root     1143: #endif'\
1.1.1.6 ! root     1144:          -e '/[        ]DBL_MIN[       ]/i\
1.1.1.5   root     1145: #ifndef DBL_MIN'\
1.1.1.6 ! root     1146:          -e '/[        ]DBL_MIN[       ]/a\
1.1.1.5   root     1147: #endif'\
1.1.1.6 ! root     1148:          -e '/[        ]DBL_MAX[       ]/i\
1.1.1.5   root     1149: #ifndef DBL_MAX'\
1.1.1.6 ! root     1150:          -e '/[        ]DBL_MAX[       ]/a\
1.1.1.5   root     1151: #endif'\
1.1.1.6 ! root     1152:          -e '/[        ]DBL_DIG[       ]/i\
1.1.1.5   root     1153: #ifndef DBL_DIG'\
1.1.1.6 ! root     1154:          -e '/[        ]DBL_DIG[       ]/a\
1.1.1.5   root     1155: #endif'\
1.1.1.6 ! root     1156:        ${LIB}/$file > ${LIB}/${file}.sed
        !          1157:       rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
        !          1158:     fi
        !          1159:     if cmp $file ${LIB}/$file >/dev/null 2>&1; then
        !          1160:       echo Deleting ${LIB}/$file\; no fixes were needed.
        !          1161:       rm -f ${LIB}/$file
        !          1162:     fi
1.1.1.5   root     1163:   fi
1.1.1.6 ! root     1164: done
        !          1165: 
        !          1166: # In math.h, put #ifndefs around things that might be defined in a gcc
        !          1167: # specific math-*.h file.
        !          1168: file=math.h
        !          1169: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
        !          1170:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
        !          1171:   chmod +w ${LIB}/$file 2>/dev/null
        !          1172:   chmod a+r ${LIB}/$file 2>/dev/null
        !          1173: fi
        !          1174: 
        !          1175: if [ -r ${LIB}/$file ]; then
        !          1176:   echo Fixing $file
        !          1177:   sed -e '/define[     ]HUGE_VAL[      ]/i\
        !          1178: #ifndef HUGE_VAL'\
        !          1179:       -e '/define[     ]HUGE_VAL[      ]/a\
        !          1180: #endif'\
        !          1181:     ${LIB}/$file > ${LIB}/${file}.sed
        !          1182:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
1.1.1.5   root     1183:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
1.1.1.3   root     1184:     echo Deleting ${LIB}/$file\; no fixes were needed.
                   1185:     rm -f ${LIB}/$file
                   1186:   fi
                   1187: fi
                   1188: 
1.1.1.6 ! root     1189: # Remove erroneous parentheses in sym.h on Alpha OSF/1.
        !          1190: file=sym.h
        !          1191: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
        !          1192:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
        !          1193:   chmod +w ${LIB}/$file 2>/dev/null
        !          1194:   chmod a+r ${LIB}/$file 2>/dev/null
        !          1195: fi
        !          1196: 
        !          1197: if [ -r ${LIB}/$file ]; then
        !          1198:   echo Fixing $file
        !          1199:   sed -e 's/#ifndef(__mips64)/#ifndef __mips64/' \
        !          1200:     ${LIB}/$file > ${LIB}/${file}.sed
        !          1201:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
        !          1202:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
        !          1203:     rm -f ${LIB}/$file
        !          1204:   fi
        !          1205: fi
        !          1206: 
        !          1207: # Fix incorrect S_IF* definitions on m88k-sysv3.
        !          1208: file=sys/stat.h
        !          1209: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
        !          1210:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
        !          1211:   chmod +w ${LIB}/$file 2>/dev/null
        !          1212:   chmod a+r ${LIB}/$file 2>/dev/null
        !          1213: fi
        !          1214: 
        !          1215: if [ -r ${LIB}/$file ]; then
        !          1216:   echo Fixing $file
        !          1217:   sed -e 's/^\(#define[        ]*S_IS[A-Z]*(m)\)[      ]*(m[   ]*&[    ]*\(S_IF[A-Z][A-Z][A-Z][A-Z]*\)[        ]*)/\1 (((m)\&S_IFMT)==\2)/' \
        !          1218:       -e 's/^\(#define[        ]*S_IS[A-Z]*(m)\)[      ]*(m[   ]*&[    ]*\(0[0-9]*\)[  ]*)/\1 (((m)\&S_IFMT)==\2)/' \
        !          1219:     ${LIB}/$file > ${LIB}/${file}.sed
        !          1220:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
        !          1221:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
        !          1222:     rm -f ${LIB}/$file
        !          1223:   fi
        !          1224: fi
        !          1225: 
        !          1226: # Fix getopt declarations in stdio.h and stdlib.h on Alpha OSF/1.
        !          1227: for file in stdio.h stdlib.h; do
        !          1228:   if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
        !          1229:     cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
        !          1230:     chmod +w ${LIB}/$file 2>/dev/null
        !          1231:     chmod a+r ${LIB}/$file 2>/dev/null
        !          1232:   fi
        !          1233: 
        !          1234:   if [ -r ${LIB}/$file ]; then
        !          1235:     echo Fixing $file, getopt declaration
        !          1236:     sed -e 's/getopt(int, char \*\[\],char \*)/getopt(int, char *const[], const char *)/' \
        !          1237:       ${LIB}/$file > ${LIB}/${file}.sed
        !          1238:     rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
        !          1239:     if cmp $file ${LIB}/$file >/dev/null 2>&1; then
        !          1240:       rm -f ${LIB}/$file
        !          1241:     fi
        !          1242:   fi
        !          1243: done
        !          1244: 
1.1.1.4   root     1245: # These two files on SunOS 4 are included by other files
                   1246: # in the same directory, using "...".  So we must make sure they exist
                   1247: # in the same directory as the other fixed files.
                   1248: if [ -r ${INPUT}/multimedia/audio_errno.h ]
                   1249: then
                   1250:   ln -s ${INPUT}/multimedia/audio_errno.h ${LIB}/multimedia 2>/dev/null
                   1251: fi
                   1252: if [ -r ${INPUT}/multimedia/audio_hdr.h ]
                   1253: then
                   1254:   ln -s ${INPUT}/multimedia/audio_hdr.h ${LIB}/multimedia 2>/dev/null
                   1255: fi
                   1256: 
1.1.1.5   root     1257: # Determine if we're on Interactive Unix 2.2 or later, in which case we
                   1258: # need to fix some additional files.  This is the same test for ISC that
                   1259: # Autoconf uses.
                   1260: if test -d /etc/conf/kconfig.d \
                   1261:     && grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1; then
                   1262:   echo "Fixing ISC __STDC__ goof in several files..."
                   1263:   for name in stdio.h math.h ctype.h sys/limits.h sys/fcntl.h sys/dirent.h; do
                   1264:     echo $name
                   1265:     if test -r ${LIB}/$name; then
                   1266:       file=${LIB}/$name
                   1267:     else
                   1268:       file=${INPUT}/$name
                   1269:     fi
                   1270:     # On Interactive 2.2, certain traditional Unix definitions
                   1271:     # (notably getc and putc in stdio.h) are omitted if __STDC__ is
                   1272:     # defined, not just if _POSIX_SOURCE is defined.  This makes it
                   1273:     # impossible to compile any nontrivial program except with -posix.
                   1274:     sed \
                   1275: 's/!defined(__STDC__) && !defined(_POSIX_SOURCE)/!defined(_POSIX_SOURCE)/' \
                   1276:            < $file > ${LIB}/$name.
                   1277:     mv ${LIB}/$name. ${LIB}/$name
                   1278:   done
                   1279:   
                   1280:   echo "Fixing ISC fmod declaration"
                   1281:   # This one's already been fixed for other things.
                   1282:   file=${LIB}/math.h
                   1283:   sed 's/fmod(double)/fmod(double, double)/' <$file >$file.
                   1284:   mv $file. $file
                   1285:   
                   1286:   echo "Fixing nested comments in ISC <sys/limits.h>"
                   1287:   file=sys/limits.h
                   1288:   sed '/CHILD_MAX/s,/\* Max, Max,' < ${INPUT}/$file >${LIB}/$file.
                   1289:   sed '/OPEN_MAX/s,/\* Max, Max,' < ${LIB}/$file. >${LIB}/$file
                   1290: fi
                   1291: 
1.1.1.6 ! root     1292: # These files in Sun OS 4.x use /**/ to concatenate tokens.
        !          1293: for file in sparc/asm_linkage.h sun3/asm_linkage.h sun3x/asm_linkage.h \
        !          1294:        sun4/asm_linkage.h sun4c/asm_linkage.h sun4m/asm_linkage.h      \
        !          1295:        sun4c/debug/asm_linkage.h sun4m/debug/asm_linkage.h;
        !          1296: do
        !          1297:   if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
        !          1298:     cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
        !          1299:     chmod +w ${LIB}/$file 2>/dev/null
        !          1300:     chmod a+r ${LIB}/$file 2>/dev/null
        !          1301:   fi
        !          1302: 
        !          1303:   if [ -r ${LIB}/$file ]; then
        !          1304:     sed -e 's|/\*\*/|##|g' ${LIB}/$file > ${LIB}/${file}.sed
        !          1305:     rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
        !          1306:     if cmp $file ${LIB}/$file >/dev/null 2>&1; then
        !          1307:       rm -f ${LIB}/$file
        !          1308:     fi
        !          1309:   fi
        !          1310: done
        !          1311: 
        !          1312: # These files in ARM/RISCiX use /**/ to concatenate tokens.
        !          1313: for file in arm/as_support.h arm/mc_type.h arm/xcb.h dev/chardefmac.h \
        !          1314:        dev/ps_irq.h dev/screen.h dev/scsi.h sys/tty.h Xm.acorn/XmP.h
        !          1315: do
        !          1316:   if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
        !          1317:     cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
        !          1318:     chmod +w ${LIB}/$file 2>/dev/null
        !          1319:     chmod a+r ${LIB}/$file 2>/dev/null
        !          1320:   fi
        !          1321: 
        !          1322:   if [ -r ${LIB}/$file ]; then
        !          1323:     sed -e 's|/\*\*/|##|g' ${LIB}/$file > ${LIB}/${file}.sed
1.1.1.5   root     1324:     rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
1.1.1.6 ! root     1325:     if cmp $file ${LIB}/$file >/dev/null 2>&1; then
        !          1326:       rm -f ${LIB}/$file
        !          1327:     fi
1.1.1.5   root     1328:   fi
                   1329: done
                   1330: 
1.1       root     1331: echo 'Removing unneeded directories:'
                   1332: cd $LIB
                   1333: files=`find . -type d -print | sort -r`
                   1334: for file in $files; do
                   1335:   rmdir $LIB/$file > /dev/null 2>&1
                   1336: done
                   1337: 
                   1338: if $LINKS; then
                   1339:   echo 'Making internal symbolic non-directory links'
                   1340:   cd ${INPUT}
                   1341:   files=`find . -type l -print`
                   1342:   for file in $files; do
                   1343:     dest=`ls -ld $file | sed -n 's/.*-> //p'`
                   1344:     if expr "$dest" : '[^/].*' > /dev/null; then    
                   1345:       target=${LIB}/`echo file | sed "s|[^/]*\$|$dest|"`
                   1346:       if [ -f $target ]; then
                   1347:         ln -s $dest ${LIB}/$file >/dev/null 2>&1
                   1348:       fi
                   1349:     fi
                   1350:   done
                   1351: fi
                   1352: 
1.1.1.6 ! root     1353: # Make sure that any include files referenced using double quotes
        !          1354: # exist in the fixed directory.  This comes last since otherwise
        !          1355: # we might end up deleting some of these files "because they don't
        !          1356: # need any change."
        !          1357: while [ -n "$required" ]; do
        !          1358:   newreq=
        !          1359:   set x $required
        !          1360:   shift
        !          1361:   while [ $# != 0 ]; do
        !          1362:     # $1 is the directory to copy from, $2 is the unfixed file,
        !          1363:     # $3 is the fixed file name.
        !          1364:     cd ${INPUT}
        !          1365:     cd $1
        !          1366:     if [ -r $2 ] && [ ! -r $3 ]; then
        !          1367:       cp $2 $3 >/dev/null 2>&1 || echo "Can't copy $2"
        !          1368:       chmod +w $3 2>/dev/null
        !          1369:       chmod a+r $3 2>/dev/null
        !          1370:       echo Copied $2
        !          1371:       for include in `egrep '^[        ]*#[    ]*include[      ]*"[^/]' $3 | sed -e 's/^[      ]*#[    ]*include[      ]*"\([^"]*\)".*$/\1/'`; do
        !          1372:        dir=`echo $2 | sed -e s'|/[^/]*$||'`
        !          1373:        dir2=`echo $3 | sed -e s'|/[^/]*$||'`
        !          1374:        newreq="$newreq $1 $dir/$include $dir2/$include"
        !          1375:       done
        !          1376:     fi
        !          1377:     shift; shift; shift
        !          1378:   done
        !          1379:   required=$newreq
        !          1380: done
        !          1381: 
1.1.1.5   root     1382: echo 'Cleaning up DONE files.'
                   1383: cd $LIB
1.1.1.6 ! root     1384: find . -name DONE -exec rm -f '{}' ';'
1.1.1.5   root     1385: 
1.1       root     1386: exit 0

unix.superglobalmegacorp.com

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