From: Thomas Koenig <tkoenig@netcologne.de>
To: Jakub Jelinek <jakub@redhat.com>
Cc: Michael Meissner <meissner@linux.ibm.com>,
Segher Boessenkool <segher@kernel.crashing.org>,
"fortran@gcc.gnu.org" <fortran@gcc.gnu.org>,
Peter Bergner <bergner@linux.ibm.com>,
gcc-patches@gcc.gnu.org, Bill Schmidt <wschmidt@linux.ibm.com>,
David Edelsohn <dje.gcc@gmail.com>
Subject: Re: [power-ieee128] RFH: LTO broken
Date: Fri, 7 Jan 2022 15:25:57 +0100 [thread overview]
Message-ID: <5aa645cf-89bf-a620-a107-9564b7aa8fc3@netcologne.de> (raw)
In-Reply-To: <20220107133103.GN2664@tucnak>
Hi Jakub,
>> 0000000000251038 000006ad00000015 R_PPC64_JMP_SLOT 0000000000000000 __cabsieee128 + 0
>> All these should for POWER_IEEE128 use atan2q@QUADMATH_1.0 etc.
>
> So, seems all these come from f951 compiled sources.
> For user code, I think the agreement was if you want to use successfully
> -mabi=ieeelongdouble, you need glibc 2.32 or later, which is why the Fortran
> FE doesn't conditionalize on whether glibc 2.32 is available or not and just
> emits __WHATEVERieee128 entrypoints.
That was the idea, I think.
> But for Fortran compiled sources in libgfortran, we need to use
> __WHATEVERieee128 only if glibc 2.32 or later and WHATEVERq (from
> libquadmath) otherwise.
> I guess easiest would be to do this always in the FE, but we need to
> determine in the FE if the target is glibc 2.32 or later.
Instead of determining this in the front end, maybe we can add
an option (documented, but marked as useful as only for internal
use and with no guarantee that it will remain) and use that option
when compiling libgfortran.
>> On the other side, on glibc 2.32+ build, we still use some libquadmath APIs
>> when we shouldn't:
>> readelf -Wr /home/jakub/gcc/obj/powerpc64le-unknown-linux-gnu/libgfortran/.libs/libgfortran.so.5 | grep QUADMATH
>> 00000000002502c8 0000002600000015 R_PPC64_JMP_SLOT 0000000000000000 fmaq@QUADMATH_1.0 + 0
>> 00000000002505f8 0000006700000015 R_PPC64_JMP_SLOT 0000000000000000 tanq@QUADMATH_1.0 + 0
>> 0000000000250930 0000009b00000015 R_PPC64_JMP_SLOT 0000000000000000 fabsq@QUADMATH_1.0 + 0
>> 0000000000250940 0000009d00000015 R_PPC64_JMP_SLOT 0000000000000000 sinq@QUADMATH_1.0 + 0
>> 0000000000250c98 000000cf00000015 R_PPC64_JMP_SLOT 0000000000000000 copysignq@QUADMATH_1.0 + 0
>> 0000000000251038 0000010700000015 R_PPC64_JMP_SLOT 0000000000000000 cosq@QUADMATH_1.0 + 0
>> 0000000000251068 0000010a00000015 R_PPC64_JMP_SLOT 0000000000000000 fmodq@QUADMATH_1.0 + 0
>> These should use __fmaieee128, __tanieee128 etc. instead.
>
> This one seems easily fixed by the following patch, ok for power-ieee128?
OK!
Best regards
Thomas
next prev parent reply other threads:[~2022-01-07 14:26 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-03 15:36 [power-ieee128] libgfortran: -mabi=ieeelongdouble I/O Jakub Jelinek
2022-01-03 16:26 ` Jakub Jelinek
2022-01-03 17:03 ` Thomas Koenig
2022-01-03 20:00 ` [power-ieee128] libgfortran, fortran: " Jakub Jelinek
2022-01-03 22:43 ` Thomas Koenig
2022-01-04 11:07 ` [power-ieee128] RFH: LTO broken Jakub Jelinek
2022-01-04 13:41 ` [power-ieee128] libgfortran: -mabi=ieeelongdouble I/O fix Jakub Jelinek
2022-01-04 14:35 ` Thomas Koenig
2022-01-06 2:48 ` [power-ieee128] RFH: LTO broken Michael Meissner
2022-01-06 4:17 ` Michael Meissner
2022-01-06 5:00 ` Michael Meissner
2022-01-06 20:01 ` Thomas Koenig
2022-01-06 20:10 ` Jakub Jelinek
2022-01-07 9:22 ` [power-ieee128] OPEN CONV Jakub Jelinek
2022-01-07 10:26 ` Thomas Koenig
2022-01-07 19:52 ` Jakub Jelinek
2022-01-07 21:40 ` Thomas Koenig
2022-01-07 21:48 ` Jakub Jelinek
2022-01-08 10:07 ` Thomas Koenig
2022-01-08 11:00 ` Jakub Jelinek
2022-01-08 11:10 ` Jakub Jelinek
2022-01-08 14:02 ` Jakub Jelinek
2022-01-08 14:13 ` Thomas Koenig
2022-01-08 14:18 ` Jakub Jelinek
2022-01-08 18:59 ` Michael Meissner
2022-01-08 19:15 ` David Edelsohn
2022-01-08 19:37 ` Michael Meissner
2022-01-07 11:29 ` [power-ieee128] RFH: LTO broken Jakub Jelinek
2022-01-07 13:31 ` Jakub Jelinek
2022-01-07 14:25 ` Thomas Koenig [this message]
2022-01-07 16:46 ` Jakub Jelinek
2022-01-07 21:33 ` Thomas Koenig
2022-01-03 16:48 ` [power-ieee128] libgfortran: -mabi=ieeelongdouble I/O Thomas Koenig
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=5aa645cf-89bf-a620-a107-9564b7aa8fc3@netcologne.de \
--to=tkoenig@netcologne.de \
--cc=bergner@linux.ibm.com \
--cc=dje.gcc@gmail.com \
--cc=fortran@gcc.gnu.org \
--cc=gcc-patches@gcc.gnu.org \
--cc=jakub@redhat.com \
--cc=meissner@linux.ibm.com \
--cc=segher@kernel.crashing.org \
--cc=wschmidt@linux.ibm.com \
/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).