Update to jdk-21.0.2+13 (GA)
Sync the copy of the portable specfile with the latest update Bump libpng version to 1.6.40 following JDK-8316030 Bump HarfBuzz version to 8.2.2 following JDK-8313643 Drop local JDK-8311630 patch which is now upstream ** This tarball is embargoed until 2024-01-16 @ 1pm PT. ** Resolves: RHEL-20999
This commit is contained in:
parent
6812daac8f
commit
5b22e08152
3
.gitignore
vendored
3
.gitignore
vendored
@ -12,3 +12,6 @@
|
||||
/openjdk-jdk20u-jdk-20.0.2+9.tar.xz
|
||||
/openjdk-jdk21u-jdk-21+35.tar.xz
|
||||
/openjdk-21.0.1+12.tar.xz
|
||||
/openjdk-21.0.2+11.tar.xz
|
||||
/openjdk-21.0.2+12.tar.xz
|
||||
/openjdk-21.0.2+13.tar.xz
|
||||
|
@ -153,6 +153,11 @@
|
||||
%else
|
||||
%global gdb_arches %{jit_arches} %{zero_arches}
|
||||
%endif
|
||||
# Set of architectures for which we have a devkit
|
||||
# Only used on RHEL
|
||||
%if 0%{?centos} == 0
|
||||
%global devkit_arches %{aarch64} %{ppc64le} s390x x86_64
|
||||
%endif
|
||||
|
||||
# By default, we build a slowdebug build during main build on JIT architectures
|
||||
%if %{with slowdebug}
|
||||
@ -310,12 +315,12 @@
|
||||
# New Version-String scheme-style defines
|
||||
%global featurever 21
|
||||
%global interimver 0
|
||||
%global updatever 1
|
||||
%global updatever 2
|
||||
%global patchver 0
|
||||
# buildjdkver is usually same as %%{featurever},
|
||||
# but in time of bootstrap of next jdk, it is featurever-1,
|
||||
# and this it is better to change it here, on single place
|
||||
%global buildjdkver %{featurever}
|
||||
%global buildjdkver 20
|
||||
# We don't add any LTS designator for STS packages (Fedora and EPEL).
|
||||
# We need to explicitly exclude EPEL as it would have the %%{rhel} macro defined.
|
||||
%if 0%{?rhel} && !0%{?epel}
|
||||
@ -326,7 +331,7 @@
|
||||
%global lts_designator_zip ""
|
||||
%endif
|
||||
# JDK to use for bootstrapping
|
||||
%global bootjdk /usr/lib/jvm/java-%{buildjdkver}-openjdk
|
||||
%global bootjdk /usr/lib/jvm/java-%{featurever}-openjdk
|
||||
# Define whether to use the bootstrap JDK directly or with a fresh libjvm.so
|
||||
# This will only work where the bootstrap JDK is the same major version
|
||||
# as the JDK being built
|
||||
@ -374,8 +379,8 @@
|
||||
%global origin_nice OpenJDK
|
||||
%global top_level_dir_name %{vcstag}
|
||||
%global top_level_dir_name_backup %{top_level_dir_name}-backup
|
||||
%global buildver 12
|
||||
%global rpmrelease 2
|
||||
%global buildver 13
|
||||
%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
|
||||
@ -479,6 +484,7 @@
|
||||
%define jrebindir() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/bin}
|
||||
|
||||
%global alt_java_name alt-java
|
||||
%global devkit_name %{origin}-devkit
|
||||
|
||||
%global rpm_state_dir %{_localstatedir}/lib/rpm-state/
|
||||
|
||||
@ -599,7 +605,6 @@ Source18: TestTranslations.java
|
||||
# RPM/distribution specific patches
|
||||
#
|
||||
############################################
|
||||
|
||||
# Crypto policy and FIPS support patches
|
||||
# Patch is generated from the fips-21u tree at https://github.com/rh-openjdk/jdk/tree/fips-21u
|
||||
# as follows: git diff %%{vcstag} src make test > fips-21u-$(git show -s --format=%h HEAD).patch
|
||||
@ -656,8 +661,7 @@ Patch6: jdk8009550-rh910107-fail_to_load_pcsc_library.patch
|
||||
#
|
||||
#############################################
|
||||
|
||||
# JDK-8311630: [s390] Implementation of Foreign Function & Memory API (Preview)
|
||||
Patch100: jdk8311630-s390_ffmapi.patch
|
||||
# Currently empty
|
||||
|
||||
#############################################
|
||||
#
|
||||
@ -677,7 +681,13 @@ BuildRequires: desktop-file-utils
|
||||
BuildRequires: elfutils-devel
|
||||
BuildRequires: file
|
||||
BuildRequires: fontconfig-devel
|
||||
%ifarch %{devkit_arches}
|
||||
BuildRequires: openjdk-devkit >= 1.0-2
|
||||
%else
|
||||
# Earlier versions have a bug in tree vectorization on PPC
|
||||
BuildRequires: gcc >= 4.8.3-8
|
||||
BuildRequires: gcc-c++
|
||||
%endif
|
||||
BuildRequires: gdb
|
||||
BuildRequires: libxslt
|
||||
BuildRequires: libX11-devel
|
||||
@ -700,20 +710,21 @@ BuildRequires: tar
|
||||
BuildRequires: unzip
|
||||
# Not needed for portables
|
||||
# BuildRequires: javapackages-filesystem
|
||||
BuildRequires: java-%{buildjdkver}-openjdk-devel
|
||||
BuildRequires: java-%{featurever}-openjdk-devel
|
||||
# Zero-assembler build requirement
|
||||
%ifarch %{zero_arches}
|
||||
BuildRequires: libffi-devel
|
||||
%endif
|
||||
# Full documentation build requirements
|
||||
# pandoc is only available on RHEL/CentOS 8
|
||||
%if 0%{?rhel} == 8
|
||||
BuildRequires: graphviz
|
||||
BuildRequires: pandoc
|
||||
%endif
|
||||
# 2023c required as of JDK-8305113
|
||||
BuildRequires: tzdata-java >= 2023c
|
||||
# cacerts build requirement in portable mode
|
||||
BuildRequires: ca-certificates
|
||||
# Earlier versions have a bug in tree vectorization on PPC
|
||||
BuildRequires: gcc >= 4.8.3-8
|
||||
|
||||
%if %{with_systemtap}
|
||||
BuildRequires: systemtap-sdt-devel
|
||||
@ -733,16 +744,18 @@ Provides: bundled(freetype) = 2.13.0
|
||||
# Version in src/java.desktop/share/native/libsplashscreen/giflib/gif_lib.h
|
||||
Provides: bundled(giflib) = 5.2.1
|
||||
# Version in src/java.desktop/share/native/libharfbuzz/hb-version.h
|
||||
Provides: bundled(harfbuzz) = 7.2.0
|
||||
Provides: bundled(harfbuzz) = 8.2.2
|
||||
# Version in src/java.desktop/share/native/liblcms/lcms2.h
|
||||
Provides: bundled(lcms2) = 2.15.0
|
||||
# Version in src/java.desktop/share/native/libjavajpeg/jpeglib.h
|
||||
Provides: bundled(libjpeg) = 6b
|
||||
# Version in src/java.desktop/share/native/libsplashscreen/libpng/png.h
|
||||
Provides: bundled(libpng) = 1.6.39
|
||||
Provides: bundled(libpng) = 1.6.40
|
||||
# We link statically against libstdc++ to increase portability
|
||||
%ifnarch %{devkit_arches}
|
||||
BuildRequires: libstdc++-static
|
||||
%endif
|
||||
%endif
|
||||
|
||||
# this is always built, also during debug-only build
|
||||
# when it is built in debug-only this package is just placeholder
|
||||
@ -885,6 +898,7 @@ The %{origin_nice} %{featurever} miscellany.
|
||||
%prep
|
||||
|
||||
echo "Preparing %{oj_vendor_version}"
|
||||
echo "System is RHEL=%{?rhel}%{!?rhel:0}, CentOS=%{?centos}%{!?centos:0}, EPEL=%{?epel}%{!?epel:0}, Fedora=%{?fedora}%{!?fedora:0}"
|
||||
|
||||
# Using the echo macro breaks rpmdev-bumpspec, as it parses the first line of stdout :-(
|
||||
%if 0%{?stapinstall:1}
|
||||
@ -921,6 +935,7 @@ echo "WARNING: The build of a fresh libjvm has been disabled due to a JDK versio
|
||||
echo "Build JDK version is %{buildjdkver}, feature JDK version is %{featurever}"
|
||||
%endif
|
||||
|
||||
export XZ_OPT="-T0"
|
||||
%setup -q -c -n %{uniquesuffix ""} -T -a 0
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1189084
|
||||
prioritylength=`expr length %{priority}`
|
||||
@ -942,8 +957,6 @@ pushd %{top_level_dir_name}
|
||||
%patch1001 -p1
|
||||
# Patches in need of upstreaming
|
||||
%patch6 -p1
|
||||
# Patches in next release
|
||||
%patch100 -p1
|
||||
popd # openjdk
|
||||
|
||||
|
||||
@ -969,7 +982,7 @@ fi
|
||||
|
||||
# Extract systemtap tapsets
|
||||
%if %{with_systemtap}
|
||||
tar --strip-components=1 -x -I xz -f %{SOURCE8}
|
||||
tar --strip-components=1 -x -I 'xz -T0' -f %{SOURCE8}
|
||||
%if %{include_debug_build}
|
||||
cp -r tapset tapset%{debug_suffix}
|
||||
%endif
|
||||
@ -989,6 +1002,23 @@ done
|
||||
# Prepare desktop files
|
||||
# Portables do not have desktop integration
|
||||
|
||||
# Extract devkit
|
||||
%ifarch %{devkit_arches}
|
||||
devkittarball=%{_datadir}/%{devkit_name}/sdk-%{_target_cpu}-%{_target_os}-gnu*.tar.gz
|
||||
echo "Extracting devkit ${devkittarball}";
|
||||
mkdir devkit;
|
||||
tar -C devkit --strip-components=1 -xzf ${devkittarball}
|
||||
DEVKIT_ROOT=$(pwd)/devkit
|
||||
source ${DEVKIT_ROOT}/devkit.info
|
||||
echo "Installed ${DEVKIT_NAME} devkit"
|
||||
%else
|
||||
%if 0%{?centos} > 0
|
||||
echo "No devkit for CentOS %{?centos}"
|
||||
%else
|
||||
echo "No devkit for %{_target_cpu} on RHEL %{?rhel}";
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%build
|
||||
# How many CPU's do we have?
|
||||
export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :)
|
||||
@ -997,6 +1027,7 @@ export NUM_PROC=${NUM_PROC:-1}
|
||||
# Honor %%_smp_ncpus_max
|
||||
[ ${NUM_PROC} -gt %{?_smp_ncpus_max} ] && export NUM_PROC=%{?_smp_ncpus_max}
|
||||
%endif
|
||||
export XZ_OPT="-T0"
|
||||
|
||||
%ifarch s390x sparc64 alpha %{power64} %{aarch64}
|
||||
export ARCH_DATA_MODEL=64
|
||||
@ -1020,14 +1051,14 @@ EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
|
||||
EXTRA_CFLAGS="$(echo ${EXTRA_CFLAGS} | sed -e 's|-mstackrealign|-mincoming-stack-boundary=2 -mpreferred-stack-boundary=4|')"
|
||||
EXTRA_CPP_FLAGS="$(echo ${EXTRA_CPP_FLAGS} | sed -e 's|-mstackrealign|-mincoming-stack-boundary=2 -mpreferred-stack-boundary=4|')"
|
||||
%endif
|
||||
%ifarch %{devkit_arches}
|
||||
# Remove annobin plugin reference which isn't available in the devkit
|
||||
EXTRA_CFLAGS="$(echo ${EXTRA_CFLAGS} | sed -e 's|-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1||')"
|
||||
EXTRA_CPP_FLAGS="$(echo ${EXTRA_CFLAGS} | sed -e 's|-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1||')"
|
||||
%endif
|
||||
|
||||
export EXTRA_CFLAGS EXTRA_CPP_FLAGS
|
||||
|
||||
echo "Building %{SOURCE11}"
|
||||
mkdir -p %{altjavaoutputdir}
|
||||
gcc ${EXTRA_CFLAGS} -o %{altjavaoutputdir}/%{alt_java_name} %{SOURCE11}
|
||||
|
||||
echo "Building %{newjavaver}-%{buildver}, pre=%{ea_designator}, opt=%{lts_designator}"
|
||||
|
||||
function buildjdk() {
|
||||
local outputdir=${1}
|
||||
local buildjdk=${2}
|
||||
@ -1035,10 +1066,16 @@ function buildjdk() {
|
||||
local debuglevel=${4}
|
||||
local link_opt=${5}
|
||||
local debug_symbols=${6}
|
||||
local devkit=${7}
|
||||
|
||||
local top_dir_abs_src_path=$(pwd)/%{top_level_dir_name}
|
||||
local top_dir_abs_build_path=$(pwd)/${outputdir}
|
||||
|
||||
%ifarch s390x
|
||||
# devkit libstdc++.a fails with "error: relocation refers
|
||||
# to local symbol "" [9], which is defined in a discarded section
|
||||
libc_link_opt="dynamic";
|
||||
%else
|
||||
# This must be set using the global, so that the
|
||||
# static libraries still use a dynamic stdc++lib
|
||||
if [ "x%{link_type}" = "xbundled" ] ; then
|
||||
@ -1046,6 +1083,7 @@ function buildjdk() {
|
||||
else
|
||||
libc_link_opt="dynamic";
|
||||
fi
|
||||
%endif
|
||||
|
||||
echo "Using output directory: ${outputdir}";
|
||||
echo "Checking build JDK ${buildjdk} is operational..."
|
||||
@ -1067,8 +1105,8 @@ function buildjdk() {
|
||||
%ifarch %{zero_arches}
|
||||
--with-jvm-variants=zero \
|
||||
%endif
|
||||
%ifarch %{ppc64le}
|
||||
--with-jobs=1 \
|
||||
%ifarch %{devkit_arches}
|
||||
--with-devkit=${devkit} \
|
||||
%endif
|
||||
--with-cacerts-file=$(readlink -f %{_sysconfdir}/pki/java/cacerts) \
|
||||
--with-version-build=%{buildver} \
|
||||
@ -1112,11 +1150,20 @@ function buildjdk() {
|
||||
|
||||
function stripjdk() {
|
||||
local outputdir=${1}
|
||||
local toolpath=${2}
|
||||
local jdkimagepath=${outputdir}/images/%{jdkimage}
|
||||
local jreimagepath=${outputdir}/images/%{jreimage}
|
||||
local jmodimagepath=${outputdir}/images/jmods
|
||||
local supportdir=${outputdir}/support
|
||||
|
||||
%ifarch %{devkit_arches}
|
||||
OBJCOPY=${toolpath}/objcopy
|
||||
STRIP=${toolpath}/strip
|
||||
%else
|
||||
OBJCOPY=$(which objcopy)
|
||||
STRIP=$(which strip)
|
||||
%endif
|
||||
|
||||
if [ "x$suffix" = "x" ] ; then
|
||||
# Keep the unstripped version for consumption by RHEL RPMs
|
||||
cp -a ${jdkimagepath}{,.unstripped}
|
||||
@ -1125,9 +1172,9 @@ function stripjdk() {
|
||||
for file in $(find ${jdkimagepath} ${jreimagepath} ${supportdir} -type f) ; do
|
||||
if file ${file} | grep -q 'ELF'; then
|
||||
noextfile=${file/.so/};
|
||||
objcopy --only-keep-debug ${file} ${noextfile}.debuginfo;
|
||||
objcopy --add-gnu-debuglink=${noextfile}.debuginfo ${file};
|
||||
strip -g ${file};
|
||||
${OBJCOPY} --only-keep-debug ${file} ${noextfile}.debuginfo;
|
||||
${OBJCOPY} --add-gnu-debuglink=${noextfile}.debuginfo ${file};
|
||||
${STRIP} -g ${file};
|
||||
fi
|
||||
done
|
||||
|
||||
@ -1234,6 +1281,12 @@ function genchecksum() {
|
||||
}
|
||||
|
||||
function packagejdk() {
|
||||
# Reusing OPENJDK_UPSTREAM_TAG_EPOCH for the modification times of all
|
||||
# files in the portable tarballs eliminates one source of variability
|
||||
# across RPM rebuilds.
|
||||
VERSION_FILE="$(pwd)"/"%{top_level_dir_name}"/make/conf/version-numbers.conf
|
||||
OPENJDK_UPSTREAM_TAG_EPOCH="$(stat --format=%Y "${VERSION_FILE}")"
|
||||
|
||||
local imagesdir=$(pwd)/${1}/images
|
||||
local docdir=$(pwd)/${1}/images/docs
|
||||
local bundledir=$(pwd)/${1}/bundles
|
||||
@ -1241,6 +1294,8 @@ function packagejdk() {
|
||||
local srcdir=$(pwd)/%{top_level_dir_name}
|
||||
local tapsetdir=$(pwd)/tapset
|
||||
local altjavadir=$(pwd)/${3}
|
||||
local tar_time="$(date --utc --iso-8601=seconds --date=@"${OPENJDK_UPSTREAM_TAG_EPOCH}")"
|
||||
local tar_opts="--mtime=${tar_time} --sort=name -cJf"
|
||||
|
||||
echo "Packaging build from ${imagesdir} to ${packagesdir}..."
|
||||
mkdir -p ${packagesdir}
|
||||
@ -1271,7 +1326,7 @@ function packagejdk() {
|
||||
if [ "x$suffix" = "x" ] ; then
|
||||
# Keep the unstripped version for consumption by RHEL RPMs
|
||||
mv %{jdkimage}.unstripped ${jdkname}
|
||||
tar -cJf ${unstrippedarchive} ${jdkname}
|
||||
tar ${tar_opts} ${unstrippedarchive} ${jdkname}
|
||||
genchecksum ${unstrippedarchive}
|
||||
mv ${jdkname} %{jdkimage}.unstripped
|
||||
fi
|
||||
@ -1282,13 +1337,13 @@ function packagejdk() {
|
||||
|
||||
# Release images have external debug symbols
|
||||
if [ "x$suffix" = "x" ] ; then
|
||||
tar -cJf ${debugarchive} $(find ${jdkname} -name \*.debuginfo)
|
||||
tar ${tar_opts} ${debugarchive} $(find ${jdkname} -name \*.debuginfo)
|
||||
genchecksum ${debugarchive}
|
||||
|
||||
mkdir ${docname}
|
||||
mv ${docdir} ${docname}
|
||||
mv ${bundledir}/${built_doc_archive} ${docname}
|
||||
tar -cJf ${docarchive} ${docname}
|
||||
tar ${tar_opts} ${docarchive} ${docname}
|
||||
genchecksum ${docarchive}
|
||||
|
||||
mkdir ${miscname}
|
||||
@ -1299,21 +1354,21 @@ function packagejdk() {
|
||||
cp -a ${tapsetdir}* ${miscname}
|
||||
%endif
|
||||
cp -av ${altjavadir}/%{alt_java_name} ${miscname}
|
||||
tar -cJf ${miscarchive} ${miscname}
|
||||
tar ${tar_opts} ${miscarchive} ${miscname}
|
||||
genchecksum ${miscarchive}
|
||||
fi
|
||||
|
||||
tar -cJf ${jdkarchive} --exclude='**.debuginfo' ${jdkname}
|
||||
tar ${tar_opts} ${jdkarchive} --exclude='**.debuginfo' ${jdkname}
|
||||
genchecksum ${jdkarchive}
|
||||
|
||||
tar -cJf ${jrearchive} --exclude='**.debuginfo' ${jrename}
|
||||
tar ${tar_opts} ${jrearchive} --exclude='**.debuginfo' ${jrename}
|
||||
genchecksum ${jrearchive}
|
||||
|
||||
%if %{include_staticlibs}
|
||||
# Static libraries (needed for building graal vm with native image)
|
||||
# Tar as overlay. Transform to the JDK name, since we just want to "add"
|
||||
# static libraries to that folder
|
||||
tar -cJf ${staticarchive} \
|
||||
tar ${tar_opts} ${staticarchive} \
|
||||
--transform "s|^%{static_libs_image}/lib/*|${staticname}/lib/static/linux-%{archinstall}/glibc/|" "%{static_libs_image}/lib"
|
||||
genchecksum ${staticarchive}
|
||||
%endif
|
||||
@ -1327,11 +1382,26 @@ function packagejdk() {
|
||||
|
||||
}
|
||||
|
||||
%ifarch %{devkit_arches}
|
||||
DEVKIT_ROOT=$(pwd)/devkit
|
||||
source ${DEVKIT_ROOT}/devkit.info
|
||||
GCC="${DEVKIT_TOOLCHAIN_PATH}/gcc --sysroot=${DEVKIT_SYSROOT}"
|
||||
%else
|
||||
GCC=$(which gcc)
|
||||
%endif
|
||||
|
||||
echo "Building %{SOURCE11}"
|
||||
mkdir -p %{altjavaoutputdir}
|
||||
${GCC} ${EXTRA_CFLAGS} -o %{altjavaoutputdir}/%{alt_java_name} %{SOURCE11}
|
||||
|
||||
echo "Building %{newjavaver}-%{buildver}, pre=%{ea_designator}, opt=%{lts_designator}"
|
||||
|
||||
%if %{build_hotspot_first}
|
||||
# Build a fresh libjvm.so first and use it to bootstrap
|
||||
echo "Building HotSpot only for the latest libjvm.so"
|
||||
cp -LR --preserve=mode,timestamps %{bootjdk} newboot
|
||||
systemjdk=$(pwd)/newboot
|
||||
buildjdk build/newboot ${systemjdk} %{hotspot_target} "release" "bundled" "internal"
|
||||
buildjdk build/newboot ${systemjdk} %{hotspot_target} "release" "bundled" "internal" ${DEVKIT_ROOT}
|
||||
mv build/newboot/jdk/lib/%{vm_variant}/libjvm.so newboot/lib/%{vm_variant}
|
||||
%else
|
||||
systemjdk=%{bootjdk}
|
||||
@ -1374,15 +1444,15 @@ for suffix in %{build_loop} ; do
|
||||
run_bootstrap=%{bootstrap_build}
|
||||
fi
|
||||
if ${run_bootstrap} ; then
|
||||
buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild} ${link_opt} ${debug_symbols}
|
||||
buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild} ${link_opt} ${debug_symbols} ${DEVKIT_ROOT}
|
||||
installjdk ${bootbuilddir} ${bootinstalldir}
|
||||
buildjdk ${builddir} $(pwd)/${bootinstalldir}/images/%{jdkimage} "${maketargets}" ${debugbuild} ${link_opt} ${debug_symbols}
|
||||
stripjdk ${builddir}
|
||||
buildjdk ${builddir} $(pwd)/${bootinstalldir}/images/%{jdkimage} "${maketargets}" ${debugbuild} ${link_opt} ${debug_symbols} ${DEVKIT_ROOT}
|
||||
stripjdk ${builddir} ${DEVKIT_TOOLCHAIN_PATH}
|
||||
installjdk ${builddir} ${installdir}
|
||||
%{!?with_artifacts:rm -rf ${bootinstalldir}}
|
||||
else
|
||||
buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild} ${link_opt} ${debug_symbols}
|
||||
stripjdk ${builddir}
|
||||
buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild} ${link_opt} ${debug_symbols} ${DEVKIT_ROOT}
|
||||
stripjdk ${builddir} ${DEVKIT_TOOLCHAIN_PATH}
|
||||
installjdk ${builddir} ${installdir}
|
||||
fi
|
||||
packagejdk ${installdir} ${packagesdir} %{altjavaoutputdir}
|
||||
@ -1416,6 +1486,22 @@ export JAVA_HOME=${top_dir_abs_main_build_path}/images/%{jdkimage}
|
||||
#sed -i -e "s:^security.useSystemPropertiesFile=.*:security.useSystemPropertiesFile=true:" \
|
||||
#${JAVA_HOME}/conf/security/java.security
|
||||
|
||||
# Set up tools
|
||||
%ifarch %{devkit_arches}
|
||||
DEVKIT_ROOT=$(pwd)/devkit
|
||||
source ${DEVKIT_ROOT}/devkit.info
|
||||
NM="${DEVKIT_TOOLCHAIN_PATH}/nm"
|
||||
%else
|
||||
NM=$(which nm)
|
||||
%endif
|
||||
# elfutils readelf supports more binaries than binutils version on RHEL 8
|
||||
# and debug symbols tests below were designed around this version
|
||||
READELF=$(which eu-readelf)
|
||||
# Only native gdb seems to work
|
||||
# The devkit gdb needs the devkit stdc++ library but then the JVM
|
||||
# segfaults when this is on the LD_LIBRARY_PATH
|
||||
GDB=$(which gdb)
|
||||
|
||||
# Check Shenandoah is enabled
|
||||
%if %{use_shenandoah_hotspot}
|
||||
$JAVA_HOME//bin/java -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -version
|
||||
@ -1444,14 +1530,14 @@ $JAVA_HOME/bin/javac -d . %{SOURCE16}
|
||||
$JAVA_HOME/bin/java $(echo $(basename %{SOURCE16})|sed "s|\.java||") "%{oj_vendor}" "%{oj_vendor_url}" "%{oj_vendor_bug_url}" "%{oj_vendor_version}"
|
||||
|
||||
# Check java launcher has no SSB mitigation
|
||||
if ! nm $JAVA_HOME/bin/java | grep set_speculation ; then true ; else false; fi
|
||||
if ! ${NM} $JAVA_HOME/bin/java | grep set_speculation ; then true ; else false; fi
|
||||
|
||||
# Check alt-java launcher has SSB mitigation on supported architectures
|
||||
# set_speculation function exists in both cases, so check for prctl call
|
||||
%ifarch %{ssbd_arches}
|
||||
nm %{altjavaoutputdir}/%{alt_java_name} | grep prctl
|
||||
${NM} %{altjavaoutputdir}/%{alt_java_name} | grep prctl
|
||||
%else
|
||||
if ! nm %{altjavaoutputdir}/%{alt_java_name} | grep prctl ; then true ; else false; fi
|
||||
if ! ${NM} %{altjavaoutputdir}/%{alt_java_name} | grep prctl ; then true ; else false; fi
|
||||
%endif
|
||||
|
||||
%if ! 0%{?flatpak}
|
||||
@ -1469,8 +1555,8 @@ $JAVA_HOME/bin/java -Djava.locale.providers=CLDR $(echo $(basename %{SOURCE18})|
|
||||
export STATIC_LIBS_HOME=${top_dir_abs_staticlibs_build_path}/images/%{static_libs_image}
|
||||
ls -l $STATIC_LIBS_HOME
|
||||
ls -l $STATIC_LIBS_HOME/lib
|
||||
readelf --debug-dump $STATIC_LIBS_HOME/lib/libnet.a | grep Inet4AddressImpl.c
|
||||
readelf --debug-dump $STATIC_LIBS_HOME/lib/libnet.a | grep Inet6AddressImpl.c
|
||||
${READELF} --debug-dump $STATIC_LIBS_HOME/lib/libnet.a | grep Inet4AddressImpl.c
|
||||
${READELF} --debug-dump $STATIC_LIBS_HOME/lib/libnet.a | grep Inet6AddressImpl.c
|
||||
%endif
|
||||
|
||||
# Release builds strip the debug symbols into external .debuginfo files
|
||||
@ -1489,15 +1575,15 @@ do
|
||||
|
||||
# Test for .debug_* sections in the shared object. This is the main test
|
||||
# Stripped objects will not contain these
|
||||
eu-readelf -S "$lib" | grep "] .debug_"
|
||||
test $(eu-readelf -S "$lib" | grep -E "\]\ .debug_(info|abbrev)" | wc --lines) == 2
|
||||
${READELF} -S "$lib" | grep "] .debug_"
|
||||
test $(${READELF} -S "$lib" | grep -E "\]\ .debug_(info|abbrev)" | wc --lines) == 2
|
||||
|
||||
# Test FILE symbols. These will most likely be removed by anything that
|
||||
# manipulates symbol tables because it's generally useless. So a nice test
|
||||
# that nothing has messed with symbols
|
||||
old_IFS="$IFS"
|
||||
IFS=$'\n'
|
||||
for line in $(eu-readelf -s "$lib" | grep "00000000 0 FILE LOCAL DEFAULT")
|
||||
for line in $(${READELF} -s "$lib" | grep "00000000 0 FILE LOCAL DEFAULT")
|
||||
do
|
||||
# We expect to see .cpp and .S files, except for architectures like aarch64 and
|
||||
# s390 where we expect .o and .oS files
|
||||
@ -1507,17 +1593,17 @@ do
|
||||
|
||||
# If this is the JVM, look for javaCalls.(cpp|o) in FILEs, for extra sanity checking
|
||||
if [ "`basename $lib`" = "libjvm.so" ]; then
|
||||
eu-readelf -s "$lib" | \
|
||||
${READELF} -s "$lib" | \
|
||||
grep -E "00000000 0 FILE LOCAL DEFAULT ABS javaCalls.(cpp|o)$"
|
||||
fi
|
||||
|
||||
# Test that there are no .gnu_debuglink sections pointing to another
|
||||
# debuginfo file. There shouldn't be any debuginfo files, so the link makes
|
||||
# no sense either
|
||||
eu-readelf -S "$lib" | grep 'gnu'
|
||||
if eu-readelf -S "$lib" | grep '] .gnu_debuglink' | grep PROGBITS; then
|
||||
${READELF} -S "$lib" | grep 'gnu'
|
||||
if ${READELF} -S "$lib" | grep '] .gnu_debuglink' | grep PROGBITS; then
|
||||
echo "bad .gnu_debuglink section."
|
||||
eu-readelf -x .gnu_debuglink "$lib"
|
||||
${READELF} -x .gnu_debuglink "$lib"
|
||||
false
|
||||
fi
|
||||
fi
|
||||
@ -1529,7 +1615,7 @@ done
|
||||
# Using line number 1 might cause build problems. See:
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1539664
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1538767
|
||||
gdb -q "$JAVA_HOME/bin/java" <<EOF | tee gdb.out
|
||||
${GDB} -q "$JAVA_HOME/bin/java" <<EOF | tee gdb.out
|
||||
handle SIGSEGV pass nostop noprint
|
||||
handle SIGILL pass nostop noprint
|
||||
set breakpoint pending on
|
||||
@ -1687,8 +1773,31 @@ done
|
||||
%{_jvmdir}/%{miscportablearchive}.sha256sum
|
||||
|
||||
%changelog
|
||||
* Mon Nov 06 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.1.0.12-2
|
||||
- Include JDK-8311630 patch to implement Foreign Function & Memory preview API on s390x
|
||||
* Fri Mar 15 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.2.0.13-1
|
||||
- Update to jdk-21.0.2+13 (GA)
|
||||
- Update release notes to 21.0.2+13
|
||||
- Bump libpng version to 1.6.40 following JDK-8316030
|
||||
- Bump HarfBuzz version to 8.2.2 following JDK-8313643
|
||||
- pandoc is only available on RHEL/CentOS 8
|
||||
- Check for CentOS being defined to determine use of devkit
|
||||
- Set buildjdkver to 20 until OpenJDK 21 is available in the buildroot
|
||||
- Use featurever for JDK build dependencies
|
||||
|
||||
* Mon Mar 11 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.1.0.12-2
|
||||
- Use a devkit to build on architectures where we have one (s390x, aarch64, ppc64le, x86_64)
|
||||
- Use a dynamic libstdc++ on s390x to workaround failure with static libstdc++
|
||||
- Use the devkit tools during the check stage so they can understand the generated binaries
|
||||
- Use eu-readelf on devkit and non-devkit builds as debug symbol tests rely on its behaviour
|
||||
- Use system gdb for both builds as devkit version fails (needs devkit libraries, then JDK segfaults with them)
|
||||
- Filter out annobin plugin when using the devkit
|
||||
- Drop static libstdc++ build dependency on devkit builds as it should come from the devkit
|
||||
- Disable devkit build on CentOS where it is unavailable
|
||||
- Introduce tar_opts to avoid repetition of lengthy tar creation options
|
||||
|
||||
* Thu Feb 08 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:21.0.1.0.12-2
|
||||
- Invoke xz in multi-threaded mode
|
||||
- Remove ppc64le with-jobs=1 workaround
|
||||
- Make portable tarball modification times reproducible
|
||||
|
||||
* Fri Oct 27 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.1.0.12-1
|
||||
- Update to jdk-21.0.1.0+12 (GA)
|
||||
|
@ -300,7 +300,7 @@
|
||||
# New Version-String scheme-style defines
|
||||
%global featurever 21
|
||||
%global interimver 0
|
||||
%global updatever 1
|
||||
%global updatever 2
|
||||
%global patchver 0
|
||||
# We don't add any LTS designator for STS packages (Fedora and EPEL).
|
||||
# We need to explicitly exclude EPEL as it would have the %%{rhel} macro defined.
|
||||
@ -350,10 +350,10 @@
|
||||
%global origin_nice OpenJDK
|
||||
%global top_level_dir_name %{vcstag}
|
||||
%global top_level_dir_name_backup %{top_level_dir_name}-backup
|
||||
%global buildver 12
|
||||
%global rpmrelease 3
|
||||
%global buildver 13
|
||||
%global rpmrelease 1
|
||||
# Settings used by the portable build
|
||||
%global portablerelease 2
|
||||
%global portablerelease 1
|
||||
%global portablesuffix el9
|
||||
%global portablebuilddir /builddir/build/BUILD
|
||||
|
||||
@ -1417,9 +1417,6 @@ Patch6: jdk8009550-rh910107-fail_to_load_pcsc_library.patch
|
||||
#
|
||||
#############################################
|
||||
|
||||
# JDK-8311630: [s390] Implementation of Foreign Function & Memory API (Preview)
|
||||
Patch100: jdk8311630-s390_ffmapi.patch
|
||||
|
||||
#############################################
|
||||
#
|
||||
# Portable build specific patches
|
||||
@ -1496,13 +1493,13 @@ Provides: bundled(freetype) = 2.13.0
|
||||
# Version in src/java.desktop/share/native/libsplashscreen/giflib/gif_lib.h
|
||||
Provides: bundled(giflib) = 5.2.1
|
||||
# Version in src/java.desktop/share/native/libharfbuzz/hb-version.h
|
||||
Provides: bundled(harfbuzz) = 7.2.0
|
||||
Provides: bundled(harfbuzz) = 8.2.2
|
||||
# Version in src/java.desktop/share/native/liblcms/lcms2.h
|
||||
Provides: bundled(lcms2) = 2.15.0
|
||||
# Version in src/java.desktop/share/native/libjavajpeg/jpeglib.h
|
||||
Provides: bundled(libjpeg) = 6b
|
||||
# Version in src/java.desktop/share/native/libsplashscreen/libpng/png.h
|
||||
Provides: bundled(libpng) = 1.6.39
|
||||
Provides: bundled(libpng) = 1.6.40
|
||||
%endif
|
||||
|
||||
# this is always built, also during debug-only build
|
||||
@ -1867,8 +1864,6 @@ pushd %{top_level_dir_name}
|
||||
%patch1001 -p1
|
||||
# Patches in need of upstreaming
|
||||
%patch6 -p1
|
||||
# Patches in next release
|
||||
%patch100 -p1
|
||||
popd # openjdk
|
||||
|
||||
|
||||
@ -2488,6 +2483,15 @@ cjc.mainProgram(args)
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Tue Jan 09 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.2.0.13-1
|
||||
- Update to jdk-21.0.2+13 (GA)
|
||||
- Sync the copy of the portable specfile with the latest update
|
||||
- Bump libpng version to 1.6.40 following JDK-8316030
|
||||
- Bump HarfBuzz version to 8.2.2 following JDK-8313643
|
||||
- Drop local JDK-8311630 patch which is now upstream
|
||||
- ** This tarball is embargoed until 2024-01-16 @ 1pm PT. **
|
||||
- Resolves: RHEL-20999
|
||||
|
||||
* Mon Nov 06 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.1.0.12-3
|
||||
- Include JDK-8311630 patch to implement Foreign Function & Memory preview API on s390x
|
||||
- Sync the copy of the portable specfile with the latest update
|
||||
|
File diff suppressed because it is too large
Load Diff
2
sources
2
sources
@ -1,2 +1,2 @@
|
||||
SHA512 (tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz) = 97d026212363b3c83f6a04100ad7f6fdde833d16579717f8756e2b8c2eb70e144a41a330cb9ccde9c3badd37a2d54fdf4650a950ec21d8b686d545ecb2a64d30
|
||||
SHA512 (openjdk-21.0.1+12.tar.xz) = fe722867334c1aed1f4cd9825fe6dc747b33e0e41c9986cacba46b1ee6d3f059bac87c62e299ea5ef5ef64b3c404c43a572b487bb66f024c6cc997176ee0a910
|
||||
SHA512 (openjdk-21.0.2+13.tar.xz) = 3b190b8290760ce760297618a62f0628e245c20393e70c915f9747de2d0d8a25e9e9d9f2cee696b274dffa44cc47e93a3f915d15c252306352617470c6d9e662
|
||||
|
Loading…
Reference in New Issue
Block a user