Added shenandoah hotspot

This commit is contained in:
Jiri Vanek 2018-06-22 17:24:43 +02:00
parent 21dec0ead1
commit 18a7b44611
5 changed files with 89 additions and 19 deletions

1
.gitignore vendored
View File

@ -4,3 +4,4 @@
/jdk-updates-jdk10u-jdk-10.0.1+10.tar.xz
/jdk-jdk-jdk-11+16.tar.xz
/jdk-jdk-jdk-11+19.tar.xz
/jdk-shenandoah-jdk-ac148db384ee.tar.xz

View File

@ -1,3 +1,8 @@
# JDK 11 branch of java-openjdk
Package of LTS OpenJDK 11
OpenJDK have release cadence of 6 months. but 3/4 of them are Short Term Supported for 6 months only. This package is designed to harbore them. Currently it is build on openJDK 11. LTSs (next is 15) will go as separate packages.
JDK11 is last LTS release of Java platform. It is bringing many cool improvements - http://openjdk.java.net/projects/jdk/11/ and is landing to your Fedora. Where it will be maintained for several years. You will always be allowed to install Used LTSs in build root, and alongside via alternatives.
See announcement: http://mail.openjdk.java.net/pipermail/discuss/2017-September/004281.html
See java SIG plans: https://jvanek.fedorapeople.org/devconf/2018/changesInjavaReleaseProcess.pdf
This is used by the jdk-11 module.

View File

@ -1,3 +1,26 @@
# RPM conditionals so as to be able to dynamically produce
# slowdebug/release builds. See:
# http://rpm.org/user_doc/conditional_builds.html
#
# Examples:
#
# Produce release *and* slowdebug builds on x86_64 (default):
# $ rpmbuild -ba java-1.8.0-openjdk.spec
#
# Produce only release builds (no slowdebug builds) on x86_64:
# $ rpmbuild -ba java-1.8.0-openjdk.spec --without slowdebug
#
# Only produce a release build on x86_64:
# $ fedpkg mockbuild --without slowdebug
#
# Only produce a debug build on x86_64:
# $ fedpkg local --without release
#
# Enable slowdebug builds by default on relevant arches.
%bcond_without slowdebug
# Enable release builds by default on relevant arches.
%bcond_without release
# note: parametrized macros are order-sensitive (unlike not-parametrized) even with normal macros
# also necessary when passing it as parameter to other macros. If not macro, then it is considered a switch
# see the difference between global and deffine:
@ -13,8 +36,12 @@
%global debug_on with full debug on
%global for_debug for packages with debug on
# by default we build normal build
%if %{with release}
%global include_normal_build 1
%else
%global include_normal_build 0
%endif
%if %{include_normal_build}
%global build_loop1 %{normal_suffix}
%else
@ -30,6 +57,7 @@
%global aot_arches x86_64 %{aarch64}
# By default, we build a debug build during main build on JIT architectures
%if %{with slowdebug}
%ifarch %{jit_arches}
# Temporarily disable slowdebug build for Aarch64 since it does not
# bootcycle. See JDK-8204331.
@ -41,6 +69,17 @@
%else
%global include_debug_build 0
%endif
%else
%global include_debug_build 0
%endif
# On x86_64 and AArch64, we use the Shenandoah HotSpot
%ifarch x86_64 %{aarch64}
%global use_shenandoah_hotspot 1
%else
%global use_shenandoah_hotspot 0
%endif
%if %{include_debug_build}
%global build_loop2 %{debug_suffix}
@ -66,6 +105,7 @@
%global targets all docs
%endif
# Filter out flags from the optflags macro that cause problems with the OpenJDK build
# We filter out -O flags so that the optimisation of HotSpot is not lowered from O3 to O2
# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands of warnings (100+mb logs)
@ -91,7 +131,7 @@
# fix for https://bugzilla.redhat.com/show_bug.cgi?id=1111349
%global _privatelibs libsplashscreen[.]so.*|libawt_xawt[.]so.*|libjawt[.]so.*|libjli[.]so.*|libattach[.]so.*|libawt[.]so.*|libextnet[.]so.*|libjsig[.]so.*|libawt_headless[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas[.]so.*|libjava[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjimage[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmanagement_agent[.]so.*|libmanagement_ext[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libprefs[.]so.*|librmi[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libverify[.]so.*|libzip[.]so.*
%global _privatelibs libjsoundalsa[.]so.*|libsplashscreen[.]so.*|libawt_xawt[.]so.*|libjawt[.]so.*|libjli[.]so.*|libattach[.]so.*|libawt[.]so.*|libextnet[.]so.*|libjsig[.]so.*|libawt_headless[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjimage[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmanagement_agent[.]so.*|libmanagement_ext[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libprefs[.]so.*|librmi[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libverify[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.*
%global __provides_exclude ^(%{_privatelibs})$
%global __requires_exclude ^(%{_privatelibs})$
@ -528,8 +568,8 @@ exit 0
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/client/
%ifarch %{jit_arches}
%ifnarch %{power64}
%attr(664, root, root) %ghost %{_jvmdir}/%{sdkdir -- %{?1}}/lib/server/classes.jsa
%attr(664, root, root) %ghost %{_jvmdir}/%{sdkdir -- %{?1}}/lib/client/classes.jsa
%attr(444, root, root) %ghost %{_jvmdir}/%{sdkdir -- %{?1}}/lib/server/classes.jsa
%attr(444, root, root) %ghost %{_jvmdir}/%{sdkdir -- %{?1}}/lib/client/classes.jsa
%endif
%endif
%dir %{etcjavasubdir}
@ -802,7 +842,7 @@ Provides: java-%{javaver}-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
# Prevent brp-java-repack-jars from being run
%global __jar_repack 0
Name: java-%{origin}
Name: java-%{javaver}-%{origin}
Version: %{newjavaver}.%{buildver}
Release: 1%{?dist}
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
@ -834,6 +874,10 @@ URL: http://openjdk.java.net/
Source0: jdk-jdk-jdk-%{majorver}+%{buildver}.tar.xz
# Shenandoah HotSpot
# current name used with tip and bleading edge may be incorrect
Source1: jdk-shenandoah-jdk-ac148db384ee.tar.xz
# Use 'generate_tarballs.sh' to generate the following tarballs
# They are based on code contained in the IcedTea7 project
@ -1123,7 +1167,7 @@ else
exit 12
fi
if [ %{include_debug_build} -eq 0 -a %{include_normal_build} -eq 0 ] ; then
echo "You have disabled both include_debug_build and include_debug_build. That is a no go."
echo "You have disabled both include_debug_build and include_normal_build. That is a no go."
exit 13
fi
%setup -q -c -n %{uniquesuffix ""} -T -a 0
@ -1134,6 +1178,15 @@ if [ $prioritylength -ne 7 ] ; then
exit 14
fi
%if %{use_shenandoah_hotspot}
# On Shenandoah-supported architectures, replace HotSpot with
# the Shenandoah version
pushd openjdk/src
rm -rf hotspot
tar -xf %{SOURCE1}
popd
%endif
# OpenJDK patches
# Remove libraries that are linked

View File

@ -1,2 +1,3 @@
SHA512 (systemtap-tapset-3.6.0pre02.tar.xz) = 848f42ef7ca751e723fd50e3a6da14c0965ad4da37ea3331568658e27497b7a7e4b9aad3dedd264ad0bb5566c37a92302b905f10258a4e2c89dc4ba609e55481
SHA512 (jdk-jdk-jdk-11+19.tar.xz) = f99aef9e7a4896dfbcdb80f620ad44e69e07760b7fcf100be8cd12070797f8e7a568baec998f32bf8727595d6ed246fd2b53ad9ce39e984859d5174015cedf7a
SHA512 (jdk-shenandoah-jdk-ac148db384ee.tar.xz) = 1aa6a6663eaa9e6cb681753a3015929fab5ff4e339cd718f96281ed6adcc5cf09e764732cc9a06cc97ae071ca4e70172f23909383ff8e777a5fc124069aa5d74

View File

@ -61,15 +61,12 @@ else
echo "${FILENAME} already exists, using"
fi
echo "nothing more TBD for 11 for now!!"
exit 0
echo "Touching spec: $SPEC"
sed -i "s/^%global\s\+project.*/%global project ${PROJECT_NAME}/" $SPEC
sed -i "s/^%global\s\+repo.*/%global repo ${REPO_NAME}/" $SPEC
sed -i "s/^%global\s\+revision.*/%global revision ${VERSION}/" $SPEC
#echo "Touching spec: $SPEC"
#sed -i "s/^%global\s\+project.*/%global project ${PROJECT_NAME}/" $SPEC
#sed -i "s/^%global\s\+repo.*/%global repo ${REPO_NAME}/" $SPEC
#sed -i "s/^%global\s\+revision.*/%global revision ${VERSION}/" $SPEC
# updated sources, resetting release
sed -i "s/^Release:.*/Release: $RELEASE.%{buildver}%{?dist}/" $SPEC
#sed -i "s/^Release:.*/Release: $RELEASE.%{buildver}%{?dist}/" $SPEC
#https://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#Bash
function levenshtein {
@ -111,14 +108,21 @@ if [ "x$VERSION" = "xtip" ] ; then
VERSION="tip"
else
#hardcoding version for anything else except tip
VERSION="aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20"
VERSION="tip"
fi
MAIN_REPO_NAME=$REPO_NAME
REPO_NAME=jdk8u-shenandoah
MAIN_REPO_NAME=shenandoah
REPO_NAME=jdk
#PROJECT_NAME=$REPO_NAME-$MAIN_REPO_NAME ???
MAIN_FILE_NAME_ROOT=$FILE_NAME_ROOT
FILE_NAME_ROOT=${PROJECT_NAME}-${REPO_NAME}-${VERSION}
FILENAME_SH=${FILE_NAME_ROOT}.tar.${COMPRESSION}
echo "this fialed last time, got http://hg.openjdk.java.net/shenandoah/jdk/archive/ac148db384ee.zip instead"
###TODO! compress only hotspot!!!
REPOS="hotspot"
###TODO! compress only hotspot!!!
exit 1
if [ ! -f ${FILENAME_SH} ] ; then
echo "Generating ${FILENAME_SH}"
@ -127,9 +131,15 @@ else
echo "${FILENAME_SH} already exists, using"
fi
mv jdk-jdk-tip.tar.xz jdk-shenandoah-jdk-tip.tar.xz
sed -i "s/^Source1:.*/Source1: ${FILENAME_SH}/" $SPEC
git --no-pager diff $SPEC
echo "shenandoah hotpsot source generated and used"
echo "nothing more for shenandoah jdk 11 now!"
exit 0
# find the most similar sources name and replace it by newly generated one.
echo "Old sources"
cat sources