Hi Matthias, For some background about the -O2 -ffp-contract=off flags for sharedRuntimeTrig.cpp and sharedRuntimeTrans.cpp see: https://bugs.openjdk.java.net/browse/JDK-8210425
My understanding is that if there is a per-file override of the optimization level, the compilation command will end up containing both -O3 and a later, possible override, via the per-file settings. The -O3 flag originates from it being a release/fastdebug build. Thanks, Severin On Wed, 2019-05-08 at 13:27 +0000, Baesken, Matthias wrote: > Hello, I looked a bit more into it . > It seems to me , that when -ffp-contract=off is > available which is the case with current gcc versions , we want to > optimize the 2 special files ( sharedRuntimeTrig.cpp / > sharedRuntimeTrans.cpp ). > see the following comments : > > jdk/make/hotspot/lib/JvmOverrideFiles.gmk > > 47# If the FDLIBM_CFLAGS variable is non-empty we know > 48# that the fdlibm-fork in hotspot can get optimized > 49# by using -ffp-contract=off on GCC/Clang platforms. > ...... > 58 BUILD_LIBJVM_sharedRuntimeTrig.cpp_CXXFLAGS := -DNO_PCH > $(FDLIBM_CFLAGS) $(LIBJVM_FDLIBM_COPY_OPT_FLAG) > 59 BUILD_LIBJVM_sharedRuntimeTrans.cpp_CXXFLAGS := -DNO_PCH > $(FDLIBM_CFLAGS) $(LIBJVM_FDLIBM_COPY_OPT_FLAG) > 60 > > But still, setting both -O3 and -O2 in one compile call looks not > nice to me . > > In case of ancient gcc ***without*** -ffp-contract=off , we > might still run into issues for these 2 special files when > _FORTIFY_SOURCE is set . > Don't know if this is still relevant . > In case we want to be on the very safe side , we > might need to filter out -D_FORTIFY_SOURCE=2 for these 2 > compilation units . > > > Best regards, Matthias > > > > > Hi David, thanks for the comment . > > > > Currently I do not see the issue in our fastdebug builds . > > So I think the opt-flag filtering got changed/removed in the > > years after the > > issues were reported . > > > > > > https://bugs.openjdk.java.net/browse/JDK-8047952 > > > > mentions special O-level settings for sharedRuntimeTrig.cpp and > > sharedRuntimeTrans.cpp . > > > > But the files have optimization set in both fastdebug > > and opt builds : > > > > Linux x86_64 gcc-7 based builds : > > > > fastdebug build (with the added -D_FORTIFY_SOURCE=2 flag) : > > > > -Werror -O3 -D_FORTIFY_SOURCE=2 -DNO_PCH -ffp-contract=off -O2 - > > D_FORTIFY_SOURCE=2 > > > > > > Opt build (without -D_FORTIFY_SOURCE=... ) : > > > > -O3 -DNO_PCH -ffp-contract=off -O2 .... > > > > > > (btw. the setting of both -O3 AND -O2 looks strange to me , > > but that’s > > unrelated to my change ; I noticed that already in OpenJDK 11 ). > > > > > > Best regards, Matthias > > > > > > > > > > > Hi Matthias, > > > > > > On 8/05/2019 6:05 pm, Baesken, Matthias wrote: > > > > Hello, here is a webrev, I used the existing bug > > > > "JDK-8130017 : use _FORTIFY_SOURCE in gcc fastdebug builds" > > > > > > > > Hope that’s fine . > > > > > > That is fine, but please add a comment to the bug explaining > > > exactly how > > > you fixed the issue and how the issues raised in the bug > > > description > > > regarding optimisation levels have been addressed. > > > > > > Not a review - I'll leave that to build team. The proof of this > > > will be > > > in the building and testing. > > > > > > Thanks, > > > David > > > > > > > https://bugs.openjdk.java.net/browse/JDK-8130017 > > > > > > > > http://cr.openjdk.java.net/~mbaesken/webrevs/8130017.0/ > > > > > > > > > > > > Our internal OpenJDK Linux (x86_64, ppc64, ppc64le , > > > > s390x) fastdebug > > > builds are fine with the added flag . > > > >