Temporarily move x86 to use Zero in order to get a working build
Introduce architecture restriction logic for the gdb test. Disable on x86, x86_64, ppc64le & s390x while these are broken in rawhide. Replace GCC 11 patch to remove use of the register keyword with correct fix to ADLC build (JDK-8281098) Adjust JDK8199936/PR3533 -mstackrealign patch to instead pass -mincoming-stack-boundary=2 -mpreferred-stack-boundary=4 Refactor build functions so we can build just HotSpot without any attempt at installation. Explicitly list JIT architectures rather than relying on those with slowdebug builds Disable the serviceability agent on Zero architectures even when the architecture itself is supported Add backport of JDK-8257794 to fix bogus assert on slowdebug x86-32 Zero builds Resolves: rhbz#2045726 Related: rhbz#2051302 Related: rhbz#2041970
This commit is contained in:
parent
92c5ccf84c
commit
2988ce90ff
@ -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
|
|
@ -24,6 +24,15 @@
|
|||||||
%bcond_without release
|
%bcond_without release
|
||||||
# Remove build artifacts by default
|
# Remove build artifacts by default
|
||||||
%bcond_with artifacts
|
%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 1
|
||||||
|
%else
|
||||||
|
%global build_hotspot_first 0
|
||||||
|
%endif
|
||||||
|
|
||||||
# The -g flag says to use strip -g instead of full strip on DSOs or EXEs.
|
# 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.
|
# This fixes detailed NMT and other tools which need minimal debug info.
|
||||||
@ -91,9 +100,9 @@
|
|||||||
# Set of architectures for which we build fastdebug builds
|
# Set of architectures for which we build fastdebug builds
|
||||||
%global fastdebug_arches x86_64 ppc64le aarch64
|
%global fastdebug_arches x86_64 ppc64le aarch64
|
||||||
# Set of architectures with a Just-In-Time (JIT) compiler
|
# Set of architectures with a Just-In-Time (JIT) compiler
|
||||||
%global jit_arches %{debug_arches}
|
%global jit_arches %{aarch64} %{power64} sparcv9 sparc64 x86_64
|
||||||
# Set of architectures which use the Zero assembler port (!jit_arches)
|
# Set of architectures which use the Zero assembler port (!jit_arches)
|
||||||
%global zero_arches %{arm} ppc s390 s390x
|
%global zero_arches %{arm} %{ix86} ppc s390 s390x
|
||||||
# Set of architectures which run a full bootstrap cycle
|
# Set of architectures which run a full bootstrap cycle
|
||||||
%global bootstrap_arches %{jit_arches} %{zero_arches}
|
%global bootstrap_arches %{jit_arches} %{zero_arches}
|
||||||
# Set of architectures which support SystemTap tapsets
|
# Set of architectures which support SystemTap tapsets
|
||||||
@ -104,8 +113,15 @@
|
|||||||
# See https://bugzilla.redhat.com/show_bug.cgi?id=513605
|
# See https://bugzilla.redhat.com/show_bug.cgi?id=513605
|
||||||
# MetaspaceShared::generate_vtable_methods is not implemented for the PPC JIT
|
# MetaspaceShared::generate_vtable_methods is not implemented for the PPC JIT
|
||||||
%global share_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
|
%global share_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
|
||||||
|
# Set of architectures which support JFR
|
||||||
%global jfr_arches %{jit_arches}
|
%global jfr_arches %{jit_arches}
|
||||||
|
# Set of architectures where we verify backtraces with gdb (ideally all)
|
||||||
|
# Temporarily disable check on x86, x86_64, ppc64le and s390x as gdb crashes
|
||||||
|
# ../../gdb/objfiles.h:510: internal-error: sect_index_data not initialized
|
||||||
|
# A problem internal to GDB has been detected,
|
||||||
|
# further debugging may prove unreliable.
|
||||||
|
# See https://bugzilla.redhat.com/show_bug.cgi?id=2041970
|
||||||
|
%global gdb_arches sparcv9 sparc64 %{aarch64} %{arm} ppc s390
|
||||||
# Set of architectures for which alt-java has SSB mitigation
|
# Set of architectures for which alt-java has SSB mitigation
|
||||||
%global ssbd_arches x86_64
|
%global ssbd_arches x86_64
|
||||||
|
|
||||||
@ -143,7 +159,7 @@
|
|||||||
%global fastdebug_build %{nil}
|
%global fastdebug_build %{nil}
|
||||||
%endif
|
%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
|
# Build and test slowdebug first as it provides the best diagnostics
|
||||||
%global build_loop %{slowdebug_build} %{fastdebug_build} %{normal_build}
|
%global build_loop %{slowdebug_build} %{fastdebug_build} %{normal_build}
|
||||||
|
|
||||||
@ -156,6 +172,18 @@
|
|||||||
%global bootstrap_targets images
|
%global bootstrap_targets images
|
||||||
%global release_targets images docs-zip
|
%global release_targets images docs-zip
|
||||||
%global debug_targets images
|
%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.
|
# Disable LTO as this causes build failures at the moment.
|
||||||
# See RHBZ#1861401
|
# See RHBZ#1861401
|
||||||
@ -321,7 +349,7 @@
|
|||||||
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
|
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
|
||||||
# eg jdk8u60-b27 -> b27
|
# eg jdk8u60-b27 -> b27
|
||||||
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
|
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
|
||||||
%global rpmrelease 1
|
%global rpmrelease 2
|
||||||
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
|
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
|
||||||
# Release will be (where N is usually a number starting at 1):
|
# Release will be (where N is usually a number starting at 1):
|
||||||
# - 0.N%%{?extraver}%%{?dist} for EA releases,
|
# - 0.N%%{?extraver}%%{?dist} for EA releases,
|
||||||
@ -814,8 +842,10 @@ exit 0
|
|||||||
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnio.so
|
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnio.so
|
||||||
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnpt.so
|
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnpt.so
|
||||||
%ifarch %{sa_arches}
|
%ifarch %{sa_arches}
|
||||||
|
%ifnarch %{zero_arches}
|
||||||
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsaproc.so
|
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsaproc.so
|
||||||
%endif
|
%endif
|
||||||
|
%endif
|
||||||
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsctp.so
|
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsctp.so
|
||||||
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsunec.so
|
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsunec.so
|
||||||
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsystemconf.so
|
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsystemconf.so
|
||||||
@ -952,8 +982,10 @@ exit 0
|
|||||||
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jconsole.jar
|
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jconsole.jar
|
||||||
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/orb.idl
|
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/orb.idl
|
||||||
%ifarch %{sa_arches}
|
%ifarch %{sa_arches}
|
||||||
|
%ifnarch %{zero_arches}
|
||||||
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/sa-jdi.jar
|
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/sa-jdi.jar
|
||||||
%endif
|
%endif
|
||||||
|
%endif
|
||||||
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/dt.jar
|
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/dt.jar
|
||||||
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jexec
|
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jexec
|
||||||
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/tools.jar
|
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/tools.jar
|
||||||
@ -1215,7 +1247,7 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
|
|||||||
|
|
||||||
Name: java-%{javaver}-%{origin}
|
Name: java-%{javaver}-%{origin}
|
||||||
Version: %{javaver}.%{updatever}.%{buildver}
|
Version: %{javaver}.%{updatever}.%{buildver}
|
||||||
Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
|
Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
|
||||||
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
|
# 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
|
# 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
|
# also included the epoch in their virtual provides. This created a
|
||||||
@ -1358,8 +1390,8 @@ Patch600: rh1750419-redhat_alt_java.patch
|
|||||||
# JDK-8218811: replace open by os::open in hotspot coding
|
# JDK-8218811: replace open by os::open in hotspot coding
|
||||||
# This fixes a GCC 10 build issue
|
# This fixes a GCC 10 build issue
|
||||||
Patch111: jdk8218811-perfMemory_linux.patch
|
Patch111: jdk8218811-perfMemory_linux.patch
|
||||||
# Similar for GCC 11
|
# JDK-8281098, PR3836: Extra compiler flags not passed to adlc build
|
||||||
Patch112: %{name}-gcc11.patch
|
Patch112: jdk8281098-pr3836-pass_compiler_flags_to_adlc.patch
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
#
|
#
|
||||||
@ -1404,6 +1436,8 @@ Patch203: jdk8042159-allow_using_system_installed_lcms2-root.patch
|
|||||||
Patch204: jdk8042159-allow_using_system_installed_lcms2-jdk.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
|
# 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
|
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
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
#
|
#
|
||||||
@ -1479,16 +1513,10 @@ BuildRequires: pkgconfig
|
|||||||
BuildRequires: xorg-x11-proto-devel
|
BuildRequires: xorg-x11-proto-devel
|
||||||
BuildRequires: zip
|
BuildRequires: zip
|
||||||
BuildRequires: unzip
|
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
|
# 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
|
BuildRequires: java-%{buildjdkver}-openjdk-devel >= 1.7.0.151-2.6.11.3
|
||||||
%else
|
|
||||||
BuildRequires: java-1.8.0-openjdk-devel
|
|
||||||
%endif
|
|
||||||
# Zero-assembler build requirement
|
# Zero-assembler build requirement
|
||||||
%ifnarch %{jit_arches}
|
%ifarch %{zero_arches}
|
||||||
BuildRequires: libffi-devel
|
BuildRequires: libffi-devel
|
||||||
%endif
|
%endif
|
||||||
# 2021c required as of JDK-8274407 in January 2022 CPU
|
# 2021c required as of JDK-8274407 in January 2022 CPU
|
||||||
@ -1843,6 +1871,7 @@ sh %{SOURCE12}
|
|||||||
%patch111
|
%patch111
|
||||||
%patch112
|
%patch112
|
||||||
%patch580
|
%patch580
|
||||||
|
%patch581
|
||||||
|
|
||||||
# RPM-only fixes
|
# RPM-only fixes
|
||||||
%patch539
|
%patch539
|
||||||
@ -1953,10 +1982,9 @@ export EXTRA_CFLAGS EXTRA_ASFLAGS
|
|||||||
|
|
||||||
function buildjdk() {
|
function buildjdk() {
|
||||||
local outputdir=${1}
|
local outputdir=${1}
|
||||||
local installdir=${2}
|
local buildjdk=${2}
|
||||||
local buildjdk=${3}
|
local maketargets="${3}"
|
||||||
local maketargets=${4}
|
local debuglevel=${4}
|
||||||
local debuglevel=${5}
|
|
||||||
|
|
||||||
local top_srcdir_abs_path=$(pwd)/%{top_level_dir_name}
|
local top_srcdir_abs_path=$(pwd)/%{top_level_dir_name}
|
||||||
# Variable used in hs_err hook on build failures
|
# Variable used in hs_err hook on build failures
|
||||||
@ -1966,7 +1994,7 @@ function buildjdk() {
|
|||||||
${buildjdk}/bin/java -version
|
${buildjdk}/bin/java -version
|
||||||
echo "Building 8u%{updatever}-%{buildver}, milestone %{milestone}"
|
echo "Building 8u%{updatever}-%{buildver}, milestone %{milestone}"
|
||||||
|
|
||||||
mkdir -p ${outputdir} ${installdir}
|
mkdir -p ${outputdir}
|
||||||
pushd ${outputdir}
|
pushd ${outputdir}
|
||||||
|
|
||||||
bash ${top_srcdir_abs_path}/configure \
|
bash ${top_srcdir_abs_path}/configure \
|
||||||
@ -1975,7 +2003,7 @@ function buildjdk() {
|
|||||||
%else
|
%else
|
||||||
--disable-jfr \
|
--disable-jfr \
|
||||||
%endif
|
%endif
|
||||||
%ifnarch %{jit_arches}
|
%ifarch %{zero_arches}
|
||||||
--with-jvm-variants=zero \
|
--with-jvm-variants=zero \
|
||||||
%endif
|
%endif
|
||||||
--with-native-debug-symbols=internal \
|
--with-native-debug-symbols=internal \
|
||||||
@ -2011,24 +2039,16 @@ function buildjdk() {
|
|||||||
SCTP_WERROR= \
|
SCTP_WERROR= \
|
||||||
${maketargets} || ( pwd; find ${top_srcdir_abs_path} ${top_builddir_abs_path} -name "hs_err_pid*.log" | xargs cat && false )
|
${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
|
popd
|
||||||
# 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
|
function installjdk() {
|
||||||
find images/%{jdkimage} -iname '*.diz' -exec rm -v {} \;
|
local outputdir=${1}
|
||||||
find images/%{jdkimage} -iname '*.debuginfo' -exec rm -v {} \;
|
local installdir=${2}
|
||||||
|
local imagepath=${installdir}/images/%{jdkimage}
|
||||||
# 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 >& /dev/null
|
|
||||||
|
|
||||||
echo "Installing build from ${outputdir} to ${installdir}..."
|
echo "Installing build from ${outputdir} to ${installdir}..."
|
||||||
|
mkdir -p ${installdir}
|
||||||
echo "Installing images..."
|
echo "Installing images..."
|
||||||
mv ${outputdir}/images ${installdir}
|
mv ${outputdir}/images ${installdir}
|
||||||
if [ -d ${outputdir}/bundles ] ; then
|
if [ -d ${outputdir}/bundles ] ; then
|
||||||
@ -2044,8 +2064,35 @@ function buildjdk() {
|
|||||||
echo "Removing output directory...";
|
echo "Removing output directory...";
|
||||||
rm -rf ${outputdir}
|
rm -rf ${outputdir}
|
||||||
%endif
|
%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
|
for suffix in %{build_loop} ; do
|
||||||
if [ "x$suffix" = "x" ] ; then
|
if [ "x$suffix" = "x" ] ; then
|
||||||
debugbuild=release
|
debugbuild=release
|
||||||
@ -2054,7 +2101,6 @@ else
|
|||||||
debugbuild=`echo $suffix | sed "s/-//g"`
|
debugbuild=`echo $suffix | sed "s/-//g"`
|
||||||
fi
|
fi
|
||||||
|
|
||||||
systemjdk=/usr/lib/jvm/java-openjdk
|
|
||||||
builddir=%{buildoutputdir -- $suffix}
|
builddir=%{buildoutputdir -- $suffix}
|
||||||
bootbuilddir=boot${builddir}
|
bootbuilddir=boot${builddir}
|
||||||
installdir=%{installoutputdir -- $suffix}
|
installdir=%{installoutputdir -- $suffix}
|
||||||
@ -2072,11 +2118,14 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if ${run_bootstrap} ; then
|
if ${run_bootstrap} ; then
|
||||||
buildjdk ${bootbuilddir} ${bootinstalldir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild}
|
buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild}
|
||||||
buildjdk ${builddir} ${installdir} $(pwd)/${bootinstalldir}/images/%{jdkimage} "${maketargets}" ${debugbuild}
|
installjdk ${bootbuilddir} ${bootinstalldir}
|
||||||
|
buildjdk ${builddir} $(pwd)/${bootinstalldir}/images/%{jdkimage} "${maketargets}" ${debugbuild}
|
||||||
|
installjdk ${builddir} ${installdir}
|
||||||
%{!?with_artifacts:rm -rf ${bootinstalldir}}
|
%{!?with_artifacts:rm -rf ${bootinstalldir}}
|
||||||
else
|
else
|
||||||
buildjdk ${builddir} ${installdir} ${systemjdk} "${maketargets}" ${debugbuild}
|
buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild}
|
||||||
|
installjdk ${builddir} ${installdir}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Install nss.cfg right away as we will be using the JRE above
|
# Install nss.cfg right away as we will be using the JRE above
|
||||||
@ -2197,7 +2246,9 @@ end
|
|||||||
run -version
|
run -version
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
%ifarch %{gdb_arches}
|
||||||
grep 'JavaCallWrapper::JavaCallWrapper' gdb.out
|
grep 'JavaCallWrapper::JavaCallWrapper' gdb.out
|
||||||
|
%endif
|
||||||
|
|
||||||
# Check src.zip has all sources. See RHBZ#1130490
|
# Check src.zip has all sources. See RHBZ#1130490
|
||||||
jar -tf $JAVA_HOME/src.zip | grep 'sun.misc.Unsafe'
|
jar -tf $JAVA_HOME/src.zip | grep 'sun.misc.Unsafe'
|
||||||
@ -2637,6 +2688,20 @@ cjc.mainProgram(args)
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jan 20 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.322.b04-0.2.ea
|
||||||
|
- Temporarily move x86 to use Zero in order to get a working build
|
||||||
|
- Introduce architecture restriction logic for the gdb test. (RH2041970)
|
||||||
|
- Disable on x86, x86_64, ppc64le & s390x while these are broken in rawhide.
|
||||||
|
- Replace GCC 11 patch to remove use of the register keyword with correct fix to ADLC build (JDK-8281098)
|
||||||
|
- Adjust JDK8199936/PR3533 -mstackrealign patch to instead pass -mincoming-stack-boundary=2 -mpreferred-stack-boundary=4
|
||||||
|
- Refactor build functions so we can build just HotSpot without any attempt at installation.
|
||||||
|
- Explicitly list JIT architectures rather than relying on those with slowdebug builds
|
||||||
|
- Disable the serviceability agent on Zero architectures even when the architecture itself is supported
|
||||||
|
- Add backport of JDK-8257794 to fix bogus assert on slowdebug x86-32 Zero builds
|
||||||
|
- Resolves: rhbz#2045726
|
||||||
|
- Related: rhbz#2051302
|
||||||
|
- Related: rhbz#2041970
|
||||||
|
|
||||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.8.0.322.b04-0.1.ea.1
|
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.8.0.322.b04-0.1.ea.1
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ diff --git openjdk.orig///common/autoconf/flags.m4 openjdk///common/autoconf/fla
|
|||||||
+ # On 32-bit MacOSX the OS requires C-entry points to be 16 byte aligned.
|
+ # On 32-bit MacOSX the OS requires C-entry points to be 16 byte aligned.
|
||||||
+ # While waiting for a better solution, the current workaround is to use -mstackrealign
|
+ # While waiting for a better solution, the current workaround is to use -mstackrealign
|
||||||
+ # This is also required on Linux systems which use libraries compiled with SSE instructions
|
+ # This is also required on Linux systems which use libraries compiled with SSE instructions
|
||||||
+ REALIGN_CFLAG="-mstackrealign"
|
+ REALIGN_CFLAG="-mincoming-stack-boundary=2 -mpreferred-stack-boundary=4"
|
||||||
+ FLAGS_COMPILER_CHECK_ARGUMENTS([$REALIGN_CFLAG -Werror], [],
|
+ FLAGS_COMPILER_CHECK_ARGUMENTS([$REALIGN_CFLAG -Werror], [],
|
||||||
+ AC_MSG_ERROR([The selected compiler $CXX does not support -mstackrealign! Try to put another compiler in the path.])
|
+ AC_MSG_ERROR([The selected compiler $CXX does not support -mstackrealign! Try to put another compiler in the path.])
|
||||||
+ )
|
+ )
|
||||||
|
13
jdk8257794-remove_broken_assert.patch
Normal file
13
jdk8257794-remove_broken_assert.patch
Normal file
@ -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;
|
67
jdk8281098-pr3836-pass_compiler_flags_to_adlc.patch
Normal file
67
jdk8281098-pr3836-pass_compiler_flags_to_adlc.patch
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Andrew John Hughes <gnu_andrew@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.
|
Loading…
Reference in New Issue
Block a user