If x86 libgomp isn't compiled with -march=i486 or better, append
-march=i486 XCFLAGS for x86 libgomp build.

Tested on i686 with and without --with-arch=i386.  Tested on
x86-64 with and without --with-arch_32=i386.  OK for trunk?


H.J.
---
        PR target/70454
        * configure.tgt (XCFLAGS): Append -march=i486 to compile x86
        libgomp if needed.
---
 libgomp/configure.tgt | 36 ++++++++++++++++--------------------
 1 file changed, 16 insertions(+), 20 deletions(-)

diff --git a/libgomp/configure.tgt b/libgomp/configure.tgt
index 77e73f0..c876e80 100644
--- a/libgomp/configure.tgt
+++ b/libgomp/configure.tgt
@@ -67,28 +67,24 @@ if test x$enable_linux_futex = xyes; then
        ;;
 
     # Note that bare i386 is not included here.  We need cmpxchg.
-    i[456]86-*-linux*)
+    i[456]86-*-linux* | x86_64-*-linux*)
        config_path="linux/x86 linux posix"
-       case " ${CC} ${CFLAGS} " in
-         *" -m64 "*|*" -mx32 "*)
-           ;;
-         *)
-           if test -z "$with_arch"; then
-             XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
+       # Need i486 or better.
+       cat > conftestx.c <<EOF
+#if defined __x86_64__ || defined __i486__ || defined __pentium__ \
+      || defined __pentiumpro__ || defined __pentium4__ \
+      || defined __geode__ || defined __SSE__
+# error Need i486 or better
+#endif
+EOF
+       if ${CC} ${CFLAGS} -c -o conftestx.o conftestx.c > /dev/null 2>&1; then
+           if test "${target_cpu}" = x86_64; then
+               XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
+           else
+               XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
            fi
-       esac
-       ;;
-
-    # Similar jiggery-pokery for x86_64 multilibs, except here we
-    # can't rely on the --with-arch configure option, since that
-    # applies to the 64-bit side.
-    x86_64-*-linux*)
-       config_path="linux/x86 linux posix"
-       case " ${CC} ${CFLAGS} " in
-         *" -m32 "*)
-           XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
-           ;;
-       esac
+       fi
+       rm -f conftestx.c conftestx.o
        ;;
 
     # Note that sparcv7 and sparcv8 is not included here.  We need cas.
-- 
2.5.5

Reply via email to