RFR: 8295159: DSO created with -ffast-math breaks Java floating-point arithmetic [v6]

Andrew Haley aph at openjdk.org
Wed Oct 12 16:20:10 UTC 2022


> A bug in GCC causes shared libraries linked with -ffast-math to disable denormal arithmetic. This breaks Java's floating-point semantics.
> 
> The bug is https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55522
> 
> One solution is to save and restore the floating-point control word around System.loadLibrary(). This isn't perfect, because some shared library might load another shared library at runtime, but it's a lot better than what we do now. 
> 
> However, this fix is not complete. `dlopen()` is called from many places in the JDK. I guess the best thing to do is find and wrap them all. I'd like to hear people's opinions.

Andrew Haley has updated the pull request incrementally with two additional commits since the last revision:

 - Update src/hotspot/os/linux/os_linux.cpp
   
   Co-authored-by: Aleksey Shipilëv <shade at redhat.com>
 - Update src/hotspot/os/linux/os_linux.cpp
   
   Co-authored-by: Aleksey Shipilëv <shade at redhat.com>

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/10661/files
  - new: https://git.openjdk.org/jdk/pull/10661/files/bcff4597..3f442beb

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=10661&range=05
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=10661&range=04-05

  Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/10661.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10661/head:pull/10661

PR: https://git.openjdk.org/jdk/pull/10661



More information about the build-dev mailing list