RFR: 8295159: DSO created with -ffast-math breaks Java floating-point arithmetic [v8]
Thomas Stuefe
stuefe at openjdk.org
Wed Oct 11 18:46:49 UTC 2023
On Wed, 11 Oct 2023 17:20:18 GMT, Andrew Haley <aph at openjdk.org> wrote:
>> src/hotspot/os/bsd/os_bsd.cpp line 976:
>>
>>> 974: // same architecture as Hotspot is running on
>>> 975:
>>> 976: void *os::Bsd::dlopen_helper(const char *filename, int mode) {
>>
>> I thought BSD is switching to clang.
>
> What difference does it make if it does?
I was trying to understand the BSD+gcc combination. We use clang on MacOS, so the only platform I thought would be affected would be one of the BSDs.
But I thought those also moved to clang in their builds. Hence my question.
>> src/hotspot/os/bsd/os_bsd.cpp line 1001:
>>
>>> 999: static const volatile double thresh
>>> 1000: = jdouble_cast(0x0000000000000003); // 0x0.0000000000003p-1022;
>>> 1001: if (unity + thresh == unity || -unity - thresh == -unity) {
>>
>> Could this expression happen to be precomputed by the compiler at build time? Maybe make the parts volatile?
>
> `thresh` is volatile. What more is needed?
Argh, sorry, missed that volatile.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/10661#discussion_r1355591017
PR Review Comment: https://git.openjdk.org/jdk/pull/10661#discussion_r1355593391
More information about the build-dev
mailing list