--- a/make/autoconf/flags-cflags.m4 Wed Nov 26 22:17:19 2025 +++ b/make/autoconf/flags-cflags.m4 Fri Nov 28 12:46:32 2025 @@ -283,7 +283,9 @@ C_O_FLAG_NONE="-O0" if test "x$TOOLCHAIN_TYPE" = xgcc; then - C_O_FLAG_LTO="-flto=auto -fuse-linker-plugin -fno-strict-aliasing -fno-fat-lto-objects" + if test "x$OPENJDK_TARGET_OS" != xsolaris; then + C_O_FLAG_LTO="-flto=auto -fuse-linker-plugin -fno-strict-aliasing -fno-fat-lto-objects" + fi else C_O_FLAG_LTO="-flto -fno-strict-aliasing" fi @@ -433,6 +435,9 @@ if test "x$OPENJDK_TARGET_OS" = xlinux; then CFLAGS_OS_DEF_JVM="-DLINUX -D_FILE_OFFSET_BITS=64" CFLAGS_OS_DEF_JDK="-D_GNU_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64" + elif test "x$OPENJDK_TARGET_OS" = xsolaris; then + CFLAGS_OS_DEF_JVM="-DSOLARIS" + CFLAGS_OS_DEF_JDK="-D__solaris__ -D_REENTRANT" elif test "x$OPENJDK_TARGET_OS" = xmacosx; then CFLAGS_OS_DEF_JVM="-D_ALLBSD_SOURCE -D_DARWIN_C_SOURCE -D_XOPEN_SOURCE" CFLAGS_OS_DEF_JDK="-D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT" @@ -487,6 +492,7 @@ if test "x$TOOLCHAIN_TYPE" = xgcc; then ALWAYS_DEFINES_JVM="-D_GNU_SOURCE -D_REENTRANT" + ALWAYS_DEFINES_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" elif test "x$TOOLCHAIN_TYPE" = xclang; then ALWAYS_DEFINES_JVM="-D_GNU_SOURCE" elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then @@ -509,8 +515,8 @@ fi if test "x$TOOLCHAIN_TYPE" = xgcc; then - TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -fstack-protector" - TOOLCHAIN_CFLAGS_JDK="-fvisibility=hidden -pipe -fstack-protector" + TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM" + TOOLCHAIN_CFLAGS_JDK="-fvisibility=hidden -pipe" # reduce lib size on linux in link step, this needs also special compile flags # do this on s390x also for libjvm (where serviceability agent is not supported) if test "x$ENABLE_LINKTIME_GC" = xtrue; then @@ -575,7 +581,12 @@ # CFLAGS C language level for JDK sources (hotspot only uses C++) if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then - LANGSTD_CFLAGS="-std=c11" + if test "x$OPENJDK_TARGET_OS" = xsolaris; then + # illumos headers are confused by c11 + LANGSTD_CFLAGS="-std=gnu11" + else + LANGSTD_CFLAGS="-std=c11" + fi elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then LANGSTD_CFLAGS="-std:c11" fi