From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7348 invoked by alias); 30 Jan 2006 16:42:55 -0000 Received: (qmail 7327 invoked by uid 22791); 30 Jan 2006 16:42:54 -0000 X-Spam-Check-By: sourceware.org Received: from sunsite.ms.mff.cuni.cz (HELO sunsite.mff.cuni.cz) (195.113.15.26) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 30 Jan 2006 16:42:49 +0000 Received: from sunsite.mff.cuni.cz (sunsite.mff.cuni.cz [127.0.0.1]) by sunsite.mff.cuni.cz (8.13.1/8.13.1) with ESMTP id k0UGgdLi013522; Mon, 30 Jan 2006 17:42:39 +0100 Received: (from jj@localhost) by sunsite.mff.cuni.cz (8.13.1/8.13.1/Submit) id k0UGgdSv013521; Mon, 30 Jan 2006 17:42:39 +0100 Date: Mon, 30 Jan 2006 16:42:00 -0000 From: Jakub Jelinek To: Roland McGrath Cc: Glibc hackers Subject: [PATCH] Don't use 128-bit long double on soft-float powerpc Message-ID: <20060130164239.GP4625@sunsite.mff.cuni.cz> Reply-To: Jakub Jelinek Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i Mailing-List: contact libc-hacker-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-hacker-owner@sourceware.org X-SW-Source: 2006-01/txt/msg00097.txt.bz2 Hi! GCC doesn't support 128bit long double for -msoft-float on ppc32, so I think we need to make sure /fpu/ dirs are always used when enabling it. 2006-01-30 Jakub Jelinek * sysdeps/unix/sysv/linux/powerpc/Implies: Moved to... * sysdeps/unix/sysv/linux/powerpc/fpu/Implies: ... here. New file. * sysdeps/unix/sysv/linux/powerpc/configure.in: Moved to... * sysdeps/unix/sysv/linux/powerpc/fpu/configure.in: ... here. New file. * sysdeps/unix/sysv/linux/powerpc/configure: Moved to... * sysdeps/unix/sysv/linux/powerpc/fpu/configure: ... here. New file. * sysdeps/powerpc/Implies: Remove ieee754/ldbl-128ibm line. * sysdeps/powerpc/fpu/Implies: New file. --- libc/sysdeps/unix/sysv/linux/powerpc/fpu/Implies.jj 2006-01-30 08:17:12.000000000 +0100 +++ libc/sysdeps/unix/sysv/linux/powerpc/fpu/Implies 2006-01-28 01:14:41.000000000 +0100 @@ -0,0 +1,4 @@ +# Make sure these routines come before ldbl-opt. +ieee754/ldbl-128ibm +# These supply the ABI compatibility for when long double was double. +ieee754/ldbl-opt --- libc/sysdeps/unix/sysv/linux/powerpc/fpu/configure.in.jj 2006-01-30 09:26:38.000000000 +0100 +++ libc/sysdeps/unix/sysv/linux/powerpc/fpu/configure.in 2006-01-28 01:07:39.000000000 +0100 @@ -0,0 +1,37 @@ +sinclude(./aclocal.m4)dnl Autoconf lossage +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. +# Local configure fragment for sysdeps/unix/sysv/linux/powerpc/. + +AC_CACHE_CHECK(whether $CC $CFLAGS -mlong-double-128 uses IBM extended format, + libc_cv_mlong_double_128ibm, [dnl +save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -mlong-double-128" +AC_TRY_COMPILE([#include ], [ +#if LDBL_MANT_DIG != 106 +# error "compiler doesn't implement IBM extended format of long double" +#endif +long double foobar (long double x) { return x; }], + libc_cv_mlong_double_128ibm=yes, + libc_cv_mlong_double_128ibm=no) +CFLAGS="$save_CFLAGS"]) + +if test "$libc_cv_mlong_double_128ibm" = no; then + AC_CACHE_CHECK(whether $CC $CFLAGS supports -mabi=ibmlongdouble, + libc_cv_mabi_ibmlongdouble, [dnl + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -mlong-double-128 -mabi=ibmlongdouble" + AC_TRY_COMPILE([#include ], [ +#if LDBL_MANT_DIG != 106 +# error "compiler doesn't implement IBM extended format of long double" +#endif +long double foobar (long double x) { return x; }], + libc_cv_mabi_ibmlongdouble=yes, + libc_cv_mabi_ibmlongdouble=no) + CFLAGS="$save_CFLAGS"]) + + if test "$libc_cv_mabi_ibmlongdouble" = yes; then + CFLAGS="$CFLAGS -mabi=ibmlongdouble" + else + AC_MSG_ERROR([this configuration requires -mlong-double-128 IBM extended format support]) + fi +fi --- libc/sysdeps/unix/sysv/linux/powerpc/fpu/configure.jj 2006-01-30 09:26:41.000000000 +0100 +++ libc/sysdeps/unix/sysv/linux/powerpc/fpu/configure 2006-01-28 01:07:39.000000000 +0100 @@ -0,0 +1,135 @@ +# This file is generated from configure.in by Autoconf. DO NOT EDIT! + # Local configure fragment for sysdeps/unix/sysv/linux/powerpc/. + + +echo "$as_me:$LINENO: checking whether $CC $CFLAGS -mlong-double-128 uses IBM extended format" >&5 +echo $ECHO_N "checking whether $CC $CFLAGS -mlong-double-128 uses IBM extended format... $ECHO_C" >&6 +if test "${libc_cv_mlong_double_128ibm+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -mlong-double-128" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ + +#if LDBL_MANT_DIG != 106 +# error "compiler doesn't implement IBM extended format of long double" +#endif +long double foobar (long double x) { return x; } + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + libc_cv_mlong_double_128ibm=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +libc_cv_mlong_double_128ibm=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +CFLAGS="$save_CFLAGS" +fi +echo "$as_me:$LINENO: result: $libc_cv_mlong_double_128ibm" >&5 +echo "${ECHO_T}$libc_cv_mlong_double_128ibm" >&6 + +if test "$libc_cv_mlong_double_128ibm" = no; then + echo "$as_me:$LINENO: checking whether $CC $CFLAGS supports -mabi=ibmlongdouble" >&5 +echo $ECHO_N "checking whether $CC $CFLAGS supports -mabi=ibmlongdouble... $ECHO_C" >&6 +if test "${libc_cv_mabi_ibmlongdouble+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -mlong-double-128 -mabi=ibmlongdouble" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ + +#if LDBL_MANT_DIG != 106 +# error "compiler doesn't implement IBM extended format of long double" +#endif +long double foobar (long double x) { return x; } + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + libc_cv_mabi_ibmlongdouble=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +libc_cv_mabi_ibmlongdouble=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" +fi +echo "$as_me:$LINENO: result: $libc_cv_mabi_ibmlongdouble" >&5 +echo "${ECHO_T}$libc_cv_mabi_ibmlongdouble" >&6 + + if test "$libc_cv_mabi_ibmlongdouble" = yes; then + CFLAGS="$CFLAGS -mabi=ibmlongdouble" + else + { { echo "$as_me:$LINENO: error: this configuration requires -mlong-double-128 IBM extended format support" >&5 +echo "$as_me: error: this configuration requires -mlong-double-128 IBM extended format support" >&2;} + { (exit 1); exit 1; }; } + fi +fi --- libc/sysdeps/unix/sysv/linux/powerpc/Implies.jj 2006-01-28 01:14:41.000000000 +0100 +++ libc/sysdeps/unix/sysv/linux/powerpc/Implies 2006-01-30 08:17:05.000000000 +0100 @@ -1,4 +0,0 @@ -# Make sure these routines come before ldbl-opt. -ieee754/ldbl-128ibm -# These supply the ABI compatibility for when long double was double. -ieee754/ldbl-opt --- libc/sysdeps/unix/sysv/linux/powerpc/configure.jj 2006-01-28 01:07:39.000000000 +0100 +++ libc/sysdeps/unix/sysv/linux/powerpc/configure 2006-01-30 09:26:30.000000000 +0100 @@ -1,135 +0,0 @@ -# This file is generated from configure.in by Autoconf. DO NOT EDIT! - # Local configure fragment for sysdeps/unix/sysv/linux/powerpc/. - - -echo "$as_me:$LINENO: checking whether $CC $CFLAGS -mlong-double-128 uses IBM extended format" >&5 -echo $ECHO_N "checking whether $CC $CFLAGS -mlong-double-128 uses IBM extended format... $ECHO_C" >&6 -if test "${libc_cv_mlong_double_128ibm+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - save_CFLAGS="$CFLAGS" -CFLAGS="$CFLAGS -mlong-double-128" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ - -#if LDBL_MANT_DIG != 106 -# error "compiler doesn't implement IBM extended format of long double" -#endif -long double foobar (long double x) { return x; } - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - libc_cv_mlong_double_128ibm=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -libc_cv_mlong_double_128ibm=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -CFLAGS="$save_CFLAGS" -fi -echo "$as_me:$LINENO: result: $libc_cv_mlong_double_128ibm" >&5 -echo "${ECHO_T}$libc_cv_mlong_double_128ibm" >&6 - -if test "$libc_cv_mlong_double_128ibm" = no; then - echo "$as_me:$LINENO: checking whether $CC $CFLAGS supports -mabi=ibmlongdouble" >&5 -echo $ECHO_N "checking whether $CC $CFLAGS supports -mabi=ibmlongdouble... $ECHO_C" >&6 -if test "${libc_cv_mabi_ibmlongdouble+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -mlong-double-128 -mabi=ibmlongdouble" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ - -#if LDBL_MANT_DIG != 106 -# error "compiler doesn't implement IBM extended format of long double" -#endif -long double foobar (long double x) { return x; } - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - libc_cv_mabi_ibmlongdouble=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -libc_cv_mabi_ibmlongdouble=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$save_CFLAGS" -fi -echo "$as_me:$LINENO: result: $libc_cv_mabi_ibmlongdouble" >&5 -echo "${ECHO_T}$libc_cv_mabi_ibmlongdouble" >&6 - - if test "$libc_cv_mabi_ibmlongdouble" = yes; then - CFLAGS="$CFLAGS -mabi=ibmlongdouble" - else - { { echo "$as_me:$LINENO: error: this configuration requires -mlong-double-128 IBM extended format support" >&5 -echo "$as_me: error: this configuration requires -mlong-double-128 IBM extended format support" >&2;} - { (exit 1); exit 1; }; } - fi -fi --- libc/sysdeps/unix/sysv/linux/powerpc/configure.in.jj 2006-01-28 01:07:39.000000000 +0100 +++ libc/sysdeps/unix/sysv/linux/powerpc/configure.in 2006-01-30 09:26:27.000000000 +0100 @@ -1,37 +0,0 @@ -sinclude(./aclocal.m4)dnl Autoconf lossage -GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. -# Local configure fragment for sysdeps/unix/sysv/linux/powerpc/. - -AC_CACHE_CHECK(whether $CC $CFLAGS -mlong-double-128 uses IBM extended format, - libc_cv_mlong_double_128ibm, [dnl -save_CFLAGS="$CFLAGS" -CFLAGS="$CFLAGS -mlong-double-128" -AC_TRY_COMPILE([#include ], [ -#if LDBL_MANT_DIG != 106 -# error "compiler doesn't implement IBM extended format of long double" -#endif -long double foobar (long double x) { return x; }], - libc_cv_mlong_double_128ibm=yes, - libc_cv_mlong_double_128ibm=no) -CFLAGS="$save_CFLAGS"]) - -if test "$libc_cv_mlong_double_128ibm" = no; then - AC_CACHE_CHECK(whether $CC $CFLAGS supports -mabi=ibmlongdouble, - libc_cv_mabi_ibmlongdouble, [dnl - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -mlong-double-128 -mabi=ibmlongdouble" - AC_TRY_COMPILE([#include ], [ -#if LDBL_MANT_DIG != 106 -# error "compiler doesn't implement IBM extended format of long double" -#endif -long double foobar (long double x) { return x; }], - libc_cv_mabi_ibmlongdouble=yes, - libc_cv_mabi_ibmlongdouble=no) - CFLAGS="$save_CFLAGS"]) - - if test "$libc_cv_mabi_ibmlongdouble" = yes; then - CFLAGS="$CFLAGS -mabi=ibmlongdouble" - else - AC_MSG_ERROR([this configuration requires -mlong-double-128 IBM extended format support]) - fi -fi --- libc/sysdeps/powerpc/fpu/Implies.jj 2006-01-30 08:18:28.000000000 +0100 +++ libc/sysdeps/powerpc/fpu/Implies 2006-01-29 21:10:24.000000000 +0100 @@ -0,0 +1,4 @@ +# On PowerPC we use the IBM extended long double format. +ieee754/ldbl-128ibm +ieee754/dbl-64 +ieee754/flt-32 --- libc/sysdeps/powerpc/Implies.jj 2006-01-29 21:10:24.000000000 +0100 +++ libc/sysdeps/powerpc/Implies 2006-01-30 08:18:21.000000000 +0100 @@ -1,4 +1,2 @@ -# On PowerPC we use the IBM extended long double format. -ieee754/ldbl-128ibm ieee754/dbl-64 ieee754/flt-32 Jakub