The package rpms/java-1.8.0-openjdk-aarch32.git has added or updated architecture specific
content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-aarch32.git/co....
Change:
+%ifarch %{gdb_arches}
Thanks.
Full change:
============
commit f7f4fe0c81976acb0430ab162132d126b791ddf4
Author: Alex Kashchenko <akashche(a)redhat.com>
Date: Wed May 4 07:24:50 2022 -0400
8u332 update
diff --git a/.gitignore b/.gitignore
index e1900d2..9628d24 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,3 +29,4 @@
/aarch32-port-jdk8u-jdk8u302-ga-aarch32-20210726-4curve.tar.xz
/aarch32-port-jdk8u-jdk8u312-ga-aarch32-20210923-4curve.tar.xz
/openjdk-aarch32-port-jdk8u-jdk8u322-ga-aarch32-20220131-4curve.tar.xz
+/openjdk-aarch32-port-jdk8u-jdk8u332-ga-aarch32-20220422-4curve.tar.xz
diff --git a/java-1.8.0-openjdk-aarch32.spec b/java-1.8.0-openjdk-aarch32.spec
index d5155ba..60fe73d 100644
--- a/java-1.8.0-openjdk-aarch32.spec
+++ b/java-1.8.0-openjdk-aarch32.spec
@@ -24,6 +24,15 @@
%bcond_without release
# Remove build artifacts by default
%bcond_with artifacts
+# Build a fresh libjvm.so for use in a copy of the bootstrap JDK
+%bcond_without fresh_libjvm
+
+# Define whether to use the bootstrap JDK directly or with a fresh libjvm.so
+%if %{with fresh_libjvm}
+%global build_hotspot_first 0
+%else
+%global build_hotspot_first 0
+%endif
# The -g flag says to use strip -g instead of full strip on DSOs or EXEs.
# This fixes detailed NMT and other tools which need minimal debug info.
@@ -91,7 +100,7 @@
# Set of architectures for which we build fastdebug builds
%global fastdebug_arches x86_64 ppc64le aarch64
# Set of architectures with a Just-In-Time (JIT) compiler
-%global jit_arches %{debug_arches}
+%global jit_arches %{aarch64} %{ix86} %{power64} sparcv9 sparc64 x86_64
# Set of architectures which use the Zero assembler port (!jit_arches)
%global zero_arches %{arm} ppc s390 s390x
# Set of architectures which run a full bootstrap cycle
@@ -104,10 +113,12 @@
# See
https://bugzilla.redhat.com/show_bug.cgi?id=513605
# MetaspaceShared::generate_vtable_methods is not implemented for the PPC JIT
%global share_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
+# Set of architectures which support JFR
%global jfr_arches %{jit_arches}
-
# Set of architectures for which alt-java has SSB mitigation
%global ssbd_arches x86_64
+# Set of architectures where we verify backtraces with gdb
+%global gdb_arches %{jit_arches} %{zero_arches}
# By default, we build a debug build during main build on JIT architectures
%if %{with slowdebug}
@@ -143,7 +154,7 @@
%global fastdebug_build %{nil}
%endif
-# If you disable both builds, then the build fails
+# If you disable all builds, then the build fails
# Build and test slowdebug first as it provides the best diagnostics
%global build_loop %{slowdebug_build} %{fastdebug_build} %{normal_build}
@@ -156,6 +167,18 @@
%global bootstrap_targets images
%global release_targets images docs-zip
%global debug_targets images
+# Target to use to just build HotSpot
+%global hotspot_target hotspot
+
+# JDK to use for bootstrapping
+# Use OpenJDK 7 where available (on RHEL) to avoid
+# having to use the rhel-7.x-java-unsafe-candidate hack
+%if ! 0%{?fedora} && 0%{?rhel} <= 7
+%global buildjdkver 1.7.0
+%else
+%global buildjdkver 1.8.0
+%endif
+%global bootjdk /usr/lib/jvm/java-%{buildjdkver}-openjdk
# Disable LTO as this causes build failures at the moment.
# See RHBZ#1861401
@@ -306,11 +329,11 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project openjdk
%global shenandoah_repo shenandoah-jdk8u
-%global shenandoah_revision aarch64-shenandoah-jdk8u322-b06
+%global shenandoah_revision shenandoah-jdk8u332-b09
# Define old aarch64/jdk8u tree variables for compatibility
%global project aarch32-port
%global repo jdk8u
-%global revision jdk8u322-ga-aarch32-20220131
+%global revision jdk8u332-ga-aarch32-20220422
# e.g. aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30 ->
aarch64-shenandoah-jdk8u212-b04
@@ -403,6 +426,9 @@
%global alternatives_requires %{_sbindir}/alternatives
%endif
+%global family %{name}.%{_arch}
+%global family_noarch %{name}
+
%if %{with_systemtap}
# Where to install systemtap tapset (links)
# We would like these to be in a package specific sub-dir,
@@ -420,6 +446,50 @@
# not-duplicated scriptlets for normal/debug packages
%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor
&>/dev/null || :
+%define save_alternatives() %{expand:
+ # warning! alternatives are localised!
+ # LANG=cs_CZ.UTF-8 alternatives --display java | head
+ # LANG=en_US.UTF-8 alternatives --display java | head
+ function nonLocalisedAlternativesDisplayOfMaster() {
+ LANG=en_US.UTF-8 alternatives --display "$MASTER"
+ }
+ function headOfAbove() {
+ nonLocalisedAlternativesDisplayOfMaster | head -n $1
+ }
+ MASTER="%{?1}"
+ LOCAL_LINK="%{?2}"
+ FAMILY="%{?3}"
+ rm -f %{_localstatedir}/lib/rpm-state/"$MASTER"_$FAMILY > /dev/null
+ if nonLocalisedAlternativesDisplayOfMaster > /dev/null ; then
+ if headOfAbove 1 | grep -q manual ; then
+ if headOfAbove 2 | tail -n 1 | grep -q %{compatiblename} ; then
+ headOfAbove 2 >
%{_localstatedir}/lib/rpm-state/"$MASTER"_"$FAMILY"
+ fi
+ fi
+ fi
+}
+
+%define save_and_remove_alternatives() %{expand:
+ if [ "x$debug" == "xtrue" ] ; then
+ set -x
+ fi
+ upgrade1_uninstal0=%{?3}
+ if [ "0$upgrade1_uninstal0" -gt 0 ] ; then # removal of this condition will
cause persistence between uninstall
+ %{save_alternatives %{?1} %{?2} %{?4}}
+ fi
+ alternatives --remove "%{?1}" "%{?2}"
+}
+
+%define set_if_needed_alternatives() %{expand:
+ MASTER="%{?1}"
+ FAMILY="%{?2}"
+
ALTERNATIVES_FILE="%{_localstatedir}/lib/rpm-state/$MASTER"_"$FAMILY"
+ if [ -e "$ALTERNATIVES_FILE" ] ; then
+ rm "$ALTERNATIVES_FILE"
+ alternatives --set $MASTER $FAMILY
+ fi
+}
+
%define post_script() %{expand:
update-desktop-database %{_datadir}/applications &> /dev/null || :
@@ -428,14 +498,18 @@ exit 0
}
%define alternatives_java_install() %{expand:
+if [ "x$debug" == "xtrue" ] ; then
+ set -x
+fi
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
ext=.gz
+key=java
alternatives \\
- --install %{_bindir}/java java %{jrebindir -- %{?1}}/java $PRIORITY --family
%{name}.%{_arch} \\
+ --install %{_bindir}/java $key %{jrebindir -- %{?1}}/java $PRIORITY --family %{family}
\\
--slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir -- %{?1}} \\
--slave %{_bindir}/%{alt_java_name} %{alt_java_name} %{jrebindir --
%{?1}}/%{alt_java_name} \\
--slave %{_bindir}/jjs jjs %{jrebindir -- %{?1}}/jjs \\
@@ -473,11 +547,17 @@ alternatives \\
--slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \\
%{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1$ext
+%{set_if_needed_alternatives $key %{family}}
+
for X in %{origin} %{javaver} ; do
- alternatives --install %{_jvmdir}/jre-"$X" jre_"$X"
%{_jvmdir}/%{jredir -- %{?1}} $PRIORITY --family %{name}.%{_arch}
+ key=jre_"$X"
+ alternatives --install %{_jvmdir}/jre-"$X" $key %{_jvmdir}/%{jredir -- %{?1}}
$PRIORITY --family %{family}
+ %{set_if_needed_alternatives $key %{family}}
done
-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin}
%{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY --family %{name}.%{_arch}
+key=jre_%{javaver}_%{origin}
+alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} $key %{_jvmdir}/%{jrelnk --
%{?1}} $PRIORITY --family %{family}
+%{set_if_needed_alternatives $key %{family}}
}
%define post_headless() %{expand:
@@ -510,10 +590,14 @@ exit 0
%define postun_headless() %{expand:
- alternatives --remove java %{jrebindir -- %{?1}}/java
- alternatives --remove jre_%{origin} %{_jvmdir}/%{jredir -- %{?1}}
- alternatives --remove jre_%{javaver} %{_jvmdir}/%{jredir -- %{?1}}
- alternatives --remove jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}}
+ if [ "x$debug" == "xtrue" ] ; then
+ set -x
+ fi
+ post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
+ %{save_and_remove_alternatives java %{jrebindir -- %{?1}}/java $post_state
%{family}}
+ %{save_and_remove_alternatives jre_%{origin} %{_jvmdir}/%{jredir -- %{?1}} $post_state
%{family}}
+ %{save_and_remove_alternatives jre_%{javaver} %{_jvmdir}/%{jredir -- %{?1}}
$post_state %{family}}
+ %{save_and_remove_alternatives jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}}
$post_state %{family}}
}
%define posttrans_script() %{expand:
@@ -522,14 +606,18 @@ exit 0
%define alternatives_javac_install() %{expand:
+if [ "x$debug" == "xtrue" ] ; then
+ set -x
+fi
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
ext=.gz
+key=javac
alternatives \\
- --install %{_bindir}/javac javac %{sdkbindir -- %{?1}}/javac $PRIORITY --family
%{name}.%{_arch} \\
+ --install %{_bindir}/javac $key %{sdkbindir -- %{?1}}/javac $PRIORITY --family
%{family} \\
--slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir -- %{?1}} \\
--slave %{_bindir}/appletviewer appletviewer %{sdkbindir -- %{?1}}/appletviewer \\
--slave %{_bindir}/clhsdb clhsdb %{sdkbindir -- %{?1}}/clhsdb \\
@@ -623,12 +711,17 @@ alternatives \\
--slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \\
%{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1$ext
+%{set_if_needed_alternatives $key %{family}}
+
for X in %{origin} %{javaver} ; do
- alternatives \\
- --install %{_jvmdir}/java-"$X" java_sdk_"$X" %{_jvmdir}/%{sdkdir
-- %{?1}} $PRIORITY --family %{name}.%{_arch}
+ key=java_sdk_"$X"
+ alternatives --install %{_jvmdir}/java-"$X" $key %{_jvmdir}/%{sdkdir --
%{?1}} $PRIORITY --family %{family}
+ %{set_if_needed_alternatives $key %{family}}
done
-update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family
%{name}.%{_arch}
+key=java_sdk_%{javaver}_%{origin}
+alternatives --install %{_jvmdir}/java-%{javaver}-%{origin} $key %{_jvmdir}/%{sdkdir --
%{?1}} $PRIORITY --family %{family}
+%{set_if_needed_alternatives $key %{family}}
}
%define post_devel() %{expand:
@@ -639,10 +732,14 @@ exit 0
}
%define postun_devel() %{expand:
- alternatives --remove javac %{sdkbindir -- %{?1}}/javac
- alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
- alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdkdir -- %{?1}}
- alternatives --remove java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
+ if [ "x$debug" == "xtrue" ] ; then
+ set -x
+ fi
+ post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
+ %{save_and_remove_alternatives javac %{sdkbindir -- %{?1}}/javac $post_state
%{family}}
+ %{save_and_remove_alternatives java_sdk_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
$post_state %{family}}
+ %{save_and_remove_alternatives java_sdk_%{javaver} %{_jvmdir}/%{sdkdir -- %{?1}}
$post_state %{family}}
+ %{save_and_remove_alternatives java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir --
%{?1}} $post_state %{family}}
update-desktop-database %{_datadir}/applications &> /dev/null || :
@@ -659,36 +756,49 @@ exit 0
}
%define alternatives_javadoc_install() %{expand:
+if [ "x$debug" == "xtrue" ] ; then
+ set -x
+fi
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
-alternatives \\
- --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir --
%{?1}}/api \\
- $PRIORITY --family %{name}
+key=javadocdir
+alternatives --install %{_javadocdir}/java $key %{_javadocdir}/%{uniquejavadocdir --
%{?1}}/api $PRIORITY --family %{family_noarch}
+%{set_if_needed_alternatives $key %{family_noarch}}
exit 0
}
%define postun_javadoc() %{expand:
- alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api
+if [ "x$debug" == "xtrue" ] ; then
+ set -x
+fi
+ post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
+ %{save_and_remove_alternatives javadocdir %{_javadocdir}/%{uniquejavadocdir --
%{?1}}/api $post_state %{family_noarch}}
exit 0
}
%define alternatives_javadoczip_install() %{expand:
+if [ "x$debug" == "xtrue" ] ; then
+ set -x
+fi
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
-
-alternatives \\
- --install %{_javadocdir}/java-zip javadoczip %{_javadocdir}/%{uniquejavadocdir --
%{?1}}.zip \\
- $PRIORITY --family %{name}
+key=javadoczip
+alternatives --install %{_javadocdir}/java-zip $key %{_javadocdir}/%{uniquejavadocdir --
%{?1}}.zip $PRIORITY --family %{family_noarch}
+%{set_if_needed_alternatives $key %{family_noarch}}
exit 0
}
%define postun_javadoc_zip() %{expand:
- alternatives --remove javadoczip %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
+ if [ "x$debug" == "xtrue" ] ; then
+ set -x
+ fi
+ post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
+ %{save_and_remove_alternatives javadoczip %{_javadocdir}/%{uniquejavadocdir --
%{?1}}.zip $post_state %{family_noarch}}
exit 0
}
@@ -818,8 +928,10 @@ exit 0
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnio.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnpt.so
%ifarch %{sa_arches}
+%ifnarch %{zero_arches}
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsaproc.so
%endif
+%endif
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsctp.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsunec.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsystemconf.so
@@ -995,8 +1107,10 @@ exit 0
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jconsole.jar
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/orb.idl
%ifarch %{sa_arches}
+%ifnarch %{zero_arches}
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/sa-jdi.jar
%endif
+%endif
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/dt.jar
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jexec
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/tools.jar
@@ -1293,7 +1407,7 @@ URL:
http://openjdk.java.net/
# FILE_NAME_ROOT=%%{shenandoah_project}-%%{shenandoah_repo}-${VERSION}
# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
# where the source is obtained from
http://hg.openjdk.java.net/%%{project}/%%{repo}
-Source0: openjdk-%{project}-%{repo}-jdk8u322-ga-aarch32-20220131-4curve.tar.xz
+Source0: openjdk-%{project}-%{repo}-jdk8u332-ga-aarch32-20220422-4curve.tar.xz
# Custom README for -src subpackage
Source2: README.md
@@ -1373,6 +1487,7 @@ Patch1011: rh1991003-enable_fips_keys_import.patch
# RH2021263: Resolve outstanding FIPS issues
Patch1014: rh2021263-fips_ensure_security_initialised.patch
Patch1015: rh2021263-fips_missing_native_returns.patch
+Patch1016: rh2021263-fips_separate_policy_and_fips_init.patch
#############################################
#
@@ -1404,8 +1519,8 @@ Patch600: rh1750419-redhat_alt_java.patch
# JDK-8218811: replace open by os::open in hotspot coding
# This fixes a GCC 10 build issue
Patch111: jdk8218811-perfMemory_linux.patch
-# Similar for GCC 11
-Patch112: java-1.8.0-openjdk-gcc11.patch
+# JDK-8281098, PR3836: Extra compiler flags not passed to adlc build
+Patch112: jdk8281098-pr3836-pass_compiler_flags_to_adlc.patch
#############################################
#
@@ -1450,6 +1565,10 @@ Patch203: jdk8042159-allow_using_system_installed_lcms2-root.patch
Patch204: jdk8042159-allow_using_system_installed_lcms2-jdk.patch
# JDK-8195607, PR3776, RH1760437: sun/security/pkcs11/Secmod/TestNssDbSqlite.java failed
with "NSS initialization failed" on NSS 3.34.1
Patch580: jdk8195607-pr3776-rh1760437-nss_sqlite_db_config.patch
+# JDK-8257794: Zero: assert(istate->_stack_limit ==
istate->_thread->last_Java_sp() + 1) failed: wrong on Linux/x86_32
+Patch581: jdk8257794-remove_broken_assert.patch
+# JDK-8282231: x86-32: runtime call to SharedRuntime::ldiv corrupts registers
+Patch582: jdk8282231-x86_32-missing_call_effects.patch
#############################################
#
@@ -1525,16 +1644,10 @@ BuildRequires: pkgconfig
BuildRequires: xorg-x11-proto-devel
BuildRequires: zip
BuildRequires: unzip
-# Use OpenJDK 7 where available (on RHEL) to avoid
-# having to use the rhel-7.x-java-unsafe-candidate hack
-%if ! 0%{?fedora} && 0%{?rhel} <= 7
# Require a boot JDK which doesn't fail due to RH1482244
-BuildRequires: java-1.7.0-openjdk-devel >= 1.7.0.151-2.6.11.3
-%else
BuildRequires: java-1.8.0-openjdk-aarch32-devel
-%endif
# Zero-assembler build requirement
-%ifnarch %{jit_arches}
+%ifarch %{zero_arches}
BuildRequires: libffi-devel
%endif
# 2021e required as of JDK-8275766 in January 2022 CPU
@@ -1727,7 +1840,8 @@ Requires: javapackages-filesystem
Obsoletes: javadoc-slowdebug < 1:1.8.0.222.b10-1
BuildArch: noarch
-%{java_javadoc_rpo %{nil}}
+%{java_javadoc_rpo -- %{nil} -zip}
+%{java_javadoc_rpo -- %{nil} %{nil}}
%description javadoc
The %{origin_nice} %{majorver} API documentation.
@@ -1740,7 +1854,7 @@ Requires: javapackages-filesystem
Obsoletes: javadoc-zip-slowdebug < 1:1.8.0.222.b10-1
BuildArch: noarch
-%{java_javadoc_rpo %{nil}}
+%{java_javadoc_rpo -- %{nil} %{nil}}
%description javadoc-zip
The %{origin_nice} %{majorver} API documentation compressed in a single archive.
@@ -1892,6 +2006,8 @@ sh %{SOURCE12}
%patch111
%patch112
%patch580
+%patch581
+%patch582
# RPM-only fixes
%patch539
@@ -1908,6 +2024,7 @@ sh %{SOURCE12}
%patch1011
%patch1014
%patch1015
+%patch1016
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -2004,10 +2121,9 @@ export EXTRA_CFLAGS EXTRA_ASFLAGS
function buildjdk() {
local outputdir=${1}
- local installdir=${2}
- local buildjdk=${3}
- local maketargets=${4}
- local debuglevel=${5}
+ local buildjdk=${2}
+ local maketargets="${3}"
+ local debuglevel=${4}
local top_srcdir_abs_path=$(pwd)/%{top_level_dir_name}
# Variable used in hs_err hook on build failures
@@ -2017,7 +2133,7 @@ function buildjdk() {
${buildjdk}/bin/java -version
echo "Building 8u%{updatever}-%{buildver}, milestone %{milestone}"
- mkdir -p ${outputdir} ${installdir}
+ mkdir -p ${outputdir}
pushd ${outputdir}
bash ${top_srcdir_abs_path}/configure \
@@ -2060,24 +2176,16 @@ make \
SCTP_WERROR= \
${maketargets} || ( pwd; find ${top_srcdir_abs_path} ${top_builddir_abs_path} -name
"hs_err_pid*.log" | xargs cat && false )
-# the build (erroneously) removes read permissions from some jars
-# this is a regression in OpenJDK 7 (our compiler):
-#
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
-find images/%{jdkimage} -iname '*.jar' -exec chmod ugo+r {} \;
-chmod ugo+r images/%{jdkimage}/lib/ct.sym
-
-# remove redundant *diz and *debuginfo files
- find images/%{jdkimage} -iname '*.diz' -exec rm -v {} \;
- find images/%{jdkimage} -iname '*.debuginfo' -exec rm -v {} \;
-
-# Build screws up permissions on binaries
-#
https://bugs.openjdk.java.net/browse/JDK-8173610
-find images/%{jdkimage} -iname '*.so' -exec chmod +x {} \;
-find images/%{jdkimage}/bin/ -exec chmod +x {} \;
+ popd
+}
-popd >& /dev/null
+function installjdk() {
+ local outputdir=${1}
+ local installdir=${2}
+ local imagepath=${installdir}/images/%{jdkimage}
echo "Installing build from ${outputdir} to ${installdir}..."
+ mkdir -p ${installdir}
echo "Installing images..."
mv ${outputdir}/images ${installdir}
if [ -d ${outputdir}/bundles ] ; then
@@ -2093,8 +2201,35 @@ popd >& /dev/null
echo "Removing output directory...";
rm -rf ${outputdir}
%endif
+
+ if [ -d ${imagepath} ] ; then
+ # the build (erroneously) removes read permissions from some jars
+ # this is a regression in OpenJDK 7 (our compiler):
+ #
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
+ find ${imagepath} -iname '*.jar' -exec chmod ugo+r {} \;
+ chmod ugo+r ${imagepath}/lib/ct.sym
+
+ # remove redundant *diz and *debuginfo files
+ find ${imagepath} -iname '*.diz' -exec rm -v {} \;
+ find ${imagepath} -iname '*.debuginfo' -exec rm -v {} \;
+
+ # Build screws up permissions on binaries
+ #
https://bugs.openjdk.java.net/browse/JDK-8173610
+ find ${imagepath} -iname '*.so' -exec chmod +x {} \;
+ find ${imagepath}/bin/ -exec chmod +x {} \;
+ fi
}
+%if %{build_hotspot_first}
+ # Build a fresh libjvm.so first and use it to bootstrap
+ cp -LR --preserve=mode,timestamps %{bootjdk} newboot
+ systemjdk=$(pwd)/newboot
+ buildjdk build/newboot ${systemjdk} %{hotspot_target} "release"
"bundled"
+ mv build/newboot/hotspot/dist/jre/lib/%{archinstall}/server/libjvm.so
newboot/jre/lib/%{archinstall}/server
+%else
+ systemjdk=%{bootjdk}
+%endif
+
for suffix in %{build_loop} ; do
if [ "x$suffix" = "x" ] ; then
debugbuild=release
@@ -2103,7 +2238,6 @@ else
debugbuild=`echo $suffix | sed "s/-//g"`
fi
-systemjdk=/usr/lib/jvm/java-openjdk
builddir=%{buildoutputdir -- $suffix}
bootbuilddir=boot${builddir}
installdir=%{installoutputdir -- $suffix}
@@ -2121,11 +2255,14 @@ else
fi
if ${run_bootstrap} ; then
-buildjdk ${bootbuilddir} ${bootinstalldir} ${systemjdk} "%{bootstrap_targets}"
${debugbuild}
-buildjdk ${builddir} ${installdir} $(pwd)/${bootinstalldir}/images/%{jdkimage}
"${maketargets}" ${debugbuild}
+ buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild}
+ installjdk ${bootbuilddir} ${bootinstalldir}
+ buildjdk ${builddir} $(pwd)/${bootinstalldir}/images/%{jdkimage}
"${maketargets}" ${debugbuild}
+ installjdk ${builddir} ${installdir}
%{!?with_artifacts:rm -rf ${bootinstalldir}}
else
-buildjdk ${builddir} ${installdir} ${systemjdk} "${maketargets}" ${debugbuild}
+ buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild}
+ installjdk ${builddir} ${installdir}
fi
# Install nss.cfg right away as we will be using the JRE above
@@ -2246,7 +2383,9 @@ end
run -version
EOF
+%ifarch %{gdb_arches}
grep 'JavaCallWrapper::JavaCallWrapper' gdb.out
+%endif
# Check src.zip has all sources. See RHBZ#1130490
jar -tf $JAVA_HOME/src.zip | grep 'sun.misc.Unsafe'
@@ -2744,6 +2883,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Tue May 03 2022 Alex Kashchenko <akashche(a)redhat.com> - 1:1.8.0.332.b09-1
+- update sources to 8u332
+- sync with mainline package
+
* Fri Feb 11 2022 Alex Kashchenko <akashche(a)redhat.com> - 1:1.8.0.322.b06-1
- update sources to 8u322
- sync with mainline package
diff --git a/java-1.8.0-openjdk-gcc11.patch b/java-1.8.0-openjdk-gcc11.patch
deleted file mode 100644
index 2d0820d..0000000
--- a/java-1.8.0-openjdk-gcc11.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-diff --git a/openjdk/hotspot/src/share/vm/adlc/adlparse.cpp
b/openjdk/hotspot/src/share/vm/adlc/adlparse.cpp
-index 31955ff7..6dcd90ac 100644
---- openjdk/hotspot/src/share/vm/adlc/adlparse.cpp
-+++ openjdk/hotspot/src/share/vm/adlc/adlparse.cpp
-@@ -4564,7 +4564,7 @@ char *ADLParser::get_paren_expr(const char *description, bool
include_location)
- // string(still inside the file buffer). Returns a pointer to the string or
- // NULL if some other token is found instead.
- char *ADLParser::get_ident_common(bool do_preproc) {
-- register char c;
-+ char c;
- char *start; // Pointer to start of token
- char *end; // Pointer to end of token
-
-@@ -4762,7 +4762,7 @@ char *ADLParser::get_unique_ident(FormDict& dict, const char*
nameDescription){
- // invokes a parse_err if the next token is not an integer.
- // This routine does not leave the integer null-terminated.
- int ADLParser::get_int(void) {
-- register char c;
-+ char c;
- char *start; // Pointer to start of token
- char *end; // Pointer to end of token
- int result; // Storage for integer result
-diff --git a/openjdk/hotspot/src/share/vm/adlc/arena.cpp
b/openjdk/hotspot/src/share/vm/adlc/arena.cpp
-index d7e4fc6e..406187ae 100644
---- openjdk/hotspot/src/share/vm/adlc/arena.cpp
-+++ openjdk/hotspot/src/share/vm/adlc/arena.cpp
-@@ -79,7 +79,7 @@ Arena::Arena( Arena *a )
- // Total of all Chunks in arena
- size_t Arena::used() const {
- size_t sum = _chunk->_len - (_max-_hwm); // Size leftover in this Chunk
-- register Chunk *k = _first;
-+ Chunk *k = _first;
- while( k != _chunk) { // Whilst have Chunks in a row
- sum += k->_len; // Total size of this Chunk
- k = k->_next; // Bump along to next Chunk
-@@ -93,7 +93,7 @@ void* Arena::grow( size_t x ) {
- // Get minimal required size. Either real big, or even bigger for giant objs
- size_t len = max(x, Chunk::size);
-
-- register Chunk *k = _chunk; // Get filled-up chunk address
-+ Chunk *k = _chunk; // Get filled-up chunk address
- _chunk = new (len) Chunk(len);
-
- if( k ) k->_next = _chunk; // Append new chunk to end of linked list
-diff --git a/openjdk/hotspot/src/share/vm/adlc/dict2.cpp
b/openjdk/hotspot/src/share/vm/adlc/dict2.cpp
-index f341a2b6..2dc60b25 100644
---- openjdk/hotspot/src/share/vm/adlc/dict2.cpp
-+++ openjdk/hotspot/src/share/vm/adlc/dict2.cpp
-@@ -283,9 +283,9 @@ void Dict::print(PrintKeyOrValue print_key, PrintKeyOrValue
print_value) {
- // limited to MAXID characters in length. Experimental evidence on 150K of
- // C text shows excellent spreading of values for any size hash table.
- int hashstr(const void *t) {
-- register char c, k = 0;
-- register int sum = 0;
-- register const char *s = (const char *)t;
-+ char c, k = 0;
-+ int sum = 0;
-+ const char *s = (const char *)t;
-
- while (((c = s[k]) != '\0') && (k < MAXID-1)) { // Get characters
till nul
- c = (char) ((c << 1) + 1); // Characters are always odd!
-diff --git a/openjdk/hotspot/src/share/vm/adlc/main.cpp
b/openjdk/hotspot/src/share/vm/adlc/main.cpp
-index 52044f12..40bcda74 100644
---- openjdk/hotspot/src/share/vm/adlc/main.cpp
-+++ openjdk/hotspot/src/share/vm/adlc/main.cpp
-@@ -58,7 +58,7 @@ int main(int argc, char *argv[])
-
- // Read command line arguments and file names
- for( int i = 1; i < argc; i++ ) { // For all arguments
-- register char *s = argv[i]; // Get option/filename
-+ char *s = argv[i]; // Get option/filename
-
- if( *s++ == '-' ) { // It's a flag? (not a filename)
- if( !*s ) { // Stand-alone `-' means stdin
diff --git a/jdk8257794-remove_broken_assert.patch
b/jdk8257794-remove_broken_assert.patch
new file mode 100644
index 0000000..bb88013
--- /dev/null
+++ b/jdk8257794-remove_broken_assert.patch
@@ -0,0 +1,13 @@
+diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
+--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
+@@ -493,9 +493,6 @@
+ assert(labs(istate->_stack_base - istate->_stack_limit) ==
(istate->_method->max_stack() + extra_stack_entries
+
+ 1), "bad stack limit");
+ }
+-#ifndef SHARK
+- IA32_ONLY(assert(istate->_stack_limit == istate->_thread->last_Java_sp() +
1, "wrong"));
+-#endif // !SHARK
+ }
+ // Verify linkages.
+ interpreterState l = istate;
diff --git a/jdk8281098-pr3836-pass_compiler_flags_to_adlc.patch
b/jdk8281098-pr3836-pass_compiler_flags_to_adlc.patch
new file mode 100644
index 0000000..774a08e
--- /dev/null
+++ b/jdk8281098-pr3836-pass_compiler_flags_to_adlc.patch
@@ -0,0 +1,67 @@
+# HG changeset patch
+# User Andrew John Hughes <gnu_andrew(a)member.fsf.org>
+# Date 1620365804 -3600
+# Fri May 07 06:36:44 2021 +0100
+# Node ID 39b62f35eca823b4c9a98bc1dc0cb9acb87360f8
+# Parent 723b59ed1afe878c5cd35f080399c8ceec4f776b
+PR3836: Extra compiler flags not passed to adlc build
+
+diff --git openjdk.orig/hotspot/make/aix/makefiles/adlc.make
openjdk/hotspot/make/aix/makefiles/adlc.make
+--- openjdk.orig/hotspot/make/aix/makefiles/adlc.make
++++ openjdk/hotspot/make/aix/makefiles/adlc.make
+@@ -69,6 +69,11 @@
+ CFLAGS_WARN = -w
+ CFLAGS += $(CFLAGS_WARN)
+
++# Extra flags from gnumake's invocation or environment
++CFLAGS += $(EXTRA_CFLAGS)
++LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
++ASFLAGS += $(EXTRA_ASFLAGS)
++
+ OBJECTNAMES = \
+ adlparse.o \
+ archDesc.o \
+diff --git openjdk.orig/hotspot/make/bsd/makefiles/adlc.make
openjdk/hotspot/make/bsd/makefiles/adlc.make
+--- openjdk.orig/hotspot/make/bsd/makefiles/adlc.make
++++ openjdk/hotspot/make/bsd/makefiles/adlc.make
+@@ -71,6 +71,11 @@
+ endif
+ CFLAGS += $(CFLAGS_WARN)
+
++# Extra flags from gnumake's invocation or environment
++CFLAGS += $(EXTRA_CFLAGS)
++LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
++ASFLAGS += $(EXTRA_ASFLAGS)
++
+ OBJECTNAMES = \
+ adlparse.o \
+ archDesc.o \
+diff --git openjdk.orig/hotspot/make/linux/makefiles/adlc.make
openjdk/hotspot/make/linux/makefiles/adlc.make
+--- openjdk.orig/hotspot/make/linux/makefiles/adlc.make
++++ openjdk/hotspot/make/linux/makefiles/adlc.make
+@@ -69,6 +69,11 @@
+ CFLAGS_WARN = $(WARNINGS_ARE_ERRORS)
+ CFLAGS += $(CFLAGS_WARN)
+
++# Extra flags from gnumake's invocation or environment
++CFLAGS += $(EXTRA_CFLAGS)
++LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
++ASFLAGS += $(EXTRA_ASFLAGS)
++
+ OBJECTNAMES = \
+ adlparse.o \
+ archDesc.o \
+diff --git openjdk.orig/hotspot/make/solaris/makefiles/adlc.make
openjdk/hotspot/make/solaris/makefiles/adlc.make
+--- openjdk.orig/hotspot/make/solaris/makefiles/adlc.make
++++ openjdk/hotspot/make/solaris/makefiles/adlc.make
+@@ -85,6 +85,10 @@
+ endif
+ CFLAGS += $(CFLAGS_WARN)
+
++# Extra flags from gnumake's invocation or environment
++CFLAGS += $(EXTRA_CFLAGS)
++ASFLAGS += $(EXTRA_ASFLAGS)
++
+ ifeq ("${Platform_compiler}", "sparcWorks")
+ # Enable the following CFLAGS addition if you need to compare the
+ # built ELF objects.
diff --git a/jdk8282231-x86_32-missing_call_effects.patch
b/jdk8282231-x86_32-missing_call_effects.patch
new file mode 100644
index 0000000..ab341b6
--- /dev/null
+++ b/jdk8282231-x86_32-missing_call_effects.patch
@@ -0,0 +1,35 @@
+diff --git openjdk.orig/hotspot/src/cpu/x86/vm/x86_32.ad
openjdk/hotspot/src/cpu/x86/vm/x86_32.ad
+index c8f4ee1613..cc0f4eef14 100644
+--- openjdk.orig/hotspot/src/cpu/x86/vm/x86_32.ad
++++ openjdk/hotspot/src/cpu/x86/vm/x86_32.ad
+@@ -1,5 +1,5 @@
+ //
+-// Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
++// Copyright (c) 1997, 2022, 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
+@@ -7665,9 +7665,9 @@ instruct divI_eReg(eAXRegI rax, eDXRegI rdx, eCXRegI div, eFlagsReg
cr) %{
+ %}
+
+ // Divide Register Long
+-instruct divL_eReg( eADXRegL dst, eRegL src1, eRegL src2, eFlagsReg cr, eCXRegI cx,
eBXRegI bx ) %{
++instruct divL_eReg(eADXRegL dst, eRegL src1, eRegL src2) %{
+ match(Set dst (DivL src1 src2));
+- effect( KILL cr, KILL cx, KILL bx );
++ effect(CALL);
+ ins_cost(10000);
+ format %{ "PUSH $src1.hi\n\t"
+ "PUSH $src1.lo\n\t"
+@@ -7713,9 +7713,9 @@ instruct modI_eReg(eDXRegI rdx, eAXRegI rax, eCXRegI div, eFlagsReg
cr) %{
+ %}
+
+ // Remainder Register Long
+-instruct modL_eReg( eADXRegL dst, eRegL src1, eRegL src2, eFlagsReg cr, eCXRegI cx,
eBXRegI bx ) %{
++instruct modL_eReg(eADXRegL dst, eRegL src1, eRegL src2) %{
+ match(Set dst (ModL src1 src2));
+- effect( KILL cr, KILL cx, KILL bx );
++ effect(CALL);
+ ins_cost(10000);
+ format %{ "PUSH $src1.hi\n\t"
+ "PUSH $src1.lo\n\t"
diff --git a/rh2021263-fips_separate_policy_and_fips_init.patch
b/rh2021263-fips_separate_policy_and_fips_init.patch
new file mode 100644
index 0000000..e237841
--- /dev/null
+++ b/rh2021263-fips_separate_policy_and_fips_init.patch
@@ -0,0 +1,98 @@
+commit aaf92165ad1cbb1c9818eb60178c91293e13b053
+Author: Andrew John Hughes <andrew(a)openjdk.org>
+Date: Mon Jan 24 15:13:14 2022 +0000
+
+ RH2021263: Improve Security initialisation, now FIPS support no longer relies on
crypto policy support
+
+diff --git openjdk.orig/jdk/src/share/classes/java/security/Security.java
openjdk/jdk/src/share/classes/java/security/Security.java
+index fa494b680f..b5aa5c749d 100644
+--- openjdk.orig/jdk/src/share/classes/java/security/Security.java
++++ openjdk/jdk/src/share/classes/java/security/Security.java
+@@ -57,10 +57,6 @@ public final class Security {
+ private static final Debug sdebug =
+ Debug.getInstance("properties");
+
+- /* System property file*/
+- private static final String SYSTEM_PROPERTIES =
+- "/etc/crypto-policies/back-ends/java.config";
+-
+ /* The java.security properties */
+ private static Properties props;
+
+@@ -202,13 +198,6 @@ public final class Security {
+ }
+ }
+
+- String disableSystemProps =
System.getProperty("java.security.disableSystemPropertiesFile");
+- if (disableSystemProps == null &&
+- "true".equalsIgnoreCase(props.getProperty
+- ("security.useSystemPropertiesFile"))) {
+- loadedProps = loadedProps && SystemConfigurator.configure(props);
+- }
+-
+ if (!loadedProps) {
+ initializeStatic();
+ if (sdebug != null) {
+@@ -217,6 +206,28 @@ public final class Security {
+ }
+ }
+
++ String disableSystemProps =
System.getProperty("java.security.disableSystemPropertiesFile");
++ if ((disableSystemProps == null ||
"false".equalsIgnoreCase(disableSystemProps)) &&
++
"true".equalsIgnoreCase(props.getProperty("security.useSystemPropertiesFile")))
{
++ if (!SystemConfigurator.configureSysProps(props)) {
++ if (sdebug != null) {
++ sdebug.println("WARNING: System properties could not be
loaded.");
++ }
++ }
++ }
++
++ // FIPS support depends on the contents of java.security so
++ // ensure it has loaded first
++ if (loadedProps) {
++ boolean fipsEnabled = SystemConfigurator.configureFIPS(props);
++ if (sdebug != null) {
++ if (fipsEnabled) {
++ sdebug.println("FIPS support enabled.");
++ } else {
++ sdebug.println("FIPS support disabled.");
++ }
++ }
++ }
+ }
+
+ /*
+diff --git openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+index d1f677597d..7da65b1d2c 100644
+--- openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
++++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+@@ -76,7 +76,7 @@ final class SystemConfigurator {
+ * java.security.disableSystemPropertiesFile property is not set and
+ * security.useSystemPropertiesFile is true.
+ */
+- static boolean configure(Properties props) {
++ static boolean configureSysProps(Properties props) {
+ boolean loadedProps = false;
+
+ try (BufferedInputStream bis =
+@@ -96,11 +96,19 @@ final class SystemConfigurator {
+ e.printStackTrace();
+ }
+ }
++ return loadedProps;
++ }
++
++ /*
++ * Invoked at the end of java.security.Security initialisation
++ * if java.security properties have been loaded
++ */
++ static boolean configureFIPS(Properties props) {
++ boolean loadedProps = false;
+
+ try {
+ if (enableFips()) {
+ if (sdebug != null) { sdebug.println("FIPS mode detected"); }
+- loadedProps = false;
+ // Remove all security providers
+ Iterator<Entry<Object, Object>> i =
props.entrySet().iterator();
+ while (i.hasNext()) {
diff --git a/sources b/sources
index 575900b..56b9080 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (openjdk-aarch32-port-jdk8u-jdk8u322-ga-aarch32-20220131-4curve.tar.xz) =
1ae0fc199d882ba95d9f5af2c85e04aec7cc3d3cf5882d2f4ecd3a1801cd38b730eb8b9bfad5ad93199cb9be7a2742ddb73d0cc2b4aedf869acd256a62f67783
+SHA512 (openjdk-aarch32-port-jdk8u-jdk8u332-ga-aarch32-20220422-4curve.tar.xz) =
aebc333f785005e5589f503694fcc102a8d6f6de4f8fdcda841e438f7b0d1a58dc9f9a18256a212b3b37435797469032e59f3aaa6cd6bc0b08198db3be2bc92d
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671