I6F8P7: fix the issues that build fails in Windows and x86 32-bit SUSE

This commit is contained in:
kuenking111 2023-02-15 14:15:16 +08:00
parent dc0b3a972c
commit 538ecbe9a2
5 changed files with 424 additions and 2 deletions

View File

@ -0,0 +1,219 @@
From 69b1d2f90f27a9158bc16d549dd0afc7a4e955a8 Mon Sep 17 00:00:00 2001
From: d30023828 <douyiwang@huawei.com>
Date: Sat, 28 Jan 2023 15:47:20 +0800
Subject: [PATCH 1/6] Add CMS's trim test cases and fix failure
DTS/AR: DTS2022120810426
Summary: <CDS> : Add CMS's trim test cases and fix failure
LLT: NA
Patch Type: huawei
Bug url: NA
---
hotspot/test/gc/TestTrimNative.java | 77 ++++++++++++++++++++++-------
1 file changed, 58 insertions(+), 19 deletions(-)
diff --git a/hotspot/test/gc/TestTrimNative.java b/hotspot/test/gc/TestTrimNative.java
index 58d540527..e0ac7734b 100644
--- a/hotspot/test/gc/TestTrimNative.java
+++ b/hotspot/test/gc/TestTrimNative.java
@@ -41,7 +41,7 @@ package gc;
/*
* @test id=fullgc-serial
* @summary Test that GCTrimNativeHeap works with Serial
- * @requires vm.gc=="Serial"
+ * @requires vm.gc=="Serial" | vm.gc == "null"
* @requires os.family=="linux"
* @modules java.base/jdk.internal.misc
* @library /testlibrary
@@ -51,17 +51,27 @@ package gc;
/*
* @test id=fullgc-parallel
* @summary Test that GCTrimNativeHeap works with Parallel
- * @requires vm.gc=="Parallel"
+ * @requires vm.gc=="Parallel" | vm.gc == "null"
* @requires os.family=="linux"
* @modules java.base/jdk.internal.misc
* @library /testlibrary
* @run driver gc.TestTrimNative test-fullgc parallel
*/
+ /*
+ * @test id=fullgc-concMarkSweep
+ * @summary Test that GCTrimNativeHeap works with concMarkSweep
+ * @requires vm.gc=="ConcMarkSweep" | vm.gc=="null"
+ * @requires os.family=="linux"
+ * @modules java.base/jdk.internal.misc
+ * @library /testlibrary
+ * @run driver gc.TestTrimNative test-fullgc concMarkSweep
+ */
+
/*
* @test id=fullgc-g1
* @summary Test that GCTrimNativeHeap works with G1
- * @requires vm.gc=="G1"
+ * @requires vm.gc=="G1" | vm.gc == "null"
* @requires os.family=="linux"
* @modules java.base/jdk.internal.misc
* @library /testlibrary
@@ -75,17 +85,27 @@ package gc;
/*
* @test id=auto-parallel
* @summary Test that GCTrimNativeHeap works with Parallel
- * @requires vm.gc=="Parallel"
+ * @requires vm.gc=="Parallel" | vm.gc == "null"
* @requires os.family=="linux"
* @modules java.base/jdk.internal.misc
* @library /testlibrary
* @run driver gc.TestTrimNative test-auto parallel
*/
+ /*
+ * @test id=auto-concMarkSweep
+ * @summary Test that GCTrimNativeHeap works with concMarkSweep
+ * @requires vm.gc=="ConcMarkSweep" | vm.gc == "null"
+ * @requires os.family=="linux"
+ * @modules java.base/jdk.internal.misc
+ * @library /testlibrary
+ * @run driver gc.TestTrimNative test-auto concMarkSweep
+ */
+
/*
* @test id=auto-g1
* @summary Test that GCTrimNativeHeap works with G1
- * @requires vm.gc=="G1"
+ * @requires vm.gc=="G1" | vm.gc == "null"
* @requires os.family=="linux"
* @modules java.base/jdk.internal.misc
* @library /testlibrary
@@ -100,17 +120,27 @@ package gc;
/*
* @test id=auto-high-interval-parallel
* @summary Test that a high GCTrimNativeHeapInterval effectively disables automatic trimming
- * @requires vm.gc=="Parallel"
+ * @requires vm.gc=="Parallel" | vm.gc == "null"
* @requires os.family=="linux"
* @modules java.base/jdk.internal.misc
* @library /testlibrary
* @run driver gc.TestTrimNative test-auto-high-interval parallel
*/
+/*
+ * @test id=auto-high-interval-concMarkSweep
+ * @summary Test that a high GCTrimNativeHeapInterval effectively disables automatic trimming
+ * @requires vm.gc=="ConcMarkSweep" | vm.gc == "null"
+ * @requires os.family=="linux"
+ * @modules java.base/jdk.internal.misc
+ * @library /testlibrary
+ * @run driver gc.TestTrimNative test-auto-high-interval concMarkSweep
+ */
+
/*
* @test id=auto-high-interval-g1
* @summary Test that a high GCTrimNativeHeapInterval effectively disables automatic trimming
- * @requires vm.gc=="G1"
+ * @requires vm.gc=="G1" | vm.gc == "null"
* @requires os.family=="linux"
* @modules java.base/jdk.internal.misc
* @library /testlibrary
@@ -124,17 +154,27 @@ package gc;
/*
* @test id=auto-zero-interval-parallel
* @summary Test that a GCTrimNativeHeapInterval=0 disables periodic trimming
- * @requires vm.gc=="Parallel"
+ * @requires vm.gc=="Parallel" | vm.gc == "null"
* @requires os.family=="linux"
* @modules java.base/jdk.internal.misc
* @library /testlibrary
* @run driver gc.TestTrimNative test-auto-zero-interval parallel
*/
+/*
+ * @test id=auto-zero-interval-concMarkSweep
+ * @summary Test that a GCTrimNativeHeapInterval=0 disables periodic trimming
+ * @requires vm.gc=="ConcMarkSweep" | vm.gc == "null"
+ * @requires os.family=="linux"
+ * @modules java.base/jdk.internal.misc
+ * @library /testlibrary
+ * @run driver gc.TestTrimNative test-auto-zero-interval concMarkSweep
+ */
+
/*
* @test id=auto-zero-interval-g1
* @summary Test that a GCTrimNativeHeapInterval=0 disables periodic trimming
- * @requires vm.gc=="G1"
+ * @requires vm.gc=="G1" | vm.gc == "null"
* @requires os.family=="linux"
* @modules java.base/jdk.internal.misc
* @library /testlibrary
@@ -196,20 +236,19 @@ public class TestTrimNative {
}
enum GC {
- serial, parallel, g1, shenandoah, z;
+ serial, parallel, g1, concMarkSweep;
String getSwitchName() {
String s = name();
return "-XX:+Use" + s.substring(0, 1).toUpperCase() + s.substring(1) + "GC";
}
- boolean isZ() { return this == GC.z; }
boolean isSerial() { return this == GC.serial; }
boolean isParallel() { return this == GC.parallel; }
boolean isG1() { return this == GC.g1; }
- boolean isShenandoah() { return this == GC.shenandoah; }
+ boolean isConcMarkSweep() { return this == GC.concMarkSweep; }
}
static private boolean usesNativeTrimmer(GC gc) {
- return gc.isG1() || gc.isParallel() || gc.isZ();
+ return gc.isG1() || gc.isParallel() || gc.isConcMarkSweep();
}
static private final OutputAnalyzer runTestWithOptions(String[] extraOptions, String[] testArgs) throws Exception {
@@ -234,7 +273,7 @@ public class TestTrimNative {
/**
* Given JVM output, look for a log line that describes a successful negative trim in the megabyte range
* like this:
- * "[2.053s][debug][gc,trim] Trim native heap (retain size: 5120K): RSS+Swap: 271M->223M (-49112K), 2.834ms"
+ * "Trim native heap (retain size: 5120K): RSS+Swap: 271M->223M (-49112K), 2.834ms"
* (Note: we use the "properXXX" print routines, therefore units can differ)
* Check that the sum of all trim log lines comes to a total RSS reduction in the MB range
* @param output
@@ -244,7 +283,7 @@ public class TestTrimNative {
private final static void parseOutputAndLookForNegativeTrim(OutputAnalyzer output, int minExpected, int maxExpected) {
output.reportDiagnosticSummary();
List<String> lines = output.asLines();
- Pattern pat = Pattern.compile(".*\\[gc,trim\\] Trim native heap.*RSS\\+Swap: (\\d+)([KMB])->(\\d+)([KMB]).*");
+ Pattern pat = Pattern.compile(".*Trim native heap.*RSS\\+Swap: (\\d+)([KMB])->(\\d+)([KMB]).*");
int numTrimsFound = 0;
long rssReductionTotal = 0;
for (String line : lines) {
@@ -270,7 +309,7 @@ public class TestTrimNative {
// This is very fuzzy. We malloced X, free'd X, trimmed, measured the combined effect of all reductions.
// This does not take into effect mallocs or frees that may happen concurrently. But we expect to see *some*
// reduction somewhere. Test with a fudge factor.
- float fudge = 0.8f;
+ float fudge = 0.25f;
long expectedMinimalReduction = (long) (totalAllocationsSize * fudge);
if (rssReductionTotal < expectedMinimalReduction) {
throw new RuntimeException("We did not see the expected RSS reduction in the UL log. Expected (with fudge)" +
@@ -293,8 +332,8 @@ public class TestTrimNative {
// started and shut down properly.
if (usesNativeTrimmer(gc)) {
output.shouldContain("NativeTrimmer started");
- output.shouldContain("NativeTrimmer paused");
- output.shouldContain("NativeTrimmer unpaused");
+ //Only debug version JDK contains this item: output.shouldContain("NativeTrimmer paused");
+ //Only debug version JDK contains this item: output.shouldContain("NativeTrimmer unpaused");
output.shouldContain("NativeTrimmer stopped");
} else {
output.shouldNotContain("NativeTrimmer");
@@ -432,4 +471,4 @@ public class TestTrimNative {
}
-}
\ No newline at end of file
+}
--
2.22.0

View File

@ -0,0 +1,47 @@
From d7ff4af3e604f4763815fde1753b38c115b23beb Mon Sep 17 00:00:00 2001
From: hedongbo <hedongbo@huawei.com>
Date: Thu, 2 Feb 2023 11:53:48 +0000
Subject: [PATCH 4/6] Disable cds on x86-32
DTS/AR: DTS2023020203620
Summary: <JDK> :Disable cds on x86-32
LLT: NA
Patch Type: huawei
Bug url: NA
---
common/autoconf/generated-configure.sh | 4 ++++
common/autoconf/jdk-options.m4 | 3 +++
2 files changed, 7 insertions(+)
diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh
index a6ba1ac93..b3a9640f1 100644
--- a/common/autoconf/generated-configure.sh
+++ b/common/autoconf/generated-configure.sh
@@ -14729,6 +14729,10 @@ $as_echo_n "checking if a default CDS archive should be generated... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no, not possible with cross compilation" >&5
$as_echo "no, not possible with cross compilation" >&6; }
BUILD_CDS_ARCHIVE="false"
+ elif test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, not possible with x32" >&5
+$as_echo "no, not possible with x32" >&6; }
+ BUILD_CDS_ARCHIVE="false"
elif test "x$enable_cds_archive" = "xyes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, forced" >&5
$as_echo "yes, forced" >&6; }
diff --git a/common/autoconf/jdk-options.m4 b/common/autoconf/jdk-options.m4
index b9f251750..e2f7dc907 100644
--- a/common/autoconf/jdk-options.m4
+++ b/common/autoconf/jdk-options.m4
@@ -814,6 +814,9 @@ AC_DEFUN_ONCE([JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE],
if test "x$COMPILE_TYPE" = "xcross"; then
AC_MSG_RESULT([no, not possible with cross compilation])
BUILD_CDS_ARCHIVE="false"
+ elif test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then
+ AC_MSG_RESULT([no, not possible with cross x32])
+ BUILD_CDS_ARCHIVE="false"
elif test "x$enable_cds_archive" = "xyes"; then
AC_MSG_RESULT([yes, forced])
BUILD_CDS_ARCHIVE="true"
--
2.22.0

View File

@ -0,0 +1,67 @@
From dd8c7151af05146c8fbc2b5d0dd94e38db6129e9 Mon Sep 17 00:00:00 2001
From: xiezhaokun <xiezhaokun@huawei.com>
Date: Thu, 2 Feb 2023 15:52:21 +0800
Subject: [PATCH 5/6] Disable no compressedOop cds on x86-32
DTS/AR: DTS2023020203620
Summary: <JDK> : Disable no compressedOop cds on x86-32
LLT: NA
Patch Type:Huawei
Bug url: NA
---
common/autoconf/generated-configure.sh | 4 ----
common/autoconf/jdk-options.m4 | 3 ---
jdk/make/BuildJdk.gmk | 4 ++++
3 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh
index b3a9640f1..a6ba1ac93 100644
--- a/common/autoconf/generated-configure.sh
+++ b/common/autoconf/generated-configure.sh
@@ -14729,10 +14729,6 @@ $as_echo_n "checking if a default CDS archive should be generated... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no, not possible with cross compilation" >&5
$as_echo "no, not possible with cross compilation" >&6; }
BUILD_CDS_ARCHIVE="false"
- elif test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, not possible with x32" >&5
-$as_echo "no, not possible with x32" >&6; }
- BUILD_CDS_ARCHIVE="false"
elif test "x$enable_cds_archive" = "xyes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, forced" >&5
$as_echo "yes, forced" >&6; }
diff --git a/common/autoconf/jdk-options.m4 b/common/autoconf/jdk-options.m4
index e2f7dc907..b9f251750 100644
--- a/common/autoconf/jdk-options.m4
+++ b/common/autoconf/jdk-options.m4
@@ -814,9 +814,6 @@ AC_DEFUN_ONCE([JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE],
if test "x$COMPILE_TYPE" = "xcross"; then
AC_MSG_RESULT([no, not possible with cross compilation])
BUILD_CDS_ARCHIVE="false"
- elif test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then
- AC_MSG_RESULT([no, not possible with cross x32])
- BUILD_CDS_ARCHIVE="false"
elif test "x$enable_cds_archive" = "xyes"; then
AC_MSG_RESULT([yes, forced])
BUILD_CDS_ARCHIVE="true"
diff --git a/jdk/make/BuildJdk.gmk b/jdk/make/BuildJdk.gmk
index 67074568d..ac87d42cd 100644
--- a/jdk/make/BuildJdk.gmk
+++ b/jdk/make/BuildJdk.gmk
@@ -106,10 +106,14 @@ images:
ifeq ($(BUILD_CDS_ARCHIVE), true)
echo Creating CDS archive for jdk image
$(JDK_IMAGE_DIR)/bin/java -Xshare:dump -Xmx128M -Xms128M -XX:ParallelGCThreads=1 -Xint $(LOG_INFO)
+ ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
$(JDK_IMAGE_DIR)/bin/java -Xshare:dump -Xmx128M -Xms128M -XX:ParallelGCThreads=1 -Xint -XX:-UseCompressedOops $(LOG_INFO)
+ endif
echo Creating CDS archive for jre image
$(JRE_IMAGE_DIR)/bin/java -Xshare:dump -Xmx128M -Xms128M -XX:ParallelGCThreads=1 -Xint $(LOG_INFO)
+ ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
$(JDK_IMAGE_DIR)/bin/java -Xshare:dump -Xmx128M -Xms128M -XX:ParallelGCThreads=1 -Xint -XX:-UseCompressedOops $(LOG_INFO)
+ endif
endif
--
2.22.0

View File

@ -0,0 +1,76 @@
From 27eea716e3d9a1a67d82ea67740f477be1e5a112 Mon Sep 17 00:00:00 2001
From: liuyulong <liuyulong35@huawei.com>
Date: Wed, 1 Feb 2023 16:23:44 +0800
Subject: [PATCH 3/6] fix SUSE x86_32 build failure
DTS/AR: DTS2023013108238
Summary: <hotspot>: fix SUSE x86_32 build failure
LLT: NA
Patch Type: huawei
Bug url: NA
---
hotspot/src/share/vm/utilities/elfFile.hpp | 41 +++++++++++-----------
1 file changed, 20 insertions(+), 21 deletions(-)
diff --git a/hotspot/src/share/vm/utilities/elfFile.hpp b/hotspot/src/share/vm/utilities/elfFile.hpp
index 3277a40e0..1419d7c63 100644
--- a/hotspot/src/share/vm/utilities/elfFile.hpp
+++ b/hotspot/src/share/vm/utilities/elfFile.hpp
@@ -36,27 +36,6 @@
#ifdef _LP64
-#ifdef ASSERT
-// Helper macros to print different log levels during DWARF parsing
-#define DWARF_LOG_SUMMARY(format, ...) DWARF_LOG_WITH_LEVEL(1, format, ##__VA_ARGS__) // Same level as error logging
-#define DWARF_LOG_ERROR(format, ...) DWARF_LOG_WITH_LEVEL(1, format, ##__VA_ARGS__)
-#define DWARF_LOG_INFO(format, ...) DWARF_LOG_WITH_LEVEL(2, format, ##__VA_ARGS__)
-#define DWARF_LOG_DEBUG(format, ...) DWARF_LOG_WITH_LEVEL(3, format, ##__VA_ARGS__)
-#define DWARF_LOG_TRACE(format, ...) DWARF_LOG_WITH_LEVEL(4, format, ##__VA_ARGS__)
-
-#define DWARF_LOG_WITH_LEVEL(level, format, ...) \
- if (TraceDwarfLevel >= level) { \
- tty->print("[dwarf] "); \
- tty->print_cr(format, ##__VA_ARGS__); \
- }
-#else
-#define DWARF_LOG_SUMMARY(format, ...)
-#define DWARF_LOG_ERROR(format, ...)
-#define DWARF_LOG_INFO(format, ...)
-#define DWARF_LOG_DEBUG(format, ...)
-#define DWARF_LOG_TRACE(format, ...)
-#endif
-
typedef Elf64_Half Elf_Half;
typedef Elf64_Word Elf_Word;
typedef Elf64_Off Elf_Off;
@@ -93,6 +72,26 @@ typedef Elf32_Sym Elf_Sym;
#include "memory/allocation.hpp"
#include "utilities/decoder.hpp"
+#ifdef ASSERT
+// Helper macros to print different log levels during DWARF parsing
+#define DWARF_LOG_SUMMARY(format, ...) DWARF_LOG_WITH_LEVEL(1, format, ##__VA_ARGS__) // Same level as error logging
+#define DWARF_LOG_ERROR(format, ...) DWARF_LOG_WITH_LEVEL(1, format, ##__VA_ARGS__)
+#define DWARF_LOG_INFO(format, ...) DWARF_LOG_WITH_LEVEL(2, format, ##__VA_ARGS__)
+#define DWARF_LOG_DEBUG(format, ...) DWARF_LOG_WITH_LEVEL(3, format, ##__VA_ARGS__)
+#define DWARF_LOG_TRACE(format, ...) DWARF_LOG_WITH_LEVEL(4, format, ##__VA_ARGS__)
+
+#define DWARF_LOG_WITH_LEVEL(level, format, ...) \
+ if (TraceDwarfLevel >= level) { \
+ tty->print("[dwarf] "); \
+ tty->print_cr(format, ##__VA_ARGS__); \
+ }
+#else
+#define DWARF_LOG_SUMMARY(format, ...)
+#define DWARF_LOG_ERROR(format, ...)
+#define DWARF_LOG_INFO(format, ...)
+#define DWARF_LOG_DEBUG(format, ...)
+#define DWARF_LOG_TRACE(format, ...)
+#endif
class ElfStringTable;
class ElfSymbolTable;
--
2.22.0

View File

@ -916,7 +916,7 @@ Provides: java-%{javaver}-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{r
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
Release: 1
Release: 2
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@ -1180,7 +1180,10 @@ Patch295: Fix-AsyncGCLog-s-content-consistent-bug.patch
# 8u362
Patch296: 8178968-AArch64-Remove-non-standard-code-cache-size.patch
Patch297: 8185736-missing-default-exception-handler-in-calls-t.patch
Patch298: Add-CMS-s-trim-test-cases-and-fix-failure.patch
Patch299: Disable-cds-on-x86-32.patch
Patch300: Disable-no-compressedOop-cds-on-x86-32.patch
Patch301: fix-SUSE-x86_32-build-failure.patch
#############################################
#
@ -1699,6 +1702,10 @@ pushd %{top_level_dir_name}
%patch295 -p1
%patch296 -p1
%patch297 -p1
%patch298 -p1
%patch299 -p1
%patch300 -p1
%patch301 -p1
popd
# System library fixes
@ -2323,6 +2330,12 @@ cjc.mainProgram(arg)
%endif
%changelog
* Wed Feb 15 2023 kuenking111<wangkun49@huawei.com> - 1:1.8.0.362-b09.2
- add Add-CMS-s-trim-test-cases-and-fix-failure.patch
- add Disable-cds-on-x86-32.patch
- add Disable-no-compressedOop-cds-on-x86-32.patch
- add fix-SUSE-x86_32-build-failure.patch
* Mon Jan 30 2023 kuenking111<wangkun49@huawei.com> - 1:1.8.0.362-b09.1
- add 8178968-AArch64-Remove-non-standard-code-cache-size.patch
- add 8185736-missing-default-exception-handler-in-calls-t.patch