From f719c7eaa4eb0b227f631192d121c3db702ac4a5 Mon Sep 17 00:00:00 2001 From: kuenking111 Date: Fri, 10 Dec 2021 09:52:21 +0800 Subject: [PATCH 1/5] I4LWGD: Default timezone should return zone ID if /etc/localtime is valid but not canonicalization on linux --- ...id-but-not-canonicalization-on-linux.patch | 480 ++++++++++++++++++ openjdk-11.spec | 7 +- 2 files changed, 486 insertions(+), 1 deletion(-) create mode 100755 8273111-Default-timezone-should-return-zone-ID-if-locatiome-is-valid-but-not-canonicalization-on-linux.patch diff --git a/8273111-Default-timezone-should-return-zone-ID-if-locatiome-is-valid-but-not-canonicalization-on-linux.patch b/8273111-Default-timezone-should-return-zone-ID-if-locatiome-is-valid-but-not-canonicalization-on-linux.patch new file mode 100755 index 0000000..018b14f --- /dev/null +++ b/8273111-Default-timezone-should-return-zone-ID-if-locatiome-is-valid-but-not-canonicalization-on-linux.patch @@ -0,0 +1,480 @@ +From 4c530e8289ebf6ef84f7b17737da82ef4b9d38be Mon Sep 17 00:00:00 2001 +From: s00478819 +Date: Mon, 25 Oct 2021 17:11:19 +0800 +Subject: [PATCH 1/3] 8273111: Default timezone should return zone ID if + /etc/localtime is valid but not canonicalization on linux + +--- + .../unix/native/libjava/TimeZone_md.c | 61 +++---- + .../unix/native/libjava/canonicalize_md.c | 146 +-------------- + src/java.base/unix/native/libjava/path_util.c | 166 ++++++++++++++++++ + src/java.base/unix/native/libjava/path_util.h | 31 ++++ + 4 files changed, 230 insertions(+), 174 deletions(-) + create mode 100644 src/java.base/unix/native/libjava/path_util.c + create mode 100644 src/java.base/unix/native/libjava/path_util.h + +diff --git a/src/java.base/unix/native/libjava/TimeZone_md.c b/src/java.base/unix/native/libjava/TimeZone_md.c +index 0780c3601..7eb22f186 100644 +--- a/src/java.base/unix/native/libjava/TimeZone_md.c ++++ b/src/java.base/unix/native/libjava/TimeZone_md.c +@@ -41,6 +41,7 @@ + + #include "jvm.h" + #include "TimeZone_md.h" ++#include "path_util.h" + + static char *isFileIdentical(char* buf, size_t size, char *pathname); + +@@ -83,6 +84,33 @@ static const char *ETC_ENVIRONMENT_FILE = "/etc/environment"; + + #if defined(__linux__) || defined(MACOSX) || defined(__solaris__) + ++/* ++ * remove repeated path separators ('/') in the given 'path'. ++ */ ++static void ++removeDuplicateSlashes(char *path) ++{ ++ char *left = path; ++ char *right = path; ++ char *end = path + strlen(path); ++ ++ for (; right < end; right++) { ++ // Skip sequence of multiple path-separators. ++ while (*right == '/' && *(right + 1) == '/') { ++ right++; ++ } ++ ++ while (*right != '\0' && !(*right == '/' && *(right + 1) == '/')) { ++ *left++ = *right++; ++ } ++ ++ if (*right == '\0') { ++ *left = '\0'; ++ break; ++ } ++ } ++} ++ + /* + * Returns a pointer to the zone ID portion of the given zoneinfo file + * name, or NULL if the given string doesn't contain "zoneinfo/". +@@ -312,36 +340,9 @@ getPlatformTimeZoneID() + return NULL; + } + linkbuf[len] = '\0'; +- +- /* linkbuf may be a relative symlink or has more than one characters, like '.' and '/' , +- * which will cause the function call getZoneName return to an abnormal timeZone name. +- * For example, linkbuf is "../usr/share/zoneinfo//Asia/Shanghai", then the call of +- * getZoneName(linkbuf) will get "/Asia/Shanghai", not "Asia/Shanghai". +- * So we covert it to an absolute path by adding the file's (which is define by macro +- * DEFAULT_ZONEINFO_FILE) dirname and then call glibc's realpath API to canonicalize +- * the path. +- */ +- char abslinkbuf[2 * (PATH_MAX + 1)]; +- if (linkbuf[0] != '/') { +- if (sprintf(abslinkbuf, "%s/%s", DEFAULT_ZONEINFO_FILE_DIRNAME, linkbuf) < 0) { +- jio_fprintf(stderr, (const char *) "failed to generate absolute path\n"); +- return NULL; +- } +- } else { +- strncpy(abslinkbuf, linkbuf, len + 1); +- } +- +- /* canonicalize the path */ +- char resolvedpath[PATH_MAX + 1]; +- resolvedpath[PATH_MAX] = '\0'; +- char *path = realpath(abslinkbuf, resolvedpath); +- if (path == NULL) { +- jio_fprintf(stderr, (const char *) "failed to get real path, symlink is %s\n", +- abslinkbuf); +- return NULL; +- } +- +- tz = getZoneName(resolvedpath); ++ removeDuplicateSlashes(linkbuf); ++ collapse(linkbuf); ++ tz = getZoneName(linkbuf); + if (tz != NULL) { + tz = strdup(tz); + return tz; +diff --git a/src/java.base/unix/native/libjava/canonicalize_md.c b/src/java.base/unix/native/libjava/canonicalize_md.c +index cb8ce69c8..d0e29b3eb 100644 +--- a/src/java.base/unix/native/libjava/canonicalize_md.c ++++ b/src/java.base/unix/native/libjava/canonicalize_md.c +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1994, 2019, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1994, 2021, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -33,154 +33,12 @@ + #include + #include + #include +-#if !defined(_ALLBSD_SOURCE) +-#include +-#endif ++#include "path_util.h" + + + /* Note: The comments in this file use the terminology + defined in the java.io.File class */ + +- +-/* Check the given name sequence to see if it can be further collapsed. +- Return zero if not, otherwise return the number of names in the sequence. */ +- +-static int +-collapsible(char *names) +-{ +- char *p = names; +- int dots = 0, n = 0; +- +- while (*p) { +- if ((p[0] == '.') && ((p[1] == '\0') +- || (p[1] == '/') +- || ((p[1] == '.') && ((p[2] == '\0') +- || (p[2] == '/'))))) { +- dots = 1; +- } +- n++; +- while (*p) { +- if (*p == '/') { +- p++; +- break; +- } +- p++; +- } +- } +- return (dots ? n : 0); +-} +- +- +-/* Split the names in the given name sequence, +- replacing slashes with nulls and filling in the given index array */ +- +-static void +-splitNames(char *names, char **ix) +-{ +- char *p = names; +- int i = 0; +- +- while (*p) { +- ix[i++] = p++; +- while (*p) { +- if (*p == '/') { +- *p++ = '\0'; +- break; +- } +- p++; +- } +- } +-} +- +- +-/* Join the names in the given name sequence, ignoring names whose index +- entries have been cleared and replacing nulls with slashes as needed */ +- +-static void +-joinNames(char *names, int nc, char **ix) +-{ +- int i; +- char *p; +- +- for (i = 0, p = names; i < nc; i++) { +- if (!ix[i]) continue; +- if (i > 0) { +- p[-1] = '/'; +- } +- if (p == ix[i]) { +- p += strlen(p) + 1; +- } else { +- char *q = ix[i]; +- while ((*p++ = *q++)); +- } +- } +- *p = '\0'; +-} +- +- +-/* Collapse "." and ".." names in the given path wherever possible. +- A "." name may always be eliminated; a ".." name may be eliminated if it +- follows a name that is neither "." nor "..". This is a syntactic operation +- that performs no filesystem queries, so it should only be used to cleanup +- after invoking the realpath() procedure. */ +- +-static void +-collapse(char *path) +-{ +- char *names = (path[0] == '/') ? path + 1 : path; /* Preserve first '/' */ +- int nc; +- char **ix; +- int i, j; +- char *p, *q; +- +- nc = collapsible(names); +- if (nc < 2) return; /* Nothing to do */ +- ix = (char **)alloca(nc * sizeof(char *)); +- splitNames(names, ix); +- +- for (i = 0; i < nc; i++) { +- int dots = 0; +- +- /* Find next occurrence of "." or ".." */ +- do { +- char *p = ix[i]; +- if (p[0] == '.') { +- if (p[1] == '\0') { +- dots = 1; +- break; +- } +- if ((p[1] == '.') && (p[2] == '\0')) { +- dots = 2; +- break; +- } +- } +- i++; +- } while (i < nc); +- if (i >= nc) break; +- +- /* At this point i is the index of either a "." or a "..", so take the +- appropriate action and then continue the outer loop */ +- if (dots == 1) { +- /* Remove this instance of "." */ +- ix[i] = 0; +- } +- else { +- /* If there is a preceding name, remove both that name and this +- instance of ".."; otherwise, leave the ".." as is */ +- for (j = i - 1; j >= 0; j--) { +- if (ix[j]) break; +- } +- if (j < 0) continue; +- ix[j] = 0; +- ix[i] = 0; +- } +- /* i will be incremented at the top of the loop */ +- } +- +- joinNames(names, nc, ix); +-} +- +- + /* Convert a pathname to canonical form. The input path is assumed to contain + no duplicate slashes. On Solaris we can use realpath() to do most of the + work, though once that's done we still must collapse any remaining "." and +diff --git a/src/java.base/unix/native/libjava/path_util.c b/src/java.base/unix/native/libjava/path_util.c +new file mode 100644 +index 000000000..8a533f812 +--- /dev/null ++++ b/src/java.base/unix/native/libjava/path_util.c +@@ -0,0 +1,166 @@ ++/* ++ * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++#include ++#include ++#if !defined(_ALLBSD_SOURCE) ++#include ++#endif ++#include "path_util.h" ++ ++/* Check the given name sequence to see if it can be further collapsed. ++ Return zero if not, otherwise return the number of names in the sequence. */ ++ ++static int ++collapsible(char *names) ++{ ++ char *p = names; ++ int dots = 0, n = 0; ++ ++ while (*p) { ++ if ((p[0] == '.') && ((p[1] == '\0') ++ || (p[1] == '/') ++ || ((p[1] == '.') && ((p[2] == '\0') ++ || (p[2] == '/'))))) { ++ dots = 1; ++ } ++ n++; ++ while (*p) { ++ if (*p == '/') { ++ p++; ++ break; ++ } ++ p++; ++ } ++ } ++ return (dots ? n : 0); ++} ++ ++/* Split the names in the given name sequence, ++ replacing slashes with nulls and filling in the given index array */ ++ ++static void ++splitNames(char *names, char **ix) ++{ ++ char *p = names; ++ int i = 0; ++ ++ while (*p) { ++ ix[i++] = p++; ++ while (*p) { ++ if (*p == '/') { ++ *p++ = '\0'; ++ break; ++ } ++ p++; ++ } ++ } ++} ++ ++/* Join the names in the given name sequence, ignoring names whose index ++ entries have been cleared and replacing nulls with slashes as needed */ ++ ++static void ++joinNames(char *names, int nc, char **ix) ++{ ++ int i; ++ char *p; ++ ++ for (i = 0, p = names; i < nc; i++) { ++ if (!ix[i]) continue; ++ if (i > 0) { ++ p[-1] = '/'; ++ } ++ if (p == ix[i]) { ++ p += strlen(p) + 1; ++ } else { ++ char *q = ix[i]; ++ while ((*p++ = *q++)); ++ } ++ } ++ *p = '\0'; ++} ++ ++/* Collapse "." and ".." names in the given path wherever possible. ++ A "." name may always be eliminated; a ".." name may be eliminated if it ++ follows a name that is neither "." nor "..". This is a syntactic operation ++ that performs no filesystem queries, so it should only be used to cleanup ++ after invoking the realpath() procedure. */ ++ ++void ++collapse(char *path) ++{ ++ char *names = (path[0] == '/') ? path + 1 : path; /* Preserve first '/' */ ++ int nc; ++ char **ix; ++ int i, j; ++ char *p, *q; ++ ++ nc = collapsible(names); ++ if (nc < 2) return; /* Nothing to do */ ++ ix = (char **)alloca(nc * sizeof(char *)); ++ splitNames(names, ix); ++ ++ for (i = 0; i < nc; i++) { ++ int dots = 0; ++ ++ /* Find next occurrence of "." or ".." */ ++ do { ++ char *p = ix[i]; ++ if (p[0] == '.') { ++ if (p[1] == '\0') { ++ dots = 1; ++ break; ++ } ++ if ((p[1] == '.') && (p[2] == '\0')) { ++ dots = 2; ++ break; ++ } ++ } ++ i++; ++ } while (i < nc); ++ if (i >= nc) break; ++ ++ /* At this point i is the index of either a "." or a "..", so take the ++ appropriate action and then continue the outer loop */ ++ if (dots == 1) { ++ /* Remove this instance of "." */ ++ ix[i] = 0; ++ } ++ else { ++ /* If there is a preceding name, remove both that name and this ++ instance of ".."; otherwise, leave the ".." as is */ ++ for (j = i - 1; j >= 0; j--) { ++ if (ix[j]) break; ++ } ++ if (j < 0) continue; ++ ix[j] = 0; ++ ix[i] = 0; ++ } ++ /* i will be incremented at the top of the loop */ ++ } ++ ++ joinNames(names, nc, ix); ++} +diff --git a/src/java.base/unix/native/libjava/path_util.h b/src/java.base/unix/native/libjava/path_util.h +new file mode 100644 +index 000000000..7b0fd5eb1 +--- /dev/null ++++ b/src/java.base/unix/native/libjava/path_util.h +@@ -0,0 +1,31 @@ ++/* ++ * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++#ifndef PATH_UTIL_H ++#define PATH_UTIL_H ++ ++void collapse(char *path); ++ ++#endif +-- +2.22.0 + diff --git a/openjdk-11.spec b/openjdk-11.spec index d9a47a5..969a4b9 100644 --- a/openjdk-11.spec +++ b/openjdk-11.spec @@ -740,7 +740,7 @@ Provides: java-src%{?1} = %{epoch}:%{version}-%{release} Name: java-%{javaver}-%{origin} Version: %{newjavaver}.%{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 @@ -863,6 +863,7 @@ Patch80: Add-KAE-implementation.patch Patch82: PS-introduce-UsePSRelaxedForwardee-to-enable-using-r.patch # 11.0.13 +Patch83: 8273111-Default-timezone-should-return-zone-ID-if-locatiome-is-valid-but-not-canonicalization-on-linux.patch BuildRequires: autoconf BuildRequires: alsa-lib-devel @@ -1143,6 +1144,7 @@ pushd %{top_level_dir_name} %patch79 -p1 %patch80 -p1 %patch82 -p1 +%patch83 -p1 popd # openjdk # %patch1000 @@ -1645,6 +1647,9 @@ require "copy_jdk_configs.lua" %changelog +* Fri Dec 10 2021 kuenking111 - 1:11.0.13.7-2 +- add 8273111-Default-timezone-should-return-zone-ID-if-locatiome-is-valid-but-not-canonicalization-on-linux.patch + * Fri Dec 3 2021 kuenking111 - 1:11.0.13.7-1 - correct spec file release number typo -- Gitee From 83394ce6a66c8e4a5530d7b9d9b29b650267edaa Mon Sep 17 00:00:00 2001 From: kuenking111 Date: Fri, 10 Dec 2021 11:13:17 +0800 Subject: [PATCH 2/5] I4LXDN: fix memcpy compile warning when building on linux x86 --- ...e-warning-when-building-on-linux-x86.patch | 550 ++++++++++++++++++ openjdk-11.spec | 7 +- 2 files changed, 556 insertions(+), 1 deletion(-) create mode 100755 fix-memcpy-compile-warning-when-building-on-linux-x86.patch diff --git a/fix-memcpy-compile-warning-when-building-on-linux-x86.patch b/fix-memcpy-compile-warning-when-building-on-linux-x86.patch new file mode 100755 index 0000000..f3a962a --- /dev/null +++ b/fix-memcpy-compile-warning-when-building-on-linux-x86.patch @@ -0,0 +1,550 @@ +From 7a3481adb5e52f1fadb6c8a1e16093d9c1082868 Mon Sep 17 00:00:00 2001 +From: s00478819 +Date: Thu, 28 Oct 2021 11:54:21 +0800 +Subject: [PATCH 2/3] fix memcpy compile warning when building on linux x86 + +--- + make/hotspot/lib/CompileJvm.gmk | 7 +++++++ + make/launcher/Launcher-java.base.gmk | 9 ++------- + make/launcher/Launcher-jdk.pack.gmk | 7 +------ + make/lib/Awt2dLibraries.gmk | 17 ++++++++--------- + make/lib/CoreLibraries.gmk | 17 ++++++----------- + make/lib/Lib-java.base.gmk | 7 +------ + make/lib/Lib-java.desktop.gmk | 7 +------ + make/lib/Lib-java.instrument.gmk | 7 +------ + make/lib/Lib-jdk.crypto.cryptoki.gmk | 7 +------ + make/lib/Lib-jdk.crypto.ec.gmk | 7 +------ + make/lib/Lib-jdk.crypto.kaeprovider.gmk | 7 +------ + make/lib/Lib-jdk.hotspot.agent.gmk | 7 +------ + make/lib/Lib-jdk.jdwp.agent.gmk | 7 +------ + make/lib/Lib-jdk.pack.gmk | 7 +------ + make/lib/Lib-jdk.sctp.gmk | 7 +------ + src/hotspot/share/runtime/memcpy.cpp | 2 +- + 16 files changed, 35 insertions(+), 94 deletions(-) + +diff --git a/make/hotspot/lib/CompileJvm.gmk b/make/hotspot/lib/CompileJvm.gmk +index 594254014..fdb228c3f 100644 +--- a/make/hotspot/lib/CompileJvm.gmk ++++ b/make/hotspot/lib/CompileJvm.gmk +@@ -179,6 +179,13 @@ $(eval $(call SetupNativeCompilation, BUILD_LIBJVM, \ + PRECOMPILED_HEADER_EXCLUDE := $(JVM_PRECOMPILED_HEADER_EXCLUDE), \ + )) + ++MEMCPY_OBJECT_FILE := $(JVM_OUTPUTDIR)/objs/memcpy$(OBJ_SUFFIX) ++$(eval $(call SetupCopyFiles, COPY_MEMCPY_OBJECT_FILE, \ ++ DEST := $(SUPPORT_OUTPUTDIR), \ ++ FILES :=$(MEMCPY_OBJECT_FILE), \ ++)) ++TARGETS += $(COPY_MEMCPY_OBJECT_FILE) ++ + # Always recompile abstract_vm_version.cpp if libjvm needs to be relinked. This ensures + # that the internal vm version is updated as it relies on __DATE__ and __TIME__ + # macros. +diff --git a/make/launcher/Launcher-java.base.gmk b/make/launcher/Launcher-java.base.gmk +index d511c0be5..e7f6b04d8 100644 +--- a/make/launcher/Launcher-java.base.gmk ++++ b/make/launcher/Launcher-java.base.gmk +@@ -30,11 +30,6 @@ $(eval $(call IncludeCustomExtension, launcher/Launcher-java.base.gmk)) + JAVA_RC_FLAGS += -I$(TOPDIR)/src/java.base/windows/native/common + JAVA_RC_FLAGS += -I$(TOPDIR)/src/java.base/windows/native/launcher/icons + +-LIBMEMCPY_FILES += \ +- $(addprefix $(TOPDIR)/src/hotspot/share/runtime/, \ +- memcpy.cpp \ +- ) +- + ################################################################################ + + $(eval $(call SetupBuildLauncher, java, \ +@@ -84,10 +79,10 @@ ifneq ($(findstring $(OPENJDK_TARGET_OS), macosx solaris aix linux), ) + $(eval $(call SetupJdkExecutable, BUILD_JSPAWNHELPER, \ + NAME := jspawnhelper, \ + SRC := $(TOPDIR)/src/$(MODULE)/unix/native/jspawnhelper, \ +- EXTRA_FILES := $(LIBMEMCPY_FILES), \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKEXE) -I$(TOPDIR)/src/$(MODULE)/unix/native/libjava, \ +- EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjava/childproc.o, \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjava/childproc.o \ ++ $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + LDFLAGS := $(LDFLAGS_JDKEXE), \ + OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \ + )) +diff --git a/make/launcher/Launcher-jdk.pack.gmk b/make/launcher/Launcher-jdk.pack.gmk +index 2e0bc7a5b..0f4b47174 100644 +--- a/make/launcher/Launcher-jdk.pack.gmk ++++ b/make/launcher/Launcher-jdk.pack.gmk +@@ -30,11 +30,6 @@ $(eval $(call SetupBuildLauncher, pack200, \ + MAIN_CLASS := com.sun.java.util.jar.pack.Driver, \ + )) + +-LIBMEMCPY_FILES += \ +- $(addprefix $(TOPDIR)/src/hotspot/share/runtime/, \ +- memcpy.cpp \ +- ) +- + ################################################################################ + # The order of the object files on the link command line affects the size of the resulting + # binary (at least on linux) which causes the size to differ between old and new build. +@@ -86,7 +81,6 @@ $(eval $(call SetupJdkExecutable, BUILD_UNPACKEXE, \ + SRC := $(UNPACKEXE_SRC), \ + TOOLCHAIN := TOOLCHAIN_LINK_CXX, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(LIBMEMCPY_FILES), \ + CFLAGS := $(UNPACKEXE_CFLAGS) $(CXXFLAGS_JDKEXE) -DFULL, \ + CFLAGS_release := -DPRODUCT, \ + CFLAGS_linux := -fPIC, \ +@@ -99,6 +93,7 @@ $(eval $(call SetupJdkExecutable, BUILD_UNPACKEXE, \ + MANIFEST := $(TOPDIR)/src/jdk.pack/windows/native/unpack200/unpack200_proto.exe.manifest, \ + MANIFEST_VERSION := $(VERSION_NUMBER_FOUR_POSITIONS), \ + EXTRA_OBJECT_FILES := $(UNPACKEXE_ZIPOBJS) \ ++ $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX) \ + )) + + TARGETS += $(BUILD_UNPACKEXE) +diff --git a/make/lib/Awt2dLibraries.gmk b/make/lib/Awt2dLibraries.gmk +index ff4dead2a..f66cd6617 100644 +--- a/make/lib/Awt2dLibraries.gmk ++++ b/make/lib/Awt2dLibraries.gmk +@@ -35,11 +35,6 @@ LIBAWT_DEFAULT_HEADER_DIRS := \ + libawt/java2d/pipe \ + # + +-LIBMEMCPY_FILES += \ +- $(addprefix $(TOPDIR)/src/hotspot/share/runtime/, \ +- memcpy.cpp \ +- ) +- + ################################################################################ + + # We must not include java.desktop/unix/native/libmlib_image, which is only +@@ -55,8 +50,8 @@ endif + $(eval $(call SetupJdkLibrary, BUILD_LIBMLIB_IMAGE, \ + NAME := mlib_image, \ + EXTRA_SRC := common/awt/medialib, \ +- EXTRA_FILES := $(LIBMEMCPY_FILES), \ + EXCLUDE_FILES := mlib_c_ImageBlendTable.c, \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + EXCLUDE_SRC_PATTERNS := $(BUILD_LIBMLIB_EXCLUDE_SRC_PATTERNS), \ + OPTIMIZATION := HIGHEST, \ + CFLAGS := $(CFLAGS_JDKLIB) \ +@@ -225,12 +220,12 @@ endif + $(eval $(call SetupJdkLibrary, BUILD_LIBAWT, \ + NAME := awt, \ + EXTRA_SRC := $(LIBAWT_EXTRA_SRC), \ +- EXTRA_FILES := $(LIBMEMCPY_FILES), \ + EXCLUDES := $(LIBAWT_EXCLUDES), \ + EXCLUDE_FILES := $(LIBAWT_EXFILES), \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_CFLAGS), \ + EXTRA_HEADER_DIRS := $(LIBAWT_EXTRA_HEADER_DIRS), \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + DISABLED_WARNINGS_gcc := sign-compare unused-result maybe-uninitialized \ + format-nonliteral parentheses, \ + DISABLED_WARNINGS_clang := logical-op-parentheses extern-initializer, \ +@@ -334,6 +329,7 @@ ifeq ($(findstring $(OPENJDK_TARGET_OS), windows macosx), ) + EXTRA_SRC := $(LIBAWT_XAWT_EXTRA_SRC), \ + EXTRA_HEADER_DIRS := $(LIBAWT_XAWT_EXTRA_HEADER_DIRS), \ + EXCLUDES := $(LIBAWT_XAWT_EXCLUDES), \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_XAWT_CFLAGS) \ + $(X_CFLAGS), \ +@@ -396,6 +392,7 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBLCMS, \ + common/awt/debug \ + libawt/java2d, \ + HEADERS_FROM_SRC := $(LIBLCMS_HEADERS_FROM_SRC), \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + DISABLED_WARNINGS_gcc := format-nonliteral type-limits misleading-indentation stringop-truncation, \ + DISABLED_WARNINGS_clang := tautological-compare, \ + DISABLED_WARNINGS_solstudio := E_STATEMENT_NOT_REACHED, \ +@@ -437,7 +434,7 @@ endif + $(eval $(call SetupJdkLibrary, BUILD_LIBJAVAJPEG, \ + NAME := javajpeg, \ + INCLUDE_FILES := $(BUILD_LIBJAVAJPEG_INCLUDE_FILES), \ +- EXTRA_FILES := $(LIBMEMCPY_FILES), \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + OPTIMIZATION := HIGHEST, \ + CFLAGS := $(CFLAGS_JDKLIB), \ + HEADERS_FROM_SRC := $(LIBJPEG_HEADERS_FROM_SRC), \ +@@ -528,6 +525,7 @@ else + OPTIMIZATION := HIGHEST, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(BUILD_LIBFREETYPE_CFLAGS), \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + EXTRA_HEADER_DIRS := $(BUILD_LIBFREETYPE_HEADER_DIRS), \ + DISABLED_WARNINGS_solstudio := \ + E_STATEMENT_NOT_REACHED \ +@@ -642,6 +640,7 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \ + OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \ + CFLAGS_windows = -DCC_NOEX, \ + EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + EXTRA_SRC := $(LIBFONTMANAGER_EXTRA_SRC), \ + WARNINGS_AS_ERRORS_xlc := false, \ + DISABLED_WARNINGS_gcc := sign-compare unused-function int-to-pointer-cast $(HARFBUZZ_DISABLED_WARNINGS_gcc), \ +@@ -867,10 +866,10 @@ ifeq ($(ENABLE_HEADLESS_ONLY), false) + NAME := splashscreen, \ + EXTRA_SRC := $(LIBSPLASHSCREEN_EXTRA_SRC), \ + EXCLUDE_SRC_PATTERNS := $(LIBSPLASHSCREEN_EXCLUDE_SRC_PATTERNS), \ +- EXTRA_FILES := $(LIBMEMCPY_FILES), \ + EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \ + EXCLUDES := $(LIBSPLASHSCREEN_EXCLUDES), \ + OPTIMIZATION := LOW, \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + CFLAGS := $(CFLAGS_JDKLIB) $(LIBSPLASHSCREEN_CFLAGS) \ + $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS) $(LIBZ_CFLAGS), \ + EXTRA_HEADER_DIRS := $(LIBSPLASHSCREEN_HEADER_DIRS), \ +diff --git a/make/lib/CoreLibraries.gmk b/make/lib/CoreLibraries.gmk +index f180a28c3..2f2f46240 100644 +--- a/make/lib/CoreLibraries.gmk ++++ b/make/lib/CoreLibraries.gmk +@@ -28,11 +28,6 @@ WIN_VERIFY_LIB := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libverify/verify.lib + # Hook to include the corresponding custom file, if present. + $(eval $(call IncludeCustomExtension, lib/CoreLibraries.gmk)) + +-LIBMEMCPY_FILES += \ +- $(addprefix $(TOPDIR)/src/hotspot/share/runtime/, \ +- memcpy.cpp \ +- ) +- + + ########################################################################################## + # libfdlibm is statically linked with libjava below and not delivered into the +@@ -80,8 +75,8 @@ endif + + $(eval $(call SetupJdkLibrary, BUILD_LIBVERIFY, \ + NAME := verify, \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \ +- EXTRA_FILES := $(LIBMEMCPY_FILES), \ + CFLAGS := $(CFLAGS_JDKLIB), \ + DISABLED_WARNINGS_gcc := implicit-fallthrough, \ + DISABLED_WARNINGS_microsoft := 4244 4267, \ +@@ -102,16 +97,15 @@ ifeq ($(OPENJDK_TARGET_OS), macosx) + BUILD_LIBJAVA_java_props_macosx.c_CFLAGS := -x objective-c + endif + +- + $(eval $(call SetupJdkLibrary, BUILD_LIBJAVA, \ + NAME := java, \ + OPTIMIZATION := HIGH, \ +- EXTRA_FILES := $(LIBMEMCPY_FILES), \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(LIBJAVA_CFLAGS), \ + System.c_CFLAGS := $(VERSION_CFLAGS), \ + jdk_util.c_CFLAGS := $(VERSION_CFLAGS), \ + EXTRA_HEADER_DIRS := libfdlibm, \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + WARNINGS_AS_ERRORS_xlc := false, \ + DISABLED_WARNINGS_gcc := unused-result, \ + DISABLED_WARNINGS_solstudio := E_STATEMENT_NOT_REACHED, \ +@@ -152,8 +146,8 @@ endif + $(eval $(call SetupJdkLibrary, BUILD_LIBZIP, \ + NAME := zip, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(LIBMEMCPY_FILES), \ + EXCLUDES := $(LIBZIP_EXCLUDES), \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(LIBZ_CFLAGS), \ + CFLAGS_unix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \ +@@ -173,8 +167,8 @@ TARGETS += $(BUILD_LIBZIP) + $(eval $(call SetupJdkLibrary, BUILD_LIBJIMAGE, \ + NAME := jimage, \ + TOOLCHAIN := TOOLCHAIN_LINK_CXX, \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(LIBMEMCPY_FILES), \ + CFLAGS := $(CFLAGS_JDKLIB), \ + CXXFLAGS := $(CXXFLAGS_JDKLIB), \ + CFLAGS_unix := -UDEBUG, \ +@@ -246,7 +240,8 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJLI, \ + NAME := jli, \ + OUTPUT_DIR := $(LIBJLI_OUTPUT_DIR), \ + EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \ +- EXTRA_FILES := $(LIBJLI_EXTRA_FILES) $(LIBMEMCPY_FILES), \ ++ EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + OPTIMIZATION := HIGH, \ + CFLAGS := $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \ + DISABLED_WARNINGS_gcc := unused-function implicit-fallthrough, \ +diff --git a/make/lib/Lib-java.base.gmk b/make/lib/Lib-java.base.gmk +index 0c888b65c..6f21969d0 100644 +--- a/make/lib/Lib-java.base.gmk ++++ b/make/lib/Lib-java.base.gmk +@@ -36,18 +36,13 @@ $(call FillFindCache, $(wildcard $(TOPDIR)/src/java.base/*/native)) + + include CoreLibraries.gmk + +-LIBMEMCPY_FILES += \ +- $(addprefix $(TOPDIR)/src/hotspot/share/runtime/, \ +- memcpy.cpp \ +- ) +- + ################################################################################ + # Create the network library + + $(eval $(call SetupJdkLibrary, BUILD_LIBNET, \ + NAME := net, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(LIBMEMCPY_FILES), \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + CFLAGS := $(CFLAGS_JDKLIB), \ + DISABLED_WARNINGS_gcc := format-nonliteral, \ + DISABLED_WARNINGS_clang := parentheses-equality constant-logical-operand, \ +diff --git a/make/lib/Lib-java.desktop.gmk b/make/lib/Lib-java.desktop.gmk +index 932e0b3e8..e7f8d9208 100644 +--- a/make/lib/Lib-java.desktop.gmk ++++ b/make/lib/Lib-java.desktop.gmk +@@ -36,11 +36,6 @@ $(call FillFindCache, $(wildcard $(TOPDIR)/src/java.desktop/*/native)) + + include Awt2dLibraries.gmk + +-LIBMEMCPY_FILES += \ +- $(addprefix $(TOPDIR)/src/hotspot/share/runtime/, \ +- memcpy.cpp \ +- ) +- + ################################################################################ + # Create the libjsound library + +@@ -68,7 +63,7 @@ ifneq ($(OPENJDK_TARGET_OS), aix) + NAME := jsound, \ + TOOLCHAIN := $(LIBJSOUND_TOOLCHAIN), \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(LIBMEMCPY_FILES), \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(LIBJSOUND_CFLAGS), \ + CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBJSOUND_CFLAGS), \ +diff --git a/make/lib/Lib-java.instrument.gmk b/make/lib/Lib-java.instrument.gmk +index 6e679b500..012893a11 100644 +--- a/make/lib/Lib-java.instrument.gmk ++++ b/make/lib/Lib-java.instrument.gmk +@@ -36,19 +36,14 @@ ifeq ($(OPENJDK_TARGET_OS), windows) + WINDOWS_JLI_LIB := $(SUPPORT_OUTPUTDIR)/native/java.base/libjli/jli.lib + endif + +-LIBMEMCPY_FILES += \ +- $(addprefix $(TOPDIR)/src/hotspot/share/runtime/, \ +- memcpy.cpp \ +- ) +- + $(eval $(call SetupJdkLibrary, BUILD_LIBINSTRUMENT, \ + NAME := instrument, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(LIBMEMCPY_FILES), \ + CFLAGS := $(CFLAGS_JDKLIB) $(LIBINSTRUMENT_CFLAGS), \ + CFLAGS_debug := -DJPLIS_LOGGING, \ + CFLAGS_release := -DNO_JPLIS_LOGGING, \ + EXTRA_HEADER_DIRS := java.base:libjli, \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN) \ + $(LIBINSTRUMENT_LDFLAGS), \ +diff --git a/make/lib/Lib-jdk.crypto.cryptoki.gmk b/make/lib/Lib-jdk.crypto.cryptoki.gmk +index 6c23857e1..e37b2632e 100644 +--- a/make/lib/Lib-jdk.crypto.cryptoki.gmk ++++ b/make/lib/Lib-jdk.crypto.cryptoki.gmk +@@ -25,17 +25,12 @@ + + include LibCommon.gmk + +-LIBMEMCPY_FILES += \ +- $(addprefix $(TOPDIR)/src/hotspot/share/runtime/, \ +- memcpy.cpp \ +- ) +- + ################################################################################ + + $(eval $(call SetupJdkLibrary, BUILD_LIBJ2PKCS11, \ + NAME := j2pkcs11, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(LIBMEMCPY_FILES), \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + CFLAGS := $(CFLAGS_JDKLIB), \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ +diff --git a/make/lib/Lib-jdk.crypto.ec.gmk b/make/lib/Lib-jdk.crypto.ec.gmk +index 4137a371d..50eede676 100644 +--- a/make/lib/Lib-jdk.crypto.ec.gmk ++++ b/make/lib/Lib-jdk.crypto.ec.gmk +@@ -25,11 +25,6 @@ + + include LibCommon.gmk + +-LIBMEMCPY_FILES += \ +- $(addprefix $(TOPDIR)/src/hotspot/share/runtime/, \ +- memcpy.cpp \ +- ) +- + ################################################################################ + + ifeq ($(ENABLE_INTREE_EC), true) +@@ -47,7 +42,7 @@ ifeq ($(ENABLE_INTREE_EC), true) + NAME := sunec, \ + TOOLCHAIN := TOOLCHAIN_LINK_CXX, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(LIBMEMCPY_FILES), \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + CFLAGS := $(BUILD_LIBSUNEC_CFLAGS_JDKLIB) \ + -DMP_API_COMPATIBLE -DNSS_ECC_MORE_THAN_SUITE_B, \ + CXXFLAGS := $(BUILD_LIBSUNEC_CXXFLAGS_JDKLIB), \ +diff --git a/make/lib/Lib-jdk.crypto.kaeprovider.gmk b/make/lib/Lib-jdk.crypto.kaeprovider.gmk +index 516a957d0..627149944 100644 +--- a/make/lib/Lib-jdk.crypto.kaeprovider.gmk ++++ b/make/lib/Lib-jdk.crypto.kaeprovider.gmk +@@ -25,11 +25,6 @@ + + include LibCommon.gmk + +-LIBMEMCPY_FILES += \ +- $(addprefix $(TOPDIR)/src/hotspot/share/runtime/, \ +- memcpy.cpp \ +- ) +- + ################################################################################ + + ifeq ($(ENABLE_KAE), true) +@@ -37,7 +32,7 @@ ifeq ($(ENABLE_KAE), true) + $(eval $(call SetupJdkLibrary, BUILD_LIBJ2KAE, \ + NAME := j2kae, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(LIBMEMCPY_FILES), \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + CFLAGS := $(CFLAGS_JDKLIB), \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ +diff --git a/make/lib/Lib-jdk.hotspot.agent.gmk b/make/lib/Lib-jdk.hotspot.agent.gmk +index 64fb999a9..e0b21ec4f 100644 +--- a/make/lib/Lib-jdk.hotspot.agent.gmk ++++ b/make/lib/Lib-jdk.hotspot.agent.gmk +@@ -27,11 +27,6 @@ include LibCommon.gmk + + $(eval $(call IncludeCustomExtension, hotspot/lib/Lib-jdk.hotspot.agent.gmk)) + +-LIBMEMCPY_FILES += \ +- $(addprefix $(TOPDIR)/src/hotspot/share/runtime/, \ +- memcpy.cpp \ +- ) +- + ################################################################################ + + ifeq ($(OPENJDK_TARGET_OS), linux) +@@ -63,13 +58,13 @@ endif + $(eval $(call SetupJdkLibrary, BUILD_LIBSA, \ + NAME := saproc, \ + OPTIMIZATION := HIGH, \ +- EXTRA_FILES := $(LIBMEMCPY_FILES), \ + DISABLED_WARNINGS_microsoft := 4267, \ + DISABLED_WARNINGS_gcc := sign-compare, \ + DISABLED_WARNINGS_CXX_solstudio := truncwarn unknownpragma, \ + CFLAGS := $(CFLAGS_JDKLIB) $(SA_CFLAGS), \ + CXXFLAGS := $(CXXFLAGS_JDKLIB) $(SA_CFLAGS) $(SA_CXXFLAGS), \ + EXTRA_SRC := $(LIBSA_EXTRA_SRC), \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + LDFLAGS := $(LDFLAGS_JDKLIB) $(SA_LDFLAGS), \ + LIBS_linux := $(LIBDL), \ + LIBS_solaris := -ldl -ldemangle -lthread -lproc, \ +diff --git a/make/lib/Lib-jdk.jdwp.agent.gmk b/make/lib/Lib-jdk.jdwp.agent.gmk +index 1081b1f30..eb5d22142 100644 +--- a/make/lib/Lib-jdk.jdwp.agent.gmk ++++ b/make/lib/Lib-jdk.jdwp.agent.gmk +@@ -25,11 +25,6 @@ + + include LibCommon.gmk + +-LIBMEMCPY_FILES += \ +- $(addprefix $(TOPDIR)/src/hotspot/share/runtime/, \ +- memcpy.cpp \ +- ) +- + ################################################################################ + + $(eval $(call SetupJdkLibrary, BUILD_LIBDT_SOCKET, \ +@@ -58,11 +53,11 @@ TARGETS += $(BUILD_LIBDT_SOCKET) + $(eval $(call SetupJdkLibrary, BUILD_LIBJDWP, \ + NAME := jdwp, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(LIBMEMCPY_FILES), \ + CFLAGS := $(CFLAGS_JDKLIB) -DJDWP_LOGGING, \ + EXTRA_HEADER_DIRS := \ + include \ + libjdwp/export, \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LIBS := $(JDKLIB_LIBS), \ +diff --git a/make/lib/Lib-jdk.pack.gmk b/make/lib/Lib-jdk.pack.gmk +index 23c87a07d..bfe362b4a 100644 +--- a/make/lib/Lib-jdk.pack.gmk ++++ b/make/lib/Lib-jdk.pack.gmk +@@ -25,11 +25,6 @@ + + include LibCommon.gmk + +-LIBMEMCPY_FILES += \ +- $(addprefix $(TOPDIR)/src/hotspot/share/runtime/, \ +- memcpy.cpp \ +- ) +- + ################################################################################ + + $(eval $(call SetupJdkLibrary, BUILD_LIBUNPACK, \ +@@ -37,11 +32,11 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBUNPACK, \ + EXTRA_SRC := common-unpack, \ + TOOLCHAIN := TOOLCHAIN_LINK_CXX, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(LIBMEMCPY_FILES), \ + CFLAGS := $(CXXFLAGS_JDKLIB) \ + -DNO_ZLIB -DUNPACK_JNI -DFULL, \ + CFLAGS_release := -DPRODUCT, \ + EXTRA_HEADER_DIRS := $(call GetJavaHeaderDir, java.base), \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + DISABLED_WARNINGS_gcc := implicit-fallthrough, \ + LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ +diff --git a/make/lib/Lib-jdk.sctp.gmk b/make/lib/Lib-jdk.sctp.gmk +index f2c1dc0b9..28ae5c463 100644 +--- a/make/lib/Lib-jdk.sctp.gmk ++++ b/make/lib/Lib-jdk.sctp.gmk +@@ -25,11 +25,6 @@ + + include LibCommon.gmk + +-LIBMEMCPY_FILES += \ +- $(addprefix $(TOPDIR)/src/hotspot/share/runtime/, \ +- memcpy.cpp \ +- ) +- + ################################################################################ + + ifeq ($(OPENJDK_TARGET_OS_TYPE), unix) +@@ -38,12 +33,12 @@ ifeq ($(OPENJDK_TARGET_OS_TYPE), unix) + $(eval $(call SetupJdkLibrary, BUILD_LIBSCTP, \ + NAME := sctp, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(LIBMEMCPY_FILES), \ + CFLAGS := $(CFLAGS_JDKLIB), \ + EXTRA_HEADER_DIRS := \ + $(call GetJavaHeaderDir, java.base) \ + java.base:libnet \ + java.base:libnio/ch, \ ++ EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/memcpy$(OBJ_SUFFIX), \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LIBS_unix := -lnio -lnet -ljava -ljvm, \ +diff --git a/src/hotspot/share/runtime/memcpy.cpp b/src/hotspot/share/runtime/memcpy.cpp +index ed8330679..0fe4fa3f3 100644 +--- a/src/hotspot/share/runtime/memcpy.cpp ++++ b/src/hotspot/share/runtime/memcpy.cpp +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) Huawei Technologies Co., Ltd. 2018-2019. All rights reserved. ++ * Copyright (c) Huawei Technologies Co., Ltd. 2018-2021. All rights reserved. + */ + + #if defined( __GNUC__ ) && \ +-- +2.22.0 + diff --git a/openjdk-11.spec b/openjdk-11.spec index 969a4b9..1a1b719 100644 --- a/openjdk-11.spec +++ b/openjdk-11.spec @@ -740,7 +740,7 @@ Provides: java-src%{?1} = %{epoch}:%{version}-%{release} Name: java-%{javaver}-%{origin} Version: %{newjavaver}.%{buildver} -Release: 2 +Release: 3 # 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 @@ -864,6 +864,7 @@ Patch82: PS-introduce-UsePSRelaxedForwardee-to-enable-using-r.patch # 11.0.13 Patch83: 8273111-Default-timezone-should-return-zone-ID-if-locatiome-is-valid-but-not-canonicalization-on-linux.patch +Patch84: fix-memcpy-compile-warning-when-building-on-linux-x86.patch BuildRequires: autoconf BuildRequires: alsa-lib-devel @@ -1145,6 +1146,7 @@ pushd %{top_level_dir_name} %patch80 -p1 %patch82 -p1 %patch83 -p1 +%patch84 -p1 popd # openjdk # %patch1000 @@ -1647,6 +1649,9 @@ require "copy_jdk_configs.lua" %changelog +* Fri Dec 10 2021 kuenking111 - 1:11.0.13.7-3 +- add fix-memcpy-compile-warning-when-building-on-linux-x86.patch + * Fri Dec 10 2021 kuenking111 - 1:11.0.13.7-2 - add 8273111-Default-timezone-should-return-zone-ID-if-locatiome-is-valid-but-not-canonicalization-on-linux.patch -- Gitee From 2229be37d92191e7c29b0de0ef6745c7a1634da6 Mon Sep 17 00:00:00 2001 From: kuenking111 Date: Fri, 10 Dec 2021 16:56:24 +0800 Subject: [PATCH 3/5] I4M067: 8239017 cmp-baseline fails because of differences in TimeZoneNames_kea --- ...-of-differences-in-TimeZoneNames_kea.patch | 26 +++++++++++++++++++ openjdk-11.spec | 7 ++++- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100755 8239017-cmp-baseline-fails-because-of-differences-in-TimeZoneNames_kea.patch diff --git a/8239017-cmp-baseline-fails-because-of-differences-in-TimeZoneNames_kea.patch b/8239017-cmp-baseline-fails-because-of-differences-in-TimeZoneNames_kea.patch new file mode 100755 index 0000000..e6c3301 --- /dev/null +++ b/8239017-cmp-baseline-fails-because-of-differences-in-TimeZoneNames_kea.patch @@ -0,0 +1,26 @@ +From b2b541571c538d3ddd97066b96279882a2a23994 Mon Sep 17 00:00:00 2001 +From: zhangyipeng +Date: Tue, 7 Dec 2021 10:17:09 +0800 +Subject: [PATCH] 8239017: cmp-baseline fails because of differences in + TimeZoneNames_kea + +--- + .../src/classes/build/tools/cldrconverter/CLDRConverter.java | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/make/jdk/src/classes/build/tools/cldrconverter/CLDRConverter.java b/make/jdk/src/classes/build/tools/cldrconverter/CLDRConverter.java +index 034b8ade4..434912726 100644 +--- a/make/jdk/src/classes/build/tools/cldrconverter/CLDRConverter.java ++++ b/make/jdk/src/classes/build/tools/cldrconverter/CLDRConverter.java +@@ -665,7 +665,7 @@ public class CLDRConverter { + } + + private static Map extractZoneNames(Map map, String id) { +- Map names = new HashMap<>(); ++ Map names = new TreeMap<>(KeyComparator.INSTANCE); + + getAvailableZoneIds().stream().forEach(tzid -> { + // If the tzid is deprecated, get the data for the replacement id +-- +2.22.0 + diff --git a/openjdk-11.spec b/openjdk-11.spec index 1a1b719..a2c6710 100644 --- a/openjdk-11.spec +++ b/openjdk-11.spec @@ -740,7 +740,7 @@ Provides: java-src%{?1} = %{epoch}:%{version}-%{release} Name: java-%{javaver}-%{origin} Version: %{newjavaver}.%{buildver} -Release: 3 +Release: 4 # 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 @@ -865,6 +865,7 @@ Patch82: PS-introduce-UsePSRelaxedForwardee-to-enable-using-r.patch # 11.0.13 Patch83: 8273111-Default-timezone-should-return-zone-ID-if-locatiome-is-valid-but-not-canonicalization-on-linux.patch Patch84: fix-memcpy-compile-warning-when-building-on-linux-x86.patch +Patch85: 8239017-cmp-baseline-fails-because-of-differences-in-TimeZoneNames_kea.patch BuildRequires: autoconf BuildRequires: alsa-lib-devel @@ -1147,6 +1148,7 @@ pushd %{top_level_dir_name} %patch82 -p1 %patch83 -p1 %patch84 -p1 +%patch85 -p1 popd # openjdk # %patch1000 @@ -1649,6 +1651,9 @@ require "copy_jdk_configs.lua" %changelog +* Fri Dec 10 2021 kuenking111 - 1:11.0.13.7-4 +- add 8239017-cmp-baseline-fails-because-of-differences-in-TimeZoneNames_kea.patch + * Fri Dec 10 2021 kuenking111 - 1:11.0.13.7-3 - add fix-memcpy-compile-warning-when-building-on-linux-x86.patch -- Gitee From 1de4a11179fd4d87029e39513eb168bd2b9525c1 Mon Sep 17 00:00:00 2001 From: kuenking111 Date: Thu, 16 Dec 2021 15:23:02 +0800 Subject: [PATCH 4/5] I4MTXM: Delete expired certificate --- ...e-expired-certificate-globalsignr2ca.patch | 189 ++++++++++++++++++ openjdk-11.spec | 7 +- 2 files changed, 195 insertions(+), 1 deletion(-) create mode 100755 Delete-expired-certificate-globalsignr2ca.patch diff --git a/Delete-expired-certificate-globalsignr2ca.patch b/Delete-expired-certificate-globalsignr2ca.patch new file mode 100755 index 0000000..eefa275 --- /dev/null +++ b/Delete-expired-certificate-globalsignr2ca.patch @@ -0,0 +1,189 @@ +From 417887ac236f58b1ecba79826229295794a3e0be Mon Sep 17 00:00:00 2001 +From: zhangyipeng +Date: Wed, 15 Dec 2021 18:33:09 +0800 +Subject: [PATCH 2/2] Delete expired certificate + +DTS/AR: DTS2021112910463 +Summary: < JDK> : Delete expired certificate +LLT: NA +Patch Type: huawei +Bug url: NA +--- + make/data/cacerts/globalsignr2ca | 29 ------------- + make/data/cacerts/luxtrustglobalrootca | 28 ------------- + make/data/cacerts/quovadisrootca | 41 ------------------- + .../security/lib/cacerts/VerifyCACerts.java | 14 +------ + 4 files changed, 2 insertions(+), 110 deletions(-) + delete mode 100644 make/data/cacerts/globalsignr2ca + delete mode 100644 make/data/cacerts/luxtrustglobalrootca + delete mode 100644 make/data/cacerts/quovadisrootca + +diff --git a/make/data/cacerts/globalsignr2ca b/make/data/cacerts/globalsignr2ca +deleted file mode 100644 +index 746d1fab9..000000000 +--- a/make/data/cacerts/globalsignr2ca ++++ /dev/null +@@ -1,29 +0,0 @@ +-Owner: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2 +-Issuer: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2 +-Serial number: 400000000010f8626e60d +-Valid from: Fri Dec 15 08:00:00 GMT 2006 until: Wed Dec 15 08:00:00 GMT 2021 +-Signature algorithm name: SHA1withRSA +-Subject Public Key Algorithm: 2048-bit RSA key +-Version: 3 +------BEGIN CERTIFICATE----- +-MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G +-A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp +-Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1 +-MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG +-A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI +-hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL +-v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8 +-eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq +-tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd +-C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa +-zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB +-mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH +-V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n +-bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG +-3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs +-J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO +-291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS +-ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd +-AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 +-TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== +------END CERTIFICATE----- +diff --git a/make/data/cacerts/luxtrustglobalrootca b/make/data/cacerts/luxtrustglobalrootca +deleted file mode 100644 +index 7fb3d818f..000000000 +--- a/make/data/cacerts/luxtrustglobalrootca ++++ /dev/null +@@ -1,28 +0,0 @@ +-Owner: CN=LuxTrust Global Root, O=LuxTrust s.a., C=LU +-Issuer: CN=LuxTrust Global Root, O=LuxTrust s.a., C=LU +-Serial number: bb8 +-Valid from: Thu Mar 17 09:51:37 GMT 2011 until: Wed Mar 17 09:51:37 GMT 2021 +-Signature algorithm name: SHA256withRSA +-Subject Public Key Algorithm: 2048-bit RSA key +-Version: 3 +------BEGIN CERTIFICATE----- +-MIIDZDCCAkygAwIBAgICC7gwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCTFUx +-FjAUBgNVBAoTDUx1eFRydXN0IHMuYS4xHTAbBgNVBAMTFEx1eFRydXN0IEdsb2Jh +-bCBSb290MB4XDTExMDMxNzA5NTEzN1oXDTIxMDMxNzA5NTEzN1owRDELMAkGA1UE +-BhMCTFUxFjAUBgNVBAoTDUx1eFRydXN0IHMuYS4xHTAbBgNVBAMTFEx1eFRydXN0 +-IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsn+n +-QPAiygz267Hxyw6VV0B1r6A/Ps7sqjJX5hmxZ0OYWmt8s7j6eJyqpoSyYBuAQc5j +-zR8XCJmk9e8+EsdMsFeaXHhAePxFjdqRZ9w6Ubltc+a3OY52OrQfBfVpVfmTz3iI +-Sr6qm9d7R1tGBEyCFqY19vx039a0r9jitScRdFmiwmYsaArhmIiIPIoFdRTjuK7z +-CISbasE/MRivJ6VLm6T9eTHemD0OYcqHmMH4ijCc+j4z1aXEAwfh95Z0GAAnOCfR +-K6qq4UFFi2/xJcLcopeVx0IUM115hCNq52XAV6DYXaljAeew5Ivo+MVjuOVsdJA9 +-x3f8K7p56aTGEnin/wIDAQABo2AwXjAMBgNVHRMEBTADAQH/MA4GA1UdDwEB/wQE +-AwIBBjAfBgNVHSMEGDAWgBQXFYWJCS8kh28/HRvk8pZ5g0gTzjAdBgNVHQ4EFgQU +-FxWFiQkvJIdvPx0b5PKWeYNIE84wDQYJKoZIhvcNAQELBQADggEBAFrwHNDUUM9B +-fua4nX3DcNBeNv9ujnov3kgR1TQuPLdFwlQlp+HBHjeDtpSutkVIA+qVvuucarQ3 +-XB8u02uCgUNbCj8RVWOs+nwIAjegPDkEM/6XMshS5dklTbDG7mgfcKpzzlcD3H0K +-DTPy0lrfCmw7zBFRlxqkIaKFNQLXgCLShLL4wKpov9XrqsMLq6F8K/f1O4fhVFfs +-BSTveUJO84ton+Ruy4KZycwq3FPCH3CDqyEPVrRI/98HIrOM+R2mBN8tAza53W/+ +-MYhm/2xtRDSvCHc+JtJy9LtHVpM8mGPhM7uZI5K1g3noHZ9nrWLWidb2/CfeMifL +-hNp3hSGhEiE= +------END CERTIFICATE----- +diff --git a/make/data/cacerts/quovadisrootca b/make/data/cacerts/quovadisrootca +deleted file mode 100644 +index 0c195ff51..000000000 +--- a/make/data/cacerts/quovadisrootca ++++ /dev/null +@@ -1,41 +0,0 @@ +-Owner: CN=QuoVadis Root Certification Authority, OU=Root Certification Authority, O=QuoVadis Limited, C=BM +-Issuer: CN=QuoVadis Root Certification Authority, OU=Root Certification Authority, O=QuoVadis Limited, C=BM +-Serial number: 3ab6508b +-Valid from: Mon Mar 19 18:33:33 GMT 2001 until: Wed Mar 17 18:33:33 GMT 2021 +-Signature algorithm name: SHA1withRSA +-Subject Public Key Algorithm: 2048-bit RSA key +-Version: 3 +------BEGIN CERTIFICATE----- +-MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJC +-TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0 +-aWZpY2F0aW9uIEF1dGhvcml0eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0 +-aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAzMTkxODMzMzNaFw0yMTAzMTcxODMz +-MzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUw +-IwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVR +-dW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG +-9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Yp +-li4kVEAkOPcahdxYTMukJ0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2D +-rOpm2RgbaIr1VxqYuvXtdj182d6UajtLF8HVj71lODqV0D1VNk7feVcxKh7YWWVJ +-WCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeLYzcS19Dsw3sgQUSj7cug +-F+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWenAScOospU +-xbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCC +-Ak4wPQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVv +-dmFkaXNvZmZzaG9yZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREw +-ggENMIIBCQYJKwYBBAG+WAABMIH7MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNl +-IG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBh +-c3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy +-ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh +-Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYI +-KwYBBQUHAgEWFmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3T +-KbkGGew5Oanwl4Rqy+/fMIGuBgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rq +-y+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1p +-dGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYD +-VQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6tlCL +-MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSk +-fnIYj9lofFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf8 +-7C9TqnN7Az10buYWnuulLsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1R +-cHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2xgI4JVrmcGmD+XcHXetwReNDWXcG31a0y +-mQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW +-xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQNiOK +-SnQ2+Q== +------END CERTIFICATE----- +diff --git a/test/jdk/sun/security/lib/cacerts/VerifyCACerts.java b/test/jdk/sun/security/lib/cacerts/VerifyCACerts.java +index 8b8739d33..1b258059f 100644 +--- a/test/jdk/sun/security/lib/cacerts/VerifyCACerts.java ++++ b/test/jdk/sun/security/lib/cacerts/VerifyCACerts.java +@@ -53,12 +53,12 @@ public class VerifyCACerts { + + File.separator + "security" + File.separator + "cacerts"; + + // The numbers of certs now. +- private static final int COUNT = 87; ++ private static final int COUNT = 84; + + // SHA-256 of cacerts, can be generated with + // shasum -a 256 cacerts | sed -e 's/../&:/g' | tr '[:lower:]' '[:upper:]' | cut -c1-95 + private static final String CHECKSUM +- = "EA:29:DE:36:FD:06:0A:A1:D9:46:0B:DF:E0:B8:E7:16:40:1B:52:3B:5F:0F:58:EE:E0:2A:A9:2A:D7:8D:34:68"; ++ = "D3:05:21:64:FA:D7:CD:29:E8:CB:57:E7:47:ED:79:9B:47:D8:0E:75:2D:CA:83:BB:86:AF:D9:43:FD:3E:17:85"; + + // map of cert alias to SHA-256 fingerprint + @SuppressWarnings("serial") +@@ -144,10 +144,6 @@ public class VerifyCACerts { + "5D:56:49:9B:E4:D2:E0:8B:CF:CA:D0:8A:3E:38:72:3D:50:50:3B:DE:70:69:48:E4:2F:55:60:30:19:E5:28:AE"); + put("letsencryptisrgx1 [jdk]", + "96:BC:EC:06:26:49:76:F3:74:60:77:9A:CF:28:C5:A7:CF:E8:A3:C0:AA:E1:1A:8F:FC:EE:05:C0:BD:DF:08:C6"); +- put("luxtrustglobalrootca [jdk]", +- "A1:B2:DB:EB:64:E7:06:C6:16:9E:3C:41:18:B2:3B:AA:09:01:8A:84:27:66:6D:8B:F0:E2:88:91:EC:05:19:50"); +- put("quovadisrootca [jdk]", +- "A4:5E:DE:3B:BB:F0:9C:8A:E1:5C:72:EF:C0:72:68:D6:93:A2:1C:99:6F:D5:1E:67:CA:07:94:60:FD:6D:88:73"); + put("quovadisrootca1g3 [jdk]", + "8A:86:6F:D1:B2:76:B5:7E:57:8E:92:1C:65:82:8A:2B:ED:58:E9:F2:F2:88:05:41:34:B7:F1:F4:BF:C9:CC:74"); + put("quovadisrootca2 [jdk]", +@@ -210,8 +206,6 @@ public class VerifyCACerts { + "17:9F:BC:14:8A:3D:D0:0F:D2:4E:A1:34:58:CC:43:BF:A7:F5:9C:81:82:D7:83:A5:13:F6:EB:EC:10:0C:89:24"); + put("globalsigneccrootcar4 [jdk]", + "BE:C9:49:11:C2:95:56:76:DB:6C:0A:55:09:86:D7:6E:3B:A0:05:66:7C:44:2C:97:62:B4:FB:B7:73:DE:22:8C"); +- put("globalsignr2ca [jdk]", +- "CA:42:DD:41:74:5F:D0:B8:1E:B9:02:36:2C:F9:D8:BF:71:9D:A1:BD:1B:1E:FC:94:6F:5B:4C:99:F4:2C:1B:9E"); + put("teliasonerarootcav1 [jdk]", + "DD:69:36:FE:21:F8:F0:77:C1:23:A1:A5:21:C1:22:24:F7:22:55:B7:3E:03:A7:26:06:93:E8:A2:4B:0F:A3:89"); + put("globalsignrootcar6 [jdk]", +@@ -252,10 +246,6 @@ public class VerifyCACerts { + add("addtrustexternalca [jdk]"); + // Valid until: Sat May 30 10:44:50 GMT 2020 + add("addtrustqualifiedca [jdk]"); +- // Valid until: Wed Mar 17 02:51:37 PDT 2021 +- add("luxtrustglobalrootca [jdk]"); +- // Valid until: Wed Mar 17 11:33:33 PDT 2021 +- add("quovadisrootca [jdk]"); + // Valid until: Wed Dec 15 08:00:00 UTC 2021 + add("globalsignr2ca [jdk]"); + } +-- +2.22.0 + diff --git a/openjdk-11.spec b/openjdk-11.spec index a2c6710..22a83a3 100644 --- a/openjdk-11.spec +++ b/openjdk-11.spec @@ -740,7 +740,7 @@ Provides: java-src%{?1} = %{epoch}:%{version}-%{release} Name: java-%{javaver}-%{origin} Version: %{newjavaver}.%{buildver} -Release: 4 +Release: 5 # 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 @@ -866,6 +866,7 @@ Patch82: PS-introduce-UsePSRelaxedForwardee-to-enable-using-r.patch Patch83: 8273111-Default-timezone-should-return-zone-ID-if-locatiome-is-valid-but-not-canonicalization-on-linux.patch Patch84: fix-memcpy-compile-warning-when-building-on-linux-x86.patch Patch85: 8239017-cmp-baseline-fails-because-of-differences-in-TimeZoneNames_kea.patch +Patch86: Delete-expired-certificate-globalsignr2ca.patch BuildRequires: autoconf BuildRequires: alsa-lib-devel @@ -1149,6 +1150,7 @@ pushd %{top_level_dir_name} %patch83 -p1 %patch84 -p1 %patch85 -p1 +%patch86 -p1 popd # openjdk # %patch1000 @@ -1651,6 +1653,9 @@ require "copy_jdk_configs.lua" %changelog +* Thu Dec 16 2021 kuenking111 - 1:11.0.13.7-5 +- add Delete-expired-certificate-globalsignr2ca.patch + * Fri Dec 10 2021 kuenking111 - 1:11.0.13.7-4 - add 8239017-cmp-baseline-fails-because-of-differences-in-TimeZoneNames_kea.patch -- Gitee From 1e56c3a5671c858688dde6cc186877dc12620ef5 Mon Sep 17 00:00:00 2001 From: kuenking111 Date: Tue, 21 Dec 2021 21:43:43 +0800 Subject: [PATCH 5/5] I4NJX3: delete stack protection --- openjdk-11.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/openjdk-11.spec b/openjdk-11.spec index 22a83a3..490653a 100644 --- a/openjdk-11.spec +++ b/openjdk-11.spec @@ -740,7 +740,7 @@ Provides: java-src%{?1} = %{epoch}:%{version}-%{release} Name: java-%{javaver}-%{origin} Version: %{newjavaver}.%{buildver} -Release: 5 +Release: 6 # 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 @@ -1218,8 +1218,8 @@ export ARCH_DATA_MODEL=64 # We use ourcppflags because the OpenJDK build seems to # pass EXTRA_CFLAGS to the HotSpot C++ compiler... # Explicitly set the C++ standard as the default has changed on GCC >= 6 -EXTRA_CFLAGS="%ourcppflags -Wno-error -fstack-protector-all" -EXTRA_CPP_FLAGS="%ourcppflags -Wno-error -fstack-protector-all" +EXTRA_CFLAGS="%ourcppflags -Wno-error" +EXTRA_CPP_FLAGS="%ourcppflags -Wno-error" export EXTRA_CFLAGS @@ -1653,6 +1653,9 @@ require "copy_jdk_configs.lua" %changelog +* Tue Dec 21 2021 kuenking111 - 1:11.0.13.7-6 +- delete stack protection + * Thu Dec 16 2021 kuenking111 - 1:11.0.13.7-5 - add Delete-expired-certificate-globalsignr2ca.patch -- Gitee