From 87d8f936090fdbed8a435583a81cecb0483ea0e8 Mon Sep 17 00:00:00 2001 From: Sergey Bylokhov Date: Thu, 30 Oct 2025 17:07:27 -0700 Subject: [PATCH 1/6] Backport 7743345f6f73398f280fd18364b4cea10a6b0f2f --- make/common/MakeBase.gmk | 2 +- make/common/NativeCompilation.gmk | 7 ++- make/hotspot/lib/CompileGtest.gmk | 4 ++ make/hotspot/lib/CompileJvm.gmk | 62 ++++++++++++++++++++------- make/hotspot/lib/JvmOverrideFiles.gmk | 4 -- 5 files changed, 56 insertions(+), 23 deletions(-) diff --git a/make/common/MakeBase.gmk b/make/common/MakeBase.gmk index 2a06d8eb8b3..10ad3fa3916 100644 --- a/make/common/MakeBase.gmk +++ b/make/common/MakeBase.gmk @@ -199,7 +199,7 @@ $(eval $(call SetupLogging)) ################################################################################ -MAX_PARAMS := 36 +MAX_PARAMS := 96 PARAM_SEQUENCE := $(call sequence, 2, $(MAX_PARAMS)) # Template for creating a macro taking named parameters. To use it, assign the diff --git a/make/common/NativeCompilation.gmk b/make/common/NativeCompilation.gmk index af601bac1d4..75b93cef19c 100644 --- a/make/common/NativeCompilation.gmk +++ b/make/common/NativeCompilation.gmk @@ -363,18 +363,20 @@ define SetupCompileNativeFileBody endif $1_BASE_CFLAGS := $$($$($1_BASE)_CFLAGS) $$($$($1_BASE)_EXTRA_CFLAGS) \ - $$($$($1_BASE)_SYSROOT_CFLAGS) $$($1_WARNINGS_FLAGS) + $$($$($1_BASE)_SYSROOT_CFLAGS) $1_BASE_CXXFLAGS := $$($$($1_BASE)_CXXFLAGS) $$($$($1_BASE)_EXTRA_CXXFLAGS) \ - $$($$($1_BASE)_SYSROOT_CFLAGS) $$($1_EXTRA_CXXFLAGS) $$($1_WARNINGS_FLAGS) + $$($$($1_BASE)_SYSROOT_CFLAGS) $$($1_EXTRA_CXXFLAGS) $1_BASE_ASFLAGS := $$($$($1_BASE)_ASFLAGS) $$($$($1_BASE)_EXTRA_ASFLAGS) ifneq ($$(filter %.c, $$($1_FILENAME)), ) # Compile as a C file + $1_CFLAGS += $$($1_WARNINGS_FLAGS) $1_FLAGS := $(CFLAGS_CCACHE) $$($1_USE_PCH_FLAGS) $$($1_BASE_CFLAGS) \ $$($1_OPT_CFLAGS) $$($1_CFLAGS) -c $1_COMPILER := $$($$($1_BASE)_CC) else ifneq ($$(filter %.m, $$($1_FILENAME)), ) # Compile as an Objective-C file + $1_CFLAGS += $$($1_WARNINGS_FLAGS) $1_FLAGS := -x objective-c $(CFLAGS_CCACHE) $$($1_USE_PCH_FLAGS) \ $$($1_BASE_CFLAGS) $$($1_OPT_CFLAGS) $$($1_CFLAGS) -c $1_COMPILER := $$($$($1_BASE)_CC) @@ -398,6 +400,7 @@ define SetupCompileNativeFileBody endif else ifneq ($$(filter %.cpp %.cc %.mm, $$($1_FILENAME)), ) # Compile as a C++ or Objective-C++ file + $1_CXXFLAGS += $$($1_WARNINGS_FLAGS) $1_FLAGS := $(CFLAGS_CCACHE) $$($1_USE_PCH_FLAGS) $$($1_BASE_CXXFLAGS) \ $$($1_OPT_CXXFLAGS) $$($1_CXXFLAGS) -c $1_COMPILER := $$($$($1_BASE)_CXX) diff --git a/make/hotspot/lib/CompileGtest.gmk b/make/hotspot/lib/CompileGtest.gmk index 71fbf7c3dda..777d8ed1812 100644 --- a/make/hotspot/lib/CompileGtest.gmk +++ b/make/hotspot/lib/CompileGtest.gmk @@ -103,9 +103,13 @@ $(eval $(call SetupJdkLibrary, BUILD_GTEST_LIBJVM, \ CFLAGS_macosx := -DGTEST_OS_MAC=1, \ DISABLED_WARNINGS_gcc := $(DISABLED_WARNINGS_gcc) \ undef stringop-overflow, \ + DISABLED_WARNINGS_gcc_test_signals.cpp := cast-function-type, \ + DISABLED_WARNINGS_gcc_test_threadCpuLoad.cpp := address, \ DISABLED_WARNINGS_clang := $(DISABLED_WARNINGS_clang) \ undef switch format-nonliteral tautological-undefined-compare \ self-assign-overloaded, \ + DISABLED_WARNINGS_clang_test_g1ServiceThread.cpp := delete-abstract-non-virtual-dtor, \ + DISABLED_WARNINGS_clang_test_logDecorations.cpp := missing-field-initializers, \ DISABLED_WARNINGS_microsoft := $(DISABLED_WARNINGS_microsoft), \ LDFLAGS := $(JVM_LDFLAGS), \ LDFLAGS_unix := -L$(JVM_OUTPUTDIR)/libgtest, \ diff --git a/make/hotspot/lib/CompileJvm.gmk b/make/hotspot/lib/CompileJvm.gmk index 508be109092..19ab539afdb 100644 --- a/make/hotspot/lib/CompileJvm.gmk +++ b/make/hotspot/lib/CompileJvm.gmk @@ -77,14 +77,17 @@ endif ################################################################################ # Disabled warnings -DISABLED_WARNINGS_gcc := parentheses comment unknown-pragmas address \ - delete-non-virtual-dtor char-subscripts array-bounds int-in-bool-context \ - ignored-qualifiers missing-field-initializers implicit-fallthrough \ - empty-body strict-overflow sequence-point maybe-uninitialized \ - misleading-indentation cast-function-type shift-negative-value - -ifeq ($(call check-jvm-feature, zero), true) - DISABLED_WARNINGS_gcc += return-type switch clobbered +DISABLED_WARNINGS_gcc := array-bounds comment delete-non-virtual-dtor \ + empty-body ignored-qualifiers implicit-fallthrough int-in-bool-context \ + maybe-uninitialized missing-field-initializers parentheses \ + shift-negative-value unknown-pragmas + +DISABLED_WARNINGS_clang := ignored-qualifiers sometimes-uninitialized \ + missing-braces delete-non-abstract-non-virtual-dtor unknown-pragmas + +ifneq ($(DEBUG_LEVEL), release) + # Assert macro gives warning + DISABLED_WARNINGS_clang += tautological-constant-out-of-range-compare endif ifeq ($(DEBUG_LEVEL), fastdebug) @@ -94,16 +97,9 @@ ifeq ($(DEBUG_LEVEL), fastdebug) endif endif -DISABLED_WARNINGS_clang := tautological-compare \ - undefined-var-template sometimes-uninitialized unknown-pragmas \ - delete-non-virtual-dtor missing-braces char-subscripts \ - ignored-qualifiers missing-field-initializers mismatched-tags \ - shift-negative-value misleading-indentation - DISABLED_WARNINGS_xlc := tautological-compare shift-negative-value -DISABLED_WARNINGS_microsoft := 4100 4127 4146 4201 4244 4291 4351 \ - 4511 4512 4514 4624 4996 +DISABLED_WARNINGS_microsoft := 4624 4244 4291 4146 4127 ################################################################################ # Platform specific setup @@ -157,9 +153,43 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJVM, \ abstract_vm_version.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \ arguments.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \ DISABLED_WARNINGS_gcc := $(DISABLED_WARNINGS_gcc), \ + DISABLED_WARNINGS_gcc_ad_$(HOTSPOT_TARGET_CPU_ARCH).cpp := nonnull, \ + DISABLED_WARNINGS_gcc_assembler_aarch64.cpp := misleading-indentation, \ + DISABLED_WARNINGS_gcc_c1_LIR.cpp := misleading-indentation, \ + DISABLED_WARNINGS_gcc_cgroupV1Subsystem_linux.cpp := address, \ + DISABLED_WARNINGS_gcc_cgroupV2Subsystem_linux.cpp := address, \ + DISABLED_WARNINGS_gcc_dict.cpp := char-subscripts, \ + DISABLED_WARNINGS_gcc_interp_masm_x86.cpp := uninitialized, \ + DISABLED_WARNINGS_gcc_javaClasses.cpp := misleading-indentation, \ + DISABLED_WARNINGS_gcc_loopnode.cpp := sequence-point, \ + DISABLED_WARNINGS_gcc_postaloc.cpp := address, \ + DISABLED_WARNINGS_gcc_sharedRuntimeTrig.cpp := misleading-indentation, \ + DISABLED_WARNINGS_gcc_shenandoahBarrierSet.cpp := misleading-indentation, \ + DISABLED_WARNINGS_gcc_shenandoahBarrierSetAssembler_aarch64.cpp := misleading-indentation, \ + DISABLED_WARNINGS_gcc_shenandoahBarrierSetAssembler_ppc.cpp := misleading-indentation, \ + DISABLED_WARNINGS_gcc_shenandoahBarrierSetAssembler_riscv.cpp := misleading-indentation, \ + DISABLED_WARNINGS_gcc_shenandoahBarrierSetAssembler_x86.cpp := misleading-indentation, \ + DISABLED_WARNINGS_gcc_shenandoahBarrierSetC1_aarch64.cpp := misleading-indentation, \ + DISABLED_WARNINGS_gcc_shenandoahBarrierSetC1_ppc.cpp := misleading-indentation, \ + DISABLED_WARNINGS_gcc_shenandoahBarrierSetC1_riscv.cpp := misleading-indentation, \ + DISABLED_WARNINGS_gcc_shenandoahBarrierSetC1_x86.cpp := misleading-indentation, \ + DISABLED_WARNINGS_gcc_shenandoahBarrierSetC1.cpp := misleading-indentation, \ + DISABLED_WARNINGS_gcc_signals_posix.cpp := cast-function-type, \ + DISABLED_WARNINGS_gcc_templateTable.cpp := cast-function-type, \ DISABLED_WARNINGS_clang := $(DISABLED_WARNINGS_clang), \ + DISABLED_WARNINGS_clang_arguments.cpp := missing-field-initializers, \ + DISABLED_WARNINGS_clang_codeBuffer.cpp := tautological-undefined-compare, \ + DISABLED_WARNINGS_clang_dict.cpp := char-subscripts, \ + DISABLED_WARNINGS_clang_directivesParser.cpp := missing-field-initializers, \ + DISABLED_WARNINGS_clang_g1ParScanThreadState.cpp := delete-abstract-non-virtual-dtor, \ + DISABLED_WARNINGS_clang_g1YoungGCPostEvacuateTasks.cpp := delete-abstract-non-virtual-dtor, \ + DISABLED_WARNINGS_clang_management.cpp := missing-field-initializers, \ DISABLED_WARNINGS_clang_notificationThread.cpp := bitwise-instead-of-logical, \ + DISABLED_WARNINGS_clang_os_posix.cpp := mismatched-tags missing-field-initializers, \ + DISABLED_WARNINGS_clang_postaloc.cpp := tautological-undefined-compare, \ DISABLED_WARNINGS_clang_serviceThread.cpp := bitwise-instead-of-logical, \ + DISABLED_WARNINGS_clang_vm_version_x86.cpp := missing-field-initializers, \ + DISABLED_WARNINGS_clang_zTracer.cpp := undefined-var-template, \ DISABLED_WARNINGS_xlc := $(DISABLED_WARNINGS_xlc), \ DISABLED_WARNINGS_microsoft := $(DISABLED_WARNINGS_microsoft), \ ASFLAGS := $(JVM_ASFLAGS), \ diff --git a/make/hotspot/lib/JvmOverrideFiles.gmk b/make/hotspot/lib/JvmOverrideFiles.gmk index d53694fb2df..377018cdb51 100644 --- a/make/hotspot/lib/JvmOverrideFiles.gmk +++ b/make/hotspot/lib/JvmOverrideFiles.gmk @@ -33,10 +33,6 @@ ifeq ($(TOOLCHAIN_TYPE), gcc) BUILD_LIBJVM_vmStructs.cpp_CXXFLAGS := -fno-var-tracking-assignments BUILD_LIBJVM_jvmciCompilerToVM.cpp_CXXFLAGS := -fno-var-tracking-assignments BUILD_LIBJVM_jvmciCompilerToVMInit.cpp_CXXFLAGS := -fno-var-tracking-assignments - BUILD_LIBJVM_assembler_x86.cpp_CXXFLAGS := -Wno-maybe-uninitialized - BUILD_LIBJVM_cardTableBarrierSetAssembler_x86.cpp_CXXFLAGS := -Wno-maybe-uninitialized - BUILD_LIBJVM_interp_masm_x86.cpp_CXXFLAGS := -Wno-uninitialized - BUILD_LIBJVM_ad_$(HOTSPOT_TARGET_CPU_ARCH).cpp_CXXFLAGS := -Wno-nonnull ifeq ($(DEBUG_LEVEL), release) # Need extra inlining to collapse shared marking code into the hot marking loop BUILD_LIBJVM_shenandoahMark.cpp_CXXFLAGS := --param inline-unit-growth=1000 From e1b33bcab3a09bcdf16ea6bd740d4ffbf00adaab Mon Sep 17 00:00:00 2001 From: Sergey Bylokhov Date: Thu, 30 Oct 2025 17:28:20 -0700 Subject: [PATCH 2/6] get back 4996 --- make/hotspot/lib/CompileJvm.gmk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make/hotspot/lib/CompileJvm.gmk b/make/hotspot/lib/CompileJvm.gmk index 19ab539afdb..0d24434b816 100644 --- a/make/hotspot/lib/CompileJvm.gmk +++ b/make/hotspot/lib/CompileJvm.gmk @@ -99,7 +99,7 @@ endif DISABLED_WARNINGS_xlc := tautological-compare shift-negative-value -DISABLED_WARNINGS_microsoft := 4624 4244 4291 4146 4127 +DISABLED_WARNINGS_microsoft := 4624 4244 4291 4146 4127 4996 ################################################################################ # Platform specific setup From 32855c2267dd796d82893f39e82592dc68fef3c6 Mon Sep 17 00:00:00 2001 From: Sergey Bylokhov Date: Thu, 30 Oct 2025 17:50:11 -0700 Subject: [PATCH 3/6] Ignore "missing-field-initializers" in heapShared.cpp, JDK-8293182 is not in 17 --- make/hotspot/lib/CompileJvm.gmk | 1 + 1 file changed, 1 insertion(+) diff --git a/make/hotspot/lib/CompileJvm.gmk b/make/hotspot/lib/CompileJvm.gmk index 0d24434b816..bc481edd98a 100644 --- a/make/hotspot/lib/CompileJvm.gmk +++ b/make/hotspot/lib/CompileJvm.gmk @@ -183,6 +183,7 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJVM, \ DISABLED_WARNINGS_clang_directivesParser.cpp := missing-field-initializers, \ DISABLED_WARNINGS_clang_g1ParScanThreadState.cpp := delete-abstract-non-virtual-dtor, \ DISABLED_WARNINGS_clang_g1YoungGCPostEvacuateTasks.cpp := delete-abstract-non-virtual-dtor, \ + DISABLED_WARNINGS_clang_heapShared.cpp := missing-field-initializers, \ DISABLED_WARNINGS_clang_management.cpp := missing-field-initializers, \ DISABLED_WARNINGS_clang_notificationThread.cpp := bitwise-instead-of-logical, \ DISABLED_WARNINGS_clang_os_posix.cpp := mismatched-tags missing-field-initializers, \ From 9f8b0126e9c0d3f1a0e83a2fe722f3996c8dcb41 Mon Sep 17 00:00:00 2001 From: Sergey Bylokhov Date: Fri, 31 Oct 2025 11:29:25 -0700 Subject: [PATCH 4/6] Get back "strict-overflow" for ancient gcc --- make/hotspot/lib/CompileJvm.gmk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make/hotspot/lib/CompileJvm.gmk b/make/hotspot/lib/CompileJvm.gmk index bc481edd98a..136dc38b3e4 100644 --- a/make/hotspot/lib/CompileJvm.gmk +++ b/make/hotspot/lib/CompileJvm.gmk @@ -80,7 +80,7 @@ endif DISABLED_WARNINGS_gcc := array-bounds comment delete-non-virtual-dtor \ empty-body ignored-qualifiers implicit-fallthrough int-in-bool-context \ maybe-uninitialized missing-field-initializers parentheses \ - shift-negative-value unknown-pragmas + shift-negative-value unknown-pragmas strict-overflow DISABLED_WARNINGS_clang := ignored-qualifiers sometimes-uninitialized \ missing-braces delete-non-abstract-non-virtual-dtor unknown-pragmas From 4157adaf696bd48907d57708c52473f5081aa981 Mon Sep 17 00:00:00 2001 From: Sergey Bylokhov Date: Fri, 31 Oct 2025 16:05:50 -0700 Subject: [PATCH 5/6] Drop non-existent in 17u file --- make/hotspot/lib/CompileGtest.gmk | 1 - 1 file changed, 1 deletion(-) diff --git a/make/hotspot/lib/CompileGtest.gmk b/make/hotspot/lib/CompileGtest.gmk index 777d8ed1812..500c3f5b02a 100644 --- a/make/hotspot/lib/CompileGtest.gmk +++ b/make/hotspot/lib/CompileGtest.gmk @@ -103,7 +103,6 @@ $(eval $(call SetupJdkLibrary, BUILD_GTEST_LIBJVM, \ CFLAGS_macosx := -DGTEST_OS_MAC=1, \ DISABLED_WARNINGS_gcc := $(DISABLED_WARNINGS_gcc) \ undef stringop-overflow, \ - DISABLED_WARNINGS_gcc_test_signals.cpp := cast-function-type, \ DISABLED_WARNINGS_gcc_test_threadCpuLoad.cpp := address, \ DISABLED_WARNINGS_clang := $(DISABLED_WARNINGS_clang) \ undef switch format-nonliteral tautological-undefined-compare \ From d4f4fb1d2537bcaed55c05d255d9eeb95ebdd77b Mon Sep 17 00:00:00 2001 From: Sergey Bylokhov Date: Thu, 6 Nov 2025 14:10:34 -0800 Subject: [PATCH 6/6] Take care about recent integration of JDK-8294594 and JDK-8294591 --- make/hotspot/lib/CompileJvm.gmk | 2 -- 1 file changed, 2 deletions(-) diff --git a/make/hotspot/lib/CompileJvm.gmk b/make/hotspot/lib/CompileJvm.gmk index 136dc38b3e4..92a0b430c74 100644 --- a/make/hotspot/lib/CompileJvm.gmk +++ b/make/hotspot/lib/CompileJvm.gmk @@ -174,8 +174,6 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJVM, \ DISABLED_WARNINGS_gcc_shenandoahBarrierSetC1_riscv.cpp := misleading-indentation, \ DISABLED_WARNINGS_gcc_shenandoahBarrierSetC1_x86.cpp := misleading-indentation, \ DISABLED_WARNINGS_gcc_shenandoahBarrierSetC1.cpp := misleading-indentation, \ - DISABLED_WARNINGS_gcc_signals_posix.cpp := cast-function-type, \ - DISABLED_WARNINGS_gcc_templateTable.cpp := cast-function-type, \ DISABLED_WARNINGS_clang := $(DISABLED_WARNINGS_clang), \ DISABLED_WARNINGS_clang_arguments.cpp := missing-field-initializers, \ DISABLED_WARNINGS_clang_codeBuffer.cpp := tautological-undefined-compare, \