diff --git a/.gitignore b/.gitignore index 91c6f82..c4b0f4d 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,5 @@ /aarch32-port-jdk8u-jdk8u222-ga-aarch32-190717.tar.xz /aarch32-port-jdk8u-jdk8u232-ga-aarch32-191016.tar.xz /aarch32-port-jdk8u-jdk8u242-ga-aarch32-200120.tar.xz +/aarch32-port-jdk8u-jdk8u252-ga-aarch32-20200415.tar.xz +/tapsets-icedtea-3.15.0.tar.xz diff --git a/java-1.8.0-openjdk-aarch32.spec b/java-1.8.0-openjdk-aarch32.spec index fb5fd53..cef2c2b 100644 --- a/java-1.8.0-openjdk-aarch32.spec +++ b/java-1.8.0-openjdk-aarch32.spec @@ -94,11 +94,8 @@ %global bootstrap_build 1 %endif -%if %{bootstrap_build} -%global release_targets bootcycle-images zip-docs -%else +%global bootstrap_targets images %global release_targets images zip-docs -%endif # No docs nor bootcycle for debug builds %global debug_targets images @@ -110,12 +107,6 @@ %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||') %global ourldflags %{__global_ldflags} -%ifarch %{arm} -# Disable hardened build on aarch32. Work-around for RHBZ#1290936. -%undefine _hardened_build -%global ourcppflags %{nil} -%global ourldflags %{nil} -%endif # 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 @@ -145,47 +136,61 @@ # 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 _build_cpu +# does not match that given by _target_cpu %ifarch x86_64 %global archinstall amd64 +%global stapinstall x86_64 %endif %ifarch ppc %global archinstall ppc +%global stapinstall powerpc %endif %ifarch %{ppc64be} %global archinstall ppc64 +%global stapinstall powerpc %endif %ifarch %{ppc64le} %global archinstall ppc64le +%global stapinstall powerpc %endif %ifarch %{ix86} %global archinstall i386 +%global stapinstall i386 %endif %ifarch ia64 %global archinstall ia64 +%global stapinstall ia64 %endif %ifarch s390 %global archinstall s390 +%global stapinstall s390 %endif %ifarch s390x %global archinstall s390x +%global stapinstall s390 %endif %ifarch %{arm} %global archinstall arm +%global stapinstall arm %endif %ifarch %{aarch64} %global archinstall aarch64 +%global stapinstall arm64 %endif # 32 bit sparc, optimized for v9 %ifarch sparcv9 %global archinstall sparc +%global stapinstall %{_target_cpu} %endif # 64 bit sparc %ifarch sparc64 %global archinstall sparcv9 +%global stapinstall %{_target_cpu} %endif -%ifnarch %{jit_arches} -%global archinstall %{_arch} +# Need to support noarch for srpm build +%ifarch noarch +%global archinstall %{nil} +%global stapinstall %{nil} %endif %ifarch %{jit_arches} @@ -224,13 +229,13 @@ # note, following three variables are sedded from update_sources if used correctly. Hardcode them rather there. %global shenandoah_project aarch64-port %global shenandoah_repo jdk8u-shenandoah -%global shenandoah_revision aarch64-shenandoah-jdk8u242-b07 +%global shenandoah_revision aarch64-shenandoah-jdk8u252-b09 # Define old aarch64/jdk8u tree variables for compatibility %global project aarch32-port %global repo jdk8u -%global revision jdk8u242-b07-aarch32-200120 +%global revision jdk8u252-ga-aarch32-20200415 # Define IcedTea version used for SystemTap tapsets and desktop files -%global icedteaver 3.11.0 +%global icedteaver 3.15.0 # e.g. aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30 -> aarch64-shenandoah-jdk8u212-b04 %global version_tag %(VERSION=%{shenandoah_revision}; echo ${VERSION%%-shenandoah-merge*}) @@ -240,7 +245,7 @@ %global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u}) # eg jdk8u60-b27 -> b27 %global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-}) -%global rpmrelease 2 +%global rpmrelease 1 # Define milestone (EA for pre-releases, GA ("fcs") for releases) # Release will be (where N is usually a number starting at 1): # - 0.N%%{?extraver}%%{?dist} for EA releases, @@ -268,7 +273,7 @@ # images stub %global jdkimage j2sdk-image # output dir stub -%define buildoutputdir() %{expand:%{top_level_dir_name}/build/jdk8.build%{?1}} +%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 @@ -294,10 +299,10 @@ # 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 build_cpu as architecture specific directory name. +# aka target_cpu as architecture specific directory name. %global tapsetroot /usr/share/systemtap %global tapsetdirttapset %{tapsetroot}/tapset/ -%global tapsetdir %{tapsetdirttapset}/%{_build_cpu} +%global tapsetdir %{tapsetdirttapset}/%{stapinstall} %endif # not-duplicated scriptlets for normal/debug packages @@ -1084,7 +1089,7 @@ URL: http://openjdk.java.net/ # FILE_NAME_ROOT=%%{shenandoah_project}-%%{shenandoah_repo}-${VERSION} # REPO_ROOT= generate_source_tarball.sh # where the source is obtained from http://hg.openjdk.java.net/%%{project}/%%{repo} -Source0: %{project}-%{repo}-jdk8u242-ga-aarch32-200120.tar.xz +Source0: %{project}-%{repo}-jdk8u252-ga-aarch32-20200415.tar.xz # Custom README for -src subpackage Source2: README.md @@ -1168,8 +1173,12 @@ Patch400: pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch Patch401: pr3655-toggle_system_crypto_policy.patch # JDK-8219772: EXTRA_CFLAGS not being picked up for assembler files Patch110: jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch +# JDK-8218811: replace open by os::open in hotspot coding +# This fixes a GCC 10 build issue +Patch111: jdk8218811-perfMemory_linux.patch # JDK-8241296: Segfault in JNIHandleBlock::oops_do() Patch112: jdk8241296-jnihandleblock_segfault.patch +Patch113: jdk8244461-remove_unused_sysctl.h.patch ############################################# # @@ -1190,6 +1199,9 @@ Patch105: jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac Patch106: pr3519-fix_further_functions_with_a_missing_return_value.patch # S390 ambiguous log2_intptr calls Patch107: s390-8214206_fix.patch +# JDK-8224851: AArch64: fix warnings and errors with Clang and GCC 8.3 +# GCC 10 fix for redeclaration +Patch120: jdk8224851-aarch64_fix_warnings_and_errors_GCC_8_3.patch ############################################# # @@ -1510,6 +1522,14 @@ Set of links from OpenJDK-slowdebug (sdk) to normal OpenJFX. OpenJFX do not supp %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 @@ -1574,26 +1594,29 @@ sh %{SOURCE12} # AArch64 fixes #%patch106 +#%patch120 # x86 fixes -%patch105 +#%patch105 # Upstreamable fixes %patch502 %patch504 %patch512 %patch578 -%patch523 -%patch528 +#%patch523 +#%patch528 %patch529 %patch531 %patch530 -%patch571 +#%patch571 #%patch574 %patch575 %patch577 -%patch110 -%patch112 +#%patch110 +%patch111 +#%patch112 +%patch113 # RPM-only fixes %patch539 @@ -1641,10 +1664,10 @@ for file in %{SOURCE9} %{SOURCE10} ; do EXT="${FILE##*.}" NAME="${FILE%.*}" OUTPUT_FILE=$NAME$suffix.$EXT - sed -e "s:_BINDIR_:%{sdkbindir -- $suffix}:g" $file > $OUTPUT_FILE + 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@:%{version}-%{release}.%{_arch}$suffix:g" $OUTPUT_FILE - sed -i -e "s:@OPENJDK_VER@:%{javaver}: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 @@ -1689,28 +1712,27 @@ export EXTRA_CFLAGS bash ./autogen.sh ) -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 +function buildjdk() { + local outputdir=${1} + local buildjdk=${2} + local maketargets=${3} + local debuglevel=${4} + local top_srcdir_abs_path=$(pwd)/%{top_level_dir_name} # Variable used in hs_err hook on build failures -top_dir_abs_path=$(pwd)/%{top_level_dir_name} + local top_builddir_abs_path=$(pwd)/${outputdir} -mkdir -p %{buildoutputdir -- $suffix} -pushd %{buildoutputdir -- $suffix} + mkdir -p ${outputdir} + pushd ${outputdir} -bash ../../configure \ + bash ${top_srcdir_abs_path}/configure \ --with-jvm-variants=client \ --with-native-debug-symbols=internal \ --with-milestone=%{milestone} \ --with-update-version=%{updatever} \ --with-build-number=%{buildver} \ --with-boot-jdk=$(echo /usr/lib/jvm/java-1.8.0-openjdk-aarch32-*) \ - --with-debug-level=$debugbuild \ + --with-debug-level=${debuglevel} \ --enable-unlimited-crypto \ --with-zlib=system \ --with-libjpeg=system \ @@ -1726,17 +1748,11 @@ bash ../../configure \ 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 \ JAVAC_FLAGS=-g \ LOG=trace \ SCTP_WERROR= \ - $maketargets || ( pwd; find $top_dir_abs_path -name "hs_err_pid*.log" | xargs cat && false ) + ${maketargets} || ( pwd; find ${top_srcdir_abs_path} ${top_builddir_abs_path} -name "hs_err_pid*.log" | xargs cat && false ) # the build (erroneously) removes read permissions from some jars # this is a regression in OpenJDK 7 (our compiler): @@ -1745,8 +1761,8 @@ 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 {} \; + find images/%{jdkimage} -iname '*.diz' -exec rm -v {} \; + find images/%{jdkimage} -iname '*.debuginfo' -exec rm -v {} \; # Build screws up permissions on binaries # https://bugs.openjdk.java.net/browse/JDK-8173610 @@ -1754,6 +1770,34 @@ find images/%{jdkimage} -iname '*.so' -exec chmod +x {} \; find images/%{jdkimage}/bin/ -exec chmod +x {} \; popd >& /dev/null +} + +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 + +systemjdk=/usr/lib/jvm/java-openjdk +builddir=%{buildoutputdir -- $suffix} +bootbuilddir=boot${builddir} + +# 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 + +%if %{bootstrap_build} +buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild} +buildjdk ${builddir} $(pwd)/${bootbuilddir}/images/%{jdkimage} "${maketargets}" ${debugbuild} +rm -rf ${bootbuilddir} +%else +buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild} +%endif # Install nss.cfg right away as we will be using the JRE above export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{jdkimage} @@ -2296,6 +2340,10 @@ require "copy_jdk_configs.lua" %endif %changelog +* Thu Apr 30 2020 Alex Kashchenko - 1:1.8.0.252.b09-1 +- update sources to 8u252 +- sync with mainline package + * Fri Mar 27 2020 Alex Kashchenko - 1:1.8.0.242.b07-2 - fix RHBZ#1818078 diff --git a/jdk8218811-perfMemory_linux.patch b/jdk8218811-perfMemory_linux.patch new file mode 100644 index 0000000..7b3d2f7 --- /dev/null +++ b/jdk8218811-perfMemory_linux.patch @@ -0,0 +1,12 @@ +diff --git openjdk.orig/hotspot/src/os/linux/vm/perfMemory_linux.cpp openjdk/hotspot/src/os/linux/vm/perfMemory_linux.cpp +--- openjdk.orig/hotspot/src/os/linux/vm/perfMemory_linux.cpp ++++ openjdk/hotspot/src/os/linux/vm/perfMemory_linux.cpp +@@ -878,7 +878,7 @@ + + // open the file + int result; +- RESTARTABLE(::open(filename, oflags), result); ++ RESTARTABLE(::open(filename, oflags, 0), result); + if (result == OS_ERR) { + if (errno == ENOENT) { + THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(), diff --git a/jdk8224851-aarch64_fix_warnings_and_errors_GCC_8_3.patch b/jdk8224851-aarch64_fix_warnings_and_errors_GCC_8_3.patch new file mode 100644 index 0000000..1b77c61 --- /dev/null +++ b/jdk8224851-aarch64_fix_warnings_and_errors_GCC_8_3.patch @@ -0,0 +1,296 @@ +# HG changeset patch +# User andrew +# Date 1580791377 0 +# Tue Feb 04 04:42:57 2020 +0000 +# Node ID d76a1de48f87fb7c08e401920dca0aac2e7567ea +# Parent 6ead1e97a4ea437c51829394f76dc2de7b5ea033 +8224851: AArch64: fix warnings and errors with Clang and GCC 8.3 +Reviewed-by: shade, aph, sgehwolf + +diff --git openjdk/hotspot/src/cpu/aarch64/vm/aarch64.ad openjdk/hotspot/src/cpu/aarch64/vm/aarch64.ad +--- openjdk/hotspot/src/cpu/aarch64/vm/aarch64.ad ++++ openjdk/hotspot/src/cpu/aarch64/vm/aarch64.ad +@@ -12928,7 +12928,7 @@ + format %{ "fcmps $src1, 0.0" %} + + ins_encode %{ +- __ fcmps(as_FloatRegister($src1$$reg), 0.0D); ++ __ fcmps(as_FloatRegister($src1$$reg), 0.0); + %} + + ins_pipe(pipe_class_compare); +@@ -12957,7 +12957,7 @@ + format %{ "fcmpd $src1, 0.0" %} + + ins_encode %{ +- __ fcmpd(as_FloatRegister($src1$$reg), 0.0D); ++ __ fcmpd(as_FloatRegister($src1$$reg), 0.0); + %} + + ins_pipe(pipe_class_compare); +@@ -13033,7 +13033,7 @@ + Label done; + FloatRegister s1 = as_FloatRegister($src1$$reg); + Register d = as_Register($dst$$reg); +- __ fcmps(s1, 0.0D); ++ __ fcmps(s1, 0.0); + // installs 0 if EQ else -1 + __ csinvw(d, zr, zr, Assembler::EQ); + // keeps -1 if less or unordered else installs 1 +@@ -13060,7 +13060,7 @@ + Label done; + FloatRegister s1 = as_FloatRegister($src1$$reg); + Register d = as_Register($dst$$reg); +- __ fcmpd(s1, 0.0D); ++ __ fcmpd(s1, 0.0); + // installs 0 if EQ else -1 + __ csinvw(d, zr, zr, Assembler::EQ); + // keeps -1 if less or unordered else installs 1 +diff --git openjdk/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp openjdk/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp +--- openjdk/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp ++++ openjdk/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp +@@ -281,7 +281,7 @@ + unsigned get(int msb = 31, int lsb = 0) { + int nbits = msb - lsb + 1; + unsigned mask = ((1U << nbits) - 1) << lsb; +- assert_cond(bits & mask == mask); ++ assert_cond((bits & mask) == mask); + return (insn & mask) >> lsb; + } + +diff --git openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp +--- openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp ++++ openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp +@@ -1,6 +1,6 @@ + /* + * Copyright (c) 2013, Red Hat Inc. +- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. ++ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. + * All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * +@@ -1129,8 +1129,8 @@ + // Assembler::EQ does not permit unordered branches, so we add + // another branch here. Likewise, Assembler::NE does not permit + // ordered branches. +- if (is_unordered && op->cond() == lir_cond_equal +- || !is_unordered && op->cond() == lir_cond_notEqual) ++ if ((is_unordered && op->cond() == lir_cond_equal) ++ || (!is_unordered && op->cond() == lir_cond_notEqual)) + __ br(Assembler::VS, *(op->ublock()->label())); + switch(op->cond()) { + case lir_cond_equal: acond = Assembler::EQ; break; +@@ -1850,18 +1850,22 @@ + switch (code) { + case lir_add: __ fadds (dest->as_float_reg(), left->as_float_reg(), right->as_float_reg()); break; + case lir_sub: __ fsubs (dest->as_float_reg(), left->as_float_reg(), right->as_float_reg()); break; ++ case lir_mul_strictfp: // fall through + case lir_mul: __ fmuls (dest->as_float_reg(), left->as_float_reg(), right->as_float_reg()); break; ++ case lir_div_strictfp: // fall through + case lir_div: __ fdivs (dest->as_float_reg(), left->as_float_reg(), right->as_float_reg()); break; + default: + ShouldNotReachHere(); + } + } else if (left->is_double_fpu()) { + if (right->is_double_fpu()) { +- // cpu register - cpu register ++ // fpu register - fpu register + switch (code) { + case lir_add: __ faddd (dest->as_double_reg(), left->as_double_reg(), right->as_double_reg()); break; + case lir_sub: __ fsubd (dest->as_double_reg(), left->as_double_reg(), right->as_double_reg()); break; ++ case lir_mul_strictfp: // fall through + case lir_mul: __ fmuld (dest->as_double_reg(), left->as_double_reg(), right->as_double_reg()); break; ++ case lir_div_strictfp: // fall through + case lir_div: __ fdivd (dest->as_double_reg(), left->as_double_reg(), right->as_double_reg()); break; + default: + ShouldNotReachHere(); +diff --git openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp +--- openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp ++++ openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp +@@ -1,6 +1,6 @@ + /* + * Copyright (c) 2013, Red Hat Inc. +- * Copyright (c) 2005, 2011, Oracle and/or its affiliates. ++ * Copyright (c) 2005, 2019, Oracle and/or its affiliates. + * All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * +@@ -500,7 +500,7 @@ + tmp = new_register(T_DOUBLE); + } + +- arithmetic_op_fpu(x->op(), reg, left.result(), right.result(), NULL); ++ arithmetic_op_fpu(x->op(), reg, left.result(), right.result(), x->is_strictfp()); + + set_result(x, round_item(reg)); + } +diff --git openjdk/hotspot/src/cpu/aarch64/vm/frame_aarch64.cpp openjdk/hotspot/src/cpu/aarch64/vm/frame_aarch64.cpp +--- openjdk/hotspot/src/cpu/aarch64/vm/frame_aarch64.cpp ++++ openjdk/hotspot/src/cpu/aarch64/vm/frame_aarch64.cpp +@@ -1,6 +1,6 @@ + /* + * Copyright (c) 2013, Red Hat Inc. +- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. ++ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. + * All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * +@@ -819,11 +819,13 @@ + + extern "C" void pf(unsigned long sp, unsigned long fp, unsigned long pc, + unsigned long bcx, unsigned long thread) { +- RegisterMap map((JavaThread*)thread, false); + if (!reg_map) { +- reg_map = (RegisterMap*)os::malloc(sizeof map, mtNone); ++ reg_map = NEW_C_HEAP_OBJ(RegisterMap, mtNone); ++ ::new (reg_map) RegisterMap((JavaThread*)thread, false); ++ } else { ++ *reg_map = RegisterMap((JavaThread*)thread, false); + } +- memcpy(reg_map, &map, sizeof map); ++ + { + CodeBlob *cb = CodeCache::find_blob((address)pc); + if (cb && cb->frame_size()) +diff --git openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp +--- openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp ++++ openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp +@@ -40,8 +40,6 @@ + protected: + + protected: +- using MacroAssembler::call_VM_leaf_base; +- + // Interpreter specific version of call_VM_base + using MacroAssembler::call_VM_leaf_base; + +diff --git openjdk/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp openjdk/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp +--- openjdk/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp ++++ openjdk/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp +@@ -2460,7 +2460,7 @@ + if ((offset & (size-1)) && offset >= (1<<8)) { + add(tmp, base, offset & ((1<<12)-1)); + base = tmp; +- offset &= -1<<12; ++ offset &= -1u<<12; + } + + if (offset >= (1<<12) * size) { +diff --git openjdk/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.cpp openjdk/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.cpp +--- openjdk/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.cpp ++++ openjdk/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.cpp +@@ -158,7 +158,7 @@ + if (FILE *f = fopen("/proc/cpuinfo", "r")) { + char buf[128], *p; + while (fgets(buf, sizeof (buf), f) != NULL) { +- if (p = strchr(buf, ':')) { ++ if ((p = strchr(buf, ':')) != NULL) { + long v = strtol(p+1, NULL, 0); + if (strncmp(buf, "CPU implementer", sizeof "CPU implementer" - 1) == 0) { + _cpu = v; +diff --git openjdk/hotspot/src/os_cpu/linux_aarch64/vm/copy_linux_aarch64.s openjdk/hotspot/src/os_cpu/linux_aarch64/vm/copy_linux_aarch64.s +--- openjdk/hotspot/src/os_cpu/linux_aarch64/vm/copy_linux_aarch64.s ++++ openjdk/hotspot/src/os_cpu/linux_aarch64/vm/copy_linux_aarch64.s +@@ -248,7 +248,7 @@ + blo bwd_copy_drain + + bwd_copy_again: +- prfm pldl1keep, [s, #-256] ++ prfum pldl1keep, [s, #-256] + stp t0, t1, [d, #-16] + ldp t0, t1, [s, #-16] + stp t2, t3, [d, #-32] +diff --git openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp +--- openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp ++++ openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp +@@ -76,12 +76,10 @@ + + #define REG_FP 29 + +-#define SPELL_REG_SP "sp" +-#define SPELL_REG_FP "x29" ++#define NOINLINE __attribute__ ((noinline)) + +-address os::current_stack_pointer() { +- register void *esp __asm__ (SPELL_REG_SP); +- return (address) esp; ++NOINLINE address os::current_stack_pointer() { ++ return (address)__builtin_frame_address(0); + } + + char* os::non_memory_address_word() { +@@ -155,14 +153,8 @@ + return frame(fr->link(), fr->link(), fr->sender_pc()); + } + +-intptr_t* _get_previous_fp() { +- register intptr_t **ebp __asm__ (SPELL_REG_FP); +- return (intptr_t*) *ebp; // we want what it points to. +-} +- +- +-frame os::current_frame() { +- intptr_t* fp = _get_previous_fp(); ++NOINLINE frame os::current_frame() { ++ intptr_t *fp = *(intptr_t **)__builtin_frame_address(0); + frame myframe((intptr_t*)os::current_stack_pointer(), + (intptr_t*)fp, + CAST_FROM_FN_PTR(address, os::current_frame)); +@@ -176,12 +168,6 @@ + + // Utility functions + +-// From IA32 System Programming Guide +-enum { +- trap_page_fault = 0xE +-}; +- +- + // An operation in Unsafe has faulted. We're going to return to the + // instruction after the faulting load or store. We also set + // pending_unsafe_access_error so that at some point in the future our +@@ -607,12 +593,12 @@ + + void _Copy_conjoint_jshorts_atomic(jshort* from, jshort* to, size_t count) { + if (from > to) { +- jshort *end = from + count; ++ const jshort *end = from + count; + while (from < end) + *(to++) = *(from++); + } + else if (from < to) { +- jshort *end = from; ++ const jshort *end = from; + from += count - 1; + to += count - 1; + while (from >= end) +@@ -621,12 +607,12 @@ + } + void _Copy_conjoint_jints_atomic(jint* from, jint* to, size_t count) { + if (from > to) { +- jint *end = from + count; ++ const jint *end = from + count; + while (from < end) + *(to++) = *(from++); + } + else if (from < to) { +- jint *end = from; ++ const jint *end = from; + from += count - 1; + to += count - 1; + while (from >= end) +@@ -635,12 +621,12 @@ + } + void _Copy_conjoint_jlongs_atomic(jlong* from, jlong* to, size_t count) { + if (from > to) { +- jlong *end = from + count; ++ const jlong *end = from + count; + while (from < end) + os::atomic_copy64(from++, to++); + } + else if (from < to) { +- jlong *end = from; ++ const jlong *end = from; + from += count - 1; + to += count - 1; + while (from >= end) diff --git a/jdk8244461-remove_unused_sysctl.h.patch b/jdk8244461-remove_unused_sysctl.h.patch new file mode 100644 index 0000000..07c9139 --- /dev/null +++ b/jdk8244461-remove_unused_sysctl.h.patch @@ -0,0 +1,22 @@ +diff --git a/src/solaris/native/java/net/PlainDatagramSocketImpl.c b/src/solaris/native/java/net/PlainDatagramSocketImpl.c +--- openjdk/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c ++++ openjdk/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c +@@ -41,7 +41,6 @@ + #endif + #ifdef __linux__ + #include +-#include + #include + #include + +diff --git a/src/solaris/native/java/net/PlainSocketImpl.c b/src/solaris/native/java/net/PlainSocketImpl.c +--- openjdk/jdk/src/solaris/native/java/net/PlainSocketImpl.c ++++ openjdk/jdk/src/solaris/native/java/net/PlainSocketImpl.c +@@ -43,7 +43,6 @@ + #endif + #ifdef __linux__ + #include +-#include + #endif + + #include "jvm.h" diff --git a/sources b/sources index ae435bb..f94f0ca 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (tapsets-icedtea-3.11.0.tar.xz) = f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e -SHA512 (aarch32-port-jdk8u-jdk8u242-ga-aarch32-200120.tar.xz) = f12e15116b6344d0cda6b85912d779c404219918dbf1814d66e6976fdc9c7cd2f5b6d2d51db71f5cad9ef1afede4fd2f092c000490bc2d40a8234b3d2fb4e734 +SHA512 (aarch32-port-jdk8u-jdk8u252-ga-aarch32-20200415.tar.xz) = c6f3ca310f96d46f67f33d4187e0a3146dac53b413ea4efdd570a9892a55c3007eb270e101e89eaada9700aa2c1fc4701f94d075c000a748e39aaf2c2fbeff5f +SHA512 (tapsets-icedtea-3.15.0.tar.xz) = c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671