From: Jakub Jelinek <jakub@redhat.com>
To: fortran@gcc.gnu.org, gcc-patches@gcc.gnu.org
Subject: [PATCH] libgfortran: Fix up LIBGFOR_CHECK_FLOAT128 [PR106137]
Date: Wed, 29 Jun 2022 14:13:01 +0200 [thread overview]
Message-ID: <YrxBzaWQC/1cHvUA@tucnak> (raw)
Hi!
My recent gfortran + libgfortran patch apparently broke (some?) aarch64
builds. While it is desirable to use just _Float128 rather than __float128,
we only want to use it (and e.g. define HAVE_FLOAT128) on targets where
_Float128 is supported and long double isn't IEEE quad precision.
Which is targets that support __float128 type which we have been testing
for before - _Float128 is supported on those targets and on targets where
long double is IEEE quad precision.
So, the following patch restores check for whether __float128 is supported
into the LIBGFOR_CHECK_FLOAT128 check which determines whether
HAVE_FLOAT128 is defined or whether to use libquadmath, so that e.g. on
aarch64 where long double is IEEE quad we don't do that.
Tested by Tamar on aarch64 and by me on x86_64-linux, ok for trunk?
2022-06-29 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/106137
* acinclude.m4 (LIBGFOR_CHECK_FLOAT128): Also test for __float128.
* configure: Regenerated.
--- libgfortran/acinclude.m4.jj 2022-06-28 13:14:45.327799267 +0200
+++ libgfortran/acinclude.m4 2022-06-29 11:45:19.286551469 +0200
@@ -276,7 +276,6 @@ AC_DEFUN([LIBGFOR_CHECK_FLOAT128], [
GCC_TRY_COMPILE_OR_LINK([
_Float128 foo (_Float128 x)
{
-
_Complex _Float128 z1, z2;
z1 = x;
@@ -290,11 +289,18 @@ AC_DEFUN([LIBGFOR_CHECK_FLOAT128], [
{
return x * __builtin_huge_valf128 ();
}
+
+ __float128 baz (__float128 x)
+ {
+ return x * __builtin_huge_valf128 ();
+ }
],[
foo (1.2F128);
bar (1.2F128);
+ baz (1.2F128);
foo (1.2Q);
bar (1.2Q);
+ baz (1.2Q);
],[
libgfor_cv_have_float128=yes
],[
--- libgfortran/configure.jj 2022-06-28 13:14:45.331799215 +0200
+++ libgfortran/configure 2022-06-29 11:45:49.951148846 +0200
@@ -30130,7 +30130,6 @@ else
_Float128 foo (_Float128 x)
{
-
_Complex _Float128 z1, z2;
z1 = x;
@@ -30145,14 +30144,21 @@ else
return x * __builtin_huge_valf128 ();
}
+ __float128 baz (__float128 x)
+ {
+ return x * __builtin_huge_valf128 ();
+ }
+
int
main ()
{
foo (1.2F128);
bar (1.2F128);
+ baz (1.2F128);
foo (1.2Q);
bar (1.2Q);
+ baz (1.2Q);
;
return 0;
@@ -30177,7 +30183,6 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
_Float128 foo (_Float128 x)
{
-
_Complex _Float128 z1, z2;
z1 = x;
@@ -30192,14 +30197,21 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
return x * __builtin_huge_valf128 ();
}
+ __float128 baz (__float128 x)
+ {
+ return x * __builtin_huge_valf128 ();
+ }
+
int
main ()
{
foo (1.2F128);
bar (1.2F128);
+ baz (1.2F128);
foo (1.2Q);
bar (1.2Q);
+ baz (1.2Q);
;
return 0;
Jakub
next reply other threads:[~2022-06-29 12:13 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-29 12:13 Jakub Jelinek [this message]
2022-06-29 14:42 ` Tobias Burnus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YrxBzaWQC/1cHvUA@tucnak \
--to=jakub@redhat.com \
--cc=fortran@gcc.gnu.org \
--cc=gcc-patches@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).