Skip to content

Commit bc7d2b9

Browse files
Fix failing java/lang/StrictMath jtreg tests on MacOS 14+ with XCode 14.3.1+: set -ffp-contract=off FDLIBM_CFLAGS for clang and pass it to fdlibm on MacOS (#559)
1 parent 00557a9 commit bc7d2b9

File tree

3 files changed

+19
-8
lines changed

3 files changed

+19
-8
lines changed

common/autoconf/flags.m4

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,6 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
547547
# Later we will also have CFLAGS and LDFLAGS for the hotspot subrepo build.
548548
#
549549
550-
FDLIBM_CFLAGS=""
551550
# Setup compiler/platform specific flags to CFLAGS_JDK,
552551
# CXXFLAGS_JDK and CCXXFLAGS_JDK (common to C and CXX?)
553552
if test "x$TOOLCHAIN_TYPE" = xgcc; then
@@ -573,7 +572,10 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
573572
FLAGS_COMPILER_CHECK_ARGUMENTS([-Wformat-overflow -Werror],
574573
[USE_FORMAT_OVERFLOW="1"], [USE_FORMAT_OVERFLOW="0"])
575574
AC_SUBST([USE_FORMAT_OVERFLOW])
575+
fi
576576
577+
FDLIBM_CFLAGS=""
578+
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
577579
# Check that the compiler supports -ffp-contract=off flag
578580
# Set FDLIBM_CFLAGS to -ffp-contract=off if it does.
579581
# For GCC < 4.6, on x86, x86_64 and ppc check for
@@ -604,7 +606,11 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
604606
else
605607
FDLIBM_CFLAGS="$COMPILER_FP_CONTRACT_OFF_FLAG"
606608
fi
607-
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
609+
fi
610+
AC_SUBST(FDLIBM_CFLAGS)
611+
AC_MSG_NOTICE([fdlibm will be compiled with flags: $FDLIBM_CFLAGS])
612+
613+
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
608614
CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS"
609615
if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86; then
610616
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_TARGET_CPU_LEGACY_LIB"
@@ -635,7 +641,6 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
635641
-D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB"
636642
fi
637643
fi
638-
AC_SUBST(FDLIBM_CFLAGS)
639644
640645
###############################################################################
641646

common/autoconf/generated-configure.sh

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4455,7 +4455,7 @@ VS_TOOLSET_SUPPORTED_2022=true
44554455
#CUSTOM_AUTOCONF_INCLUDE
44564456

44574457
# Do not change or remove the following line, it is needed for consistency checks:
4458-
DATE_WHEN_GENERATED=1766720598
4458+
DATE_WHEN_GENERATED=1766807883
44594459

44604460
###############################################################################
44614461
#
@@ -42981,7 +42981,6 @@ fi
4298142981
# Later we will also have CFLAGS and LDFLAGS for the hotspot subrepo build.
4298242982
#
4298342983

42984-
FDLIBM_CFLAGS=""
4298542984
# Setup compiler/platform specific flags to CFLAGS_JDK,
4298642985
# CXXFLAGS_JDK and CCXXFLAGS_JDK (common to C and CXX?)
4298742986
if test "x$TOOLCHAIN_TYPE" = xgcc; then
@@ -43315,7 +43314,10 @@ $as_echo "$supports" >&6; }
4331543314
fi
4331643315

4331743316

43317+
fi
4331843318

43319+
FDLIBM_CFLAGS=""
43320+
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
4331943321
# Check that the compiler supports -ffp-contract=off flag
4332043322
# Set FDLIBM_CFLAGS to -ffp-contract=off if it does.
4332143323
# For GCC < 4.6, on x86, x86_64 and ppc check for
@@ -43457,7 +43459,12 @@ $as_echo "$supports" >&6; }
4345743459
else
4345843460
FDLIBM_CFLAGS="$COMPILER_FP_CONTRACT_OFF_FLAG"
4345943461
fi
43460-
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
43462+
fi
43463+
43464+
{ $as_echo "$as_me:${as_lineno-$LINENO}: fdlibm will be compiled with flags: $FDLIBM_CFLAGS" >&5
43465+
$as_echo "$as_me: fdlibm will be compiled with flags: $FDLIBM_CFLAGS" >&6;}
43466+
43467+
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
4346143468
CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS"
4346243469
if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86; then
4346343470
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_TARGET_CPU_LEGACY_LIB"
@@ -43489,7 +43496,6 @@ $as_echo "$supports" >&6; }
4348943496
fi
4349043497
fi
4349143498

43492-
4349343499
###############################################################################
4349443500

4349543501
# Adjust flags according to debug level.

jdk/make/lib/CoreLibraries.gmk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ else
7575
OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs/libfdlibm, \
7676
SRC := $(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/src, \
7777
LANG := C, \
78-
CFLAGS := $(CFLAGS_JDKLIB) \
78+
CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS) \
7979
-I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include, \
8080
LDFLAGS := -nostdlib -r, \
8181
OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libfdlibm, \

0 commit comments

Comments
 (0)