Hi,

with r207507 I've made our fp to int conversion routines available
also for the 32 bit biarch libgcc.  The patch included these also for
the 64 bit libgcc which is wrong since it prevent routines like
fixsfti from being generated by libgcc2.c.

The attached patch fixes the following testsuite regressions:
< FAIL: gcc.c-torture/execute/pr49218.c compilation,  -O0
< FAIL: gcc.dg/torture/fp-int-convert-timode.c  -O0  (test for excess errors)

Bye,

-Andreas-

2014-03-27  Andreas Krebbel  <andreas.kreb...@de.ibm.com>

        * configure.ac: Set host_address for S/390.
        * configure: Regenerate.
        * config.host: Append t-floattodi to tmake_file depending on
        host_address.

diff --git a/libgcc/config.host b/libgcc/config.host
index f8f74cc..f4a7428 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -1027,7 +1027,10 @@ s390-*-linux*)
        md_unwind_header=s390/linux-unwind.h
        ;;
 s390x-*-linux*)
-       tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux 
s390/32/t-floattodi"
+       tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux"
+       if test "${host_address}" = 32; then
+          tmake_file="${tmake_file} s390/32/t-floattodi"
+       fi
        md_unwind_header=s390/linux-unwind.h
        ;;
 s390x-ibm-tpf*)
diff --git a/libgcc/configure b/libgcc/configure
index 35896de..9e30d5e 100644
--- a/libgcc/configure
+++ b/libgcc/configure
@@ -4321,7 +4321,7 @@ $as_echo "$libgcc_cv_cfi" >&6; }
 # word size rather than the address size.
 cat > conftest.c <<EOF
 #if defined(__x86_64__) || (!defined(__i386__) && defined(__LP64__)) \
-    || defined(__mips64)
+    || defined(__mips64) || defined(__s390x__)
 host_address=64
 #else
 host_address=32
diff --git a/libgcc/configure.ac b/libgcc/configure.ac
index d877d21..3a1a11c 100644
--- a/libgcc/configure.ac
+++ b/libgcc/configure.ac
@@ -283,7 +283,7 @@ AC_CACHE_CHECK([whether assembler supports CFI directives], 
[libgcc_cv_cfi],
 # word size rather than the address size.
 cat > conftest.c <<EOF
 #if defined(__x86_64__) || (!defined(__i386__) && defined(__LP64__)) \
-    || defined(__mips64)
+    || defined(__mips64) || defined(__s390x__)
 host_address=64
 #else
 host_address=32

Reply via email to