diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2010-03-23 13:24:37 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2010-03-23 06:24:37 -0700 |
commit | 1ab71299a5bdb316006cb8e71197a3dd918cd4f2 (patch) | |
tree | b2d717bef449c98c9cad7f0fd90fca37354d3ab2 /fixincludes | |
parent | 6644642ef7b7b58c39b6fc1184d6c873badbc285 (diff) | |
download | gcc-1ab71299a5bdb316006cb8e71197a3dd918cd4f2.tar.gz |
Fix stdlib.h for mingw.
2010-03-23 H.J. Lu <hongjiu.lu@intel.com>
PR target/40722
* mkfixinc.sh: Fix stdlib.h for mingw.
From-SVN: r157665
Diffstat (limited to 'fixincludes')
-rw-r--r-- | fixincludes/ChangeLog | 5 | ||||
-rwxr-xr-x | fixincludes/mkfixinc.sh | 47 |
2 files changed, 50 insertions, 2 deletions
diff --git a/fixincludes/ChangeLog b/fixincludes/ChangeLog index fc917b0c6fa..513cfdd1ae4 100644 --- a/fixincludes/ChangeLog +++ b/fixincludes/ChangeLog @@ -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 diff --git a/fixincludes/mkfixinc.sh b/fixincludes/mkfixinc.sh index b45f1795dcc..c353d89be50 100755 --- a/fixincludes/mkfixinc.sh +++ b/fixincludes/mkfixinc.sh @@ -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 ;; |