diff options
author | Tobias Burnus <burnus@net-b.de> | 2011-02-15 22:30:43 +0100 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2011-02-15 22:30:43 +0100 |
commit | 69eb61d47a9c6dae5308134ee809d85882fbeb10 (patch) | |
tree | ea8ca213cedb7992d8e77abb99f171de9ede42aa /libgfortran | |
parent | fc2fa4fb3848f15a1f69843151214033f45edc07 (diff) | |
download | gcc-69eb61d47a9c6dae5308134ee809d85882fbeb10.zip gcc-69eb61d47a9c6dae5308134ee809d85882fbeb10.tar.gz gcc-69eb61d47a9c6dae5308134ee809d85882fbeb10.tar.bz2 |
re PR libfortran/47716 (libgfortran quadmath_weak.h not found on NetBSD 5.1)
2011-02-15 Tobias Burnus <burnus@net-b.de>
PR fortran/47716
PR fortran/47648
* acinclude.m4 (LIBGFOR_CHECK_FLOAT128): Use check from
libquadmath, which uses more features.
* configure: Regenerate.
From-SVN: r170200
Diffstat (limited to 'libgfortran')
-rw-r--r-- | libgfortran/ChangeLog | 8 | ||||
-rw-r--r-- | libgfortran/acinclude.m4 | 45 | ||||
-rwxr-xr-x | libgfortran/configure | 89 |
3 files changed, 108 insertions, 34 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 71a6329..18daa42 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,11 @@ +2011-02-15 Tobias Burnus <burnus@net-b.de> + + PR fortran/47716 + PR fortran/47648 + * acinclude.m4 (LIBGFOR_CHECK_FLOAT128): Use check from + libquadmath, which uses more features. + * configure: Regenerate. + 2011-02-14 Jakub Jelinek <jakub@redhat.com> PR fortran/47642 diff --git a/libgfortran/acinclude.m4 b/libgfortran/acinclude.m4 index 9873d9f..1bc1c7b 100644 --- a/libgfortran/acinclude.m4 +++ b/libgfortran/acinclude.m4 @@ -284,24 +284,33 @@ AC_DEFUN([LIBGFOR_CHECK_FLOAT128], [ AC_CACHE_CHECK([whether we have a usable __float128 type], libgfor_cv_have_float128, [ - AC_TRY_LINK([ -/* no header */ -],[ - typedef _Complex float __attribute__((mode(TC))) __complex128; - - __float128 x; - x = __builtin_huge_valq() - 2.e1000Q; - - __complex128 z1, z2; - z1 = x; - z2 = 2.Q; - - z1 /= z2; - z1 /= 7.Q; -], - libgfor_cv_have_float128=yes, - libgfor_cv_have_float128=no) - ]) + GCC_TRY_COMPILE_OR_LINK([ + typedef _Complex float __attribute__((mode(TC))) __complex128; + + __float128 foo (__float128 x) + { + + __complex128 z1, z2; + + z1 = x; + z2 = x / 7.Q; + z2 /= z1; + + return (__float128) z2; + } + + __float128 bar (__float128 x) + { + return x * __builtin_huge_valq (); + } + ],[ + foo (1.2Q); + bar (1.2Q); + ],[ + libgfor_cv_have_float128=yes + ],[ + libgfor_cv_have_float128=no +])]) if test "x$libgfor_cv_have_float128" = xyes; then AC_DEFINE(HAVE_FLOAT128, 1, [Define if have a usable __float128 type.]) diff --git a/libgfortran/configure b/libgfortran/configure index 42f72b5..9d3c891 100755 --- a/libgfortran/configure +++ b/libgfortran/configure @@ -25075,42 +25075,99 @@ if test "${libgfor_cv_have_float128+set}" = set; then : $as_echo_n "(cached) " >&6 else - if test x$gcc_no_link = xyes; then - as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 -fi -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test x$gcc_no_link = xyes; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* no header */ + typedef _Complex float __attribute__((mode(TC))) __complex128; + + __float128 foo (__float128 x) + { + + __complex128 z1, z2; + + z1 = x; + z2 = x / 7.Q; + z2 /= z1; + + return (__float128) z2; + } + + __float128 bar (__float128 x) + { + return x * __builtin_huge_valq (); + } int main () { - typedef _Complex float __attribute__((mode(TC))) __complex128; + foo (1.2Q); + bar (1.2Q); - __float128 x; - x = __builtin_huge_valq() - 2.e1000Q; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : - __complex128 z1, z2; - z1 = x; - z2 = 2.Q; + libgfor_cv_have_float128=yes - z1 /= z2; - z1 /= 7.Q; +else + + libgfor_cv_have_float128=no + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + if test x$gcc_no_link = xyes; then + as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 +fi +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + typedef _Complex float __attribute__((mode(TC))) __complex128; + + __float128 foo (__float128 x) + { + + __complex128 z1, z2; + + z1 = x; + z2 = x / 7.Q; + z2 /= z1; + + return (__float128) z2; + } + + __float128 bar (__float128 x) + { + return x * __builtin_huge_valq (); + } + +int +main () +{ + + foo (1.2Q); + bar (1.2Q); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - libgfor_cv_have_float128=yes + + libgfor_cv_have_float128=yes + else - libgfor_cv_have_float128=no + + libgfor_cv_have_float128=no + fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - +fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgfor_cv_have_float128" >&5 $as_echo "$libgfor_cv_have_float128" >&6; } |