On Thu, Mar 27, 2014 at 02:59:05PM +0100, Andreas Krebbel wrote: > 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)
Does this fix the: -__fixdfti@@GCC_3.0 FUNC GLOBAL DEFAULT -__fixsfti@@GCC_3.0 FUNC GLOBAL DEFAULT -__fixtfti@@GCC_4.1.0 FUNC GLOBAL DEFAULT -__fixunsdfti@@GCC_3.0 FUNC GLOBAL DEFAULT -__fixunssfti@@GCC_3.0 FUNC GLOBAL DEFAULT -__fixunstfti@@GCC_4.1.0 FUNC GLOBAL DEFAULT regression when comparing readelf -Ws libgcc_s.so.1 | sed -n '/\.symtab/,$d;/ UND /d;/@GLIBC_PRIVATE/d;/\(GLOBAL\|WEAK\|UNIQUE\)/p' | awk '{ if ($4 == "OBJECT") { printf "%s %s %s %s %s\n", $8, $4, $5, $6, $3 } else { printf "%s %s %s %s\n", $8, $4, $5, $6 }}' | LC_ALL=C sort -u output between 4.8 and 4.9? > 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*) > --- 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 Why is this needed? Don't s390x define __LP64__ ? Jakub