Annotation of gcc/fixinc.ptx, revision 1.1

1.1     ! root        1: #! /bin/sh
        !             2: # Install modified versions of certain ANSI-incompatible
        !             3: # native Sequent DYNIX/ptx System V Release 3.2 system include files.
        !             4: # Copyright (C) 1994 Free Software Foundation, Inc.
        !             5: # Contributed by Bill Burton <[email protected]>
        !             6: # Portions adapted from fixinc.svr4 and fixincludes.
        !             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 DYNIX/ptx
        !            25: #      so as to remove things which are violations of the ANSI C standard.
        !            26: #      This is done by first running fixinc.svr4 which does most of the
        !            27: #      work.  A few includes have fixes made to them afterwards  by this
        !            28: #      script.  Once munged, the resulting new system include files are
        !            29: #      placed in a directory that GNU C will search *before* searching the
        !            30: #      /usr/include directory. This script should work properly for most
        !            31: #      DYNIX/ptx systems.  For other types of systems, you should use the
        !            32: #      `fixincludes' script instead.
        !            33: #
        !            34: #      See README-fixinc for more information.
        !            35: 
        !            36: # Directory containing the original header files.
        !            37: INPUT=${2-${INPUT-/usr/include}}
        !            38: 
        !            39: # Fail if no arg to specify a directory for the output.
        !            40: if [ x$1 = x ]
        !            41: then echo fixincludes: no output directory specified
        !            42: exit 1
        !            43: fi
        !            44: 
        !            45: # Directory in which to store the results.
        !            46: LIB=${1?"fixincludes: output directory not specified"}
        !            47: 
        !            48: # Make sure it exists.
        !            49: if [ ! -d $LIB ]; then
        !            50:   mkdir $LIB || exit 1
        !            51: fi
        !            52: 
        !            53: ORIG_DIR=`pwd`
        !            54: 
        !            55: # Make LIB absolute if it is relative.
        !            56: # Don't do this if not necessary, since may screw up automounters.
        !            57: case $LIB in
        !            58: /*)
        !            59:        ;;
        !            60: *)
        !            61:        LIB=$ORIG_DIR/$LIB
        !            62:        ;;
        !            63: esac
        !            64: 
        !            65: echo 'Running fixinc.svr4'
        !            66: # DYNIX/ptx has dirname so this is no problem
        !            67: `dirname $0`/fixinc.svr4 $*
        !            68: echo 'Finished fixinc.svr4'
        !            69: 
        !            70: echo 'Building fixincludes in ' ${LIB}
        !            71: 
        !            72: # Copied from fixincludes.
        !            73: # Don't use or define the name va_list in stdio.h.
        !            74: # This is for ANSI and also to interoperate properly with gcc's varargs.h.
        !            75: file=stdio.h
        !            76: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
        !            77:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
        !            78:   chmod +w ${LIB}/$file 2>/dev/null
        !            79:   chmod a+r ${LIB}/$file 2>/dev/null
        !            80: fi
        !            81: 
        !            82: if [ -r ${LIB}/$file ]; then
        !            83:   echo Fixing $file, use of va_list
        !            84:   # Arrange for stdio.h to use stdarg.h to define __gnuc_va_list
        !            85:   (echo "#define __need___va_list"
        !            86:    echo "#include <stdarg.h>") > ${LIB}/${file}.sed
        !            87:   # Use __gnuc_va_list in arg types in place of va_list.
        !            88:   # On 386BSD use __gnuc_va_list instead of _VA_LIST_. We're hoping the
        !            89:   # trailing parentheses and semicolon save all other systems from this.
        !            90:   # Define __va_list__ (something harmless and unused) instead of va_list.
        !            91:   # Don't claim to have defined va_list.
        !            92:   sed -e 's@ va_list @ __gnuc_va_list @' \
        !            93:       -e 's@ va_list)@ __gnuc_va_list)@' \
        !            94:       -e 's@ _VA_LIST_));@ __gnuc_va_list));@' \
        !            95:       -e 's@ va_list@ __va_list__@' \
        !            96:       -e 's@\*va_list@*__va_list__@' \
        !            97:       -e 's@ __va_list)@ __gnuc_va_list)@' \
        !            98:       -e 's@_NEED___VA_LIST@_NEED___Va_LIST@' \
        !            99:       -e 's@VA_LIST@DUMMY_VA_LIST@' \
        !           100:       -e 's@_NEED___Va_LIST@_NEED___VA_LIST@' \
        !           101:     ${LIB}/$file >> ${LIB}/${file}.sed
        !           102:   
        !           103:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
        !           104:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
        !           105:     rm -f ${LIB}/$file
        !           106:   fi
        !           107: fi
        !           108: 
        !           109: # In pwd.h, PTX 1.x needs stdio.h included since FILE * was added in a
        !           110: # prototype later on in the file.
        !           111: file=pwd.h
        !           112: base=`basename $file`
        !           113: if [ -r ${LIB}/$file ]; then
        !           114:   file_to_fix=${LIB}/$file
        !           115: else
        !           116:   if [ -r ${INPUT}/$file ]; then
        !           117:     file_to_fix=${INPUT}/$file
        !           118:   else
        !           119:     file_to_fix=""
        !           120:   fi
        !           121: fi
        !           122: if [ \! -z "$file_to_fix" ]; then
        !           123:   echo Checking $file_to_fix
        !           124:   if grep stdio $file_to_fix > /dev/null; then
        !           125:     true
        !           126:   else
        !           127:     sed -e '/#include \<sys\types\.h\>/a\
        !           128: \
        !           129: #if defined(__STDC__) || defined(__cplusplus)\
        !           130: #include <stdio.h>\
        !           131: #endif  /* __STDC__ */' \
        !           132:     $file_to_fix > ${LIB}/${file}.sed
        !           133:     rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
        !           134:     echo Fixed $file_to_fix
        !           135:   fi
        !           136: fi
        !           137: 
        !           138: # Copied from fixincludes.
        !           139: # math.h puts the declaration of matherr before the definition
        !           140: # of struct exception, so the prototype (added by fixproto) causes havoc.
        !           141: file=math.h
        !           142: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
        !           143:   cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
        !           144:   chmod +w ${LIB}/$file 2>/dev/null
        !           145:   chmod a+r ${LIB}/$file 2>/dev/null
        !           146: fi
        !           147: 
        !           148: if [ -r ${LIB}/$file ]; then
        !           149:   echo Fixing $file, matherr declaration
        !           150:   sed -e '/^struct exception/,$b' \
        !           151:       -e '/matherr/i\
        !           152: struct exception;
        !           153: '\
        !           154:     ${LIB}/$file > ${LIB}/${file}.sed
        !           155:   rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
        !           156:   if cmp $file ${LIB}/$file >/dev/null 2>&1; then
        !           157:     rm -f ${LIB}/$file
        !           158:   fi
        !           159: fi
        !           160: 
        !           161: # In netinet/in.h, the network byte swapping asm functions supported by the
        !           162: # native cc compiler on PTX 1.x and 2.x is not supported in gcc.  Instead,
        !           163: # include <sys/byteorder.h> written out by the fixinc.svr4 script which has
        !           164: # these same routines written in an asm format supported by gcc.
        !           165: file=netinet/in.h
        !           166: base=`basename $file`
        !           167: if [ -r ${LIB}/$file ]; then
        !           168:   file_to_fix=${LIB}/$file
        !           169: else
        !           170:   if [ -r ${INPUT}/$file ]; then
        !           171:     file_to_fix=${INPUT}/$file
        !           172:   else
        !           173:     file_to_fix=""
        !           174:   fi
        !           175: fi
        !           176: if [ \! -z "$file_to_fix" ]; then
        !           177:   echo Checking $file_to_fix
        !           178:   if grep __GNUC__ $file_to_fix > /dev/null; then
        !           179:     true
        !           180:   else
        !           181:     sed -e '/#define NETSWAP/a\
        !           182: \
        !           183: #if defined (__GNUC__) || defined (__GNUG__)\
        !           184: #include <sys/byteorder.h>\
        !           185: #else  /* not __GNUC__ */\
        !           186: ' \
        !           187:     -e '/#endif[       ]*\/\* NETSWAP \*\//i\
        !           188: #endif /* not __GNUC__ */' \
        !           189:     $file_to_fix > ${LIB}/${file}.sed
        !           190:     rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
        !           191:     echo Fixed $file_to_fix
        !           192:   fi
        !           193: fi
        !           194: 
        !           195: exit 0
        !           196: 

unix.superglobalmegacorp.com

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