Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 3 Dec 2020 17:53:52 +0100
From: Marius Hillenbrand <mhillen@...ux.ibm.com>
To: musl@...ts.openwall.com
Subject: Re: [PATCH] s390x: derive float_t from compiler or default to
 float

On 12/2/20 8:13 PM, Rich Felker wrote:
> On Wed, Dec 02, 2020 at 06:09:44PM +0100, Marius Hillenbrand wrote:
>> On 12/2/20 5:01 PM, Rich Felker wrote:
>>> On Wed, Dec 02, 2020 at 09:25:04AM -0500, Rich Felker wrote:
[...]
>>> I'm looking at
>>> https://gcc.gnu.org/pipermail/gcc-patches/2020-November/560225.html
>>> which seems to be what you're talking about, and don't understand how
>>> it's intended to work. It looks like it's running a test for target
>>> behavior on the host compiler (there is no target compiler at the
>>> point this test is run). Looking again, I guess that's why it's under
>>> a condition for build==host==target.
>>
>> Right, that's the patch. The check only applies to a "native build",
>> with the assumption that the build environment is the same as the
>> intended target environment.
>>
>>> What happens when cross
>>> compiling? Do you get the old behavior unless manually setting
>>> --disable-s390-excess-float-precision?
>>
>> When cross compiling, we get the new behavior (the setting starts at
>> "auto", which is never resolved to yes or no; so the AC_DEFINE is left out).
>>
>> In any case, manually setting
>> --enable/disable-s390-excess-float-precision takes precedence.
> 
> FWIW this means building GCC 11 for any older version of glibc or musl
> will give a broken configuration unless you pass
> --disable-s390-excess-float-precision to configure. I'm not sure if
> anything should be done about that; at least I might want to handle it
> in mcm...

I will look into handling cross compiles in a more differentiating way...

> 
> In any case this probably means I should include your patch in this
> release cycle so at least current version builds right.
> 
> BTW is there a -m option to override at runtime in order to test both
> behaviors, so you don't have to build a new GCC from scratch to do it?

Yes, in the current GCC, -fexcess-precision=standard or fast switches
between the two behaviors (i.e., both __FLT_EVAL_METHOD__ and emitted
code; "fast" corresponds to the "new" behavior).

Marius
-- 
Marius Hillenbrand
Linux on Z development
IBM Deutschland Research & Development GmbH
Vors. des Aufsichtsrats: Gregor Pillen / Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen / Registergericht: Amtsgericht
Stuttgart, HRB 243294

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.