diff options
author | hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-03-23 13:24:37 +0000 |
---|---|---|
committer | hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-03-23 13:24:37 +0000 |
commit | 36361c1a58cdd7237f8b7a00ff4422ce6b7734fb (patch) | |
tree | b2d717bef449c98c9cad7f0fd90fca37354d3ab2 /fixincludes | |
parent | c82cccdaff312f700bb0c7fd3490daafd8edc9a2 (diff) | |
download | gcc-36361c1a58cdd7237f8b7a00ff4422ce6b7734fb.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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157665 138bc75d-0d04-0410-961f-82ee72b054a4
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 ;; |