fixinc.wrap: Also handle struct queue in sys/stream.h.
authorJason Merrill <jason@yorick.cygnus.com>
Thu, 25 Feb 1999 21:35:57 +0000 (21:35 +0000)
committerJason Merrill <jason@gcc.gnu.org>
Thu, 25 Feb 1999 21:35:57 +0000 (16:35 -0500)
* fixinc.wrap: Also handle struct queue in sys/stream.h.
* fixinc.svr4: Likewise.

From-SVN: r25449

gcc/ChangeLog
gcc/fixinc.svr4
gcc/fixinc.wrap

index 75379f96bd006c8ab15a986e86d209e4220c048d..aaedc35ff7e4c9071af02ba2b4cd4b11a51625f4 100644 (file)
@@ -1,3 +1,8 @@
+Thu Feb 25 21:32:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * fixinc.wrap: Also handle struct queue in sys/stream.h.
+       * fixinc.svr4: Likewise.
+
 Thu Feb 25 21:23:06 1999  Jason Merrill  <jason@yorick.cygnus.com>
 
        * dwarf2out.c (scope_die_for): Set scope_die to comp_unit_die
index 9b86f4c03965106297c0cea8b8f4eb70bf0d8446..e633ed5bb15f3b929cf840a6c811ffa5552fce07 100755 (executable)
@@ -1,7 +1,7 @@
 #! /bin/sh
 # Install modified versions of certain ANSI-incompatible
 # native System V Release 4 system include files.
-# Copyright (C) 1994, 1996, 1997, 1998 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
 # Contributed by Ron Guilmette (rfg@monkeys.com).
 #
 # This file is part of GNU CC.
@@ -1527,6 +1527,40 @@ if [ \! -z "$file_to_fix" ]; then
   rm -f /tmp/$base
 fi
 
+# Similarly for struct queue in sys/stream.h.
+file=sys/stream.h
+base=`basename $file`
+if [ -r ${LIB}/$file ]; then
+  file_to_fix=${LIB}/$file
+else
+  if [ -r ${INPUT}/$file ]; then
+    file_to_fix=${INPUT}/$file
+  else
+    file_to_fix=""
+  fi
+fi
+if [ \! -z "$file_to_fix" ]; then
+  echo Checking $file_to_fix
+  sed -e '/struct[     ]*queue/i\
+#ifdef __cplusplus\
+#define queue __stream_queue\
+#endif'\
+      -e '/struct[     ]*queue/a\
+#ifdef __cplusplus\
+#undef queue\
+#endif' $file_to_fix > /tmp/$base
+  if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
+    true
+  else
+    echo Fixed $file_to_fix
+    mkdir -p $LIB/`dirname $file`
+    rm -f ${LIB}/$file
+    cp /tmp/$base ${LIB}/$file
+    chmod a+r ${LIB}/$file
+  fi
+  rm -f /tmp/$base
+fi
+
 echo 'Removing unneeded directories:'
 cd $LIB
 files=`find . -type d -print | sort -r`
index 406c87e9c03bd42fe5ce35d8e7f1da8927ee16b6..bb783f95589d3e74f9af85071e0b8bf1d2cb9a12 100755 (executable)
@@ -53,6 +53,35 @@ __EOF__
   fi
 fi
 
+# Similarly for struct queue in sys/stream.h.
+file=sys/stream.h
+if [ -r $INPUT/$file ]; then
+  echo Checking $INPUT/$file
+  if grep 'struct[     ]*queue' $INPUT/$file >/dev/null
+  then
+    echo Fixed $file
+    mkdir -p $LIB/`dirname $file`
+    rm -f $LIB/$file
+    cat <<'__EOF__' >$LIB/$file
+#ifndef _SYS_STREAM_H_WRAPPER
+#ifdef __cplusplus
+# define queue __stream_queue
+#endif
+#include_next <sys/stream.h>
+#ifdef __cplusplus
+# undef queue
+#endif
+#define _SYS_STREAM_H_WRAPPER
+#endif /* _SYS_STREAM_H_WRAPPER */
+__EOF__
+    # Define _SYS_STREAM_H_WRAPPER at the end of the wrapper, not the start,
+    # so that if #include_next gets another instance of the wrapper,
+    # this will follow the #include_next chain until we arrive at
+    # the real <sys/stream.h>.
+    chmod a+r $LIB/$file
+  fi
+fi
+
 # Avoid the definition of the bool type in the Solaris 2.x curses.h when using
 # g++, since it's now an official type in the C++ language.
 file=curses.h