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

Reply via email to