OSDN Git Service

Fix stdlib.h for mingw.
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 23 Mar 2010 13:24:37 +0000 (13:24 +0000)
committerMasaki Muranaka <monaka@monami-software.com>
Sun, 23 May 2010 05:14:15 +0000 (14:14 +0900)
2010-03-23  H.J. Lu  <hongjiu.lu@intel.com>

PR target/40722
* mkfixinc.sh: Fix stdlib.h for mingw.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157665 138bc75d-0d04-0410-961f-82ee72b054a4

fixincludes/ChangeLog
fixincludes/mkfixinc.sh

index fc917b0..513cfdd 100644 (file)
@@ -1,3 +1,8 @@
+2010-03-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/40722
+       * mkfixinc.sh: Fix stdlib.h for mingw.
+
 2010-02-19  Bruce Korb  <bkorb@gnu.org>
 
        * inclhack.def: remove vestiges of inadvertently committed changes
index b45f179..c353d89 100755 (executable)
@@ -15,8 +15,6 @@ case $machine in
     i?86-moss-msdos* | \
     i?86-*-pe | \
     i?86-*-cygwin* | \
-    i?86-*-mingw32* | \
-    x86_64-*-mingw32* | \
     i?86-*-interix* | \
     *-*-vxworks* | \
     powerpc-*-eabisim* | \
@@ -29,6 +27,51 @@ case $machine in
        (echo "#! /bin/sh" ; echo "exit 0" ) > ${target}
         ;;
 
+    i?86-*-mingw32* | \
+    x86_64-*-mingw32*)
+        # We only want to fix stdlib.h in mingw.
+       # FIXME: Is SED available on mingw? 
+       (cat > ${target} << EOF
+#! /bin/sh
+
+OUTPUT_DIR=\$1
+if [ "x\$OUTPUT_DIR" = "x" ]; then
+  echo fixincludes: no output directory specified
+  exit 1
+fi
+
+if [ ! -d \$OUTPUT_DIR ]; then
+  echo fixincludes: output dir \"\$OUTPUT_DIR\" is an invalid directory
+  exit 1
+fi
+
+INPUT_DIR=\$2
+if [ "x\$INPUT_DIR" = "x" ]; then
+  echo fixincludes: no input directory specified
+  exit 1
+fi
+
+if [ ! -d \$INPUT_DIR ]; then
+  echo fixincludes: input dir \"\$INPUT_DIR\" is an invalid directory
+  exit 1
+fi
+
+INPUT_STDLIB_H=\$INPUT_DIR/stdlib.h
+if [ ! -f \$INPUT_STDLIB_H ]; then
+  echo fixincludes: \"stdlib.h\" is an invalid file
+  exit 1
+fi
+
+OUTPUT_STDLIB_H=\$OUTPUT_DIR/stdlib.h
+sed -e "s/\(.*_rotl.*\)/#if __GNUC__ < 4 || (__GNUC__ == 4 \&\& __GNUC_MINOR__ < 5)\n\1/" \
+    -e "s/\(.*_lrotr.*\)/\1\n#else\n\#include <x86intrin.h>\n#endif/" \
+   \$INPUT_STDLIB_H > \$OUTPUT_STDLIB_H
+
+exit 0
+EOF
+)
+        ;;
+
     *)
        cat < ${srcdir}/fixinc.in > ${target} || exit 1
        ;;