From 0aa49de140506882fd857dcf2f5d89961bf9bebc Mon Sep 17 00:00:00 2001 From: kuenking111 Date: Thu, 28 Jul 2022 20:52:54 +0800 Subject: [PATCH] I5JGAF: fix coding style and describe error --- 1 | 2715 +++++++++++++++++ ...nstraints_checkAlgorithm_performance.patch | 149 + fix_wrap_memcpy_undefined_gcc10_3.patch | 291 ++ ..._Blas_hotspot_function_in_Intrinsics.patch | 4 +- modify_coding_style_and_describe_error.patch | 56 + openjdk-1.8.0.spec | 14 +- 6 files changed, 3226 insertions(+), 3 deletions(-) create mode 100644 1 create mode 100644 Improve_AlgorithmConstraints_checkAlgorithm_performance.patch create mode 100644 fix_wrap_memcpy_undefined_gcc10_3.patch create mode 100644 modify_coding_style_and_describe_error.patch diff --git a/1 b/1 new file mode 100644 index 0000000..1d7ca26 --- /dev/null +++ b/1 @@ -0,0 +1,2715 @@ +# 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 + +# 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. +%global _find_debuginfo_opts -g + +# 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 define: +# See https://github.com/rpm-software-management/rpm/issues/127 to comments at "pmatilai commented on Aug 18, 2017" +%global debug_suffix_unquoted -slowdebug +# quoted one for shell operations +%global debug_suffix "%{debug_suffix_unquoted}" +%global normal_suffix "" + +# if you want only debug build but providing java build only normal build but set normalbuild_parameter +%global debug_warning This package has full debug on. Install only in need and remove asap. +%global debug_on with full debug on +%global for_debug for packages with debug on + +%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 +%global build_loop1 %{nil} +%endif + +%global aarch64 aarch64 +%global jit_arches x86_64 %{aarch64} +%global sa_arches x86_64 %{aarch64} +%global jfr_arches x86_64 %{aarch64} + +# By default, we build a debug build during main build on JIT architectures +%global include_debug_build 1 + +%if %{include_debug_build} +%global build_loop2 %{debug_suffix} +%else +%global build_loop2 %{nil} +%endif + +# if you disable both builds, then the build fails +%global build_loop %{build_loop1} %{build_loop2} +# note: that order: normal_suffix debug_suffix, in case of both enabled +# is expected in one single case at the end of the build +%global rev_build_loop %{build_loop2} %{build_loop1} + +%ifarch %{jit_arches} +%global bootstrap_build 1 +%else +%global bootstrap_build 0 +%endif + +%global release_targets images docs-zip +# No docs nor bootcycle for debug builds +%global debug_targets images + +# Filter out flags from the optflags macro that cause problems with the OpenJDK build +# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands of warnings (100+mb logs) +# We filter out -O flags so that the optimization of HotSpot is not lowered from O3 to O2 +# We replace it with -Wformat (required by -Werror=format-security) and -Wno-cpp to avoid FORTIFY_SOURCE warnings +# We filter out -fexceptions as the HotSpot build explicitly does -fno-exceptions and it's otherwise the default for C++ +%global ourflags %(echo %optflags | sed -e 's|-Wall|-Wformat -Wno-cpp|' | sed -r -e 's|-O[0-9]*||') +%global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||' | sed -e 's|-Werror=format-security||') +%global ourldflags %{__global_ldflags} + +# With disabled nss is NSS deactivated, so NSS_LIBDIR can contain the wrong path +# the initialization must be here. Later the pkg-config have buggy behavior +# looks like openjdk RPM specific bug +# Always set this so the nss.cfg file is not broken +%global NSS_LIBDIR %(pkg-config --variable=libdir nss) +%global NSS_LIBS %(pkg-config --libs nss) +%global NSS_CFLAGS %(pkg-config --cflags nss-softokn) +%global NSSSOFTOKN_BUILDTIME_NUMBER %(pkg-config --modversion nss-softokn || : ) +%global NSS_BUILDTIME_NUMBER %(pkg-config --modversion nss || : ) +# this is workaround for processing of requires during srpm creation +%global NSSSOFTOKN_BUILDTIME_VERSION %(if [ "x%{NSSSOFTOKN_BUILDTIME_NUMBER}" == "x" ] ; then echo "" ;else echo ">= %{NSSSOFTOKN_BUILDTIME_NUMBER}" ;fi) +%global NSS_BUILDTIME_VERSION %(if [ "x%{NSS_BUILDTIME_NUMBER}" == "x" ] ; then echo "" ;else echo ">= %{NSS_BUILDTIME_NUMBER}" ;fi) + +# In some cases, the arch used by the JDK does +# not match _arch. +# Also, in some cases, the machine name used by SystemTap +# does not match that given by _target_cpu +%ifarch x86_64 +%global archinstall amd64 +%global stapinstall x86_64 +%endif +%ifarch %{aarch64} +%global archinstall aarch64 +%global stapinstall arm64 +%endif + +%ifarch %{jit_arches} +%global with_systemtap 1 +%else +%global with_systemtap 0 +%endif + +# New Version-String scheme-style defines +%global majorver 8 + +%global with_openjfx_binding 1 +%global openjfx_path %{_jvmdir}/openjfx8 +# links src directories +%global jfx_jre_libs_dir %{openjfx_path}/rt/lib +%global jfx_jre_native_dir %{jfx_jre_libs_dir}/%{archinstall} +%global jfx_sdk_libs_dir %{openjfx_path}/lib +%global jfx_sdk_bins_dir %{openjfx_path}/bin +%global jfx_jre_exts_dir %{jfx_jre_libs_dir}/ext +# links src files +# maybe depend on jfx and generate the lists in build time? Yes, bad idea to inlcude cyclic depndenci, but this list is aweful +%global jfx_jre_libs jfxswt.jar javafx.properties +%global jfx_jre_native libprism_es2.so libprism_common.so libjavafx_font.so libdecora_sse.so libjavafx_font_freetype.so libprism_sw.so libjavafx_font_pango.so libglass.so libjavafx_iio.so libglassgtk2.so libglassgtk3.so +%global jfx_sdk_libs javafx-mx.jar packager.jar ant-javafx.jar +%global jfx_sdk_bins javafxpackager javapackager +%global jfx_jre_exts jfxrt.jar + +# Standard JPackage naming and versioning defines. +%global origin openjdk +%global origin_nice OpenJDK +%global top_level_dir_name %{origin} +%global repo jdk8u +%global revision jdk8u342-b07 +%global full_revision %{repo}-%{revision} +# Define IcedTea version used for SystemTap tapsets and desktop files +%global icedteaver 3.15.0 + +%global updatever 342 +%global buildver b07 +# priority must be 7 digits in total. The expression is workarounding tip +%global priority 1800%{updatever} + +%global javaver 1.%{majorver}.0 + +# parametrized macros are order-sensitive +%global compatiblename %{name} +%global fullversion %{compatiblename}-%{version}-%{release} +# images stub +%global jdkimage j2sdk-image +# output dir stub +%define buildoutputdir() %{expand:build/jdk8.build%{?1}} +# we can copy the javadoc to not arched dir, or make it not noarch +%define uniquejavadocdir() %{expand:%{fullversion}%{?1}} +# main id and dir of this jdk +%define uniquesuffix() %{expand:%{fullversion}.%{_arch}%{?1}} + +%global _privatelibs libatk-wrapper[.]so.*|libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.* +%global _publiclibs libjawt[.]so.*|libjava[.]so.*|libjvm[.]so.*|libverify[.]so.*|libjsig[.]so.* + +%global __provides_exclude ^(%{_privatelibs})$ +%global __requires_exclude ^(%{_privatelibs})$ +# Never generate lib-style provides/requires for slowdebug packages +%global __provides_exclude_from ^.*/%{uniquesuffix -- %{debug_suffix_unquoted}}/.*$ +%global __requires_exclude_from ^.*/%{uniquesuffix -- %{debug_suffix_unquoted}}/.*$ + +%global etcjavasubdir %{_sysconfdir}/java/java-%{javaver}-%{origin} +%define etcjavadir() %{expand:%{etcjavasubdir}/%{uniquesuffix -- %{?1}}} + +# Standard JPackage directories and symbolic links. +%define sdkdir() %{expand:%{uniquesuffix -- %{?1}}} +%define jrelnk() %{expand:jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch}%{?1}} + +%define jredir() %{expand:%{sdkdir -- %{?1}}/jre} +%define sdkbindir() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/bin} +%define jrebindir() %{expand:%{_jvmdir}/%{jredir -- %{?1}}/bin} + +%global rpm_state_dir %{_localstatedir}/lib/rpm-state/ + +%if %{with_systemtap} +# Where to install systemtap tapset (links) +# We would like these to be in a package specific sub-dir, +# but currently systemtap doesn't support that, so we have to +# use the root tapset dir for now. To distinguish between 64 +# and 32 bit architectures we place the tapsets under the arch +# specific dir (note that systemtap will only pickup the tapset +# for the primary arch for now). Systemtap uses the machine name +# aka target_cpu as architecture specific directory name. +%global tapsetroot /usr/share/systemtap +%global tapsetdirttapset %{tapsetroot}/tapset/ +%global tapsetdir %{tapsetdirttapset}/%{stapinstall} +%endif + +# not-duplicated scriptlets for normal/debug packages +%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + +%define post_script() %{expand: +update-desktop-database %{_datadir}/applications &> /dev/null || : +/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : +exit 0 +} + +%define post_headless() %{expand: +PRIORITY=%{priority} +if [ "%{?1}" == %{debug_suffix} ]; then + let PRIORITY=PRIORITY-1 +fi + +ext=.gz +alternatives \\ + --install %{_bindir}/java java %{jrebindir -- %{?1}}/java $PRIORITY --family %{name}.%{_arch} \\ + --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir -- %{?1}} \\ + --slave %{_bindir}/jjs jjs %{jrebindir -- %{?1}}/jjs \\ + --slave %{_bindir}/keytool keytool %{jrebindir -- %{?1}}/keytool \\ + --slave %{_bindir}/orbd orbd %{jrebindir -- %{?1}}/orbd \\ + --slave %{_bindir}/pack200 pack200 %{jrebindir -- %{?1}}/pack200 \\ + --slave %{_bindir}/rmid rmid %{jrebindir -- %{?1}}/rmid \\ + --slave %{_bindir}/rmiregistry rmiregistry %{jrebindir -- %{?1}}/rmiregistry \\ + --slave %{_bindir}/servertool servertool %{jrebindir -- %{?1}}/servertool \\ + --slave %{_bindir}/tnameserv tnameserv %{jrebindir -- %{?1}}/tnameserv \\ + --slave %{_bindir}/policytool policytool %{jrebindir -- %{?1}}/policytool \\ + --slave %{_bindir}/unpack200 unpack200 %{jrebindir -- %{?1}}/unpack200 \\ + --slave %{_mandir}/man1/java.1$ext java.1$ext \\ + %{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \\ + %{_mandir}/man1/jjs-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \\ + %{_mandir}/man1/keytool-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \\ + %{_mandir}/man1/orbd-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \\ + %{_mandir}/man1/pack200-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \\ + %{_mandir}/man1/rmid-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \\ + %{_mandir}/man1/rmiregistry-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \\ + %{_mandir}/man1/servertool-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \\ + %{_mandir}/man1/tnameserv-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \\ + %{_mandir}/man1/policytool-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \\ + %{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1$ext + +for X in %{origin} %{javaver} ; do + alternatives --install %{_jvmdir}/jre-"$X" jre_"$X" %{_jvmdir}/%{jredir -- %{?1}} $PRIORITY --family %{name}.%{_arch} +done + +update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY --family %{name}.%{_arch} + +update-desktop-database %{_datadir}/applications &> /dev/null || : +/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : + +# see pretrans where this file is declared +# also see that pretrans is only for non-debug +if [ ! "%{?1}" == %{debug_suffix} ]; then + if [ -f %{_libexecdir}/copy_jdk_configs_fixFiles.sh ] ; then + sh %{_libexecdir}/copy_jdk_configs_fixFiles.sh %{rpm_state_dir}/%{name}.%{_arch} %{_jvmdir}/%{sdkdir -- %{?1}} + fi +fi + +exit 0 +} + +%define postun_script() %{expand: +update-desktop-database %{_datadir}/applications &> /dev/null || : +if [ $1 -eq 0 ] ; then + /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null + %{update_desktop_icons} +fi +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}} +} + +%define posttrans_script() %{expand: +%{update_desktop_icons} +} + +%define post_devel() %{expand: + +PRIORITY=%{priority} +if [ "%{?1}" == %{debug_suffix} ]; then + let PRIORITY=PRIORITY-1 +fi + +ext=.gz +alternatives \\ + --install %{_bindir}/javac javac %{sdkbindir -- %{?1}}/javac $PRIORITY --family %{name}.%{_arch} \\ + --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir -- %{?1}} \\ + --slave %{_bindir}/appletviewer appletviewer %{sdkbindir -- %{?1}}/appletviewer \\ + --slave %{_bindir}/clhsdb clhsdb %{sdkbindir -- %{?1}}/clhsdb \\ + --slave %{_bindir}/extcheck extcheck %{sdkbindir -- %{?1}}/extcheck \\ + --slave %{_bindir}/hsdb hsdb %{sdkbindir -- %{?1}}/hsdb \\ + --slave %{_bindir}/idlj idlj %{sdkbindir -- %{?1}}/idlj \\ + --slave %{_bindir}/jar jar %{sdkbindir -- %{?1}}/jar \\ + --slave %{_bindir}/jarsigner jarsigner %{sdkbindir -- %{?1}}/jarsigner \\ + --slave %{_bindir}/javadoc javadoc %{sdkbindir -- %{?1}}/javadoc \\ + --slave %{_bindir}/javah javah %{sdkbindir -- %{?1}}/javah \\ + --slave %{_bindir}/javap javap %{sdkbindir -- %{?1}}/javap \\ + --slave %{_bindir}/jcmd jcmd %{sdkbindir -- %{?1}}/jcmd \\ + --slave %{_bindir}/jconsole jconsole %{sdkbindir -- %{?1}}/jconsole \\ + --slave %{_bindir}/jdb jdb %{sdkbindir -- %{?1}}/jdb \\ + --slave %{_bindir}/jdeps jdeps %{sdkbindir -- %{?1}}/jdeps \\ +%ifarch %{jfr_arches} + --slave %{_bindir}/jfr jfr %{sdkbindir -- %{?1}}/jfr \\ +%endif + --slave %{_bindir}/jhat jhat %{sdkbindir -- %{?1}}/jhat \\ + --slave %{_bindir}/jinfo jinfo %{sdkbindir -- %{?1}}/jinfo \\ + --slave %{_bindir}/jmap jmap %{sdkbindir -- %{?1}}/jmap \\ + --slave %{_bindir}/jps jps %{sdkbindir -- %{?1}}/jps \\ + --slave %{_bindir}/jrunscript jrunscript %{sdkbindir -- %{?1}}/jrunscript \\ + --slave %{_bindir}/jsadebugd jsadebugd %{sdkbindir -- %{?1}}/jsadebugd \\ + --slave %{_bindir}/jstack jstack %{sdkbindir -- %{?1}}/jstack \\ + --slave %{_bindir}/jstat jstat %{sdkbindir -- %{?1}}/jstat \\ + --slave %{_bindir}/jstatd jstatd %{sdkbindir -- %{?1}}/jstatd \\ + --slave %{_bindir}/native2ascii native2ascii %{sdkbindir -- %{?1}}/native2ascii \\ + --slave %{_bindir}/rmic rmic %{sdkbindir -- %{?1}}/rmic \\ + --slave %{_bindir}/schemagen schemagen %{sdkbindir -- %{?1}}/schemagen \\ + --slave %{_bindir}/serialver serialver %{sdkbindir -- %{?1}}/serialver \\ + --slave %{_bindir}/wsgen wsgen %{sdkbindir -- %{?1}}/wsgen \\ + --slave %{_bindir}/wsimport wsimport %{sdkbindir -- %{?1}}/wsimport \\ + --slave %{_bindir}/xjc xjc %{sdkbindir -- %{?1}}/xjc \\ + --slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \\ + %{_mandir}/man1/appletviewer-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \\ + %{_mandir}/man1/extcheck-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/idlj.1$ext idlj.1$ext \\ + %{_mandir}/man1/idlj-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jar.1$ext jar.1$ext \\ + %{_mandir}/man1/jar-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \\ + %{_mandir}/man1/jarsigner-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/javac.1$ext javac.1$ext \\ + %{_mandir}/man1/javac-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \\ + %{_mandir}/man1/javadoc-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/javah.1$ext javah.1$ext \\ + %{_mandir}/man1/javah-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/javap.1$ext javap.1$ext \\ + %{_mandir}/man1/javap-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jcmd.1$ext jcmd.1$ext \\ + %{_mandir}/man1/jcmd-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \\ + %{_mandir}/man1/jconsole-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \\ + %{_mandir}/man1/jdb-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jdeps.1$ext jdeps.1$ext \\ + %{_mandir}/man1/jdeps-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \\ + %{_mandir}/man1/jhat-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \\ + %{_mandir}/man1/jinfo-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jmap.1$ext jmap.1$ext \\ + %{_mandir}/man1/jmap-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jps.1$ext jps.1$ext \\ + %{_mandir}/man1/jps-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \\ + %{_mandir}/man1/jrunscript-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \\ + %{_mandir}/man1/jsadebugd-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jstack.1$ext jstack.1$ext \\ + %{_mandir}/man1/jstack-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jstat.1$ext jstat.1$ext \\ + %{_mandir}/man1/jstat-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jstatd.1$ext jstatd.1$ext \\ + %{_mandir}/man1/jstatd-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \\ + %{_mandir}/man1/native2ascii-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \\ + %{_mandir}/man1/rmic-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \\ + %{_mandir}/man1/schemagen-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \\ + %{_mandir}/man1/serialver-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \\ + %{_mandir}/man1/wsgen-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \\ + %{_mandir}/man1/wsimport-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \\ + %{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1$ext + +for X in %{origin} %{javaver} ; do + alternatives \\ + --install %{_jvmdir}/java-"$X" java_sdk_"$X" %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family %{name}.%{_arch} +done + +update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin} java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family %{name}.%{_arch} + +update-desktop-database %{_datadir}/applications &> /dev/null || : +/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : + +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}} + +update-desktop-database %{_datadir}/applications &> /dev/null || : + +if [ $1 -eq 0 ] ; then + /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null + %{update_desktop_icons} +fi +exit 0 +} + +%define posttrans_devel() %{expand: +%{update_desktop_icons} +} + +%define post_javadoc() %{expand: + +PRIORITY=%{priority} +if [ "%{?1}" == %{debug_suffix} ]; then + let PRIORITY=PRIORITY-1 +fi + +alternatives \\ + --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api \\ + $PRIORITY --family %{name} +exit 0 +} + +%define postun_javadoc() %{expand: + alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api +exit 0 +} + +%define post_javadoc_zip() %{expand: + +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} +exit 0 +} + +%define postun_javadoc_zip() %{expand: + alternatives --remove javadoczip %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip +exit 0 +} + + +%define files_jre() %{expand: +%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}-%{origin}.png +%{_datadir}/applications/*policytool%{?1}.desktop +%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libjsoundalsa.so +%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libsplashscreen.so +%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libawt_xawt.so +%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libjawt.so +%{_jvmdir}/%{sdkdir -- %{?1}}/jre/bin/policytool +} + + +%define files_jre_headless() %{expand: +%defattr(-,root,root,-) +%dir %{_sysconfdir}/.java/.systemPrefs +%dir %{_sysconfdir}/.java +%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/ASSEMBLY_EXCEPTION +%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE +%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/THIRD_PARTY_README +%dir %{_jvmdir}/%{sdkdir -- %{?1}} +%{_jvmdir}/%{jrelnk -- %{?1}} +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security +%{_jvmdir}/%{jredir -- %{?1}}/lib/security/cacerts +%dir %{_jvmdir}/%{jredir -- %{?1}} +%dir %{_jvmdir}/%{jredir -- %{?1}}/bin +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib +%{_jvmdir}/%{jredir -- %{?1}}/bin/java +%{_jvmdir}/%{jredir -- %{?1}}/bin/jjs +%{_jvmdir}/%{jredir -- %{?1}}/bin/keytool +%{_jvmdir}/%{jredir -- %{?1}}/bin/orbd +%{_jvmdir}/%{jredir -- %{?1}}/bin/pack200 +%{_jvmdir}/%{jredir -- %{?1}}/bin/rmid +%{_jvmdir}/%{jredir -- %{?1}}/bin/rmiregistry +%{_jvmdir}/%{jredir -- %{?1}}/bin/servertool +%{_jvmdir}/%{jredir -- %{?1}}/bin/tnameserv +%{_jvmdir}/%{jredir -- %{?1}}/bin/unpack200 +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/ +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/ +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/ +%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/unlimited/US_export_policy.jar +%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/unlimited/local_policy.jar +%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/limited/US_export_policy.jar +%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/limited/local_policy.jar +%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/java.policy +%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/java.security +%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/blacklisted.certs +%config(noreplace) %{etcjavadir -- %{?1}}/lib/logging.properties +%config(noreplace) %{etcjavadir -- %{?1}}/lib/calendars.properties +%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/US_export_policy.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/local_policy.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/US_export_policy.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/local_policy.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/security/java.policy +%{_jvmdir}/%{jredir -- %{?1}}/lib/security/java.security +%{_jvmdir}/%{jredir -- %{?1}}/lib/security/blacklisted.certs +%{_jvmdir}/%{jredir -- %{?1}}/lib/logging.properties +%{_jvmdir}/%{jredir -- %{?1}}/lib/calendars.properties +%{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jjs-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/keytool-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/orbd-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/pack200-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/rmid-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/rmiregistry-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/servertool-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/tnameserv-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/policytool-%{uniquesuffix -- %{?1}}.1* +%{_jvmdir}/%{jredir -- %{?1}}/lib/security/nss.cfg +%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/nss.cfg +%ifarch %{jit_arches} +%attr(444, root, root) %ghost %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/classes.jsa +%attr(444, root, root) %ghost %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/client/classes.jsa +%endif +%dir %{etcjavasubdir} +%dir %{etcjavadir -- %{?1}} +%dir %{etcjavadir -- %{?1}}/lib +%dir %{etcjavadir -- %{?1}}/lib/security +%{etcjavadir -- %{?1}}/lib/security/cacerts +%dir %{etcjavadir -- %{?1}}/lib/security/policy +%dir %{etcjavadir -- %{?1}}/lib/security/policy/limited +%dir %{etcjavadir -- %{?1}}/lib/security/policy/unlimited +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/ +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/client/ +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall} +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jli +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jli/libjli.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jvm.cfg +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libattach.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libawt.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libawt_headless.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libdt_socket.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libfontmanager.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libhprof.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libinstrument.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2gss.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2pcsc.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2pkcs11.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjaas_unix.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjava.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjava_crw_demo.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjpeg.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjdwp.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjsdt.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjsig.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjsound.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/liblcms.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libmanagement.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libmlib_image.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnet.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnio.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnpt.so +%ifarch %{aarch64} +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2kae.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/kaeprovider.conf +%endif +%ifarch %{sa_arches} +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsaproc.so +%endif +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsctp.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsunec.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libunpack.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libverify.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libzip.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/charsets.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/classlist +%{_jvmdir}/%{jredir -- %{?1}}/lib/content-types.properties +%{_jvmdir}/%{jredir -- %{?1}}/lib/currency.data +%{_jvmdir}/%{jredir -- %{?1}}/lib/flavormap.properties +%{_jvmdir}/%{jredir -- %{?1}}/lib/hijrah-config-umalqura.properties +%{_jvmdir}/%{jredir -- %{?1}}/lib/images/cursors/* +%{_jvmdir}/%{jredir -- %{?1}}/lib/jce.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/jexec +%{_jvmdir}/%{jredir -- %{?1}}/lib/jsse.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/jvm.hprof.txt +%{_jvmdir}/%{jredir -- %{?1}}/lib/meta-index +%{_jvmdir}/%{jredir -- %{?1}}/lib/net.properties +%config(noreplace) %{etcjavadir -- %{?1}}/lib/net.properties +%{_jvmdir}/%{jredir -- %{?1}}/lib/psfont.properties.ja +%{_jvmdir}/%{jredir -- %{?1}}/lib/psfontj2d.properties +%{_jvmdir}/%{jredir -- %{?1}}/lib/resources.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/rt.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/sound.properties +%{_jvmdir}/%{jredir -- %{?1}}/lib/tzdb.dat +%{_jvmdir}/%{jredir -- %{?1}}/lib/management-agent.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/management/* +%{_jvmdir}/%{jredir -- %{?1}}/lib/cmm/* +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/cldrdata.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/dnsns.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/jaccess.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/localedata.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/meta-index +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/nashorn.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunec.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunjce_provider.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunpkcs11.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/zipfs.jar +%ifarch %{aarch64} +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/kae_openssl.jar +%endif +%ifarch %{jfr_arches} +%{_jvmdir}/%{jredir -- %{?1}}/lib/jfr.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/jfr/default.jfc +%{_jvmdir}/%{jredir -- %{?1}}/lib/jfr/profile.jfc +%endif + +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/images +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/images/cursors +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/management +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/cmm +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/ext +%ifarch %{jfr_arches} +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/jfr +%endif +} + +%define files_devel() %{expand: +%defattr(-,root,root,-) +%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/ASSEMBLY_EXCEPTION +%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/LICENSE +%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/THIRD_PARTY_README +%dir %{_jvmdir}/%{sdkdir -- %{?1}}/bin +%dir %{_jvmdir}/%{sdkdir -- %{?1}}/include +%dir %{_jvmdir}/%{sdkdir -- %{?1}}/lib +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/appletviewer +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/clhsdb +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/extcheck +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/hsdb +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/idlj +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jar +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jarsigner +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/java +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javac +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javadoc +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javah +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javap +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/java-rmi.cgi +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jcmd +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jconsole +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jdb +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jdeps +%ifarch %{jfr_arches} +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jfr +%endif +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jhat +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jinfo +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jjs +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jmap +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jps +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jrunscript +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jsadebugd +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jstack +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jstat +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jstatd +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/keytool +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/native2ascii +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/orbd +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/pack200 +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/policytool +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/rmic +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/rmid +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/rmiregistry +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/schemagen +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/serialver +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/servertool +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/tnameserv +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/unpack200 +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/wsgen +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/wsimport +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/xjc +%{_jvmdir}/%{sdkdir -- %{?1}}/include/* +%{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall} +%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ct.sym +%if %{with_systemtap} +%{_jvmdir}/%{sdkdir -- %{?1}}/tapset +%endif +%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ir.idl +%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jconsole.jar +%{_jvmdir}/%{sdkdir -- %{?1}}/lib/orb.idl +%ifarch %{sa_arches} +%{_jvmdir}/%{sdkdir -- %{?1}}/lib/sa-jdi.jar +%endif +%{_jvmdir}/%{sdkdir -- %{?1}}/lib/dt.jar +%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jexec +%{_jvmdir}/%{sdkdir -- %{?1}}/lib/tools.jar +%{_datadir}/applications/*jconsole%{?1}.desktop +%{_mandir}/man1/appletviewer-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/extcheck-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/idlj-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jar-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jarsigner-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/javac-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/javadoc-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/javah-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/javap-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jconsole-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jcmd-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jdb-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jdeps-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jhat-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jinfo-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jmap-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jps-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jrunscript-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jsadebugd-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jstack-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jstat-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jstatd-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/native2ascii-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/rmic-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/schemagen-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/serialver-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/wsgen-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/wsimport-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1* +%if %{with_systemtap} +%dir %{tapsetroot} +%dir %{tapsetdirttapset} +%dir %{tapsetdir} +%{tapsetdir}/*%{_arch}%{?1}.stp +%endif +} + +%define files_demo() %{expand: +%defattr(-,root,root,-) +%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE +} + +%define files_src() %{expand: +%defattr(-,root,root,-) +%{_jvmdir}/%{sdkdir -- %{?1}}/src.zip +} + +%define files_javadoc() %{expand: +%defattr(-,root,root,-) +%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}} +%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE +} + +%define files_javadoc_zip() %{expand: +%defattr(-,root,root,-) +%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip +%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE +} + +%define files_accessibility() %{expand: +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libatk-wrapper.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/java-atk-wrapper.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/accessibility.properties +} + +# not-duplicated requires/provides/obsoletes for normal/debug packages +%define java_rpo() %{expand: +Requires: fontconfig%{?_isa} +Requires: xorg-x11-fonts-Type1 +# Require libXcomposite explicitly since it's only dynamically loaded +# at runtime. Fixes screenshot issues. See JDK-8150954. +Requires: libXcomposite%{?_isa} +# Requires rest of java +Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release} +OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release} +# for java-X-openjdk package's desktop binding +Recommends: gtk2%{?_isa} + +Provides: java-%{javaver}-%{origin} = %{epoch}:%{version}-%{release} + +# Standard JPackage base provides +Provides: jre%{?1} = %{epoch}:%{version}-%{release} +Provides: jre-%{origin}%{?1} = %{epoch}:%{version}-%{release} +Provides: jre-%{javaver}%{?1} = %{epoch}:%{version}-%{release} +Provides: jre-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{origin}%{?1} = %{epoch}:%{version}-%{release} +Provides: java%{?1} = %{epoch}:%{version}-%{release} +} + +%define java_headless_rpo() %{expand: +# Require /etc/pki/java/cacerts +Requires: ca-certificates +# Require javapackages-filesystem for ownership of /usr/lib/jvm/ +Requires: javapackages-filesystem +# Require zone-info data provided by tzdata-java sub-package +Requires: tzdata-java >= 2020a +# libsctp.so.1 is being `dlopen`ed on demand +Requires: lksctp-tools%{?_isa} +# there is a need to depend on the exact version of NSS +Requires: nss%{?_isa} %{NSS_BUILDTIME_VERSION} +Requires: nss-softokn%{?_isa} %{NSSSOFTOKN_BUILDTIME_VERSION} +# tool to copy jdk's configs - should be Recommends only, but then only dnf/yum enforce it, +# not rpm transaction and so no configs are persisted when pure rpm -u is run. It may be +# considered as regression +Requires: copy-jdk-configs >= 3.9 +OrderWithRequires: copy-jdk-configs +# for printing support +Requires: cups-libs +# Post requires alternatives to install tool alternatives +Requires(post): %{_sbindir}/alternatives +# in version 1.7 and higher for --family switch +Requires(post): chkconfig >= 1.7 +# Postun requires alternatives to uninstall tool alternatives +Requires(postun): %{_sbindir}/alternatives +# in version 1.7 and higher for --family switch +Requires(postun): chkconfig >= 1.7 +# for optional support of kernel stream control, card reader and printing bindings +Suggests: lksctp-tools%{?_isa}, pcsc-lite-devel%{?_isa}, cups + +# Standard JPackage base provides +Provides: jre-headless%{?1} = %{epoch}:%{version}-%{release} +Provides: jre-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release} +Provides: jre-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release} +Provides: jre-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release} +Provides: java-headless%{?1} = %{epoch}:%{version}-%{release} +} + +%define java_devel_rpo() %{expand: +# Requires base package +Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release} +OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release} +# Post requires alternatives to install tool alternatives +Requires(post): %{_sbindir}/alternatives +# Postun requires alternatives to uninstall tool alternatives +Requires(postun): %{_sbindir}/alternatives + +# Standard JPackage devel provides +Provides: java-sdk-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release} +Provides: java-sdk-%{javaver}%{?1} = %{epoch}:%{version}-%{release} +Provides: java-sdk-%{origin}%{?1} = %{epoch}:%{version}-%{release} +Provides: java-sdk%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-devel%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-%{origin}-devel%{?1} = %{epoch}:%{version}-%{release} +Provides: java-devel-%{origin}%{?1} = %{epoch}:%{version}-%{release} +Provides: java-devel%{?1} = %{epoch}:%{version}-%{release} +} + +%define java_demo_rpo() %{expand: +Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release} +OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release} + +Provides: java-demo%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-demo%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release} +} + +%define java_javadoc_rpo() %{expand: +OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release} +# Post requires alternatives to install javadoc alternative +Requires(post): %{_sbindir}/alternatives +# Postun requires alternatives to uninstall javadoc alternative +Requires(postun): %{_sbindir}/alternatives + +# Standard JPackage javadoc provides +Provides: java-javadoc%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-javadoc%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-%{origin}-javadoc%{?1} = %{epoch}:%{version}-%{release} +} + +%define java_src_rpo() %{expand: +Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release} + +# Standard JPackage sources provides +Provides: java-src%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-src%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-%{origin}-src%{?1} = %{epoch}:%{version}-%{release} +} + +%define java_accessibility_rpo() %{expand: +Requires: java-atk-wrapper%{?_isa} +Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release} +OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release} + +Provides: java-accessibility%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-accessibility%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{release} + +} + +# Prevent brp-java-repack-jars from being run +%global __jar_repack 0 + +Name: java-%{javaver}-%{origin} +Version: %{javaver}.%{updatever}.%{buildver} +Release: 2 +# 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 +# also included the epoch in their virtual provides. This created a +# situation where in-the-wild java-1.5.0-ibm packages provided "java = +# 1:1.5.0". In RPM terms, "1.6.0 < 1:1.5.0" since 1.6.0 is +# interpreted as 0:1.6.0. So the "java >= 1.6.0" requirement would be +# satisfied by the 1:1.5.0 packages. Thus we need to set the epoch in +# JDK package >= 1.6.0 to 1, and packages referring to JDK virtual +# provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0". + +Epoch: 1 +Summary: %{origin_nice} Runtime Environment %{majorver} +Group: Development/Languages + +# HotSpot code is licensed under GPLv2 +# JDK library code is licensed under GPLv2 with the Classpath exception +# The Apache license is used in code taken from Apache projects (primarily JAXP & JAXWS) +# DOM levels 2 & 3 and the XML digital signature schemas are licensed under the W3C Software License +# The JSR166 concurrency code is in the public domain +# The BSD and MIT licenses are used for a number of third-party libraries (see THIRD_PARTY_README) +# The OpenJDK source tree includes the JPEG library (IJG), zlib & libpng (zlib), giflib and LCMS (MIT) +# The test code includes copies of NSS under the Mozilla Public License v2.0 +# The PCSClite headers are under a BSD with advertising license +# The elliptic curve cryptography (ECC) source code is licensed under the LGPLv2.1 or any later version +License: ASL 1.1 and ASL 2.0 and BSD and BSD with advertising and GPL+ and GPLv2 and GPLv2 with exceptions and IJG and LGPLv2+ and MIT and MPLv2.0 and Public Domain and W3C and zlib +URL: http://openjdk.java.net/ + +Source0: %{full_revision}.tar.xz + +# Custom README for -src subpackage +Source2: README.md + +# Use 'icedtea_sync.sh' to update the following +# They are based on code contained in the IcedTea project (3.x). +# Systemtap tapsets. Zipped up to keep it small. +Source8: tapsets-icedtea-%{icedteaver}.tar.xz + +# Desktop files. Adapted from IcedTea +Source9: jconsole.desktop.in +Source10: policytool.desktop.in + +# nss configuration file +Source11: nss.cfg.in + + +# Ensure we aren't using the limited crypto policy +Source13: TestCryptoLevel.java + +# Ensure ECDSA is working +Source14: TestECDSA.java + +Source20: repackReproduciblePolycies.sh + +Patch8: replace-vector-to-improve-performance-of-xml.validat.patch +Patch10: 8221658.patch +Patch18: fix-vendor-info.patch +Patch21: 8202952.patch +Patch25: 8196485.patch +Patch26: disable-UseLSE-on-ARMv8.1-by-default.patch +Patch27: 8157570.patch +Patch30: 8191483.patch +Patch31: 8141356.patch +Patch33: 8166253.patch +Patch35: 8186042.patch +Patch36: 8060463.patch +Patch37: 8131600.patch +Patch38: 8138971.patch +Patch41: 8203699.patch +Patch47: 8166197.patch +Patch50: 8158946.patch +Patch51: add-with-company-name-option.patch +Patch57: 8031085.patch +Patch58: Reduce-the-probability-of-the-crash-related-to-ciObj.patch +Patch62: 8165857.patch +Patch63: 8033552.patch +Patch67: 8165860.patch +Patch70: 8164948.patch + +# 8u242 +Patch75: Add-ability-to-configure-third-port-for-remote-JMX.patch +Patch83: 8204947.patch +Patch85: 8139041.patch + +# 8u252 +Patch86: 6858051-Create-GC-worker-threads-dynamically.patch +Patch87: 6858051-Add-a-switch-for-the-dynamic-thread-related-log.patch +Patch88: dismiss-warnings-in-GCC-8.X.patch + +# 8u262 +Patch89: 8144993.patch +Patch90: 8223504.patch +Patch91: add-vm-option-BoxTypeCachedMax-for-Integer-and-Long-cache.patch +Patch92: 8080289-8040213-8189067-move-the-store-out-of-the-loop.patch +Patch94: 8182397.patch +Patch95: 8205921.patch + +# 8u265 +Patch96: fix-Long-cache-range-and-remove-VM-option-java.lang.IntegerCache.high-by-default.patch +Patch97: leaf-optimize-in-ParallelScanvageGC.patch +Patch102: fix-LongCache-s-range-when-BoxTypeCachedMax-number-is-bigger-than-Integer.MAX_VALUE.patch +Patch103: Ddot-intrinsic-implement.patch +Patch104: 8234003.patch +Patch105: 8220159.patch +Patch106: fast-serializer-jdk8.patch +Patch109: Test8167409.sh-fails-to-run-with-32bit-jdk-on-64bit-.patch +Patch112: 8048210-8056152.patch +Patch113: 8160425.patch +Patch114: 8181503.patch +Patch115: 8243670.patch +Patch118: Fix-LineBuffer-vappend-when-buffer-too-small.patch +Patch121: Remove-unused-GenericTaskQueueSet-T-F-tasks.patch +Patch122: optimize-jmap-F-dump-xxx.patch +Patch125: Extend-CDS-to-support-app-class-metadata-sharing.patch +Patch127: add-DumpSharedSpace-guarantee-when-create-anonymous-classes.patch + +# 8u272 +Patch133: 8160369.patch +Patch134: PS-GC-adding-acquire_size-method-for-PSParallelCompa.patch +Patch138: add-appcds-file-lock.patch +Patch139: G1-memory-uncommit.patch +Patch140: 8015927.patch +Patch141: 8040327.patch +Patch142: 8207160.patch +Patch144: add-appcds-test-case.patch + +# 8u282 +Patch147: 8215047.patch +Patch148: 8237894.patch +Patch149: Remove-the-parentheses-around-company-name.patch +Patch151: kae-phase1.patch +Patch153: initialized-value-should-be-0-in-perfInit.patch +Patch154: 8254078-DataOutputStream-is-very-slow-post-disabling.patch +Patch155: Use-atomic-operation-when-G1Uncommit.patch +Patch157: 8140597-Postpone-the-initial-mark-request-until-the-.patch +Patch158: Use-Mutex-when-G1Uncommit.patch +Patch159: C1-typos-repair.patch +Patch162: 8214535-support-Jmap-parallel.patch +Patch163: Fixed-a-copyright-writing-problem.patch +Patch164: fix-arguments.cpp-error-C2131-on-windows.patch +Patch166: add-missing-test-case.patch +Patch167: fix-BoxTypeCachedMax-build-failure-when-jvm-variants.patch +Patch168: fix-windows-compile-fail.patch +Patch169: Code-style-fix.patch +Patch170: kae-phase2.patch +Patch171: add-kaeEngine-to-rsa.patch + +# 8u292 +Patch172: 8031818.patch +Patch173: 8193518.patch +Patch174: Disable-ddot-intrinsic-on-CPUs-that-not-suppo.patch +Patch175: add-appcds-jtreg-test-case-UnusedCPDuringDump.patch +Patch176: add-safe-compilation-flags.patch +Patch177: downgrade-symver-of-memcpy-GLIBC.patch +Patch178: fix-log-bug-enhance-aes-hmac-performance.patch +Patch179: keep-the-binary-equal.patch +Patch180: link-option-use-rpath-instead-of-runpath.patch +Patch183: revert-windows-bugfix.patch +Patch184: set-vm.vendor-by-configure.patch +Patch185: update-cacerts-and-VerifyCACerts.java-test.patch +Patch186: update-to-keep-same-with-master.patch +Patch188: 8247691_incorrect_handling_of_VM_exceptions_in_C1_deopt_stub.patch +Patch192: add_kae_implementation_add_default_conf_file.patch +Patch193: improve_algorithmConstraints_checkAlgorithm_performance.patch +Patch194: modify_the_default_iteration_time_and_forks_in_the_JMH_of_KAEProvider.patch +Patch195: support_CMS_parallel_inspection.patch +Patch196: g1gc-numa-aware-Implementation.patch +Patch197: implementation_of_Blas_hotspot_function_in_Intrinsics.patch +Patch198: fix_G1GC_memory_leak_in_numa.patch +Patch200: Fix-ECDH-and-DH-memory-usage.patch +Patch201: fix_run_SPECjvm2008_failed_on_32_bit_system.patch +Patch202: Fix-RSACipher-memory-usage.patch + +# 8u302 +Patch203: fix-lock-ordering-issue-when-calling-JVMTI-GetLoaded.patch +Patch204: 8069191.patch +Patch205: fix_g1uncommit_ygc_expand_crash.patch +Patch207: fix_bug_in_keypairgenerator.patch +Patch208: C1-assert-is_virtual-failed-type-check.patch +Patch209: 8197387-Run-the-jcmd-tool-as-the-root-user-to-access.patch +Patch210: create-jfr-dump-file-with-pid-or-timestamp-if-specif.patch +Patch212: enhance-the-TimeZone-s-path-solution-on-Euler.patch +Patch214: fix-appcds-s-option-AppCDSLockFile.patch +Patch215: PS-introduce-UsePSRelaxedForwardee-to-enable-using-r.patch +Patch216: Parallel-Full-GC-for-G1.patch +Patch218: 8143251-Thread-suspend-on-VM_G1IncCollectionPause-do.patch +Patch219: G1Uncommit-Introduce-G1PeriodGCNotRetry-control-whet.patch +Patch220: JDK-debug-version-crash-when-using-AppCDS.patch + +# 8u312 +Patch222: 8273111-Default-timezone-should-return-zone-ID-if-locatiome-is-valid-but-not-canonicalization-on-linux.patch +Patch223: 8233280-Remove-GCLockerInvokesConcurrent-relative-logic-for-G1.patch +Patch224: G1Ucommit-Refactor-Trigger-mechanism.patch +Patch225: G1-Full-GC-parallel-mark.patch +Patch226: G1Uncommit-add-G1UncommitLog-limit-before-G1Uncommit.patch +Patch228: add-wrap_memcpy-to-libsaproc.patch +Patch229: downgrade-the-symver-of-fcntl64.patch + +# 8u322 +Patch230: add-system-property-swing.JComboBox.useLegacyMode.patch +Patch232: 8173361-various-crashes-in-JvmtiExport-post_compiled.patch +Patch233: fix-TestUseCompressedOopsErgo-run-failed.patch +Patch235: fix-testme-Test6929067-run-faild.patch +Patch236: penetration_testing_vulnerability_fix.patch +Patch237: 8136577_Make_AbortVMOnException_available_in_product_builds.patch +Patch238: add-environment-variable-ZIP_INVALID_LOC_HEADER_EXIT.patch +Patch239: print-fd-and-file-path-when-a-zip-invalid-loc-header.patch +Patch240: 8207011-Remove-uses-of-the-register-storage-class-specifier.patch +Patch241: 8268819-SA-Remove-libthread_db-dependency-on-Linux.patch + +# 8u332 +Patch243: Fix-compile-and-runtime-failures-for-minimal1-versio.patch +Patch244: fix_X509TrustManagerImpl_symantec_distrust.patch +Patch245: change-sa-jdi.jar-make-file-for-BEP.PATCH +Patch246: 7092821-java.security.Provider.getService-is-synchro.patch +Patch247: 8173339-AArch64-Fix-minimum-stack-size-computations.patch +Patch248: 8067941-TESTBUG-Fix-tests-for-OS-with-64K-page-size.patch + +# 8u342 +Patch249: Improve_AlgorithmConstraints_checkAlgorithm_performance.patch +Patch250: modify_coding_style_and_describe_error.patch +Patch251: fix_wrap_memcpy_undefined_gcc10_3.patch + +############################################# +# +# Upstreamable patches +# +# This section includes patches which need to +# be reviewed & pushed to the current development +# tree of OpenJDK. +############################################# +# PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts) +# PR3575, RH1567204: System cacerts database handling should not affect jssecacerts +Patch539: pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch + +############################################# +# +# Patches which need backporting to 8u +# +# This section includes patches which have +# been pushed upstream to the latest OpenJDK +# development tree, but need to be backported +# to OpenJDK 8u. +############################################# +# S8154313: Generated javadoc scattered all over the place +# 8035341: Allow using a system installed libpng +# Patch202: jdk8035341-allow_using_system_installed_libpng.patch +# 8042159: Allow using a system-installed lcms2 +# Patch203: jdk8042159-allow_using_system_installed_lcms2.patch + +############################################# +# +# Patches ineligible for 8u +# +# This section includes patches which are present +# upstream, but ineligible for upstream 8u backport. +############################################# +# 8043805: Allow using a system-installed libjpeg +# Patch201: jdk8043805-allow_using_system_installed_libjpeg.patch + +############################################# +# +# Non-OpenJDK fixes +# +# This section includes patches to code other +# that from OpenJDK. +############################################# +Patch1000: rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch + +############################################# +# +# Dependencies +# +############################################# + +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: alsa-lib-devel +BuildRequires: binutils +BuildRequires: cups-devel +BuildRequires: desktop-file-utils +# elfutils only are OK for build without AOT +BuildRequires: elfutils-devel +BuildRequires: fontconfig-devel +BuildRequires: freetype-devel +BuildRequires: giflib-devel +BuildRequires: gcc-c++ +BuildRequires: gdb +BuildRequires: lcms2-devel +BuildRequires: libjpeg-devel +BuildRequires: libpng-devel +BuildRequires: libxslt +BuildRequires: libX11-devel +BuildRequires: libXext-devel +BuildRequires: libXi-devel +BuildRequires: libXinerama-devel +BuildRequires: libXrender-devel +BuildRequires: libXt-devel +BuildRequires: libXtst-devel +# Requirements for setting up the nss.cfg +BuildRequires: nss-devel +BuildRequires: pkgconfig +BuildRequires: xorg-x11-proto-devel +BuildRequires: zip +BuildRequires: unzip +BuildRequires: openssl-devel + +BuildRequires: java-1.8.0-openjdk-devel + +BuildRequires: tzdata-java >= 2015d +# Earlier versions have a bug in tree vectorization on PPC +BuildRequires: gcc >= 4.8.3-8 +# Build requirements for SunEC system NSS support +BuildRequires: nss-softokn-freebl-devel >= 3.16.1 + +%if %{with_systemtap} +BuildRequires: systemtap-sdt-devel +%endif + +# this is always built, also during debug-only build +# when it is built in debug-only this package is just placeholder +%{java_rpo %{nil}} + +%description +The %{origin_nice} runtime environment %{majorver}. + +%if %{include_debug_build} +%package slowdebug +Summary: %{origin_nice} Runtime Environment %{majorver} %{debug_on} +Group: Development/Languages + +%{java_rpo -- %{debug_suffix_unquoted}} +%description slowdebug +The %{origin_nice} runtime environment %{majorver}. +%{debug_warning} +%endif + +%if %{include_normal_build} +%package headless +Summary: %{origin_nice} Headless Runtime Environment %{majorver} +Group: Development/Languages + +%{java_headless_rpo %{nil}} + +%description headless +The %{origin_nice} runtime environment %{majorver} without audio and video support. +%endif + +%if %{include_debug_build} +%package headless-slowdebug +Summary: %{origin_nice} Runtime Environment %{majorver} %{debug_on} +Group: Development/Languages + +%{java_headless_rpo -- %{debug_suffix_unquoted}} + +%description headless-slowdebug +The %{origin_nice} runtime environment %{majorver} without audio and video support. +%{debug_warning} +%endif + +%if %{include_normal_build} +%package devel +Summary: %{origin_nice} Development Environment %{majorver} +Group: Development/Tools + +%{java_devel_rpo %{nil}} + +%description devel +The %{origin_nice} development tools %{majorver}. +%endif + +%if %{include_debug_build} +%package devel-slowdebug +Summary: %{origin_nice} Development Environment %{majorver} %{debug_on} +Group: Development/Tools + +%{java_devel_rpo -- %{debug_suffix_unquoted}} + +%description devel-slowdebug +The %{origin_nice} development tools %{majorver}. +%{debug_warning} +%endif + +%if %{include_normal_build} +%package demo +Summary: %{origin_nice} Demos %{majorver} +Group: Development/Languages + +%{java_demo_rpo %{nil}} + +%description demo +The %{origin_nice} demos %{majorver}. +%endif + +%if %{include_debug_build} +%package demo-slowdebug +Summary: %{origin_nice} Demos %{majorver} %{debug_on} +Group: Development/Languages + +%{java_demo_rpo -- %{debug_suffix_unquoted}} + +%description demo-slowdebug +The %{origin_nice} demos %{majorver}. +%{debug_warning} +%endif + +%if %{include_normal_build} +%package src +Summary: %{origin_nice} Source Bundle %{majorver} +Group: Development/Languages + +%{java_src_rpo %{nil}} + +%description src +The java-%{origin}-src sub-package contains the complete %{origin_nice} %{majorver} +class library source code for use by IDE indexers and debuggers. +%endif + +%if %{include_debug_build} +%package src-slowdebug +Summary: %{origin_nice} Source Bundle %{majorver} %{for_debug} +Group: Development/Languages + +%{java_src_rpo -- %{debug_suffix_unquoted}} + +%description src-slowdebug +The java-%{origin}-src-slowdebug sub-package contains the complete %{origin_nice} %{majorver} + class library source code for use by IDE indexers and debuggers. Debugging %{for_debug}. +%endif + +%if %{include_normal_build} +%package javadoc +Summary: %{origin_nice} %{majorver} API documentation +Group: Documentation +Requires: javapackages-filesystem +Obsoletes: javadoc-slowdebug < 1:1.8.0.222.b10-1 +BuildArch: noarch + +%{java_javadoc_rpo %{nil}} + +%description javadoc +The %{origin_nice} %{majorver} API documentation. +%endif + +%if %{include_normal_build} +%package javadoc-zip +Summary: %{origin_nice} %{majorver} API documentation compressed in a single archive +Requires: javapackages-filesystem +Obsoletes: javadoc-zip-slowdebug < 1:1.8.0.222.b10-1 +BuildArch: noarch + +%{java_javadoc_rpo %{nil}} + +%description javadoc-zip +The %{origin_nice} %{majorver} API documentation compressed in a single archive. +%endif + +%if %{include_normal_build} +%package accessibility +Summary: %{origin_nice} %{majorver} accessibility connector + +%{java_accessibility_rpo %{nil}} + +%description accessibility +Enables accessibility support in %{origin_nice} %{majorver} by using java-atk-wrapper. This allows +compatible at-spi2 based accessibility programs to work for AWT and Swing-based +programs. + +Please note, the java-atk-wrapper is still in beta, and %{origin_nice} %{majorver} itself is still +being tuned to be working with accessibility features. There are known issues +with accessibility on, so please do not install this package unless you really +need to. +%endif + +%if %{include_debug_build} +%package accessibility-slowdebug +Summary: %{origin_nice} %{majorver} accessibility connector %{for_debug} + +%{java_accessibility_rpo -- %{debug_suffix_unquoted}} + +%description accessibility-slowdebug +See normal java-%{version}-openjdk-accessibility description. +%endif + +%if %{with_openjfx_binding} +%package openjfx +Summary: OpenJDK x OpenJFX connector. This package adds symliks finishing Java FX integration to %{name} +Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} +Requires: openjfx8%{?_isa} +Provides: javafx = %{epoch}:%{version}-%{release} +%description openjfx +Set of links from OpenJDK (jre) to OpenJFX + +%package openjfx-devel +Summary: OpenJDK x OpenJFX connector for FX developers. This package adds symliks finishing Java FX integration to %{name}-devel +Requires: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release} +Requires: openjfx8-devel%{?_isa} +Provides: javafx-devel = %{epoch}:%{version}-%{release} +%description openjfx-devel +Set of links from OpenJDK (sdk) to OpenJFX + +%if %{include_debug_build} +%package openjfx-slowdebug +Summary: OpenJDK x OpenJFX connector %{for_debug}. his package adds symliks finishing Java FX integration to %{name}-slowdebug +Requires: %{name}-slowdebug%{?_isa} = %{epoch}:%{version}-%{release} +Requires: openjfx8%{?_isa} +Provides: javafx-slowdebug = %{epoch}:%{version}-%{release} +%description openjfx-slowdebug +Set of links from OpenJDK-slowdebug (jre) to normal OpenJFX. OpenJFX do not support debug buuilds of itself + +%package openjfx-devel-slowdebug +Summary: OpenJDK x OpenJFX connector for FX developers %{for_debug}. This package adds symliks finishing Java FX integration to %{name}-devel-slowdebug +Requires: %{name}-devel-slowdebug%{?_isa} = %{epoch}:%{version}-%{release} +Requires: openjfx8-devel%{?_isa} +Provides: javafx-devel-slowdebug = %{epoch}:%{version}-%{release} +%description openjfx-devel-slowdebug +Set of links from OpenJDK-slowdebug (sdk) to normal OpenJFX. OpenJFX do not support debug buuilds of itself +%endif +%endif + +%prep + +# Using the echo macro breaks rpmdev-bumpspec, as it parses the first line of stdout :-( +%if 0%{?stapinstall:1} + echo "CPU: %{_target_cpu}, arch install directory: %{archinstall}, SystemTap install directory: %{stapinstall}" +%else + %{error:Unrecognised architecture %{_target_cpu}} +%endif + +if [ %{include_normal_build} -eq 0 -o %{include_normal_build} -eq 1 ] ; then + echo "include_normal_build is %{include_normal_build}" +else + echo "include_normal_build is %{include_normal_build}, thats invalid. Use 1 for yes or 0 for no" + exit 11 +fi +if [ %{include_debug_build} -eq 0 -o %{include_debug_build} -eq 1 ] ; then + echo "include_debug_build is %{include_debug_build}" +else + echo "include_debug_build is %{include_debug_build}, thats invalid. Use 1 for yes or 0 for no" + 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_normal_build. That is a no go." + exit 13 +fi +%setup -q -c -n %{uniquesuffix ""} -T -a 0 +prioritylength=`expr length %{priority}` +if [ $prioritylength -ne 7 ] ; then + echo "priority must be 7 digits in total, violated" + exit 14 +fi +# For old patches +ln -s %{top_level_dir_name} jdk8 + +pushd %{top_level_dir_name} +# OpenJDK patches + +%patch8 -p1 +%patch10 -p1 +%patch18 -p1 +%patch21 -p1 +%patch25 -p1 +%patch26 -p1 +%patch27 -p1 +%patch30 -p1 +%patch31 -p1 +%patch33 -p1 +%patch35 -p1 +%patch36 -p1 +%patch37 -p1 +%patch38 -p1 +%patch41 -p1 +%patch47 -p1 +%patch50 -p1 +%patch51 -p1 +%patch57 -p1 +%patch58 -p1 +%patch62 -p1 +%patch63 -p1 +%patch67 -p1 +%patch70 -p1 +%patch75 -p1 +%patch83 -p1 +%patch85 -p1 +%patch86 -p1 +%patch87 -p1 +%patch88 -p1 +%patch89 -p1 +%patch90 -p1 +%patch91 -p1 +%patch92 -p1 +%patch94 -p1 +%patch95 -p1 +%patch96 -p1 +%patch97 -p1 +%patch102 -p1 +%patch103 -p1 +%patch104 -p1 +%patch105 -p1 +%patch106 -p1 +%patch109 -p1 +%patch112 -p1 +%patch113 -p1 +%patch114 -p1 +%patch115 -p1 +%patch118 -p1 +%patch121 -p1 +%patch122 -p1 +%patch125 -p1 +%patch127 -p1 +%patch133 -p1 +%patch134 -p1 +%patch138 -p1 +%patch139 -p1 +%patch140 -p1 +%patch141 -p1 +%patch142 -p1 +%patch144 -p1 +%patch147 -p1 +%patch148 -p1 +%patch149 -p1 +%patch151 -p1 +%patch153 -p1 +%patch154 -p1 +%patch155 -p1 +%patch157 -p1 +%patch158 -p1 +%patch159 -p1 +%patch162 -p1 +%patch163 -p1 +%patch164 -p1 +%patch166 -p1 +%patch167 -p1 +%patch168 -p1 +%patch169 -p1 +%patch170 -p1 +%patch171 -p1 +%patch172 -p1 +%patch173 -p1 +%patch174 -p1 +%patch175 -p1 +%patch176 -p1 +%patch177 -p1 +%patch178 -p1 +%patch179 -p1 +%patch180 -p1 +%patch183 -p1 +%patch184 -p1 +%patch185 -p1 +%patch186 -p1 +%patch188 -p1 +%patch192 -p1 +%patch194 -p1 +%patch195 -p1 +%patch196 -p1 +%patch197 -p1 +%patch198 -p1 +%patch200 -p1 +%patch201 -p1 +%patch202 -p1 +%patch203 -p1 +%patch204 -p1 +%patch205 -p1 +%patch207 -p1 +%patch208 -p1 +%patch209 -p1 +%patch210 -p1 +%patch212 -p1 +%patch214 -p1 +%patch215 -p1 +%patch216 -p1 +%patch218 -p1 +%patch219 -p1 +%patch220 -p1 +%patch222 -p1 +%patch223 -p1 +%patch224 -p1 +%patch225 -p1 +%patch226 -p1 +%patch228 -p1 +%patch229 -p1 +%patch230 -p1 +%patch232 -p1 +%patch233 -p1 +%patch235 -p1 +%patch236 -p1 +%patch237 -p1 +%patch238 -p1 +%patch239 -p1 +%patch240 -p1 +%patch241 -p1 +%patch243 -p1 +%patch244 -p1 +%patch245 -p1 +%patch246 -p1 +%patch247 -p1 +%patch248 -p1 +%patch249 -p1 +%patch250 -p1 +%patch251 -p1 +popd + +# System library fixes +# %patch201 +# %patch202 +# %patch203 + +# RPM-only fixes +# %patch1000 + +# Extract systemtap tapsets +%if %{with_systemtap} +tar --strip-components=1 -x -I xz -f %{SOURCE8} +%if %{include_debug_build} +cp -r tapset tapset%{debug_suffix} +%endif + +for suffix in %{build_loop} ; do + for file in "tapset"$suffix/*.in; do + OUTPUT_FILE=`echo $file | sed -e "s:\.stp\.in$:-%{version}-%{release}.%{_arch}.stp:g"` + sed -e "s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir -- $suffix}/jre/lib/%{archinstall}/server/libjvm.so:g" $file > $file.1 +# TODO find out which architectures other than i686 have a client vm +%ifarch %{ix86} + sed -e "s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir -- $suffix}/jre/lib/%{archinstall}/client/libjvm.so:g" $file.1 > $OUTPUT_FILE +%else + sed -e "/@ABS_CLIENT_LIBJVM_SO@/d" $file.1 > $OUTPUT_FILE +%endif + sed -i -e "s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir -- $suffix}:g" $OUTPUT_FILE + sed -i -e "s:@INSTALL_ARCH_DIR@:%{archinstall}:g" $OUTPUT_FILE + sed -i -e "s:@prefix@:%{_jvmdir}/%{sdkdir -- $suffix}/:g" $OUTPUT_FILE + done +done +# systemtap tapsets ends +%endif + +# Prepare desktop files +# The _X_ syntax indicates variables that are replaced by make upstream +# The @X@ syntax indicates variables that are replaced by configure upstream +for suffix in %{build_loop} ; do +for file in %{SOURCE9} %{SOURCE10} ; do + FILE=`basename $file | sed -e s:\.in$::g` + EXT="${FILE##*.}" + NAME="${FILE%.*}" + OUTPUT_FILE=$NAME$suffix.$EXT + sed -e "s:_SDKBINDIR_:%{sdkbindir -- $suffix}:g" $file > $OUTPUT_FILE + sed -i -e "s:_JREBINDIR_:%{jrebindir -- $suffix}:g" $OUTPUT_FILE + sed -i -e "s:@target_cpu@:%{_arch}:g" $OUTPUT_FILE + sed -i -e "s:@OPENJDK_VER@:%{version}-%{release}.%{_arch}$suffix:g" $OUTPUT_FILE + sed -i -e "s:@JAVA_VER@:%{javaver}:g" $OUTPUT_FILE + sed -i -e "s:@JAVA_VENDOR@:%{origin}:g" $OUTPUT_FILE +done +done + +# Setup nss.cfg +sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} > nss.cfg + + + +%build +# How many CPU's do we have? +export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :) +export NUM_PROC=${NUM_PROC:-1} +%if 0%{?_smp_ncpus_max} +# Honor %%_smp_ncpus_max +[ ${NUM_PROC} -gt %{?_smp_ncpus_max} ] && export NUM_PROC=%{?_smp_ncpus_max} +%endif + +%ifarch %{aarch64} +export ARCH_DATA_MODEL=64 +%endif + +# We use ourcppflags because the OpenJDK build seems to +# pass EXTRA_CFLAGS to the HotSpot C++ compiler... +EXTRA_CFLAGS="%ourcppflags -Wno-error -fcommon -fsigned-char" +EXTRA_CPP_FLAGS="%ourcppflags -Wno-error" + +EXTRA_ASFLAGS="${EXTRA_CFLAGS} -Wa,--generate-missing-build-notes=yes" +export EXTRA_CFLAGS EXTRA_ASFLAGS + +for suffix in %{build_loop} ; do +(if [ "x$suffix" = "x" ] ; then + debugbuild=release +else + # change --something to something + debugbuild=`echo $suffix | sed "s/-//g"` +fi + +# Variable used in hs_err hook on build failures +top_srcdir_abs_path=$(pwd)/%{top_level_dir_name} + +mkdir -p %{buildoutputdir -- $suffix} +pushd %{buildoutputdir -- $suffix} + +bash ${top_srcdir_abs_path}/configure \ +%ifarch %{jfr_arches} + --enable-jfr \ +%endif + --with-native-debug-symbols=internal \ + --with-milestone="fcs" \ + --with-update-version=%{updatever} \ + --with-build-number=%{buildver} \ + --with-company-name="Bisheng" \ + --with-vendor-name="Bisheng" \ + --with-vendor-url="https://openeuler.org/" \ + --with-vendor-bug-url="https://gitee.com/src-openeuler/openjdk-1.8.0/issues/" \ + --with-vendor-vm-bug-url="https://gitee.com/src-openeuler/openjdk-1.8.0/issues/" \ + --with-debug-level=$debugbuild \ + --enable-unlimited-crypto \ + --with-zlib=system \ + --enable-kae=yes \ + --with-stdc++lib=dynamic \ + --with-extra-cflags="$EXTRA_CFLAGS" \ + --with-extra-cxxflags="$EXTRA_CPP_FLAGS" \ + --with-extra-asflags="$EXTRA_ASFLAGS" \ + --with-extra-ldflags="%{ourldflags}" \ + --with-num-cores="$NUM_PROC" \ + --with-boot-jdk-jvmargs=-XX:-UsePerfData + +cat spec.gmk +cat hotspot-spec.gmk + +# Debug builds don't need same targets as release for +# build speed-up +maketargets="%{release_targets}" +if echo $debugbuild | grep -q "debug" ; then + maketargets="%{debug_targets}" +fi + +make JOBS=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :) \ + JAVAC_FLAGS=-g \ + SCTP_WERROR= \ + ${maketargets} || ( pwd; find $top_dir_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): +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 {} \; +find images/%{jdkimage} -iname '*.debuginfo' -exec rm {} \; + +# 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 + +# Install nss.cfg right away as we will be using the JRE above +export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{jdkimage} + +# Install nss.cfg right away as we will be using the JRE above +install -m 644 nss.cfg $JAVA_HOME/jre/lib/security/ + +# Use system-wide tzdata +rm $JAVA_HOME/jre/lib/tzdb.dat +ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat + + +# build cycles +)& +done +wait + +%check + +# We test debug first as it will give better diagnostics on a crash +for suffix in %{rev_build_loop} ; do + +export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{jdkimage} + +# Check unlimited policy has been used +$JAVA_HOME/bin/javac -d . %{SOURCE13} +$JAVA_HOME/bin/java TestCryptoLevel + +# Check ECC is working +$JAVA_HOME/bin/javac -d . %{SOURCE14} +$JAVA_HOME/bin/java $(echo $(basename %{SOURCE14})|sed "s|\.java||") + +# Check debug symbols are present and can identify code +find "$JAVA_HOME" -iname '*.so' -print0 | while read -d $'\0' lib +do + if [ -f "$lib" ] ; then + echo "Testing $lib for debug symbols" + # All these tests rely on RPM failing the build if the exit code of any set + # of piped commands is non-zero. + + # 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 + + # 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") + do + # We expect to see .cpp files, except for architectures like aarch64 and + # s390 where we expect .o and .oS files + echo "$line" | grep -E "ABS ((.*/)?[-_a-zA-Z0-9]+\.(c|cc|cpp|cxx|o|oS))?$" + done + IFS="$old_IFS" + + # 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" | \ + 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 + echo "bad .gnu_debuglink section." + eu-readelf -x .gnu_debuglink "$lib" + false + fi + fi +done + +# Make sure gdb can do a backtrace based on line numbers on libjvm.so +# javaCalls.cpp:58 should map to: +# http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/ff3b27e6bcc2/src/share/vm/runtime/javaCalls.cpp#l58 +# Using line number 1 might cause build problems. +gdb -q "$JAVA_HOME/bin/java" <> %{name}-demo.files"$suffix" +# Find documentation demo files. +find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \ + $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/sample \ + -type f -o -type l | sort \ + | grep README \ + | sed 's|'$RPM_BUILD_ROOT'||' \ + | sed 's|^|%doc |' \ + >> %{name}-demo.files"$suffix" + +# Create links which leads to separately installed java-atk-bridge and allow configuration +# links points to java-atk-wrapper - an dependence + pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall} + ln -s %{_libdir}/java-atk-wrapper/libatk-wrapper.so.0 libatk-wrapper.so + popd + pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/ext + ln -s %{_libdir}/java-atk-wrapper/java-atk-wrapper.jar java-atk-wrapper.jar + popd + pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/ + echo "#Config file to enable java-atk-wrapper" > accessibility.properties + echo "" >> accessibility.properties + echo "assistive_technologies=org.GNOME.Accessibility.AtkWrapper" >> accessibility.properties + echo "" >> accessibility.properties + popd + +# intentionally after all else, fx links with redirections on its own +%if %{with_openjfx_binding} + FXSDK_FILES=%{name}-openjfx-devel.files"$suffix" + FXJRE_FILES=%{name}-openjfx.files"$suffix" + echo -n "" > $FXJRE_FILES + echo -n "" > $FXSDK_FILES + for file in %{jfx_jre_libs} ; do + srcfile=%{jfx_jre_libs_dir}/$file + targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/$file + ln -s $srcfile $RPM_BUILD_ROOT/$targetfile + echo $targetfile >> $FXJRE_FILES + done + for file in %{jfx_jre_native} ; do + srcfile=%{jfx_jre_native_dir}/$file + targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/$file + ln -s $srcfile $RPM_BUILD_ROOT/$targetfile + echo $targetfile >> $FXJRE_FILES + done + for file in %{jfx_jre_exts} ; do + srcfile=%{jfx_jre_exts_dir}/$file + targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/ext/$file + ln -s $srcfile $RPM_BUILD_ROOT/$targetfile + echo $targetfile >> $FXJRE_FILES + done + for file in %{jfx_sdk_libs} ; do + srcfile=%{jfx_sdk_libs_dir}/$file + targetfile=%{_jvmdir}/%{sdkdir -- $suffix}/lib/$file + ln -s $srcfile $RPM_BUILD_ROOT/$targetfile + echo $targetfile >> $FXSDK_FILES + done + for file in %{jfx_sdk_bins} ; do + srcfile=%{jfx_sdk_bins_dir}/$file + targetfile=%{_jvmdir}/%{sdkdir -- $suffix}/bin/$file + ln -s $srcfile $RPM_BUILD_ROOT/$targetfile + echo $targetfile >> $FXSDK_FILES + done +%endif + +bash %{SOURCE20} $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix} %{javaver} +touch -t 201401010000 $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/security/java.security + +# moving config files to /etc +mkdir -p $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/lib/security/policy/unlimited/ +mkdir -p $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/lib/security/policy/limited/ +for file in lib/security/cacerts lib/security/policy/unlimited/US_export_policy.jar lib/security/policy/unlimited/local_policy.jar lib/security/policy/limited/US_export_policy.jar lib/security/policy/limited/local_policy.jar lib/security/java.policy lib/security/java.security lib/security/blacklisted.certs lib/logging.properties lib/calendars.properties lib/security/nss.cfg lib/net.properties ; do + mv $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/$file $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/$file + ln -sf %{etcjavadir -- $suffix}/$file $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/$file +done + +# stabilize permissions +find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "*.so" -exec chmod 755 {} \; ; +find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -type d -exec chmod 755 {} \; ; +find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "ASSEMBLY_EXCEPTION" -exec chmod 644 {} \; ; +find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "LICENSE" -exec chmod 644 {} \; ; +find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "THIRD_PARTY_README" -exec chmod 644 {} \; ; + +# end, dual install +done + +%if %{include_normal_build} +# intentionally only for non-debug +%pretrans headless -p +-- if copy-jdk-configs is in transaction, it installs in pretrans to temp +-- if copy_jdk_configs is in temp, then it means that copy-jdk-configs is in transaction and so is +-- preferred over one in %%{_libexecdir}. If it is not in transaction, then depends +-- whether copy-jdk-configs is installed or not. If so, then configs are copied +-- (copy_jdk_configs from %%{_libexecdir} used) or not copied at all +local posix = require "posix" + +if (os.getenv("debug") == "true") then + debug = true; + print("cjc: in spec debug is on") +else + debug = false; +end + +SOURCE1 = "%{rpm_state_dir}/copy_jdk_configs.lua" +SOURCE2 = "%{_libexecdir}/copy_jdk_configs.lua" + +local stat1 = posix.stat(SOURCE1, "type"); +local stat2 = posix.stat(SOURCE2, "type"); + + if (stat1 ~= nil) then + if (debug) then + print(SOURCE1 .." exists - copy-jdk-configs in transaction, using this one.") + end; + package.path = package.path .. ";" .. SOURCE1 +else + if (stat2 ~= nil) then + if (debug) then + print(SOURCE2 .." exists - copy-jdk-configs already installed and NOT in transaction. Using.") + end; + package.path = package.path .. ";" .. SOURCE2 + else + if (debug) then + print(SOURCE1 .." does NOT exists") + print(SOURCE2 .." does NOT exists") + print("No config files will be copied") + end + return + end +end +-- run content of included file with fake args +cjc = require "copy_jdk_configs.lua" +arg = {"--currentjvm", "%{uniquesuffix %{nil}}", "--jvmdir", "%{_jvmdir %{nil}}", "--origname", "%{name}", "--origjavaver", "%{javaver}", "--arch", "%{_arch}", "--temp", "%{rpm_state_dir}/%{name}.%{_arch}"} +cjc.mainProgram(arg) + +%post +%{post_script %{nil}} + +%post headless +%{post_headless %{nil}} + +%postun +%{postun_script %{nil}} + +%postun headless +%{postun_headless %{nil}} + +%posttrans +%{posttrans_script %{nil}} + +%post devel +%{post_devel %{nil}} + +%postun devel +%{postun_devel %{nil}} + +%posttrans devel +%{posttrans_devel %{nil}} + +%post javadoc +%{post_javadoc %{nil}} + +%postun javadoc +%{postun_javadoc %{nil}} + +%post javadoc-zip +%{post_javadoc_zip %{nil}} + +%postun javadoc-zip +%{postun_javadoc_zip %{nil}} + +%endif + +%if %{include_debug_build} +%post slowdebug +%{post_script -- %{debug_suffix_unquoted}} + +%post headless-slowdebug +%{post_headless -- %{debug_suffix_unquoted}} + +%postun slowdebug +%{postun_script -- %{debug_suffix_unquoted}} + +%postun headless-slowdebug +%{postun_headless -- %{debug_suffix_unquoted}} + +%posttrans slowdebug +%{posttrans_script -- %{debug_suffix_unquoted}} + +%post devel-slowdebug +%{post_devel -- %{debug_suffix_unquoted}} + +%postun devel-slowdebug +%{postun_devel -- %{debug_suffix_unquoted}} + +%posttrans devel-slowdebug +%{posttrans_devel -- %{debug_suffix_unquoted}} + +%endif + +%if %{include_normal_build} +%files +# main package builds always +%{files_jre %{nil}} +%else +%files +# placeholder +%endif + + +%if %{include_normal_build} +%files headless +%{files_jre_headless %{nil}} + +%files devel +%{files_devel %{nil}} + +%files demo -f %{name}-demo.files +%{files_demo %{nil}} + +%files src +%{files_src %{nil}} + +%files javadoc +%{files_javadoc %{nil}} + +# this puts huge file to /usr/share +# unluckily ti is really a documentation file +# and unluckily it really is architecture-dependent, as eg. aot and grail are now x86_64 only +# same for debug variant +%files javadoc-zip +%{files_javadoc_zip %{nil}} + +%files accessibility +%{files_accessibility %{nil}} + +%if %{with_openjfx_binding} +%files openjfx -f %{name}-openjfx.files + +%files openjfx-devel -f %{name}-openjfx-devel.files +%endif +%endif + +%if %{include_debug_build} +%files slowdebug +%{files_jre -- %{debug_suffix_unquoted}} + +%files headless-slowdebug +%{files_jre_headless -- %{debug_suffix_unquoted}} + +%files devel-slowdebug +%{files_devel -- %{debug_suffix_unquoted}} + +%files demo-slowdebug -f %{name}-demo.files-slowdebug +%{files_demo -- %{debug_suffix_unquoted}} + +%files src-slowdebug +%{files_src -- %{debug_suffix_unquoted}} + +%files accessibility-slowdebug +%{files_accessibility -- %{debug_suffix_unquoted}} + +%if %{with_openjfx_binding} +%files openjfx-slowdebug -f %{name}-openjfx.files-slowdebug + +%files openjfx-devel-slowdebug -f %{name}-openjfx-devel.files-slowdebug +%endif +%endif + +%changelog +* Thu Jul 28 2022 kuenking111 - 1:1.8.0.342-b07.2 +- add modify_coding_style_and_describe_error.patch +- add Improve_AlgorithmConstraints_checkAlgorithm_performance.patch +- add fix_wrap_memcpy_undefined_gcc10_3.patch +- modified implementation_of_Blas_hotspot_function_in_Intrinsics.patch + +* Thu Jul 28 2022 kuenking111 - 1:1.8.0.342-b07.1 +- del hg git files + +* Fri Jul 22 2022 kuenking111 - 1:1.8.0.342-b07.0 +- del 8168926.patch +- del 8194154.patch +- del 8202142-jfr-event-io-TestInstrumentation-is-unstable.patch +- del 8266187_Memory_leak_in_appendBootClassPath.patch +- del debuginfo.diz-should-not-contain-the-path-after-unzip.patch +- del fix-make-bugs-when-git-and-hg-not-exist.patch +- modified 7092821-java.security.Provider.getService-is-synchro.patch +- modified 8268819-SA-Remove-libthread_db-dependency-on-Linux.patch +- modified fix-log-bug-enhance-aes-hmac-performance.patch + +* Fri Jul 15 2022 kuenking111 - 1:1.8.0.332-b09.7 +- del remove-gnu-debuglink-when-using-enable-debug-.patch + +* Mon Jul 4 2022 kuenking111 - 1:1.8.0.332-b09.6 +- add 8067941-TESTBUG-Fix-tests-for-OS-with-64K-page-size.patch + +* Mon Jul 4 2022 kuenking111 - 1:1.8.0.332-b09.5 +- add 8173339-AArch64-Fix-minimum-stack-size-computations.patch + +* Mon Jul 4 2022 kuenking111 - 1:1.8.0.332-b09.4 +- add 7092821-java.security.Provider.getService-is-synchro.patch + +* Thu Jun 30 2022 kuenking111 - 1:1.8.0.332-b09.3 +- add change-sa-jdi.jar-make-file-for-BEP.PATCH + +* Thu Apr 28 2022 kuenking111 - 1:1.8.0.332-b09.2 +- add fix_X509TrustManagerImpl_symantec_distrust.patch + +* Wed Apr 27 2022 kuenking111 - 1:1.8.0.332-b09.1 +- add Fix-compile-and-runtime-failures-for-minimal1-versio.patch + +* Wed Apr 27 2022 kuenking111 - 1:1.8.0.332-b09.0 +- deleted Support-Git-commit-ID-in-the-SOURCE-field-of-the-release.patch +- deleted 8167014-jdeps-failed-with-Missing-message-warn-skippen-entry.patch +- deleted fix-wrong-commitID-in-release-file.patch +- deleted recreate-.java_pid-file-when-deleted-for-attach-mechanism.patch +- modified update-cacerts-and-VerifyCACerts.java-test.patch +- modified 8194154.patch +- modified add-missing-test-case.patch +- add fix-make-bugs-when-git-and-hg-not-exist.patch + +* Wed Mar 2 2022 kuenking111 - 1:1.8.0.322-b06.4 +- add 8268819-SA-Remove-libthread_db-dependency-on-Linux.patch + +* Tue Mar 1 2022 kuenking111 - 1:1.8.0.322-b06.3 +- modified 8233280-Remove-GCLockerInvokesConcurrent-relative-logic-for-G1.patch + +* Wed Feb 16 2022 kuenking111 - 1:1.8.0.322-b06.2 +- add add-system-property-swing.JComboBox.useLegacyMode.patch +- add debuginfo.diz-should-not-contain-the-path-after-unzip.patch +- add 8173361-various-crashes-in-JvmtiExport-post_compiled.patch +- add fix-TestUseCompressedOopsErgo-run-failed.patch +- add fix-testme-Test6929067-run-faild.patch +- add penetration_testing_vulnerability_fix.patch +- add 8136577_Make_AbortVMOnException_available_in_product_builds.patch +- add add-environment-variable-ZIP_INVALID_LOC_HEADER_EXIT.patch +- add print-fd-and-file-path-when-a-zip-invalid-loc-header.patch +- add 8207011-Remove-uses-of-the-register-storage-class-specifier.patch +- modified implementation_of_Blas_hotspot_function_in_Intrinsics.patch + +* Tue Feb 15 2022 eapen - 1:1.8.0.322-b06.1 +- fix makes failure when gcc version is lower than 8 + +* Thu Feb 10 2022 eapen - 1:1.8.0.322-b06.0 +- upgrade to 8u322-b06(ga) +- modified fast-serializer-jdk8.patch to adopt openjdk +- modified update-cacerts-and-VerifyCACerts.java-test.patch +- deleted 8182036.patch +- deleted 8183543-Aarch64-C2-compilation-often-fails-with-fail--last.patch +- deleted Delete-expired-certificate-globalsignr2ca.patch +- deleted inline-optimize-for-aarch64.patch + +* Tue Jan 05 2021 noah - 1:1.8.0.312-b07.11 +- adapted to newst cjc to fix issue with rpm 4.17 + +* Tue Dec 21 2021 kuenking111 - 1:1.8.0.312-b07.10 +- delete stack protection + +* Mon Dec 20 2021 kuenking111 - 1:1.8.0.312-b07.9 +- add downgrade-the-symver-of-fcntl64.patch + +* Mon Dec 20 2021 kuenking111 - 1:1.8.0.312-b07.8 +- add wrap_memcpy to libsaproc + +* Thu Dec 16 2021 kuenking111 - 1:1.8.0.312-b07.7 +- add Delete-expired-certificate-globalsignr2ca.patch + +* Fri Dec 10 2021 kuenking111 - 1:1.8.0.312-b07.6 +- add G1Uncommit-add-G1UncommitLog-limit-before-G1Uncommit.patch + +* Fri Dec 10 2021 kuenking111 - 1:1.8.0.312-b07.5 +- add G1-Full-GC-parallel-mark.patch + +* Fri Dec 10 2021 kuenking111 - 1:1.8.0.312-b07.4 +- add G1Ucommit-Refactor-Trigger-mechanism.patch + +* Fri Dec 10 2021 kuenking111 - 1:1.8.0.312-b07.3 +- add 8233280-Remove-GCLockerInvokesConcurrent-relative-logic-for-G1.patch + +* Fri Dec 10 2021 kuenking111 - 1:1.8.0.312-b07.2 +- add 8273111-Default-timezone-should-return-zone-ID-if-locatiome-is-valid-but-not-canonicalization-on-linux.patch + +* Tue Nov 23 2021 lijingwei - 1:1.8.0.312-b07.1 +- correct spec file release number typo + +* Mon Nov 1 2021 kuenking111 - 1:1.8.0.312-b07.0 +- update to 8u312-b07(ga) +- delete 8194246.patch +- delete 8214418-half-closed-SSLEngine-status-may-cause-appli.patch +- delete 8268453-sun-security-pkcs12-EmptyPassword.java-fails.patch +- modified Parallel-Full-GC-for-G1.patch +- modified update-cacerts-and-VerifyCACerts.java-test.patch +- modified openjdk-1.8.0.spec + +* Fri Oct 15 2021 zhangweiguo - 1:1.8.0.302-b07.5 +- parallelize compilation targets and set make JOBS to cpu number + +* Sat Sep 18 2021 kuenking111 - 1:1.8.0.302-b07.4 +- add 8183543-Aarch64-C2-compilation-often-fails-with-fail--last.patch + +* Fri Sep 17 2021 kuenking111 - 1:1.8.0.302-b07.3 +- add 8167014-jdeps-failed-with-Missing-message-warn-skippen-entry.patch +- add fix_bug_in_keypairgenerator.patch +- add C1-assert-is_virtual-failed-type-check.patch +- add 8197387-Run-the-jcmd-tool-as-the-root-user-to-access.patch +- add create-jfr-dump-file-with-pid-or-timestamp-if-specif.patch +- add 8268453-sun-security-pkcs12-EmptyPassword.java-fails.patch +- add enhance-the-TimeZone-s-path-solution-on-Euler.patch +- add fix-wrong-commitID-in-release-file.patch +- add fix-appcds-s-option-AppCDSLockFile.patch +- add PS-introduce-UsePSRelaxedForwardee-to-enable-using-r.patch +- add Parallel-Full-GC-for-G1.patch +- add 8202142-jfr-event-io-TestInstrumentation-is-unstable.patch +- add 8143251-Thread-suspend-on-VM_G1IncCollectionPause-do.patch +- add G1Uncommit-Introduce-G1PeriodGCNotRetry-control-whet.patch +- add JDK-debug-version-crash-when-using-AppCDS.patch + +* Fri Aug 20 2021 kuenking111 - 1:1.8.0.302-b07.2 +- add fix_g1uncommit_ygc_expand_crash.patch + +* Thu Aug 19 2021 eapen - 1:1.8.0.302-b07.1 +- delete 8266929_huawei_add_oid_mapping_common_sig_types.patch + +* Wed Aug 11 2021 eapen - 1:1.8.0.302-b07.0 +- update to 8u302-b07(ga)(switch to jdk8u from aarch64-port/jdk8u-shenandoah) +- add 8069191.patch +- add fix-lock-ordering-issue-when-calling-JVMTI-GetLoaded.patch +- delete 8134883.patch +- delete 818172_overflow_when_strength_reducing_interger_multiply.patch +- delete 8190332.patch +- delete 8191955.patch +- delete 8203196.patch +- delete 8214345.patch +- delete 8231631.patch +- delete 8231841-debug.cpp-help-is-missing-an-AArch64-line-fo.patch +- delete 8259886-Improve-SSL-session-cache-performance-and-sc.patch +- delete 8264640.patch +- delete delete_untrustworthy_cacert_soneraclass2ca.patch +- delete fix-crash-in-JVMTI-debug.patch +- other adaptations to jdk8u302 + +* Mon Jul 12 2021 noah - 1:1.8.0.292-b10.19 +- add Fix-RSACipher-memory-usage.patch + +* Mon Jul 12 2021 kuenking111 - 1:1.8.0.292-b10.18 +- fix run SPECjvm2008 failed on 32 bit system + +* Thu Jul 8 2021 noah - 1:1.8.0.292-b10.17 +- remove debug log to reduce build time + +* Mon Jul 5 2021 noah - 1:1.8.0.292-b10.16 +- add Fix-ECDH-and-DH-memory-usage.patch + +* Mon Jun 28 2021 kuenking111 - 1:1.8.0.292-b10.15 +- fix delete_untrustworthy_cacert_soneraclass2ca.patch + +* Thu Jun 17 2021 kuenking111 - 1:1.8.0.292-b10.14 +- fix systemDictionary resolve_from_stream ResourceMark + +* Wed Jun 16 2021 kuenking111 - 1:1.8.0.292-b10.13 +- add fix_G1GC_memory_leak_in_numa.patch + +* Sat Jun 12 2021 kuenking111 - 1:1.8.0.292-b10.12 +- add implementation_of_Blas_hotspot_function_in_Intrinsics.patch + +* Sat Jun 12 2021 kuenking111 - 1:1.8.0.292-b10.11 +- add g1gc-numa-aware-Implementation.patch + +* Fri Jun 11 2021 hu_bo_dao - 1:1.8.0.292-b10.10 +- add support_CMS_parallel_inspection.patch + +* Wed Jun 9 2021 noah - 1:1.8.0.292-b10.9 +- add modify_the_default_iteration_time_and_forks_in_the_JMH_of_KAEProvider.patch + +* Tue Jun 8 2021 noah - 1:1.8.0.292-b10.8 +- fix kae exception compatibility + +* Tue Jun 8 2021 kuenking111 - 1:1.8.0.292-b10.7 +- add improve_algorithmConstraints_checkAlgorithm_performance.patch + +* Mon Jun 7 2021 kuenking111 - 1:1.8.0.292-b10.6 +- add add_kae_implementation_add_default_conf_file.patch + +* Fri Jun 4 2021 hedongbo - 1:1.8.0.292-b10.5 +- change the way to get the version in openjdk-1.8.0.spec + +* Thu May 27 2021 kuenking111 - 1:1.8.0.292-b10.4 +- add 8264640.patch + +* Fri May 21 2021 kuenking111 - 1:1.8.0.292-b10.3 +- add 8266929_huawei_add_oid_mapping_common_sig_types.patch + +* Fri May 21 2021 kuenking111 - 1:1.8.0.292-b10.2 +- add 8266187_Memory_leak_in_appendBootClassPath.patch + +* Fri May 21 2021 kuenking111 - 1:1.8.0.292-b10.1 +- add 8247691_incorrect_handling_of_VM_exceptions_in_C1_deopt_stub.patch + +* Tue May 18 2021 eapen - 1:1.8.0.292-b10.0 +- update to jdk8u292-b10 +- split sync-patch to multi patches + +* Wed May 19 2021 Noah - 1:1.8.0.282-b08.19 +- add add-kaeEngine-to-rsa.patch + +* Mon May 17 2021 Noah - 1:1.8.0.282-b08.18 +- add kae-phase2.patch + +* Tue Apr 20 2021 aijm - 1:1.8.0.282-b08.17 +- delete zlib-optimization.patch +- modify src-openeuler-openjdk-1.8.0-resolve-code-inconsistencies.patch + +* Tue Apr 20 2021 aijm - 1:1.8.0.282-b08.16 +- add Code-style-fix.patch + +* Tue Apr 20 2021 aijm - 1:1.8.0.282-b08.15 +- add fix-windows-compile-fail.patch + +* Tue Apr 20 2021 aijm - 1:1.8.0.282-b08.14 +- add fix-BoxTypeCachedMax-build-failure-when-jvm-variants.patch + +* Mon Apr 19 2021 aijm - 1:1.8.0.282-b08.13 +- add add-missing-test-case.patch + +* Thu Apr 15 2021 kuenking - 1:1.8.0.282-b08.12 +- add 818172_overflow_when_strength_reducing_interger_multiply.patch + +* Tue Apr 13 2021 kuenking - 1:1.8.0.282-b08.11 +- add src-openeuler-openjdk-1.8.0-resolve-code-inconsistencies.patch + +* Fri Apr 2 2021 Benshuai5D - 1:1.8.0.282-b08.10 +- delete redundant set-vm.vendor-by-configure.patch +- delete redundant make-disable-precompiled-headers-work.patch +- delete redundant FromCardCache-default-card-index-can-cause.patch +- delete redundant The-runok-method-retrying-another-port-does-not-take.patch +- delete redundant fix-incorrect-offset-for-opp-field-with-weak-memory-.patch +- delete redundant dismiss-company_name-info-of-java-version.patch + +* Sat Mar 27 2021 Noah - 1:1.8.0.282-b08.9 +- add fix_VerifyCerts.java_testcase_bug.patch + +* Fri Mar 19 2021 kuenking111 - 1:1.8.0.282-b08.8 +- add 8214535-support-Jmap-parallel.patch + +* Fri Mar 19 2021 DataAndOperation - 1:1.8.0.282-b08.7 +- add 8231841-debug.cpp-help-is-missing-an-AArch64-line-fo.patch +- add initialized-value-should-be-0-in-perfInit.patch +- add 8254078-DataOutputStream-is-very-slow-post-disabling.patch +- add Use-atomic-operation-when-G1Uncommit.patch +- add 8168996-backport-of-C2-crash-at-postaloc.cpp-140-ass.patch +- add 8140597-Postpone-the-initial-mark-request-until-the-.patch +- add Use-Mutex-when-G1Uncommit.patch +- add C1-typos-repair.patch +- add 8214418-half-closed-SSLEngine-status-may-cause-appli.patch +- add 8259886-Improve-SSL-session-cache-performance-and-sc.patch + +* Wed Mar 17 2021 noah - 1:1.8.0.282-b08.6 +- add kae-phase1.patch + +* Fri Feb 5 2021 noah - 1:1.8.0.282-b08.5 +- delete some file header + +* Thu Feb 4 2021 jdkboy - 1:1.8.0.282-b08.4 +- add 8240353.patch + +* Thu Feb 4 2021 jdkboy - 1:1.8.0.282-b08.3 +- fix wrong patch G1-memory-uncommit.patch + +* Wed Feb 3 2021 jdkboy - 1:1.8.0.282-b08.2 +- add missing mapfile in G1-memory-uncommit.patch + +* Wed Feb 3 2021 jdkboy - 1:1.8.0.282-b08.1 +- update sha512sum of arch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b08.tar.xz + +* Tue Feb 2 2021 jdkboy - 1:1.8.0.282-b08.0 +- updated to aarch64-shenandoah-jdk8u282-b08 (from aarch64-port/jdk8u-shenandoah) +- delete 8160300.patch +- delete The-runok-method-retrying-another-port-does-not-take.patch +- delete 8214440-ldap-over-a-TLS-connection-negotiate-fail.patch +- delete 8165808-Add-release-barriers-when-allocating-objects-with-concurrent-collection.patch +- delete 8166583-Add-oopDesc-klass_or_null_acquire.patch +- delete 8166862-CMS-needs-klass_or_null_acquire.patch +- delete 8223940-Private-key-not-supported-by-chosen-signature.patch +- delete 8236512-PKCS11-Connection-closed-after-Cipher.doFinal-and-NoPadding.patch +- delete 8250861-Crash-in-MinINode-Ideal-PhaseGVN-bool.patch +- add 8080911.patch +- add 8168926.patch +- add 8215047.patch +- add 8237894.patch +- add Remove-the-parentheses-around-company-name.patch + +* Thu Dec 24 2020 lee18767 - 1:1.8.0.272-b10.14 +- add add-appcds-test-case.patch + +* Wed Dec 23 2020 hubodao - 1:1.8.0.272-b10.13 +- add delete-untrustworthy-cacert.patch + +* Wed Dec 23 2020 wujiahua - 1:1.8.0.272-b10.12 +- add 8207160-ClassReader-adjustMethodParams-can-potentially-return-null-if-the-args-list-is-empty.patch + +* Wed Dec 23 2020 DataAndOperation - 1:1.8.0.272-b10.11 +- add 8040327-Eliminate-AnnotatedType-8040319-Clean-up-type-annotation-exception-index.patch + +* Tue Dec 22 2020 miaozhuojun - 1:1.8.0.272-b10.10 +- add 8015927-Class-reference-duplicates-in-constant-pool.patch + +* Tue Dec 22 2020 cruise01 - 1:1.8.0.272-b10.9 +- add G1-memory-uncommit.patch + +* Tue Dec 22 2020 kuenking - 1:1.8.0.272-b10.8 +- add add-appcds-file-lock.patch + +* Mon Dec 21 2020 noah - 1:1.8.0.272-b10.7 +- add a license to this repo + +* Tue Nov 10 2020 ow_wo - 1:1.8.0.272-b10.6 +- add 8236512-PKCS11-Connection-closed-after-Cipher.doFinal-and-NoPadding.patch +- add 8250861-Crash-in-MinINode-Ideal-PhaseGVN-bool.patch + +* Mon Nov 09 2020 ow_wo - 1:1.8.0.272-b10.5 +- add 8223940-Private-key-not-supported-by-chosen-signature.patch + +* Fri Nov 06 2020 jdkboy - 1:1.8.0.272-b10.4 +- add 8165808-Add-release-barriers-when-allocating-objects-with-concurrent-collection.patch +- add 8166583-Add-oopDesc-klass_or_null_acquire.patch +- add 8166862-CMS-needs-klass_or_null_acquire.patch +- add 8160369.patch +- add PS-GC-adding-acquire_size-method-for-PSParallelCompa.patch + +* Fri Nov 06 2020 wuyan - 1:1.8.0.272-b10.3 +- add 8248336-AArch64-C2-offset-overflow-in-BoxLockNode-em.patch + +* Fri Nov 06 2020 xiezhaokun - 1:1.8.0.272-b10.2 +- add 8214440-ldap-over-a-TLS-connection-negotiate-fail.patch + +* Sat Oct 24 2020 noah - 1:1.8.0.272-b10.1 +- rename Boole to Bisheng + +* Fri Oct 23 2020 - 1:1.8.0.272-b10.0 +- updated to aarch64-shenandoah-jdk8u272-b10 (from aarch64-port/jdk8u-shenandoah) +- deleted: 8046294-Generate-the-4-byte-timestamp-randomly.patch +- deleted: 8148754-C2-loop-unrolling-fails-due-to-unexpected-gr.patch +- deleted: 8151788.patch +- deleted: 8161072.patch +- deleted: 8171537.patch +- deleted: 8203481-Incorrect-constraint-for-unextended_sp-in-frame-safe_for_sender.patch +- deleted: 8203699-java-lang-invoke-SpecialInte.patch +- modified: Extend-CDS-to-support-app-class-metadata-sharing.patch +- deleted: Test-SSLSocketSSLEngineTemplate.java-intermittent-fa.patch +- modified: fast-serializer-jdk8.patch +- deleted: fix-CompactibleFreeListSpace-block_size-crash.patch +- deleted: fix-incorrect-klass-field-in-oop-with-weak-memory-model.patch + +* Mon Sep 21 2020 noah -:1.8.0.265-b10.6 +- add add-DumpSharedSpace-guarantee-when-create-anonymous-classes.patch + +* Fri Sep 11 2020 noah -:1.8.0.265-b10.5 +- add 6896810-Pin.java-fails-with-OOME-during-System.out.p.patch +- add 8231631-sun-net-ftp-FtpURLConnectionLeak.java-fails-.patch +- add Test8167409.sh-fails-to-run-with-32bit-jdk-on-64bit-.patch +- add Test-SSLSocketSSLEngineTemplate.java-intermittent-fa.patch +- add The-runok-method-retrying-another-port-does-not-take.patch +- add 8048210-8056152-fix-assert-fail-for-an-InnocuousThre.patch +- add 8160425-Vectorization-with-signalling-NaN-returns-wr.patch +- add 8181503-Can-t-compile-hotspot-with-c-11.patch +- add 8243670-Unexpected-test-result-caused-by-C2-MergeMem.patch +- add fix-crash-in-JVMTI-debug.patch +- add fix-incorrect-klass-field-in-oop-with-weak-memory-model.patch +- add Fix-LineBuffer-vappend-when-buffer-too-small.patch +- add make-disable-precompiled-headers-work.patch +- add fix-CompactibleFreeListSpace-block_size-crash.patch +- add Remove-unused-GenericTaskQueueSet-T-F-tasks.patch +- add optimize-jmap-F-dump-xxx.patch +- add recreate-.java_pid-file-when-deleted-for-attach-mechanism.patch +- add Support-Git-commit-ID-in-the-SOURCE-field-of-the-release.patch +- add Extend-CDS-to-support-app-class-metadata-sharing.patch +- add zlib-optimization.patch + +* Tue Sep 8 2020 noah - 1:1.8.0.265-b10.4 +- add fast-serializer-jdk8.patch + +* Mon Sep 7 2020 noah - 1:1.8.0.265-b10.3 +- Delete some file header information + +* Mon Sep 1 2020 jdkboy - 1:1.8.0.265-b10.2 +- Remove fast-serializer-jdk8.patch + +* Tue Aug 29 2020 jdkboy - 1:1.8.0.265-b10.1 +- Add leaf-optimize-in-ParallelScanvageGC.patch +- Add 8046294-Generate-the-4-byte-timestamp-randomly.patch +- Add 8203481-Incorrect-constraint-for-unextended_sp-in-frame-safe_for_sender.patch +- Add fix-LongCache-s-range-when-BoxTypeCachedMax-number-is-bigger-than-Integer.MAX_VALUE.patch +- Add Ddot-intrinsic-implement.patch +- Add 8234003-Improve-IndexSet-iteration.patch +- Add 8220159-Optimize-various-RegMask-operations-by-introducing-watermarks.patch +- Remove prohibition-of-irreducible-loop-in-mergers.patch + +* Tue Aug 25 2020 noah - 1:1.8.0.265-b10.0 +- Update to aarch64-shenandoah-jdk8u-8u265-b01 +- add fix-Long-cache-range-and-remove-VM-option-java.lang.IntegerCache.high-by-default.patch + +* Mon Jul 21 2020 noah - 1:1.8.0.262-b10.1 +- add 8205921-Optimizing-best-of-2-work-stealing-queue-selection.patch + +* Thu Jul 18 2020 jdkboy - 1:1.8.0.262-b10.0 +- Update to aarch64-shenandoah-jdk8u-8u262-b10 +- add 8144993-Elide-redundant-memory-barrier-after-AllocationNode.patch +- add 8223504-improve-performance-of-forall-loops-by-better.patch +- add add-vm-option-BoxTypeCachedMax-for-Integer-and-Long-cache.patch +- add 8080289-8040213-8189067-move-the-store-out-of-the-loop.patch +- add fast-serializer-jdk8.patch +- add 8182397-race-in-field-updates.patch +- add --with-company-name="Boole" +- remove fix-incorrect-offset-for-oop-field-with-weak-memory-.patch + +* Thu Jun 11 2020 jdkboy - 1:1.8.0.262-b05.9 +- Update to aarch64-shenandoah-jdk8u-8u262-b05 + +* Tue Jun 9 2020 jdkboy - 1:1.8.0.262-b02.8 +- Add some judgement + +* Fri May 29 2020 Noah - 1:1.8.0.262-b02.7 +- Support desktop, nss, systemtap and openjfx. +- Provide slowdebug and java-doc-zip + +* Thu May 21 2020 jdkboy - 1:1.8.0.262-b02.6 +- Update to jdk8u-shenandoah-8u262-b02 +- Create GC worker threads dynamically + +* Fri Mar 20 2020 jdkboy - 1:1.8.0.242-b08.5 +- upgrade openjdk to jdk8u242-b08 + +* Thu Mar 12 2020 jdkboy - 1:1.8.0.232-b09.4 +- add inline optimize for aarch64 + +* Thu Mar 12 2020 jdkboy - 1:1.8.0.232-b09.3 +- add libjpeg.so in jre + +* Tue Jan 21 2020 jdkboy - 1:1.8.0.232-b09.2 +- remove accessibility + +* Sat Dec 14 2019 guoge - 1:1.8.0.232-b09.1 +- Initial build from OpenJDK aarch64-shenandoah-8u232-b09 diff --git a/Improve_AlgorithmConstraints_checkAlgorithm_performance.patch b/Improve_AlgorithmConstraints_checkAlgorithm_performance.patch new file mode 100644 index 0000000..cf5c5e4 --- /dev/null +++ b/Improve_AlgorithmConstraints_checkAlgorithm_performance.patch @@ -0,0 +1,149 @@ +From 4e520a51acbb192a0df844fcca247998d7fb8854 Mon Sep 17 00:00:00 2001 +From: wangkun +Date: Thu, 28 Jul 2022 17:19:32 +0800 +Subject: [PATCH 2/3] add + Improve-AlgorithmConstraints-checkAlgorithm-performa.patch + +--- + .../util/AbstractAlgorithmConstraints.java | 30 +++++++------------ + .../util/DisabledAlgorithmConstraints.java | 20 +++++++++---- + .../util/LegacyAlgorithmConstraints.java | 12 ++++++-- + 3 files changed, 35 insertions(+), 27 deletions(-) + +diff --git a/jdk/src/share/classes/sun/security/util/AbstractAlgorithmConstraints.java b/jdk/src/share/classes/sun/security/util/AbstractAlgorithmConstraints.java +index 944958de..5c760292 100644 +--- a/jdk/src/share/classes/sun/security/util/AbstractAlgorithmConstraints.java ++++ b/jdk/src/share/classes/sun/security/util/AbstractAlgorithmConstraints.java +@@ -77,34 +77,26 @@ public abstract class AbstractAlgorithmConstraints + return new ArrayList<>(Arrays.asList(algorithmsInProperty)); + } + +- static boolean checkAlgorithm(List algorithms, String algorithm, ++ static boolean checkAlgorithm(Set algorithms, String algorithm, + AlgorithmDecomposer decomposer) { + if (algorithm == null || algorithm.length() == 0) { + throw new IllegalArgumentException("No algorithm name specified"); + } + + Set elements = null; +- for (String item : algorithms) { +- if (item == null || item.isEmpty()) { +- continue; +- } ++ if (algorithms.contains(algorithm.toLowerCase())) { ++ return false; ++ } + +- // check the full name +- if (item.equalsIgnoreCase(algorithm)) { ++ // decompose the algorithm into sub-elements ++ if (elements == null) { ++ elements = decomposer.decompose(algorithm); ++ } ++ // check the element of the elements ++ for (String element : elements) { ++ if (algorithms.contains(element.toLowerCase())) { + return false; + } +- +- // decompose the algorithm into sub-elements +- if (elements == null) { +- elements = decomposer.decompose(algorithm); +- } +- +- // check the items of the algorithm +- for (String element : elements) { +- if (item.equalsIgnoreCase(element)) { +- return false; +- } +- } + } + + return true; +diff --git a/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java b/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java +index 51e62563..6ff26bf2 100644 +--- a/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java ++++ b/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java +@@ -96,7 +96,7 @@ public class DisabledAlgorithmConstraints extends AbstractAlgorithmConstraints { + new DisabledAlgorithmConstraints(PROPERTY_JAR_DISABLED_ALGS); + } + +- private final List disabledAlgorithms; ++ private final Set disabledAlgorithms; + private final Constraints algorithmConstraints; + + public static DisabledAlgorithmConstraints certPathConstraints() { +@@ -128,11 +128,11 @@ public class DisabledAlgorithmConstraints extends AbstractAlgorithmConstraints { + public DisabledAlgorithmConstraints(String propertyName, + AlgorithmDecomposer decomposer) { + super(decomposer); +- disabledAlgorithms = getAlgorithms(propertyName); ++ List disabledAlgorithmsList = getAlgorithms(propertyName); + + // Check for alias + int ecindex = -1, i = 0; +- for (String s : disabledAlgorithms) { ++ for (String s : disabledAlgorithmsList) { + if (s.regionMatches(true, 0,"include ", 0, 8)) { + if (s.regionMatches(true, 8, PROPERTY_DISABLED_EC_CURVES, 0, + PROPERTY_DISABLED_EC_CURVES.length())) { +@@ -143,11 +143,19 @@ public class DisabledAlgorithmConstraints extends AbstractAlgorithmConstraints { + i++; + } + if (ecindex > -1) { +- disabledAlgorithms.remove(ecindex); +- disabledAlgorithms.addAll(ecindex, ++ disabledAlgorithmsList.remove(ecindex); ++ disabledAlgorithmsList.addAll(ecindex, + getAlgorithms(PROPERTY_DISABLED_EC_CURVES)); + } +- algorithmConstraints = new Constraints(propertyName, disabledAlgorithms); ++ algorithmConstraints = new Constraints(propertyName, disabledAlgorithmsList); ++ ++ disabledAlgorithms = new HashSet(); ++ for (String algorithm : disabledAlgorithmsList) { ++ if (algorithm == null || algorithm.isEmpty()) { ++ continue; ++ } ++ disabledAlgorithms.add(algorithm.toLowerCase()); ++ } + } + + /* +diff --git a/jdk/src/share/classes/sun/security/util/LegacyAlgorithmConstraints.java b/jdk/src/share/classes/sun/security/util/LegacyAlgorithmConstraints.java +index 4e7502fb..01d0447a 100644 +--- a/jdk/src/share/classes/sun/security/util/LegacyAlgorithmConstraints.java ++++ b/jdk/src/share/classes/sun/security/util/LegacyAlgorithmConstraints.java +@@ -28,6 +28,7 @@ package sun.security.util; + import java.security.AlgorithmParameters; + import java.security.CryptoPrimitive; + import java.security.Key; ++import java.util.HashSet; + import java.util.List; + import java.util.Set; + +@@ -40,12 +41,19 @@ public class LegacyAlgorithmConstraints extends AbstractAlgorithmConstraints { + public final static String PROPERTY_TLS_LEGACY_ALGS = + "jdk.tls.legacyAlgorithms"; + +- private final List legacyAlgorithms; ++ private final Set legacyAlgorithms; + + public LegacyAlgorithmConstraints(String propertyName, + AlgorithmDecomposer decomposer) { + super(decomposer); +- legacyAlgorithms = getAlgorithms(propertyName); ++ List legacyAlgorithmsList = getAlgorithms(propertyName); ++ legacyAlgorithms = new HashSet(); ++ for (String algorithm : legacyAlgorithmsList) { ++ if (algorithm == null || algorithm.isEmpty()) { ++ continue; ++ } ++ legacyAlgorithms.add(algorithm.toLowerCase()); ++ } + } + + @Override +-- +2.22.0 + diff --git a/fix_wrap_memcpy_undefined_gcc10_3.patch b/fix_wrap_memcpy_undefined_gcc10_3.patch new file mode 100644 index 0000000..9da21e6 --- /dev/null +++ b/fix_wrap_memcpy_undefined_gcc10_3.patch @@ -0,0 +1,291 @@ +diff --git a/jdk/make/CompileDemos.gmk b/jdk/make/CompileDemos.gmk +index 763c968e..6c5eb432 100644 +--- a/jdk/make/CompileDemos.gmk ++++ b/jdk/make/CompileDemos.gmk +@@ -250,7 +250,6 @@ define SetupJVMTIDemo + SRC := $(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC), \ + LANG := $$(BUILD_DEMO_JVMTI_$1_LANG), \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CXXFLAGS := $$($1_CXXFLAGS), \ + LDFLAGS := $(filter-out -incremental:no -opt:ref, $$(LDFLAGS_JDKLIB)), \ + LDFLAGS_macosx := $$(call SET_EXECUTABLE_ORIGIN), \ +diff --git a/jdk/make/CompileLaunchers.gmk b/jdk/make/CompileLaunchers.gmk +index 29211f83..2ac718fc 100644 +--- a/jdk/make/CompileLaunchers.gmk ++++ b/jdk/make/CompileLaunchers.gmk +@@ -512,7 +512,6 @@ $(eval $(call SetupNativeCompilation,BUILD_UNPACKEXE, \ + EXCLUDE_FILES := jni.cpp, \ + LANG := $(UNPACKEXE_LANG), \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(UNPACKEXE_CFLAGS) $(CXXFLAGS_JDKEXE) \ + -DFULL, \ + CFLAGS_release := -DPRODUCT, \ +diff --git a/jdk/make/lib/Awt2dLibraries.gmk b/jdk/make/lib/Awt2dLibraries.gmk +index 71d87c37..9368a9d5 100644 +--- a/jdk/make/lib/Awt2dLibraries.gmk ++++ b/jdk/make/lib/Awt2dLibraries.gmk +@@ -52,7 +52,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBMLIB_IMAGE, \ + EXCLUDE_FILES := awt_ImagingLib.c mlib_c_ImageBlendTable.c, \ + LANG := C, \ + OPTIMIZATION := HIGHEST, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(BUILD_LIBMLIB_CFLAGS), \ + MAPFILE := $(BUILD_LIBMLIB_IMAGE_MAPFILE), \ +@@ -471,7 +470,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBAWT, \ + INCLUDE_FILES := $(LIBAWT_FILES), \ + LANG := $(LIBAWT_LANG), \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_CFLAGS), \ + ASFLAGS := $(LIBAWT_ASFLAGS), \ + MAPFILE := $(LIBAWT_MAPFILE), \ +@@ -633,7 +631,6 @@ ifeq ($(findstring $(OPENJDK_TARGET_OS),windows macosx),) + INCLUDE_FILES := $(LIBAWT_XAWT_FILES), \ + LANG := C, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_XAWT_CFLAGS) \ + $(X_CFLAGS), \ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libawt_xawt/mapfile-vers, \ +@@ -675,7 +672,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBLCMS, \ + SRC := $(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms, \ + LANG := C, \ + OPTIMIZATION := HIGHEST, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(filter-out -xc99=%none, $(CFLAGS_JDKLIB)) \ + -DCMS_DONT_USE_FAST_FLOOR \ + $(SHARED_LIBRARY_FLAGS) \ +@@ -743,7 +739,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJPEG, \ + $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \ + LANG := C, \ + OPTIMIZATION := HIGHEST, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(BUILD_LIBJPEG_CLOSED_INCLUDES) \ + -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \ +@@ -919,7 +914,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \ + EXCLUDE_FILES := $(LIBFONTMANAGER_EXCLUDE_FILES) \ + AccelGlyphCache.c, \ + LANG := C++, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(CFLAGS_JDKLIB) $(BUILD_LIBFONTMANAGER_CFLAGS_COMMON), \ + CXXFLAGS := $(CXXFLAGS_JDKLIB) $(BUILD_LIBFONTMANAGER_CFLAGS_COMMON), \ + OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \ +@@ -1211,7 +1205,6 @@ ifndef BUILD_HEADLESS_ONLY + EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \ + LANG := C, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) $(GIFLIB_CFLAGS), \ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ +diff --git a/jdk/make/lib/CoreLibraries.gmk b/jdk/make/lib/CoreLibraries.gmk +index b444abf9..e43fc2ed 100644 +--- a/jdk/make/lib/CoreLibraries.gmk ++++ b/jdk/make/lib/CoreLibraries.gmk +@@ -113,7 +113,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBVERIFY, \ + INCLUDE_FILES := $(BUILD_LIBVERIFY_SRC), \ + LANG := C, \ + OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(CFLAGS_JDKLIB), \ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libverify/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ +@@ -225,7 +224,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJAVA, \ + EXCLUDE_FILES := $(LIBJAVA_EXCLUDE_FILES), \ + LANG := C, \ + OPTIMIZATION := HIGH, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(LIBJAVA_CFLAGS), \ + MAPFILE := $(LIBJAVA_MAPFILE), \ +@@ -287,7 +285,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBZIP, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + LANG := C, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + SRC := $(JDK_TOPDIR)/src/share/native/java/util/zip, \ + EXCLUDES := $(LIBZIP_EXCLUDES), \ + CFLAGS := $(CFLAGS_JDKLIB) \ +@@ -329,7 +326,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBUNPACK, \ + EXCLUDE_FILES := main.cpp, \ + LANG := C++, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(CXXFLAGS_JDKLIB) \ + -DNO_ZLIB -DUNPACK_JNI -DFULL, \ + CFLAGS_release := -DPRODUCT, \ +@@ -442,7 +438,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJLI, \ + INCLUDE_FILES := $(BUILD_LIBJLI_FILES), \ + LANG := C, \ + OPTIMIZATION := HIGH, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(LIBJLI_CFLAGS), \ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjli/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ +@@ -544,7 +539,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBNPT, \ + SRC := $(JDK_TOPDIR)/src/share/npt $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt, \ + LANG := C, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/share/npt \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt, \ +diff --git a/jdk/make/lib/NetworkingLibraries.gmk b/jdk/make/lib/NetworkingLibraries.gmk +index f826c66d..347c3237 100644 +--- a/jdk/make/lib/NetworkingLibraries.gmk ++++ b/jdk/make/lib/NetworkingLibraries.gmk +@@ -65,7 +65,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBNET, \ + EXCLUDE_FILES := $(LIBNET_EXCLUDE_FILES), \ + LANG := C, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(LIBNET_CFLAGS), \ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnet/mapfile-vers, \ +diff --git a/jdk/make/lib/NioLibraries.gmk b/jdk/make/lib/NioLibraries.gmk +index 54c9c29e..6c9c46a3 100644 +--- a/jdk/make/lib/NioLibraries.gmk ++++ b/jdk/make/lib/NioLibraries.gmk +@@ -181,7 +181,6 @@ ifeq ($(OPENJDK_TARGET_OS_API), posix) + SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/ch/sctp, \ + LANG := C, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch \ + -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch/sctp \ +diff --git a/jdk/make/lib/SecurityLibraries.gmk b/jdk/make/lib/SecurityLibraries.gmk +index 10ab8043..5b9ec17f 100644 +--- a/jdk/make/lib/SecurityLibraries.gmk ++++ b/jdk/make/lib/SecurityLibraries.gmk +@@ -196,7 +196,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJ2PKCS11, \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11/wrapper, \ + LANG := C, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/share/native/sun/security/pkcs11 \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11 \ +@@ -242,7 +241,6 @@ ifeq ($(ENABLE_INTREE_EC), yes) + $(JDK_TOPDIR)/src/share/native/sun/security/ec/impl, \ + LANG := C++, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(filter-out $(ECC_JNI_SOLSPARC_FILTER), $(CFLAGS_JDKLIB)) \ + $(BUILD_LIBSUNEC_FLAGS) \ + -DMP_API_COMPATIBLE -DNSS_ECC_MORE_THAN_SUITE_B, \ +@@ -300,7 +298,6 @@ ifeq ($(ENABLE_KAE), true) + SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/org/openeuler/security/openssl, \ + LANG := C, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/org/openeuler/security/openssl, \ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libj2kae/mapfile-vers, \ +diff --git a/jdk/make/lib/ServiceabilityLibraries.gmk b/jdk/make/lib/ServiceabilityLibraries.gmk +index 2c80ffc0..19c8601d 100644 +--- a/jdk/make/lib/ServiceabilityLibraries.gmk ++++ b/jdk/make/lib/ServiceabilityLibraries.gmk +@@ -83,7 +83,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBDT_SOCKET, \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/transport/socket, \ + LANG := C, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(CFLAGS_JDKLIB) $(CFLAGS_WARNINGS_ARE_ERRORS) -DUSE_MMAP \ + -I$(INCLUDEDIR) -I$(JDK_OUTPUTDIR)/include/$(OPENJDK_TARGET_OS) \ + -I$(JDK_TOPDIR)/src/share/transport/socket \ +@@ -149,7 +148,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJDWP, \ + SRC := $(JDK_TOPDIR)/src/share/back $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/back, \ + LANG := C, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(CFLAGS_JDKLIB) $(CFLAGS_WARNINGS_ARE_ERRORS) -DJDWP_LOGGING \ + -I$(JDK_TOPDIR)/src/share/transport/export \ + -I$(JDK_TOPDIR)/src/share/back/export \ +@@ -255,7 +253,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBINSTRUMENT, \ + INCLUDE_FILES := $(LIBINSTRUMENT_FILES), \ + LANG := C, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(LIBINSTRUMENT_CFLAGS) $(CFLAGS_WARNINGS_ARE_ERRORS), \ + CFLAGS_debug := -DJPLIS_LOGGING, \ + CFLAGS_release := -DNO_JPLIS_LOGGING, \ +@@ -379,7 +376,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBHPROF, \ + SRC := $(BUILD_LIBHPROF_SRC), \ + LANG := C, \ + OPTIMIZATION := $(LIBHPROF_OPTIMIZATION), \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(CFLAGS_JDKLIB) $(CFLAGS_WARNINGS_ARE_ERRORS) \ + $(BUILD_LIBHPROF_CFLAGS), \ + CFLAGS_debug := -DHPROF_LOGGING, \ +@@ -408,7 +404,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJAVA_CRW_DEMO, \ + SRC := $(JDK_TOPDIR)/src/share/demo/jvmti/java_crw_demo, \ + LANG := C, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(CFLAGS_JDKLIB) $(CFLAGS_WARNINGS_ARE_ERRORS) \ + -I$(JDK_TOPDIR)/src/share/demo/jvmti/java_crw_demo, \ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjava_crw_demo/mapfile-vers, \ +diff --git a/jdk/make/lib/SoundLibraries.gmk b/jdk/make/lib/SoundLibraries.gmk +index 0ea9ba84..b59a9462 100644 +--- a/jdk/make/lib/SoundLibraries.gmk ++++ b/jdk/make/lib/SoundLibraries.gmk +@@ -201,7 +201,6 @@ ifneq ($(filter jsoundalsa, $(EXTRA_SOUND_JNI_LIBS)), ) + PLATFORM_API_LinuxOS_ALSA_Ports.c, \ + LANG := C, \ + OPTIMIZATION := LOW, \ +- EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp, \ + CFLAGS := $(CFLAGS_JDKLIB) $(ALSA_CFLAGS) \ + $(LIBJSOUND_CFLAGS) \ + -DUSE_DAUDIO=TRUE \ +diff --git a/make/common/NativeCompilation.gmk b/make/common/NativeCompilation.gmk +index 2d9bdbee..9586d20e 100644 +--- a/make/common/NativeCompilation.gmk ++++ b/make/common/NativeCompilation.gmk +@@ -271,6 +271,7 @@ define SetupNativeCompilation + + # Find all files in the source trees. Sort to remove duplicates. + $1_ALL_SRCS := $$(sort $$(call CacheFind,$$($1_SRC))) ++ + # Extract the C/C++ files. + $1_EXCLUDE_FILES:=$$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$($1_EXCLUDE_FILES))) + $1_INCLUDE_FILES:=$$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$($1_INCLUDE_FILES))) +@@ -281,13 +282,20 @@ define SetupNativeCompilation + ifneq (,$$(strip $$($1_INCLUDE_FILES))) + $1_SRCS := $$(filter $$($1_INCLUDE_FILES),$$($1_SRCS)) + endif ++ ++ # Pickup extra OPENJDK_TARGET_OS_API and/or OPENJDK_TARGET_OS dependent variables ++ # for LDFLAGS and LDFLAGS_SUFFIX ++ $1_EXTRA_LDFLAGS:=$$($1_LDFLAGS_$(OPENJDK_TARGET_OS_API)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS)) ++ $1_EXTRA_LDFLAGS_SUFFIX:=$$($1_LDFLAGS_SUFFIX_$(OPENJDK_TARGET_OS_API)) $$($1_LDFLAGS_SUFFIX_$(OPENJDK_TARGET_OS)) ++ + ifeq ($(OPENJDK_TARGET_OS), linux) # only on linux +- ifneq ($(OPENJDK_TARGET_CPU_ARCH), aarch64) # not need on the arm arch +- ifneq (,$$(strip $$($1_EXTRA_FILES))) +- $1_SRCS += $$($1_EXTRA_FILES) ++ ifneq ($$(findstring wrap=memcpy, $$($1_LDFLAGS)$$($1_EXTRA_LDFLAGS))$$($1_EXTRA_LDFLAGS_SUFFIX),) ++ ifeq ($$(findstring memcpy.cpp, $$($1_SRCS)),) ++ $1_SRCS += $(HOTSPOT_TOPDIR)/src/os_cpu/linux_x86/vm/memcpy.cpp + endif + endif + endif ++ + ifeq (,$$($1_SRCS)) + $$(error No sources found for $1 when looking inside the dirs $$($1_SRC)) + endif +@@ -432,10 +440,6 @@ define SetupNativeCompilation + endif + endif + +- # Pickup extra OPENJDK_TARGET_OS_API and/or OPENJDK_TARGET_OS dependent variables +- # for LDFLAGS and LDFLAGS_SUFFIX +- $1_EXTRA_LDFLAGS:=$$($1_LDFLAGS_$(OPENJDK_TARGET_OS_API)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS)) +- $1_EXTRA_LDFLAGS_SUFFIX:=$$($1_LDFLAGS_SUFFIX_$(OPENJDK_TARGET_OS_API)) $$($1_LDFLAGS_SUFFIX_$(OPENJDK_TARGET_OS)) + ifneq (,$$($1_REAL_MAPFILE)) + $1_EXTRA_LDFLAGS += $(call SET_SHARED_LIBRARY_MAPFILE,$$($1_REAL_MAPFILE)) + endif diff --git a/implementation_of_Blas_hotspot_function_in_Intrinsics.patch b/implementation_of_Blas_hotspot_function_in_Intrinsics.patch index e731e53..50f26b4 100755 --- a/implementation_of_Blas_hotspot_function_in_Intrinsics.patch +++ b/implementation_of_Blas_hotspot_function_in_Intrinsics.patch @@ -289,8 +289,8 @@ index c5ec637a1..125983179 100644 + // Search path: /jre/lib///libopenblas.so + if (jvm_offset >= 0) { + if (jvm_offset + strlen(library_name) + strlen(os::dll_file_extension()) < JVM_MAXPATHLEN) { -+ strncpy(&path[jvm_offset], library_name, strlen(library_name)); -+ strncat(&path[jvm_offset], os::dll_file_extension(), strlen(os::dll_file_extension())); ++ strncpy(&path[jvm_offset], library_name, JVM_MAXPATHLEN - jvm_offset); ++ strncat(path, os::dll_file_extension(), strlen(os::dll_file_extension())); + library = (address)os::dll_load(path, err_buf, sizeof(err_buf)); + } + } diff --git a/modify_coding_style_and_describe_error.patch b/modify_coding_style_and_describe_error.patch new file mode 100644 index 0000000..9464ab2 --- /dev/null +++ b/modify_coding_style_and_describe_error.patch @@ -0,0 +1,56 @@ +From 9d32c786ff6886bcd4b76e0a80eb19ce602dbe42 Mon Sep 17 00:00:00 2001 +From: wangkun +Date: Thu, 28 Jul 2022 17:24:52 +0800 +Subject: [PATCH 3/3] fix xx + +--- + .../classes/org/openeuler/security/openssl/KAEDigest.java | 6 +++--- + .../classes/org/openeuler/security/openssl/KAEProvider.java | 2 -- + jdk/src/solaris/native/java/io/path_util.c | 1 - + 3 files changed, 3 insertions(+), 6 deletions(-) + +diff --git a/jdk/src/solaris/classes/org/openeuler/security/openssl/KAEDigest.java b/jdk/src/solaris/classes/org/openeuler/security/openssl/KAEDigest.java +index bb5c8681..6ff03241 100644 +--- a/jdk/src/solaris/classes/org/openeuler/security/openssl/KAEDigest.java ++++ b/jdk/src/solaris/classes/org/openeuler/security/openssl/KAEDigest.java +@@ -88,9 +88,9 @@ abstract class KAEDigest extends MessageDigestSpi implements Cloneable { + private static class DigestContextRef extends PhantomReference + implements Comparable { + +- private static ReferenceQueue referenceQueue = new ReferenceQueue<>(); +- private static Set referenceList = new ConcurrentSkipListSet<>(); +- private static boolean disableKaeDispose = Boolean.getBoolean("kae.disableKaeDispose"); ++ private static final ReferenceQueue referenceQueue = new ReferenceQueue<>(); ++ private static final Set referenceList = new ConcurrentSkipListSet<>(); ++ private static final boolean disableKaeDispose = Boolean.getBoolean("kae.disableKaeDispose"); + + private final long ctxAddress; + +diff --git a/jdk/src/solaris/classes/org/openeuler/security/openssl/KAEProvider.java b/jdk/src/solaris/classes/org/openeuler/security/openssl/KAEProvider.java +index 8ba70200..83ed8649 100644 +--- a/jdk/src/solaris/classes/org/openeuler/security/openssl/KAEProvider.java ++++ b/jdk/src/solaris/classes/org/openeuler/security/openssl/KAEProvider.java +@@ -104,8 +104,6 @@ public class KAEProvider extends Provider { + if (needLog && "true".equalsIgnoreCase(props.getProperty("kae.log"))) { + logStart(excp); + needLog = false; // Log only once +- } else { +- KAEProvider.excp = null; // Ignore exception. + } + if (!"false".equalsIgnoreCase(props.getProperty("kae.md5"))) { + putMD5(); +diff --git a/jdk/src/solaris/native/java/io/path_util.c b/jdk/src/solaris/native/java/io/path_util.c +index 8a533f81..4b978206 100644 +--- a/jdk/src/solaris/native/java/io/path_util.c ++++ b/jdk/src/solaris/native/java/io/path_util.c +@@ -116,7 +116,6 @@ collapse(char *path) + int nc; + char **ix; + int i, j; +- char *p, *q; + + nc = collapsible(names); + if (nc < 2) return; /* Nothing to do */ +-- +2.22.0 + diff --git a/openjdk-1.8.0.spec b/openjdk-1.8.0.spec index f6d6c44..1d7ca26 100644 --- a/openjdk-1.8.0.spec +++ b/openjdk-1.8.0.spec @@ -916,7 +916,7 @@ Provides: java-%{javaver}-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{r Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever}.%{buildver} -Release: 1 +Release: 2 # 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 # also included the epoch in their virtual provides. This created a @@ -1135,6 +1135,9 @@ Patch247: 8173339-AArch64-Fix-minimum-stack-size-computations.patch Patch248: 8067941-TESTBUG-Fix-tests-for-OS-with-64K-page-size.patch # 8u342 +Patch249: Improve_AlgorithmConstraints_checkAlgorithm_performance.patch +Patch250: modify_coding_style_and_describe_error.patch +Patch251: fix_wrap_memcpy_undefined_gcc10_3.patch ############################################# # @@ -1610,6 +1613,9 @@ pushd %{top_level_dir_name} %patch246 -p1 %patch247 -p1 %patch248 -p1 +%patch249 -p1 +%patch250 -p1 +%patch251 -p1 popd # System library fixes @@ -2234,6 +2240,12 @@ cjc.mainProgram(arg) %endif %changelog +* Thu Jul 28 2022 kuenking111 - 1:1.8.0.342-b07.2 +- add modify_coding_style_and_describe_error.patch +- add Improve_AlgorithmConstraints_checkAlgorithm_performance.patch +- add fix_wrap_memcpy_undefined_gcc10_3.patch +- modified implementation_of_Blas_hotspot_function_in_Intrinsics.patch + * Thu Jul 28 2022 kuenking111 - 1:1.8.0.342-b07.1 - del hg git files -- Gitee