From 4d483d5093f07dedee7a83edf04a37a58e829009 Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Tue, 23 Dec 2025 12:44:54 +0100 Subject: [PATCH] Updated to jdk26 --- .gitignore | 1 + ...1842_broke_native_debugging_on_Linux.patch | 154 ++++++++++++++++++ java-latest-openjdk-portable.spec | 18 +- sources | 2 +- 4 files changed, 167 insertions(+), 8 deletions(-) create mode 100644 JDK-8373246-8351842_broke_native_debugging_on_Linux.patch diff --git a/.gitignore b/.gitignore index c2a5115..1f1fc8c 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,4 @@ /openjdk-jdk-25+36.tar.xz /openjdk-25+36.tar.xz /openjdk-25.0.1+8.tar.xz +/openjdk-26+29-ea.tar.xz diff --git a/JDK-8373246-8351842_broke_native_debugging_on_Linux.patch b/JDK-8373246-8351842_broke_native_debugging_on_Linux.patch new file mode 100644 index 0000000..1f6ca4d --- /dev/null +++ b/JDK-8373246-8351842_broke_native_debugging_on_Linux.patch @@ -0,0 +1,154 @@ +diff --git a/make/Bundles.gmk b/make/Bundles.gmk +index 8161b3b036254..0b324e7e3f3fc 100644 +--- a/make/Bundles.gmk ++++ b/make/Bundles.gmk +@@ -185,77 +185,30 @@ endif + + ifneq ($(filter product-bundles% legacy-bundles, $(MAKECMDGOALS)), ) + +- SYMBOLS_EXCLUDE_PATTERN := %.debuginfo %.diz %.map +- +- # There may be files with spaces in the names, so use ShellFindFiles +- # explicitly. ++ # There may be files with spaces in the names, so use ShellFindFiles explicitly. + ALL_JDK_FILES := $(call ShellFindFiles, $(JDK_IMAGE_DIR)) +- ifneq ($(JDK_IMAGE_DIR), $(JDK_SYMBOLS_IMAGE_DIR)) +- ALL_JDK_SYMBOLS_FILES := $(call ShellFindFiles, $(JDK_SYMBOLS_IMAGE_DIR)) +- else +- ALL_JDK_SYMBOLS_FILES := $(ALL_JDK_FILES) +- endif + ifneq ($(JDK_IMAGE_DIR), $(JDK_DEMOS_IMAGE_DIR)) + ALL_JDK_DEMOS_FILES := $(call ShellFindFiles, $(JDK_DEMOS_IMAGE_DIR)) + else + ALL_JDK_DEMOS_FILES := $(ALL_JDK_FILES) + endif + +- # Create special filter rules when dealing with unzipped .dSYM directories on +- # macosx +- ifeq ($(call isTargetOs, macosx), true) +- ifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), false) +- JDK_SYMBOLS_EXCLUDE_PATTERN := $(addprefix %, \ +- $(call containing, .dSYM/, $(patsubst $(JDK_IMAGE_DIR)/%, %, \ +- $(ALL_JDK_SYMBOLS_FILES)))) +- endif +- endif +- +- # Create special filter rules when dealing with debug symbols on windows +- ifeq ($(call isTargetOs, windows), true) +- ifeq ($(SHIP_DEBUG_SYMBOLS), ) +- JDK_SYMBOLS_EXCLUDE_PATTERN := %.pdb +- endif +- endif +- + JDK_BUNDLE_FILES := \ + $(filter-out \ +- $(JDK_SYMBOLS_EXCLUDE_PATTERN) \ + $(JDK_EXTRA_EXCLUDES) \ +- $(SYMBOLS_EXCLUDE_PATTERN) \ + $(JDK_IMAGE_HOMEDIR)/demo/% \ + , \ + $(ALL_JDK_FILES) \ + ) + +- JDK_SYMBOLS_BUNDLE_FILES := \ +- $(call FindFiles, $(SYMBOLS_IMAGE_DIR)) ++ JDK_SYMBOLS_BUNDLE_FILES := $(call FindFiles, $(SYMBOLS_IMAGE_DIR)) + + TEST_DEMOS_BUNDLE_FILES := $(filter $(JDK_DEMOS_IMAGE_HOMEDIR)/demo/%, \ + $(ALL_JDK_DEMOS_FILES)) + + ALL_JRE_FILES := $(call ShellFindFiles, $(JRE_IMAGE_DIR)) + +- # Create special filter rules when dealing with unzipped .dSYM directories on +- # macosx +- ifeq ($(OPENJDK_TARGET_OS), macosx) +- ifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), false) +- JRE_SYMBOLS_EXCLUDE_PATTERN := $(addprefix %, \ +- $(call containing, .dSYM/, $(patsubst $(JRE_IMAGE_DIR)/%, %, $(ALL_JRE_FILES)))) +- endif +- endif +- +- # Create special filter rules when dealing with debug symbols on windows +- ifeq ($(call isTargetOs, windows), true) +- ifeq ($(SHIP_DEBUG_SYMBOLS), ) +- JRE_SYMBOLS_EXCLUDE_PATTERN := %.pdb +- endif +- endif +- +- JRE_BUNDLE_FILES := $(filter-out \ +- $(JRE_SYMBOLS_EXCLUDE_PATTERN) \ +- $(SYMBOLS_EXCLUDE_PATTERN), \ +- $(ALL_JRE_FILES)) ++ JRE_BUNDLE_FILES := $(ALL_JRE_FILES) + + ifeq ($(MACOSX_CODESIGN_MODE), hardened) + # Macosx release build and code signing available. +diff --git a/make/CreateJmods.gmk b/make/CreateJmods.gmk +index 3280b24924a34..32f107b6bb6a0 100644 +--- a/make/CreateJmods.gmk ++++ b/make/CreateJmods.gmk +@@ -218,10 +218,14 @@ ifeq ($(call isTargetOs, windows), true) + ifeq ($(SHIP_DEBUG_SYMBOLS), ) + JMOD_FLAGS += --exclude '**{_the.*,_*.marker*,*.diz,*.pdb,*.map}' + else +- JMOD_FLAGS += --exclude '**{_the.*,_*.marker*,*.diz,*.map}' ++ JMOD_FLAGS += --exclude '**{_the.*,_*.marker*,*.map}' + endif + else +- JMOD_FLAGS += --exclude '**{_the.*,_*.marker*,*.diz,*.debuginfo,*.dSYM/**,*.dSYM}' ++ ifeq ($(SHIP_DEBUG_SYMBOLS), ) ++ JMOD_FLAGS += --exclude '**{_the.*,_*.marker*,*.diz,*.debuginfo,*.dSYM/**,*.dSYM}' ++ else ++ JMOD_FLAGS += --exclude '**{_the.*,_*.marker*}' ++ endif + endif + + # Unless we are creating a very large module, use the small tool JVM options +diff --git a/make/autoconf/jdk-options.m4 b/make/autoconf/jdk-options.m4 +index bb18877800192..87d147d4f074b 100644 +--- a/make/autoconf/jdk-options.m4 ++++ b/make/autoconf/jdk-options.m4 +@@ -316,23 +316,36 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS], + AC_MSG_CHECKING([if we should add external native debug symbols to the shipped bundles]) + AC_ARG_WITH([external-symbols-in-bundles], + [AS_HELP_STRING([--with-external-symbols-in-bundles], +- [which type of external native debug symbol information shall be shipped in product bundles (none, public, full) +- (e.g. ship full/stripped pdbs on Windows) @<:@none@:>@])]) ++ [which type of external native debug symbol information shall be shipped with bundles/images (none, public, full). ++ @<:@none in release builds, full otherwise. --with-native-debug-symbols=external/zipped is a prerequisite. public is only supported on Windows@:>@])], ++ [], ++ [with_external_symbols_in_bundles=default]) + + if test "x$with_external_symbols_in_bundles" = x || test "x$with_external_symbols_in_bundles" = xnone ; then + AC_MSG_RESULT([no]) + elif test "x$with_external_symbols_in_bundles" = xfull || test "x$with_external_symbols_in_bundles" = xpublic ; then +- if test "x$OPENJDK_TARGET_OS" != xwindows ; then +- AC_MSG_ERROR([--with-external-symbols-in-bundles currently only works on windows!]) +- elif test "x$COPY_DEBUG_SYMBOLS" != xtrue ; then +- AC_MSG_ERROR([--with-external-symbols-in-bundles only works when --with-native-debug-symbols=external is used!]) +- elif test "x$with_external_symbols_in_bundles" = xfull ; then ++ if test "x$COPY_DEBUG_SYMBOLS" != xtrue ; then ++ AC_MSG_ERROR([--with-external-symbols-in-bundles only works when --with-native-debug-symbols=external/zipped is used!]) ++ elif test "x$with_external_symbols_in_bundles" = xpublic && test "x$OPENJDK_TARGET_OS" != xwindows ; then ++ AC_MSG_ERROR([--with-external-symbols-in-bundles=public is only supported on Windows!]) ++ fi ++ ++ if test "x$with_external_symbols_in_bundles" = xfull ; then + AC_MSG_RESULT([full]) + SHIP_DEBUG_SYMBOLS=full + else + AC_MSG_RESULT([public]) + SHIP_DEBUG_SYMBOLS=public + fi ++ elif test "x$with_external_symbols_in_bundles" = xdefault ; then ++ if test "x$DEBUG_LEVEL" = xrelease ; then ++ AC_MSG_RESULT([no (default)]) ++ elif test "x$COPY_DEBUG_SYMBOLS" = xtrue ; then ++ AC_MSG_RESULT([full (default)]) ++ SHIP_DEBUG_SYMBOLS=full ++ else ++ AC_MSG_RESULT([no (default, native debug symbols are not external/zipped)]) ++ fi + else + AC_MSG_ERROR([$with_external_symbols_in_bundles is an unknown value for --with-external-symbols-in-bundles]) + fi diff --git a/java-latest-openjdk-portable.spec b/java-latest-openjdk-portable.spec index 287c7fe..16bb5eb 100644 --- a/java-latest-openjdk-portable.spec +++ b/java-latest-openjdk-portable.spec @@ -404,9 +404,9 @@ exit 1 %endif # New Version-String scheme-style defines -%global featurever 25 +%global featurever 26 %global interimver 0 -%global updatever 1 +%global updatever 0 %global patchver 0 # buildjdkver is usually same as %%{featurever}, # but in time of bootstrap of next jdk, it is featurever-1, @@ -460,8 +460,8 @@ exit 1 %global origin_nice OpenJDK %global top_level_dir_name %{vcstag} %global top_level_dir_name_backup %{top_level_dir_name}-backup -%global buildver 8 -%global rpmrelease 3 +%global buildver 29 +%global rpmrelease 1 #%%global tagsuffix %%{nil} # Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit %if %is_system_jdk @@ -480,7 +480,7 @@ exit 1 # Release will be (where N is usually a number starting at 1): # - 0.N%%{?extraver}%%{?dist} for EA releases, # - N%%{?extraver}{?dist} for GA releases -%global is_ga 1 +%global is_ga 0 %if %{is_ga} %global build_type GA %global ea_designator "" @@ -775,7 +775,7 @@ Source18: TestTranslations.java # RH1940064: Enable XML Signature provider in FIPS mode # RH2173781: Avoid calling C_GetInfo() too early, before cryptoki is initialized [now part of JDK-8301553 upstream] # usage in jdk >25 is experimental and may disapear -Patch1001: fips-%{featurever}u-%{fipsver}.patch +Patch1001: fips-25u-%{fipsver}.patch ############################################# # @@ -791,7 +791,7 @@ Patch1001: fips-%{featurever}u-%{fipsver}.patch # ############################################# -# Currently empty +Patch1: JDK-8373246-8351842_broke_native_debugging_on_Linux.patch ############################################# # @@ -1086,6 +1086,7 @@ pushd %{top_level_dir_name} # Add crypto policy and FIPS support # usage in jdk >25 is experimental and may disapear %patch -P1001 -p1 +%patch -P1 -p1 popd # openjdk echo "Generating %{alt_java_name} man page" @@ -1491,6 +1492,9 @@ function packagejdk() { # Release images have external debug symbols if [ "x$suffix" = "x" ] ; then + # jdk26 is putting debugsymbols out of main image, + # we later reconstruct debuginfo subpakckages manually, so putting them back + cp -r symbols/* ${jdkname}/ createtar ${debugarchive} $(find ${jdkname} -name \*.debuginfo) genchecksum ${debugarchive} diff --git a/sources b/sources index 641515d..404d038 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openjdk-25.0.1+8.tar.xz) = eb84d876f81ca02803283e8294c89b6acbed3753426811c3bcc228615c9618deefc85da4aa702800cac2feb103e628ee8b92292b316e9d7e12a58b6de69c5085 +SHA512 (openjdk-26+29-ea.tar.xz) = 4e80882e0de26eff7d46d762e255911d42544473cc5f12ab0af1997969a14cc697e1164cb3c90d894359b58cc42dbd2b233f00fa807dbfad41583da278e26666