public inbox for fortran@gcc.gnu.org
 help / color / mirror / Atom feed
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

  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).