OSDN Git Service

* pa.h (ASM_OUTPUT_SECTION_NAME): Fix typo.
[pf3gnuchains/gcc-fork.git] / gcc / fixinc.irix
index 2220977..337289a 100755 (executable)
@@ -55,9 +55,9 @@ echo 'Building fixincludes in ' ${LIB}
 
 #
 # Note: For Irix, we deliberately don't try to create the directory trees,
-#       since we only modify math.h and limits.h.  If we ADD ANY OTHERS,
-#       the "Making directories:" and symlinks code from fixinc.svr4 may
-#       have to go back in.
+#       since we only modify math.h, limits.h and unistd.h.  If we
+#      ADD ANY OTHERS, the "Making directories:" and symlinks code from
+#      fixinc.svr4 may have to go back in.
 
 # The Irix math.h defines struct exception, which conflicts with
 # the class exception defined in the C++ file std/stdexcept.h.  We
@@ -158,4 +158,33 @@ if [ \! -z "$file_to_fix" ]; then
   rm -f /tmp/$base
 fi
 
+# The Irix unistd.h will introduce a call to __vfork in its libc, but the
+# function is never actually prototyped.
+file=unistd.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 '/__vfork/i\
+extern pid_t __vfork(void);'\
+     $file_to_fix > /tmp/$base
+  if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
+    true
+  else
+    echo Fixed $file_to_fix
+    rm -f ${LIB}/$file
+    cp /tmp/$base ${LIB}/$file
+    chmod a+r ${LIB}/$file
+  fi
+  rm -f /tmp/$base
+fi
+
 exit 0