⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fixincludes

📁 GCC编译器源代码
💻
📖 第 1 页 / 共 5 页
字号:
      dir=`echo $file | sed -e s'|/[^/]*$||'`      required="$required ${INPUT} $dir/$include ${LIB}/$dir/$include"    done  fifi# Turning // comments into /* */ comments trashes this IRIX 4.0.1# header file, which embeds // comments inside multi-line /* */# comments.  If this looks like the IRIX header file, we refix it by# just throwing away the // comments.file=fam.hif [ -r ${LIB}/$file ]; then  if egrep indigo.esd ${LIB}/$file > /dev/null; then    echo Fixing $file, overeager sed script    rm ${LIB}/$file    sed -e 's|//.*$||g' $file > ${LIB}/$file    chmod +w ${LIB}/$file 2>/dev/null    chmod a+r ${LIB}/$file 2>/dev/null  fifi# There is a similar problem with the VxWorks drv/netif/if_med.h file.file=drv/netif/if_med.hif [ -r ${LIB}/$file ]; then  if egrep 'Wind River' ${LIB}/$file > /dev/null; then    echo Fixing $file, overeager sed script    rm ${LIB}/$file    sed -e 's|//.*$||g' $file > ${LIB}/$file    chmod +w ${LIB}/$file 2>/dev/null    chmod a+r ${LIB}/$file 2>/dev/null  fifi# And also with the HP-UX 10 sys/pci.h filefile=sys/pci.hif [ -r ${LIB}/$file ]; then  if egrep 'System Private Structures' ${LIB}/$file > /dev/null; then    echo Fixing $file, overeager sed script    rm ${LIB}/$file    sed -e 's|//.*$||g' $file > ${LIB}/$file    chmod +w ${LIB}/$file 2>/dev/null    chmod a+r ${LIB}/$file 2>/dev/null  fifi# Some IRIX header files contains the string "//"for file in elf_abi.h elf.h; do  if [ -r ${LIB}/$file ]; then    echo Fixing $file, overeager sed script    sed -e 's|"/\*"\*/|"//"|' ${LIB}/$file > ${LIB}/${file}.sed    rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file    if cmp $file ${LIB}/$file >/dev/null 2>&1; then      rm -f ${LIB}/$file  else    # Find any include directives that use "file".    for include in `egrep '^[       ]*#[    ]*include[      ]*"[^/]' ${LIB}/$file | sed -e 's/^[    ]*#[    ]*include[      ]*"\([^"]*\)".*$/\1/'`; do      dir=`echo $file | sed -e s'|/[^/]*$||'`      required="$required ${INPUT} $dir/$include ${LIB}/$dir/$include"    done    fi  fidone# IRIX 4.0.5 <rpc/auth.h> uses struct sockaddr in prototype without# previous definition.file=rpc/auth.hif [ -r $file ] && [ ! -r ${LIB}/$file ]; then  mkdir ${LIB}/rpc 2>/dev/null  cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"  chmod +w ${LIB}/$file 2>/dev/null  chmod a+r ${LIB}/$file 2>/dev/nullfiif [ -r ${LIB}/$file ]; then  echo Fixing $file, undefined type  sed -e '/authdes_create.*struct sockaddr/i\struct sockaddr;' \    ${LIB}/$file > ${LIB}/$file.sed  rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file  if cmp $file ${LIB}/$file >/dev/null 2>&1; then    rm -f ${LIB}/$file  else    # Find any include directives that use "file".    for include in `egrep '^[       ]*#[    ]*include[      ]*"[^/]' ${LIB}/$file | sed -e 's/^[    ]*#[    ]*include[      ]*"\([^"]*\)".*$/\1/'`; do      dir=`echo $file | sed -e s'|/[^/]*$||'`      required="$required ${INPUT} $dir/$include ${LIB}/$dir/$include"    done  fifi# IRIX 4.0.5 <rpc/xdr.h> uses struct __file_s in prototype without previous# definition.file=rpc/xdr.hif [ -r $file ] && [ ! -r ${LIB}/$file ]; then  mkdir ${LIB}/rpc 2>/dev/null  cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"  chmod +w ${LIB}/$file 2>/dev/null  chmod a+r ${LIB}/$file 2>/dev/nullfiif [ -r ${LIB}/$file ]; then  echo Fixing $file, undefined type  sed -e '/xdrstdio_create.*struct __file_s/i\struct __file_s;' \    ${LIB}/$file > ${LIB}/$file.sed  rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file  if cmp $file ${LIB}/$file >/dev/null 2>&1; then    rm -f ${LIB}/$file  else    # Find any include directives that use "file".    for include in `egrep '^[       ]*#[    ]*include[      ]*"[^/]' ${LIB}/$file | sed -e 's/^[    ]*#[    ]*include[      ]*"\([^"]*\)".*$/\1/'`; do      dir=`echo $file | sed -e s'|/[^/]*$||'`      required="$required ${INPUT} $dir/$include ${LIB}/$dir/$include"    done  fifi# Same problem with a file from SunOS 4.1.3 : a header file containing# the string "//" embedded in "/**/"file=sbusdev/audiovar.hif [ -r ${LIB}/$file ]; then  echo Fixing $file, overeager sed script  rm ${LIB}/$file  sed -e 's|//.*$||g' $file > ${LIB}/$file  chmod +w ${LIB}/$file 2>/dev/null  chmod a+r ${LIB}/$file 2>/dev/nullfi# Fix non-ANSI memcpy declaration that conflicts with gcc's builtin# declaration on Sun OS 4.x.  We must only fix this on Sun OS 4.x, because# many other systems have similar text but correct versions of the file.# To ensure only Sun's is fixed, we grep for a likely unique string.# Fix also on sysV68 R3V7.1 (head/memory.h\t50.1\t )file=memory.hif [ -r $file ] && egrep '/\*	@\(#\)(head/memory.h	50.1	 |memory\.h 1\.[2-4] 8./../.. SMI; from S5R2 1\.2	)\*/' $file > /dev/null; then  if [ ! -r ${LIB}/$file ]; then    cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"    chmod +w ${LIB}/$file 2>/dev/null    chmod a+r ${LIB}/$file 2>/dev/null  fi  if [ -r ${LIB}/$file ]; then    echo Replacing $file    cat > ${LIB}/$file << EOF/* This file was generated by fixincludes */#ifndef __memory_h__#define __memory_h__#ifdef __STDC__extern void *memccpy();extern void *memchr();extern void *memcpy();extern void *memset();#elseextern char *memccpy();extern char *memchr();extern char *memcpy();extern char *memset();#endif /* __STDC__ */extern int memcmp();#endif /* __memory_h__ */EOF  fifi# Fix return type of fread and fwrite on sysV68file=stdio.hif [ -r $file ] && [ ! -r ${LIB}/$file ]; then  cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"  chmod +w ${LIB}/$file 2>/dev/null  chmod a+r ${LIB}/$file 2>/dev/nullfiif [ -r ${LIB}/$file ]; then  echo Fixing $file, fread and fwrite return type  sed -e 's/^\(extern int	fclose(), fflush()\), \(fread(), fwrite()\)\(.*\)$/extern unsigned int	\2;\\1\3/' \    ${LIB}/$file > ${LIB}/${file}.sed  rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file  if cmp $file ${LIB}/$file >/dev/null 2>&1; then    rm -f ${LIB}/$file  else    # Find any include directives that use "file".    for include in `egrep '^[       ]*#[    ]*include[      ]*"[^/]' ${LIB}/$file | sed -e 's/^[    ]*#[    ]*include[      ]*"\([^"]*\)".*$/\1/'`; do      dir=`echo $file | sed -e s'|/[^/]*$||'`      required="$required ${INPUT} $dir/$include ${LIB}/$dir/$include"    done  fifi# parameters not const on DECstation Ultrix V4.0 and OSF/1.file=stdio.hif [ -r $file ] && [ ! -r ${LIB}/$file ]; then  cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"  chmod +w ${LIB}/$file 2>/dev/null  chmod a+r ${LIB}/$file 2>/dev/nullfiif [ -r ${LIB}/$file ]; then  echo Fixing $file, non-const arg  sed -e 's@perror( char \*__s );@perror( const char *__s );@' \      -e 's@fputs( char \*__s,@fputs( const char *__s,@' \      -e 's@fopen( char \*__filename, char \*__type );@fopen( const char *__filename, const char *__type );@' \      -e 's@fwrite( void \*__ptr,@fwrite( const void *__ptr,@' \      -e 's@fscanf( FILE \*__stream, char \*__format,@fscanf( FILE *__stream, const char *__format,@' \      -e 's@scanf( char \*__format,@scanf( const char *__format,@' \      -e 's@sscanf( char \*__s, char \*__format,@sscanf( const char *__s, const char *__format,@' \      -e 's@popen(char \*, char \*);@popen(const char *, const char *);@' \      -e 's@tempnam(char\*,char\*);@tempnam(const char*,const char*);@' \    ${LIB}/$file > ${LIB}/${file}.sed  rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file  if cmp $file ${LIB}/$file >/dev/null 2>&1; then    rm -f ${LIB}/$file  else    # Find any include directives that use "file".    for include in `egrep '^[       ]*#[    ]*include[      ]*"[^/]' ${LIB}/$file | sed -e 's/^[    ]*#[    ]*include[      ]*"\([^"]*\)".*$/\1/'`; do      dir=`echo $file | sed -e s'|/[^/]*$||'`      required="$required ${INPUT} $dir/$include ${LIB}/$dir/$include"    done  fifi# parameters conflict with C++ new on rs/6000 for file in stdio.h unistd.h ; do  if [ -r $file ] && [ ! -r ${LIB}/$file ]; then    cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"    chmod +w ${LIB}/$file 2>/dev/null  fi  if [ -r ${LIB}/$file ]; then    echo Fixing $file, parameter name conflicts    sed -e 's@rename(const char \*old, const char \*new)@rename(const char *_old, const char *_new)@' \      ${LIB}/$file > ${LIB}/${file}.sed    rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file    if cmp $file ${LIB}/$file >/dev/null 2>&1; then      rm -f ${LIB}/$file    else      # Find any include directives that use "file".      for include in `egrep '^[       ]*#[    ]*include[      ]*"[^/]' ${LIB}/$file | sed -e 's/^[    ]*#[    ]*include[      ]*"\([^"]*\)".*$/\1/'`; do        dir=`echo $file | sed -e s'|/[^/]*$||'`        required="$required ${INPUT} $dir/$include ${LIB}/$dir/$include"      done    fi  fidone# function class(double x) conflicts with C++ keyword on rs/6000 file=math.hif [ -r $file ] && [ ! -r ${LIB}/$file ]; then  cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"  chmod +w ${LIB}/$file 2>/dev/null  chmod a+r ${LIB}/$file 2>/dev/nullfiif [ -r ${LIB}/$file ]; then  if grep '[^a-zA-Z_]class[(]' ${LIB}/$file >/dev/null; then    echo Fixing $file    sed -e '/class[(]/i\#ifndef __cplusplus' \        -e '/class[(]/a\#endif' ${LIB}/$file > ${LIB}/${file}.sed    rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file    if cmp $file ${LIB}/$file >/dev/null 2>&1; then      rm ${LIB}/$file    else      # Find any include directives that use "file".      for include in `egrep '^[       ]*#[    ]*include[      ]*"[^/]' ${LIB}/$file | sed -e 's/^[    ]*#[    ]*include[      ]*"\([^"]*\)".*$/\1/'`; do        dir=`echo $file | sed -e s'|/[^/]*$||'`        required="$required ${INPUT} $dir/$include ${LIB}/$dir/$include"      done    fi  fifi# Wrong fchmod prototype on RS/6000.file=sys/stat.hif [ -r $file ] && [ ! -r ${LIB}/$file ]; then  mkdir ${LIB}/sys 2>/dev/null  cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"  chmod +w ${LIB}/$file 2>/dev/null  chmod a+r ${LIB}/$file 2>/dev/nullfiif [ -r ${LIB}/$file ]; then  echo Fixing $file, fchmod prototype  sed -e 's/fchmod(char \*/fchmod(int/' \    ${LIB}/$file > ${LIB}/$file.sed  rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file  if cmp $file ${LIB}/$file >/dev/null 2>&1; then    rm -f ${LIB}/$file  else    # Find any include directives that use "file".    for include in `egrep '^[       ]*#[    ]*include[      ]*"[^/]' ${LIB}/$file | sed -e 's/^[    ]*#[    ]*include[      ]*"\([^"]*\)".*$/\1/'`; do      dir=`echo $file | sed -e s'|/[^/]*$||'`      required="$required ${INPUT} $dir/$include ${LIB}/$dir/$include"    done  fifi# There are several name conflicts with C++ reserved words in X11# header files.  These are fixed in some versions, so don't do the# fixes if we find __cplusplus in the file.  These were found on the# RS/6000.# class in X11/ShellP.hfile=X11/ShellP.hif [ -r $file ] && [ ! -r ${LIB}/$file ]; then  mkdir ${LIB}/sys 2>/dev/null  cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"  chmod +w ${LIB}/$file 2>/dev/null  chmod a+r ${LIB}/$file 2>/dev/nullfiif [ -r ${LIB}/$file ]; then  if grep __cplusplus ${LIB}/$file >/dev/null 2>/dev/null; then    true;  else    echo Fixing $file, field class    sed -e '/char [*]class;/i\#ifdef __cplusplus\	char *c_class;\#else' \        -e '/char [*]class;/a\#endif' ${LIB}/$file > ${LIB}/${file}.sed    rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file  fi  if cmp $file ${LIB}/$file >/dev/null 2>&1; then    rm -f ${LIB}/$file  else    # Find any include directives that use "file".    for include in `egrep '^[       ]*#[    ]*include[      ]*"[^/]' ${LIB}/$file | sed -e 's/^[    ]*#[    ]*include[      ]*"\([^"]*\)".*$/\1/'`; do      dir=`echo $file | sed -e s'|/[^/]*$||'`      required="$required ${INPUT} $dir/$include ${LIB}/$dir/$include"    done  fifi# new in Xm/Traversal.hfile=Xm/Traversal.hif [ -r $file ] && [ ! -r ${LIB}/$file ]; then  mkdir ${LIB}/sys 2>/dev/null  cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"  chmod +w ${LIB}/$file 2>/dev/null  chmod a+r ${LIB}/$file 2>/dev/nullfiif [ -r ${LIB}/$file ]; then  if grep __cplusplus ${LIB}/$file >/dev/null 2>/dev/null; then    true;  else    echo Fixing $file, uses of new    sed -e '/Widget	old, new;/i\#ifdef __cplusplus\	Widget	old, c_new;\#else' \        -e '/Widget	old, new;/a\#endif' \	-e 's/Widget new,/Widget c_new,/g' ${LIB}/$file > ${LIB}/${file}.sed

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -