Version in base suite: 11.0.14+9-1~deb10u1 Base version: openjdk-11_11.0.14+9-1~deb10u1 Target version: openjdk-11_11.0.16+8-1~deb10u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/o/openjdk-11/openjdk-11_11.0.14+9-1~deb10u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/o/openjdk-11/openjdk-11_11.0.16+8-1~deb10u1.dsc /srv/release.debian.org/tmp/XOSt_L2XgD/openjdk-11-11.0.16+8/test/jdk/javax/imageio/plugins/jpeg/CMYK/black_cmyk.jpg |binary /srv/release.debian.org/tmp/XOSt_L2XgD/openjdk-11-11.0.16+8/test/jdk/javax/imageio/plugins/jpeg/CMYK/blue_cmyk.jpg |binary /srv/release.debian.org/tmp/XOSt_L2XgD/openjdk-11-11.0.16+8/test/jdk/javax/imageio/plugins/jpeg/CMYK/cyan_cmyk.jpg |binary /srv/release.debian.org/tmp/XOSt_L2XgD/openjdk-11-11.0.16+8/test/jdk/javax/imageio/plugins/jpeg/CMYK/gray_cmyk.jpg |binary /srv/release.debian.org/tmp/XOSt_L2XgD/openjdk-11-11.0.16+8/test/jdk/javax/imageio/plugins/jpeg/CMYK/green_cmyk.jpg |binary /srv/release.debian.org/tmp/XOSt_L2XgD/openjdk-11-11.0.16+8/test/jdk/javax/imageio/plugins/jpeg/CMYK/magenta_cmyk.jpg |binary /srv/release.debian.org/tmp/XOSt_L2XgD/openjdk-11-11.0.16+8/test/jdk/javax/imageio/plugins/jpeg/CMYK/red_cmyk.jpg |binary /srv/release.debian.org/tmp/XOSt_L2XgD/openjdk-11-11.0.16+8/test/jdk/javax/imageio/plugins/jpeg/CMYK/white_cmyk.jpg |binary /srv/release.debian.org/tmp/XOSt_L2XgD/openjdk-11-11.0.16+8/test/jdk/javax/imageio/plugins/jpeg/CMYK/yellow_cmyk.jpg |binary openjdk-11-11.0.16+8/.jcheck/conf | 2 openjdk-11-11.0.16+8/debian/changelog | 75 openjdk-11-11.0.16+8/debian/copyright | 6 openjdk-11-11.0.16+8/debian/patches/8222825.diff | 150 openjdk-11-11.0.16+8/debian/patches/generated-headers.patch | 2 openjdk-11-11.0.16+8/debian/patches/hotspot-disable-exec-shield-workaround.diff | 2 openjdk-11-11.0.16+8/debian/patches/hotspot-libpath.diff | 2 openjdk-11-11.0.16+8/debian/patches/icc_loading_with_symlink.diff | 4 openjdk-11-11.0.16+8/debian/patches/jaw-classpath.diff | 2 openjdk-11-11.0.16+8/debian/patches/jdk-getAccessibleValue.diff | 64 openjdk-11-11.0.16+8/debian/patches/jtreg-location.diff | 8 openjdk-11-11.0.16+8/debian/patches/machine-flag.diff | 6 openjdk-11-11.0.16+8/debian/patches/multiple-pkcs11-library-init.diff | 2 openjdk-11-11.0.16+8/debian/patches/riscv64.diff | 12 openjdk-11-11.0.16+8/debian/patches/s390x-opt.diff | 2 openjdk-11-11.0.16+8/debian/patches/series | 1 openjdk-11-11.0.16+8/debian/patches/system-pcsclite.diff | 2 openjdk-11-11.0.16+8/debian/patches/workaround_expand_exec_shield_cs_limit.diff | 2 openjdk-11-11.0.16+8/debian/patches/zero-x32.diff | 4 openjdk-11-11.0.16+8/debian/rules | 4 openjdk-11-11.0.16+8/debian/watch | 6 openjdk-11-11.0.16+8/doc/building.html | 146 openjdk-11-11.0.16+8/doc/building.md | 82 openjdk-11-11.0.16+8/doc/testing.html | 4 openjdk-11-11.0.16+8/doc/testing.md | 10 openjdk-11-11.0.16+8/make/ReleaseFile.gmk | 1 openjdk-11-11.0.16+8/make/RunTests.gmk | 23 openjdk-11-11.0.16+8/make/RunTestsPrebuilt.gmk | 2 openjdk-11-11.0.16+8/make/RunTestsPrebuiltSpec.gmk | 3 openjdk-11-11.0.16+8/make/autoconf/basics.m4 | 2 openjdk-11-11.0.16+8/make/autoconf/build-aux/config.guess | 22 openjdk-11-11.0.16+8/make/autoconf/build-aux/config.sub | 5 openjdk-11-11.0.16+8/make/autoconf/build-performance.m4 | 2 openjdk-11-11.0.16+8/make/autoconf/buildjdk-spec.gmk.in | 3 openjdk-11-11.0.16+8/make/autoconf/configure | 3 openjdk-11-11.0.16+8/make/autoconf/flags-cflags.m4 | 19 openjdk-11-11.0.16+8/make/autoconf/flags.m4 | 22 openjdk-11-11.0.16+8/make/autoconf/help.m4 | 27 openjdk-11-11.0.16+8/make/autoconf/hotspot.m4 | 15 openjdk-11-11.0.16+8/make/autoconf/platform.m4 | 59 openjdk-11-11.0.16+8/make/autoconf/spec.gmk.in | 10 openjdk-11-11.0.16+8/make/autoconf/toolchain.m4 | 26 openjdk-11-11.0.16+8/make/autoconf/version-numbers | 4 openjdk-11-11.0.16+8/make/common/JavaCompilation.gmk | 2 openjdk-11-11.0.16+8/make/common/NativeCompilation.gmk | 2 openjdk-11-11.0.16+8/make/conf/jib-profiles.js | 8 openjdk-11-11.0.16+8/make/conf/test-dependencies | 20 openjdk-11-11.0.16+8/make/data/currency/CurrencyData.properties | 4 openjdk-11-11.0.16+8/make/data/lsrdata/language-subtag-registry.txt | 318 openjdk-11-11.0.16+8/make/data/publicsuffixlist/VERSION | 4 openjdk-11-11.0.16+8/make/data/publicsuffixlist/public_suffix_list.dat | 1391 +- openjdk-11-11.0.16+8/make/data/tzdata/VERSION | 2 openjdk-11-11.0.16+8/make/data/tzdata/africa | 4 openjdk-11-11.0.16+8/make/data/tzdata/asia | 13 openjdk-11-11.0.16+8/make/data/tzdata/europe | 54 openjdk-11-11.0.16+8/make/data/tzdata/leapseconds | 8 openjdk-11-11.0.16+8/make/data/tzdata/southamerica | 47 openjdk-11-11.0.16+8/make/hotspot/gensrc/GensrcAdlc.gmk | 5 openjdk-11-11.0.16+8/make/hotspot/lib/CompileGtest.gmk | 4 openjdk-11-11.0.16+8/make/hotspot/lib/CompileJvm.gmk | 3 openjdk-11-11.0.16+8/make/lib/Awt2dLibraries.gmk | 22 openjdk-11-11.0.16+8/make/lib/Lib-jdk.hotspot.agent.gmk | 2 openjdk-11-11.0.16+8/make/scripts/compare.sh | 31 openjdk-11-11.0.16+8/make/test/JtregNativeJdk.gmk | 1 openjdk-11-11.0.16+8/src/demo/share/java2d/J2DBench/options/default.opt | 5 openjdk-11-11.0.16+8/src/demo/share/java2d/J2DBench/src/j2dbench/Destinations.java | 108 openjdk-11-11.0.16+8/src/demo/share/java2d/J2DBench/src/j2dbench/J2DBench.java | 9 openjdk-11-11.0.16+8/src/demo/share/java2d/J2DBench/src/j2dbench/tests/ImageTests.java | 16 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/aarch64.ad | 119 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/ad_encode.m4 | 169 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/assembler_aarch64.hpp | 6 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp | 1 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/c1_LIRGenerator_aarch64.cpp | 6 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/frame_aarch64.cpp | 11 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/globalDefinitions_aarch64.hpp | 4 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/immediate_aarch64.cpp | 11 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/interpreterRT_aarch64.cpp | 82 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/interpreterRT_aarch64.hpp | 7 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/jniFastGetField_aarch64.cpp | 59 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/jvmciCodeInstaller_aarch64.cpp | 1 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp | 32 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp | 3 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/nativeInst_aarch64.hpp | 2 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp | 33 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp | 16 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp | 7 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/templateTable_aarch64.cpp | 6 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/vm_version_aarch64.hpp | 9 openjdk-11-11.0.16+8/src/hotspot/cpu/arm/arm.ad | 4 openjdk-11-11.0.16+8/src/hotspot/cpu/arm/assembler_arm_32.cpp | 2 openjdk-11-11.0.16+8/src/hotspot/cpu/arm/assembler_arm_32.hpp | 4 openjdk-11-11.0.16+8/src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp | 7 openjdk-11-11.0.16+8/src/hotspot/cpu/arm/vm_version_arm.hpp | 4 openjdk-11-11.0.16+8/src/hotspot/cpu/arm/vm_version_arm_32.cpp | 28 openjdk-11-11.0.16+8/src/hotspot/cpu/ppc/c1_CodeStubs_ppc.cpp | 2 openjdk-11-11.0.16+8/src/hotspot/cpu/ppc/frame_ppc.cpp | 58 openjdk-11-11.0.16+8/src/hotspot/cpu/s390/frame_s390.cpp | 62 openjdk-11-11.0.16+8/src/hotspot/cpu/x86/assembler_x86.cpp | 12 openjdk-11-11.0.16+8/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp | 2 openjdk-11-11.0.16+8/src/hotspot/cpu/x86/jvmciCodeInstaller_x86.cpp | 16 openjdk-11-11.0.16+8/src/hotspot/cpu/x86/macroAssembler_x86.hpp | 12 openjdk-11-11.0.16+8/src/hotspot/cpu/x86/nativeInst_x86.cpp | 10 openjdk-11-11.0.16+8/src/hotspot/cpu/x86/nativeInst_x86.hpp | 6 openjdk-11-11.0.16+8/src/hotspot/cpu/x86/vm_version_x86.hpp | 19 openjdk-11-11.0.16+8/src/hotspot/cpu/x86/x86.ad | 15 openjdk-11-11.0.16+8/src/hotspot/cpu/x86/x86_32.ad | 10 openjdk-11-11.0.16+8/src/hotspot/cpu/zero/globals_zero.hpp | 3 openjdk-11-11.0.16+8/src/hotspot/os/aix/os_aix.cpp | 15 openjdk-11-11.0.16+8/src/hotspot/os/aix/porting_aix.cpp | 12 openjdk-11-11.0.16+8/src/hotspot/os/bsd/os_bsd.cpp | 108 openjdk-11-11.0.16+8/src/hotspot/os/linux/cgroupSubsystem_linux.cpp | 516 openjdk-11-11.0.16+8/src/hotspot/os/linux/cgroupSubsystem_linux.hpp | 317 openjdk-11-11.0.16+8/src/hotspot/os/linux/cgroupV1Subsystem_linux.cpp | 243 openjdk-11-11.0.16+8/src/hotspot/os/linux/cgroupV1Subsystem_linux.hpp | 118 openjdk-11-11.0.16+8/src/hotspot/os/linux/cgroupV2Subsystem_linux.cpp | 246 openjdk-11-11.0.16+8/src/hotspot/os/linux/cgroupV2Subsystem_linux.hpp | 89 openjdk-11-11.0.16+8/src/hotspot/os/linux/osContainer_linux.cpp | 641 openjdk-11-11.0.16+8/src/hotspot/os/linux/osContainer_linux.hpp | 8 openjdk-11-11.0.16+8/src/hotspot/os/linux/os_linux.cpp | 284 openjdk-11-11.0.16+8/src/hotspot/os/linux/os_linux.hpp | 51 openjdk-11-11.0.16+8/src/hotspot/os/windows/os_windows.cpp | 43 openjdk-11-11.0.16+8/src/hotspot/os_cpu/aix_ppc/orderAccess_aix_ppc.hpp | 2 openjdk-11-11.0.16+8/src/hotspot/os_cpu/aix_ppc/os_aix_ppc.cpp | 6 openjdk-11-11.0.16+8/src/hotspot/os_cpu/aix_ppc/prefetch_aix_ppc.inline.hpp | 2 openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/atomic_bsd_aarch64.hpp | 82 openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/bytes_bsd_aarch64.inline.hpp | 55 openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/copy_bsd_aarch64.inline.hpp | 188 openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/copy_bsd_aarch64.s | 239 openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/globals_bsd_aarch64.hpp | 43 openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/icache_bsd_aarch64.hpp | 45 openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/orderAccess_bsd_aarch64.hpp | 54 openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/os_bsd_aarch64.cpp | 753 + openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/os_bsd_aarch64.hpp | 42 openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/pauth_bsd_aarch64.inline.hpp | 53 openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/prefetch_bsd_aarch64.inline.hpp | 42 openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/thread_bsd_aarch64.cpp | 104 openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/thread_bsd_aarch64.hpp | 74 openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/vmStructs_bsd_aarch64.hpp | 54 openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/vm_version_bsd_aarch64.cpp | 89 openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_x86/os_bsd_x86.cpp | 6 openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp | 1 openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_aarch64/thread_linux_aarch64.hpp | 9 openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_arm/os_linux_arm.cpp | 5 openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_ppc/orderAccess_linux_ppc.hpp | 2 openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp | 10 openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_ppc/thread_linux_ppc.cpp | 11 openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_s390/orderAccess_linux_s390.hpp | 2 openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp | 6 openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_s390/thread_linux_s390.cpp | 13 openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp | 11 openjdk-11-11.0.16+8/src/hotspot/os_cpu/windows_aarch64/thread_windows_aarch64.hpp | 10 openjdk-11-11.0.16+8/src/hotspot/share/adlc/adlparse.cpp | 4 openjdk-11-11.0.16+8/src/hotspot/share/adlc/arena.cpp | 4 openjdk-11-11.0.16+8/src/hotspot/share/adlc/dict2.cpp | 6 openjdk-11-11.0.16+8/src/hotspot/share/adlc/main.cpp | 2 openjdk-11-11.0.16+8/src/hotspot/share/asm/codeBuffer.cpp | 8 openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_IR.cpp | 9 openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_IR.hpp | 10 openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_Instruction.cpp | 5 openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_LIRAssembler.cpp | 1 openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_LIRGenerator.cpp | 8 openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_RangeCheckElimination.cpp | 7 openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_Runtime1.cpp | 4 openjdk-11-11.0.16+8/src/hotspot/share/ci/ciEnv.cpp | 9 openjdk-11-11.0.16+8/src/hotspot/share/ci/ciMethodData.cpp | 9 openjdk-11-11.0.16+8/src/hotspot/share/classfile/altHashing.cpp | 33 openjdk-11-11.0.16+8/src/hotspot/share/classfile/altHashing.hpp | 4 openjdk-11-11.0.16+8/src/hotspot/share/classfile/classLoader.hpp | 4 openjdk-11-11.0.16+8/src/hotspot/share/classfile/dictionary.cpp | 6 openjdk-11-11.0.16+8/src/hotspot/share/classfile/klassFactory.cpp | 54 openjdk-11-11.0.16+8/src/hotspot/share/classfile/klassFactory.hpp | 4 openjdk-11-11.0.16+8/src/hotspot/share/classfile/systemDictionary.cpp | 8 openjdk-11-11.0.16+8/src/hotspot/share/classfile/systemDictionary.hpp | 1 openjdk-11-11.0.16+8/src/hotspot/share/classfile/systemDictionaryShared.cpp | 9 openjdk-11-11.0.16+8/src/hotspot/share/classfile/systemDictionaryShared.hpp | 1 openjdk-11-11.0.16+8/src/hotspot/share/classfile/verifier.cpp | 5 openjdk-11-11.0.16+8/src/hotspot/share/code/codeBlob.cpp | 1 openjdk-11-11.0.16+8/src/hotspot/share/code/codeHeapState.cpp | 13 openjdk-11-11.0.16+8/src/hotspot/share/compiler/compileBroker.cpp | 5 openjdk-11-11.0.16+8/src/hotspot/share/compiler/compilerDefinitions.cpp | 13 openjdk-11-11.0.16+8/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.cpp | 2 openjdk-11-11.0.16+8/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp | 3 openjdk-11-11.0.16+8/src/hotspot/share/gc/z/zBarrierSet.cpp | 7 openjdk-11-11.0.16+8/src/hotspot/share/include/jvm.h | 2 openjdk-11-11.0.16+8/src/hotspot/share/interpreter/bytecodeInterpreter.cpp | 15 openjdk-11-11.0.16+8/src/hotspot/share/interpreter/bytecodes.cpp | 4 openjdk-11-11.0.16+8/src/hotspot/share/interpreter/interpreterRuntime.cpp | 3 openjdk-11-11.0.16+8/src/hotspot/share/interpreter/linkResolver.cpp | 28 openjdk-11-11.0.16+8/src/hotspot/share/interpreter/oopMapCache.cpp | 2 openjdk-11-11.0.16+8/src/hotspot/share/jfr/jni/jfrJavaSupport.cpp | 12 openjdk-11-11.0.16+8/src/hotspot/share/jfr/jni/jfrJavaSupport.hpp | 3 openjdk-11-11.0.16+8/src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleWriter.cpp | 22 openjdk-11-11.0.16+8/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp | 2 openjdk-11-11.0.16+8/src/hotspot/share/jfr/writers/jfrStreamWriterHost.inline.hpp | 4 openjdk-11-11.0.16+8/src/hotspot/share/jvmci/jvmciEnv.hpp | 1 openjdk-11-11.0.16+8/src/hotspot/share/jvmci/vmStructs_jvmci.cpp | 3 openjdk-11-11.0.16+8/src/hotspot/share/libadt/dict.cpp | 6 openjdk-11-11.0.16+8/src/hotspot/share/libadt/set.cpp | 6 openjdk-11-11.0.16+8/src/hotspot/share/libadt/vectset.cpp | 52 openjdk-11-11.0.16+8/src/hotspot/share/logging/logConfiguration.cpp | 8 openjdk-11-11.0.16+8/src/hotspot/share/memory/arena.cpp | 2 openjdk-11-11.0.16+8/src/hotspot/share/memory/filemap.cpp | 80 openjdk-11-11.0.16+8/src/hotspot/share/memory/filemap.hpp | 9 openjdk-11-11.0.16+8/src/hotspot/share/memory/metaspaceShared.cpp | 48 openjdk-11-11.0.16+8/src/hotspot/share/memory/metaspaceShared.hpp | 7 openjdk-11-11.0.16+8/src/hotspot/share/memory/virtualspace.cpp | 12 openjdk-11-11.0.16+8/src/hotspot/share/oops/generateOopMap.cpp | 2 openjdk-11-11.0.16+8/src/hotspot/share/oops/instanceKlass.cpp | 45 openjdk-11-11.0.16+8/src/hotspot/share/oops/instanceKlass.hpp | 25 openjdk-11-11.0.16+8/src/hotspot/share/oops/method.cpp | 17 openjdk-11-11.0.16+8/src/hotspot/share/oops/methodData.hpp | 8 openjdk-11-11.0.16+8/src/hotspot/share/opto/c2_globals.hpp | 6 openjdk-11-11.0.16+8/src/hotspot/share/opto/callnode.cpp | 49 openjdk-11-11.0.16+8/src/hotspot/share/opto/callnode.hpp | 10 openjdk-11-11.0.16+8/src/hotspot/share/opto/cfgnode.cpp | 74 openjdk-11-11.0.16+8/src/hotspot/share/opto/cfgnode.hpp | 1 openjdk-11-11.0.16+8/src/hotspot/share/opto/compile.cpp | 40 openjdk-11-11.0.16+8/src/hotspot/share/opto/compile.hpp | 26 openjdk-11-11.0.16+8/src/hotspot/share/opto/convertnode.cpp | 24 openjdk-11-11.0.16+8/src/hotspot/share/opto/graphKit.cpp | 16 openjdk-11-11.0.16+8/src/hotspot/share/opto/idealGraphPrinter.cpp | 13 openjdk-11-11.0.16+8/src/hotspot/share/opto/idealGraphPrinter.hpp | 3 openjdk-11-11.0.16+8/src/hotspot/share/opto/library_call.cpp | 5 openjdk-11-11.0.16+8/src/hotspot/share/opto/loopPredicate.cpp | 46 openjdk-11-11.0.16+8/src/hotspot/share/opto/loopTransform.cpp | 763 - openjdk-11-11.0.16+8/src/hotspot/share/opto/loopUnswitch.cpp | 20 openjdk-11-11.0.16+8/src/hotspot/share/opto/loopnode.cpp | 255 openjdk-11-11.0.16+8/src/hotspot/share/opto/loopnode.hpp | 270 openjdk-11-11.0.16+8/src/hotspot/share/opto/loopopts.cpp | 91 openjdk-11-11.0.16+8/src/hotspot/share/opto/macro.cpp | 14 openjdk-11-11.0.16+8/src/hotspot/share/opto/macro.hpp | 3 openjdk-11-11.0.16+8/src/hotspot/share/opto/mulnode.cpp | 2 openjdk-11-11.0.16+8/src/hotspot/share/opto/parse2.cpp | 6 openjdk-11-11.0.16+8/src/hotspot/share/opto/phaseX.cpp | 4 openjdk-11-11.0.16+8/src/hotspot/share/opto/postaloc.cpp | 2 openjdk-11-11.0.16+8/src/hotspot/share/opto/runtime.cpp | 5 openjdk-11-11.0.16+8/src/hotspot/share/opto/split_if.cpp | 31 openjdk-11-11.0.16+8/src/hotspot/share/prims/jni.cpp | 16 openjdk-11-11.0.16+8/src/hotspot/share/prims/jniCheck.cpp | 1 openjdk-11-11.0.16+8/src/hotspot/share/prims/jniFastGetField.hpp | 5 openjdk-11-11.0.16+8/src/hotspot/share/prims/jvm.cpp | 31 openjdk-11-11.0.16+8/src/hotspot/share/prims/jvmtiEnter.xsl | 2 openjdk-11-11.0.16+8/src/hotspot/share/prims/jvmtiEnv.cpp | 5 openjdk-11-11.0.16+8/src/hotspot/share/prims/jvmtiEnvBase.cpp | 2 openjdk-11-11.0.16+8/src/hotspot/share/prims/whitebox.cpp | 49 openjdk-11-11.0.16+8/src/hotspot/share/prims/whitebox.hpp | 5 openjdk-11-11.0.16+8/src/hotspot/share/prims/whitebox.inline.hpp | 5 openjdk-11-11.0.16+8/src/hotspot/share/runtime/abstract_vm_version.cpp | 30 openjdk-11-11.0.16+8/src/hotspot/share/runtime/arguments.cpp | 2 openjdk-11-11.0.16+8/src/hotspot/share/runtime/arguments.hpp | 14 openjdk-11-11.0.16+8/src/hotspot/share/runtime/deoptimization.cpp | 31 openjdk-11-11.0.16+8/src/hotspot/share/runtime/deoptimization.hpp | 12 openjdk-11-11.0.16+8/src/hotspot/share/runtime/interfaceSupport.inline.hpp | 14 openjdk-11-11.0.16+8/src/hotspot/share/runtime/javaCalls.cpp | 6 openjdk-11-11.0.16+8/src/hotspot/share/runtime/mutexLocker.cpp | 6 openjdk-11-11.0.16+8/src/hotspot/share/runtime/mutexLocker.hpp | 3 openjdk-11-11.0.16+8/src/hotspot/share/runtime/os.cpp | 25 openjdk-11-11.0.16+8/src/hotspot/share/runtime/os.hpp | 32 openjdk-11-11.0.16+8/src/hotspot/share/runtime/safefetch.inline.hpp | 11 openjdk-11-11.0.16+8/src/hotspot/share/runtime/safepoint.cpp | 4 openjdk-11-11.0.16+8/src/hotspot/share/runtime/signature.hpp | 13 openjdk-11-11.0.16+8/src/hotspot/share/runtime/stubRoutines.cpp | 4 openjdk-11-11.0.16+8/src/hotspot/share/runtime/thread.cpp | 28 openjdk-11-11.0.16+8/src/hotspot/share/runtime/thread.hpp | 11 openjdk-11-11.0.16+8/src/hotspot/share/runtime/thread.inline.hpp | 22 openjdk-11-11.0.16+8/src/hotspot/share/runtime/threadWXSetters.inline.hpp | 49 openjdk-11-11.0.16+8/src/hotspot/share/services/virtualMemoryTracker.cpp | 8 openjdk-11-11.0.16+8/src/hotspot/share/utilities/accessFlags.hpp | 5 openjdk-11-11.0.16+8/src/hotspot/share/utilities/globalDefinitions_gcc.hpp | 2 openjdk-11-11.0.16+8/src/hotspot/share/utilities/globalDefinitions_xlc.hpp | 56 openjdk-11-11.0.16+8/src/hotspot/share/utilities/macros.hpp | 2 openjdk-11-11.0.16+8/src/hotspot/share/utilities/nativeCallStack.cpp | 2 openjdk-11-11.0.16+8/src/hotspot/share/utilities/vmError.cpp | 12 openjdk-11-11.0.16+8/src/java.base/linux/classes/jdk/internal/platform/CgroupInfo.java | 120 openjdk-11-11.0.16+8/src/java.base/linux/classes/jdk/internal/platform/CgroupMetrics.java | 172 openjdk-11-11.0.16+8/src/java.base/linux/classes/jdk/internal/platform/CgroupSubsystem.java | 40 openjdk-11-11.0.16+8/src/java.base/linux/classes/jdk/internal/platform/CgroupSubsystemController.java | 255 openjdk-11-11.0.16+8/src/java.base/linux/classes/jdk/internal/platform/CgroupSubsystemFactory.java | 393 openjdk-11-11.0.16+8/src/java.base/linux/classes/jdk/internal/platform/CgroupUtil.java | 90 openjdk-11-11.0.16+8/src/java.base/linux/classes/jdk/internal/platform/CgroupV1Metrics.java | 168 openjdk-11-11.0.16+8/src/java.base/linux/classes/jdk/internal/platform/CgroupV1MetricsImpl.java | 106 openjdk-11-11.0.16+8/src/java.base/linux/classes/jdk/internal/platform/SystemMetrics.java | 31 openjdk-11-11.0.16+8/src/java.base/linux/classes/jdk/internal/platform/cgroupv1/CgroupV1MemorySubSystemController.java | 52 openjdk-11-11.0.16+8/src/java.base/linux/classes/jdk/internal/platform/cgroupv1/CgroupV1Subsystem.java | 411 openjdk-11-11.0.16+8/src/java.base/linux/classes/jdk/internal/platform/cgroupv1/CgroupV1SubsystemController.java | 118 openjdk-11-11.0.16+8/src/java.base/linux/classes/jdk/internal/platform/cgroupv1/Metrics.java | 545 openjdk-11-11.0.16+8/src/java.base/linux/classes/jdk/internal/platform/cgroupv1/SubSystem.java | 298 openjdk-11-11.0.16+8/src/java.base/linux/classes/jdk/internal/platform/cgroupv2/CgroupV2Subsystem.java | 387 openjdk-11-11.0.16+8/src/java.base/linux/classes/jdk/internal/platform/cgroupv2/CgroupV2SubsystemController.java | 58 openjdk-11-11.0.16+8/src/java.base/linux/native/libjava/CgroupMetrics.c | 35 openjdk-11-11.0.16+8/src/java.base/linux/native/libjava/Metrics.c | 35 openjdk-11-11.0.16+8/src/java.base/linux/native/libnet/linux_close.c | 8 openjdk-11-11.0.16+8/src/java.base/macosx/classes/apple/security/KeychainStore.java | 223 openjdk-11-11.0.16+8/src/java.base/macosx/classes/java/lang/ClassLoaderHelper.java | 28 openjdk-11-11.0.16+8/src/java.base/macosx/native/libjli/java_md_macosx.c | 4 openjdk-11-11.0.16+8/src/java.base/macosx/native/libosxsecurity/KeystoreImpl.m | 63 openjdk-11-11.0.16+8/src/java.base/share/classes/com/sun/crypto/provider/ChaCha20Cipher.java | 13 openjdk-11-11.0.16+8/src/java.base/share/classes/java/io/ClassCache.java | 116 openjdk-11-11.0.16+8/src/java.base/share/classes/java/io/File.java | 10 openjdk-11-11.0.16+8/src/java.base/share/classes/java/io/FileSystem.java | 7 openjdk-11-11.0.16+8/src/java.base/share/classes/java/io/ObjectInputStream.java | 27 openjdk-11-11.0.16+8/src/java.base/share/classes/java/io/ObjectOutputStream.java | 26 openjdk-11-11.0.16+8/src/java.base/share/classes/java/io/ObjectStreamClass.java | 313 openjdk-11-11.0.16+8/src/java.base/share/classes/java/lang/ClassLoader.java | 12 openjdk-11-11.0.16+8/src/java.base/share/classes/java/lang/StringCoding.java | 36 openjdk-11-11.0.16+8/src/java.base/share/classes/java/math/BigInteger.java | 4 openjdk-11-11.0.16+8/src/java.base/share/classes/java/net/HostPortrange.java | 4 openjdk-11-11.0.16+8/src/java.base/share/classes/java/net/InetAddress.java | 18 openjdk-11-11.0.16+8/src/java.base/share/classes/java/net/SocketPermission.java | 4 openjdk-11-11.0.16+8/src/java.base/share/classes/java/net/doc-files/net-properties.html | 16 openjdk-11-11.0.16+8/src/java.base/share/classes/java/text/SimpleDateFormat.java | 22 openjdk-11-11.0.16+8/src/java.base/share/classes/java/time/format/Parsed.java | 9 openjdk-11-11.0.16+8/src/java.base/share/classes/java/util/DoubleSummaryStatistics.java | 6 openjdk-11-11.0.16+8/src/java.base/share/classes/java/util/Vector.java | 8 openjdk-11-11.0.16+8/src/java.base/share/classes/java/util/jar/JarVerifier.java | 10 openjdk-11-11.0.16+8/src/java.base/share/classes/java/util/stream/Collectors.java | 17 openjdk-11-11.0.16+8/src/java.base/share/classes/java/util/stream/DoublePipeline.java | 8 openjdk-11-11.0.16+8/src/java.base/share/classes/java/util/zip/Deflater.java | 12 openjdk-11-11.0.16+8/src/java.base/share/classes/java/util/zip/DeflaterOutputStream.java | 23 openjdk-11-11.0.16+8/src/java.base/share/classes/java/util/zip/GZIPOutputStream.java | 38 openjdk-11-11.0.16+8/src/java.base/share/classes/java/util/zip/ZipOutputStream.java | 108 openjdk-11-11.0.16+8/src/java.base/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java | 6 openjdk-11-11.0.16+8/src/java.base/share/classes/jdk/internal/module/ModuleHashes.java | 145 openjdk-11-11.0.16+8/src/java.base/share/classes/jdk/internal/module/ModuleHashesBuilder.java | 31 openjdk-11-11.0.16+8/src/java.base/share/classes/jdk/internal/module/ModuleInfoExtender.java | 6 openjdk-11-11.0.16+8/src/java.base/share/classes/jdk/internal/module/ModuleReferences.java | 6 openjdk-11-11.0.16+8/src/java.base/share/classes/jdk/internal/platform/Metrics.java | 234 openjdk-11-11.0.16+8/src/java.base/share/classes/jdk/internal/util/xml/impl/Parser.java | 64 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/launcher/LauncherHelper.java | 146 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/net/util/IPAddressUtil.java | 278 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/net/www/http/HttpClient.java | 34 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/net/www/protocol/http/HttpCallerInfo.java | 15 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java | 21 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/net/www/protocol/https/AbstractDelegateHttpsURLConnection.java | 75 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/net/www/protocol/https/HttpsClient.java | 7 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java | 13 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/security/provider/DSA.java | 5 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/security/rsa/RSAPSSSignature.java | 75 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/security/rsa/RSAPrivateCrtKeyImpl.java | 26 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/security/ssl/InputRecord.java | 2 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/security/ssl/OutputRecord.java | 9 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/security/ssl/SSLEngineOutputRecord.java | 22 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/security/ssl/SSLSocketImpl.java | 19 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/security/ssl/SSLSocketOutputRecord.java | 5 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/security/ssl/TransportContext.java | 8 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/security/tools/keytool/Main.java | 5 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/security/util/BitArray.java | 30 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/security/util/ChannelBindingException.java | 59 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/security/util/DerIndefLenConverter.java | 17 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/security/util/DerInputBuffer.java | 79 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/security/util/DerInputStream.java | 22 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/security/util/DerValue.java | 28 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/security/util/ManifestEntryVerifier.java | 116 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/security/util/ObjectIdentifier.java | 11 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/security/util/TlsChannelBinding.java | 136 openjdk-11-11.0.16+8/src/java.base/share/classes/sun/util/resources/CurrencyNames.properties | 4 openjdk-11-11.0.16+8/src/java.base/share/legal/public_suffix.md | 2 openjdk-11-11.0.16+8/src/java.base/share/native/libjava/ClassLoader.c | 7 openjdk-11-11.0.16+8/src/java.base/share/native/libjava/jni_util.c | 4 openjdk-11-11.0.16+8/src/java.base/share/native/libjimage/imageFile.cpp | 11 openjdk-11-11.0.16+8/src/java.base/share/native/libjimage/imageFile.hpp | 7 openjdk-11-11.0.16+8/src/java.base/share/native/libverify/check_code.c | 4 openjdk-11-11.0.16+8/src/java.base/unix/classes/java/io/UnixFileSystem.java | 7 openjdk-11-11.0.16+8/src/java.base/unix/classes/java/lang/ClassLoaderHelper.java | 10 openjdk-11-11.0.16+8/src/java.base/unix/classes/jdk/internal/platform/SystemMetrics.java | 31 openjdk-11-11.0.16+8/src/java.base/unix/classes/sun/net/www/content-types.properties | 88 openjdk-11-11.0.16+8/src/java.base/unix/native/libjava/jdk_util_md.h | 2 openjdk-11-11.0.16+8/src/java.base/unix/native/libjli/java_md_solinux.c | 8 openjdk-11-11.0.16+8/src/java.base/unix/native/libnio/ch/DatagramChannelImpl.c | 18 openjdk-11-11.0.16+8/src/java.base/unix/native/libnio/ch/NativeThread.c | 2 openjdk-11-11.0.16+8/src/java.base/windows/classes/java/io/WinNTFileSystem.java | 47 openjdk-11-11.0.16+8/src/java.base/windows/classes/java/lang/ClassLoaderHelper.java | 8 openjdk-11-11.0.16+8/src/java.base/windows/classes/java/lang/ProcessImpl.java | 27 openjdk-11-11.0.16+8/src/java.base/windows/classes/jdk/internal/platform/SystemMetrics.java | 31 openjdk-11-11.0.16+8/src/java.base/windows/classes/sun/net/www/content-types.properties | 86 openjdk-11-11.0.16+8/src/java.base/windows/native/libjava/HostLocaleProviderAdapter_md.c | 11 openjdk-11-11.0.16+8/src/java.base/windows/native/libnet/DefaultProxySelector.c | 18 openjdk-11-11.0.16+8/src/java.desktop/macosx/classes/com/apple/laf/AquaInternalFrameBorder.java | 6 openjdk-11-11.0.16+8/src/java.desktop/macosx/classes/sun/lwawt/macosx/CAccessibility.java | 60 openjdk-11-11.0.16+8/src/java.desktop/macosx/classes/sun/lwawt/macosx/CAccessible.java | 13 openjdk-11-11.0.16+8/src/java.desktop/macosx/classes/sun/lwawt/macosx/CTextPipe.java | 80 openjdk-11-11.0.16+8/src/java.desktop/macosx/native/libawt_lwawt/awt/JavaAccessibilityUtilities.m | 4 openjdk-11-11.0.16+8/src/java.desktop/macosx/native/libawt_lwawt/awt/JavaComponentAccessibility.h | 1 openjdk-11-11.0.16+8/src/java.desktop/macosx/native/libawt_lwawt/awt/JavaComponentAccessibility.m | 83 openjdk-11-11.0.16+8/src/java.desktop/macosx/native/libjsound/PLATFORM_API_MacOSX_Ports.cpp | 4 openjdk-11-11.0.16+8/src/java.desktop/share/classes/com/sun/beans/introspect/ClassInfo.java | 15 openjdk-11-11.0.16+8/src/java.desktop/share/classes/com/sun/imageio/plugins/bmp/BMPImageReader.java | 12 openjdk-11-11.0.16+8/src/java.desktop/share/classes/com/sun/imageio/plugins/common/SimpleCMYKColorSpace.java | 2 openjdk-11-11.0.16+8/src/java.desktop/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java | 62 openjdk-11-11.0.16+8/src/java.desktop/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java | 21 openjdk-11-11.0.16+8/src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java | 9 openjdk-11-11.0.16+8/src/java.desktop/share/classes/com/sun/media/sound/AbstractDataLine.java | 19 openjdk-11-11.0.16+8/src/java.desktop/share/classes/com/sun/media/sound/AbstractLine.java | 10 openjdk-11-11.0.16+8/src/java.desktop/share/classes/com/sun/media/sound/AudioFileSoundbankReader.java | 25 openjdk-11-11.0.16+8/src/java.desktop/share/classes/com/sun/media/sound/DirectAudioDevice.java | 4 openjdk-11-11.0.16+8/src/java.desktop/share/classes/com/sun/media/sound/StandardMidiFileReader.java | 9 openjdk-11-11.0.16+8/src/java.desktop/share/classes/java/awt/color/ICC_Profile.java | 181 openjdk-11-11.0.16+8/src/java.desktop/share/classes/java/awt/image/ColorConvertOp.java | 25 openjdk-11-11.0.16+8/src/java.desktop/share/classes/java/beans/Introspector.java | 47 openjdk-11-11.0.16+8/src/java.desktop/share/classes/java/beans/ThreadGroupContext.java | 10 openjdk-11-11.0.16+8/src/java.desktop/share/classes/javax/swing/JTable.java | 21 openjdk-11-11.0.16+8/src/java.desktop/share/classes/sun/awt/FontConfiguration.java | 6 openjdk-11-11.0.16+8/src/java.desktop/share/classes/sun/java2d/cmm/ProfileActivator.java | 41 openjdk-11-11.0.16+8/src/java.desktop/share/classes/sun/java2d/cmm/ProfileDeferralInfo.java | 39 openjdk-11-11.0.16+8/src/java.desktop/share/classes/sun/java2d/cmm/ProfileDeferralMgr.java | 119 openjdk-11-11.0.16+8/src/java.desktop/share/classes/sun/java2d/cmm/lcms/LCMSTransform.java | 23 openjdk-11-11.0.16+8/src/java.desktop/share/legal/freetype.md | 2 openjdk-11-11.0.16+8/src/java.desktop/share/legal/harfbuzz.md | 10 openjdk-11-11.0.16+8/src/java.desktop/share/native/libawt/awt/image/cvutils/img_globals.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libawt/awt/image/cvutils/img_globals.h | 4 openjdk-11-11.0.16+8/src/java.desktop/share/native/libawt/java2d/SurfaceData.h | 12 openjdk-11-11.0.16+8/src/java.desktop/share/native/libawt/java2d/loops/ByteIndexed.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libawt/java2d/loops/UshortIndexed.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/UPDATING.txt | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/config/ftconfig.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/config/ftheader.h | 14 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/config/ftmodule.h | 7 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/config/ftoption.h | 75 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/config/ftstdlib.h | 14 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/config/integer-types.h | 45 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/config/mac-support.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/config/public-macros.h | 20 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/freetype.h | 611 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftadvanc.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftbbox.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftbdf.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftbitmap.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftchapters.h | 4 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftcid.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftcolor.h | 1407 ++ openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftdriver.h | 147 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/fterrdef.h | 6 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/fterrors.h | 4 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftfntfmt.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftgasp.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftglyph.h | 116 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftgzip.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftimage.h | 131 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftincrem.h | 17 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftlcdfil.h | 19 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftlist.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftlogging.h | 184 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftmac.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftmm.h | 5 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftmodapi.h | 35 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftmoderr.h | 3 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftoutln.h | 14 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftparams.h | 17 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftrender.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftsizes.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftsnames.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftstroke.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftsynth.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ftsystem.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/fttrigon.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/fttypes.h | 19 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/autohint.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/cffotypes.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/cfftypes.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/compiler-macros.h | 154 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftcalc.h | 58 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftdebug.h | 171 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftdrv.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftgloadr.h | 3 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftmemory.h | 13 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftobjs.h | 7 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftpsprop.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftrfork.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftserv.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftstream.h | 32 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/fttrace.h | 26 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftvalid.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/psaux.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/pshints.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svbdf.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svcfftl.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svcid.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svfntfmt.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svgldict.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svgxval.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svkern.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svmetric.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svmm.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svotval.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svpfr.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svpostnm.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svprop.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svpscmap.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svpsinfo.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svsfnt.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svttcmap.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svtteng.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svttglyf.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svwinfnt.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/sfnt.h | 299 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/svginterface.h | 46 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/t1types.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/tttypes.h | 20 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/internal/wofftypes.h | 6 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/otsvg.h | 336 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/t1tables.h | 188 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/ttnameid.h | 4 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/tttables.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/freetype/tttags.h | 3 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/include/ft2build.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afangles.c | 285 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afangles.h | 7 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afblue.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afblue.cin | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afblue.dat | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afblue.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afblue.hin | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afcjk.c | 78 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afcjk.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afcover.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afdummy.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afdummy.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/aferrors.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afglobal.c | 30 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afglobal.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afhints.c | 154 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afhints.h | 17 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afindic.c | 7 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afindic.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/aflatin.c | 137 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/aflatin.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afloader.c | 39 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afloader.h | 4 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afmodule.c | 56 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afmodule.h | 5 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afranges.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afranges.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afscript.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afshaper.c | 59 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afshaper.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afstyles.h | 11 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/aftypes.h | 65 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afwarp.c | 373 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afwarp.h | 66 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afwrtsys.h | 52 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afws-decl.h | 33 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/autofit/afws-iter.h | 31 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftadvanc.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftbase.h | 3 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftbbox.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftbitmap.c | 18 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftcalc.c | 18 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftcid.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftdbgmem.c | 94 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftdebug.c | 334 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftfntfmt.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftfstype.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftgasp.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftgloadr.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftglyph.c | 271 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/fthash.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftinit.c | 10 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftlcdfil.c | 10 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftmac.c | 10 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftmm.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftobjs.c | 461 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftoutln.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftpatent.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftpsprop.c | 6 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftrfork.c | 34 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftsnames.c | 6 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftstream.c | 85 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftstroke.c | 47 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftsynth.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftsystem.c | 4 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/fttrigon.c | 8 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/fttype1.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/base/ftutil.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cff/cffcmap.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cff/cffcmap.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cff/cffdrivr.c | 24 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cff/cffdrivr.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cff/cfferrs.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cff/cffgload.c | 88 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cff/cffgload.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cff/cffload.c | 110 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cff/cffload.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cff/cffobjs.c | 35 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cff/cffobjs.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cff/cffparse.c | 12 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cff/cffparse.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cff/cfftoken.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cid/ciderrs.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cid/cidgload.c | 42 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cid/cidgload.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cid/cidload.c | 126 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cid/cidload.h | 4 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cid/cidobjs.c | 17 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cid/cidobjs.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cid/cidparse.c | 8 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cid/cidparse.h | 4 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cid/cidriver.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cid/cidriver.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/cid/cidtoken.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/afmparse.c | 130 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/afmparse.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/cffdecode.c | 33 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/cffdecode.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/psarrst.c | 7 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/psarrst.h | 1 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/psauxerr.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/psauxmod.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/psauxmod.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/psblues.c | 3 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/psconv.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/psconv.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/psft.c | 6 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/pshints.c | 60 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/psintrp.c | 69 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/psintrp.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/psobjs.c | 101 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/psobjs.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/psstack.c | 8 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/t1cmap.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/t1cmap.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/t1decode.c | 33 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psaux/t1decode.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/pshinter/pshalgo.c | 139 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/pshinter/pshalgo.h | 34 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/pshinter/pshglob.c | 4 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/pshinter/pshglob.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/pshinter/pshmod.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/pshinter/pshmod.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/pshinter/pshnterr.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/pshinter/pshrec.c | 122 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/pshinter/pshrec.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psnames/psmodule.c | 42 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psnames/psmodule.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psnames/psnamerr.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/psnames/pstables.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/raster/ftmisc.h | 9 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/raster/ftraster.c | 323 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/raster/ftraster.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/raster/ftrend1.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/raster/ftrend1.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/raster/rasterrs.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/pngshim.c | 13 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/pngshim.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/sfdriver.c | 70 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/sfdriver.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/sferrors.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/sfobjs.c | 117 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/sfobjs.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/sfwoff.c | 36 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/sfwoff.h | 5 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/sfwoff2.c | 138 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/sfwoff2.h | 5 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/ttcmap.c | 12 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/ttcmap.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/ttcmapc.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/ttcolr.c | 908 + openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/ttcolr.h | 28 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/ttcpal.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/ttcpal.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/ttkern.c | 21 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/ttkern.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/ttload.c | 90 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/ttload.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/ttmtx.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/ttmtx.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/ttpost.c | 111 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/ttpost.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/ttsbit.c | 45 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/ttsbit.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/woff2tags.c | 16 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/sfnt/woff2tags.h | 8 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/smooth/ftgrays.c | 829 - openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/smooth/ftgrays.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/smooth/ftsmerrs.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/smooth/ftsmooth.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/smooth/ftsmooth.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/truetype/ttdriver.c | 18 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/truetype/ttdriver.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/truetype/tterrors.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/truetype/ttgload.c | 286 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/truetype/ttgload.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/truetype/ttgxvar.c | 320 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/truetype/ttgxvar.h | 8 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/truetype/ttinterp.c | 244 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/truetype/ttinterp.h | 109 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/truetype/ttobjs.c | 97 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/truetype/ttobjs.h | 4 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/truetype/ttpload.c | 127 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/truetype/ttpload.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/truetype/ttsubpix.c | 8 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/truetype/ttsubpix.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/type1/t1afm.c | 4 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/type1/t1afm.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/type1/t1driver.c | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/type1/t1driver.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/type1/t1errors.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/type1/t1gload.c | 4 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/type1/t1gload.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/type1/t1load.c | 118 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/type1/t1load.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/type1/t1objs.c | 16 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/type1/t1objs.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/type1/t1parse.c | 10 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/type1/t1parse.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libfreetype/src/type1/t1tokens.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-aat-fdsc-table.hh | 126 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-aat-layout-ankr-table.hh | 5 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-aat-layout-bsln-table.hh | 6 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-aat-layout-common.hh | 172 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-aat-layout-feat-table.hh | 53 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-aat-layout-just-table.hh | 30 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-aat-layout-kerx-table.hh | 126 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-aat-layout-lcar-table.hh | 93 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-aat-layout-morx-table.hh | 134 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-aat-layout-opbd-table.hh | 173 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-aat-layout-trak-table.hh | 25 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-aat-layout.cc | 183 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-aat-layout.h | 319 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-aat-layout.hh | 16 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-aat-ltag-table.hh | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-aat-map.cc | 40 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-aat-map.hh | 17 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-algs.hh | 1284 + openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-array.hh | 261 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-atomic.hh | 156 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-bimap.hh | 166 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-blob.cc | 162 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-blob.h | 45 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-blob.hh | 11 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-buffer-deserialize-json.hh | 1122 - openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-buffer-deserialize-text.hh | 1195 + openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-buffer-serialize.cc | 543 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-buffer.cc | 437 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-buffer.h | 118 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-buffer.hh | 160 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-cff-interp-common.hh | 143 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-cff-interp-cs-common.hh | 76 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-cff-interp-dict-common.hh | 151 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-cff1-interp-cs.hh | 4 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-cff2-interp-cs.hh | 12 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-common.cc | 441 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-common.h | 757 - openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-config.hh | 163 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-coretext.cc | 1196 + openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-coretext.h | 96 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-debug.hh | 68 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-deprecated.h | 118 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-dispatch.hh | 60 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-draw.cc | 261 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-draw.h | 98 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-draw.hh | 139 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-dsalgs.hh | 632 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-face.cc | 203 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-face.h | 21 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-face.hh | 4 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-fallback-shape.cc | 3 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-font.cc | 1422 +- openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-font.h | 566 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-font.hh | 55 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ft.cc | 262 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ft.h | 6 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-iter.hh | 910 + openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-kern.hh | 3 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-machinery.hh | 654 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-map.cc | 92 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-map.h | 14 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-map.hh | 187 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-meta.hh | 425 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-mutex.hh | 64 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-null.hh | 101 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-number-parser.hh | 237 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-number.cc | 80 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-number.hh | 41 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-object.hh | 21 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-open-file.hh | 58 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-open-type.hh | 610 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-cff-common.hh | 529 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-cff1-std-str.hh | 425 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-cff1-table.cc | 281 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-cff1-table.hh | 698 - openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-cff2-table.cc | 121 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-cff2-table.hh | 159 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-cmap-table.hh | 1269 + openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-color-cbdt-table.hh | 674 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-color-colr-table.hh | 162 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-color-cpal-table.hh | 21 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-color-sbix-table.hh | 152 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-color-svg-table.hh | 6 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-color.cc | 157 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-color.h | 17 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-deprecated.h | 25 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-face-table-list.hh | 138 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-face.cc | 9 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-face.hh | 52 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-font.cc | 102 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-font.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-glyf-table.hh | 1291 + openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-hdmx-table.hh | 169 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-head-table.hh | 14 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-hhea-table.hh | 63 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-hmtx-table.hh | 286 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-kern-table.hh | 85 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-layout-base-table.hh | 160 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-layout-common.hh | 1648 +- openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-layout-gdef-table.hh | 283 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-layout-gpos-table.hh | 1389 +- openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-layout-gsub-table.hh | 878 - openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-layout-gsubgpos.hh | 1477 +- openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-layout-jstf-table.hh | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-layout.cc | 853 - openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-layout.h | 142 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-layout.hh | 38 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-map.cc | 42 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-map.hh | 20 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-math-table.hh | 180 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-math.cc | 162 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-math.h | 104 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-maxp-table.hh | 59 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-meta-table.hh | 127 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-meta.cc | 79 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-meta.h | 72 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-metrics.cc | 249 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-metrics.h | 124 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-metrics.hh | 35 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-name-language-static.hh | 456 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-name-language.cc | 457 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-name-table.hh | 149 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-name.cc | 18 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-name.h | 5 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-os2-table.hh | 124 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-os2-unicode-ranges.hh | 24 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-post-table.hh | 54 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-arabic-fallback.hh | 45 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-arabic-joining-list.hh | 46 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-arabic-table.hh | 60 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-arabic-win1256.hh | 4 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-arabic.cc | 28 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-default.cc | 27 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-hangul.cc | 53 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-hebrew.cc | 11 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-indic-machine.hh | 1248 - openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-indic-table.cc | 149 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-indic.cc | 392 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-indic.hh | 69 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-khmer-machine.hh | 663 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-khmer.cc | 250 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-khmer.hh | 21 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-myanmar-machine.hh | 346 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-myanmar.cc | 191 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-myanmar.hh | 20 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-syllabic.cc | 100 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-syllabic.hh | 41 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-thai.cc | 26 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-use-machine.hh | 1109 - openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-use-table.cc | 839 - openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-use-table.hh | 1203 + openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-use.cc | 361 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-use.hh | 100 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex-vowel-constraints.cc | 100 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-complex.hh | 63 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-fallback.cc | 31 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-normalize.cc | 59 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape.cc | 263 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-shape.hh | 49 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-stat-table.hh | 164 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-tag-table.hh | 3413 +++-- openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-tag.cc | 210 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-var-avar-table.hh | 35 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-var-fvar-table.hh | 227 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-var-gvar-table.hh | 701 + openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-var-hvar-table.hh | 338 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-var-mvar-table.hh | 8 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-var.cc | 128 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-var.h | 55 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot-vorg-table.hh | 123 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ot.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-pool.hh | 100 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-sanitize.hh | 412 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-serialize.hh | 554 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-set.cc | 224 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-set.h | 17 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-set.hh | 281 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-shape-plan.cc | 198 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-shape-plan.h | 16 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-shape-plan.hh | 22 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-shape.cc | 12 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-shape.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-shaper-list.hh | 14 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-shaper.cc | 3 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-shaper.hh | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-static.cc | 41 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-string-array.hh | 6 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-style.cc | 136 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-style.h | 43 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-subset-cff-common.cc | 141 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-subset-cff-common.hh | 312 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-subset-cff1.cc | 721 - openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-subset-cff1.hh | 3 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-subset-cff2.cc | 416 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-subset-cff2.hh | 3 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-subset-glyf.cc | 310 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-subset-glyf.hh | 40 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-subset-input.cc | 105 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-subset-input.hh | 12 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-subset-plan.cc | 341 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-subset-plan.hh | 123 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-subset.cc | 312 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-subset.h | 27 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-subset.hh | 28 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ucd-table.hh | 6780 ++++++++++ openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ucd.cc | 248 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ucdn.cc | 268 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ucdn/ucdn.c | 360 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ucdn/ucdn.h | 461 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-ucdn/ucdn_db.h | 5730 -------- openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-unicode-emoji-table.hh | 132 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-unicode.cc | 162 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-unicode.h | 321 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-unicode.hh | 24 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-vector.hh | 190 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-version.h | 37 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb-warning.cc | 37 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb.h | 2 openjdk-11-11.0.16+8/src/java.desktop/share/native/libharfbuzz/hb.hh | 388 openjdk-11-11.0.16+8/src/java.desktop/share/native/liblcms/LCMS.c | 21 openjdk-11-11.0.16+8/src/java.desktop/share/native/libmlib_image/mlib_ImageAffine.h | 4 openjdk-11-11.0.16+8/src/java.desktop/unix/classes/sun/print/CUPSPrinter.java | 53 openjdk-11-11.0.16+8/src/java.desktop/unix/native/common/awt/CUPSfuncs.c | 80 openjdk-11-11.0.16+8/src/java.desktop/unix/native/common/awt/colordata.h | 6 openjdk-11-11.0.16+8/src/java.desktop/unix/native/common/awt/fontpath.c | 6 openjdk-11-11.0.16+8/src/java.desktop/unix/native/common/java2d/opengl/J2D_GL/glxext.h | 4 openjdk-11-11.0.16+8/src/java.desktop/unix/native/libawt_xawt/awt/awt_GraphicsEnv.c | 5 openjdk-11-11.0.16+8/src/java.desktop/unix/native/libawt_xawt/xawt/XToolkit.c | 23 openjdk-11-11.0.16+8/src/java.desktop/windows/native/libawt/windows/awt_Component.cpp | 30 openjdk-11-11.0.16+8/src/java.desktop/windows/native/libawt/windows/awt_DnDDS.cpp | 6 openjdk-11-11.0.16+8/src/java.desktop/windows/native/libawt/windows/awt_DnDDT.cpp | 16 openjdk-11-11.0.16+8/src/java.desktop/windows/native/libawt/windows/awt_Frame.cpp | 45 openjdk-11-11.0.16+8/src/java.desktop/windows/native/libawt/windows/awt_Robot.cpp | 29 openjdk-11-11.0.16+8/src/java.desktop/windows/native/libawt/windows/awt_Toolkit.cpp | 9 openjdk-11-11.0.16+8/src/java.desktop/windows/native/libawt/windows/awt_Toolkit.h | 5 openjdk-11-11.0.16+8/src/java.desktop/windows/native/libawt/windows/colordata.h | 6 openjdk-11-11.0.16+8/src/java.instrument/share/native/libinstrument/InvocationAdapter.c | 4 openjdk-11-11.0.16+8/src/java.naming/share/classes/com/sun/jndi/ldap/LdapClientFactory.java | 16 openjdk-11-11.0.16+8/src/java.naming/share/classes/com/sun/jndi/ldap/LdapURL.java | 67 openjdk-11-11.0.16+8/src/java.naming/share/classes/com/sun/jndi/ldap/pool/Connections.java | 271 openjdk-11-11.0.16+8/src/java.naming/share/classes/com/sun/jndi/ldap/pool/Pool.java | 109 openjdk-11-11.0.16+8/src/java.naming/share/classes/com/sun/jndi/ldap/pool/PooledConnectionFactory.java | 9 openjdk-11-11.0.16+8/src/java.naming/share/classes/com/sun/jndi/ldap/sasl/LdapSasl.java | 41 openjdk-11-11.0.16+8/src/java.naming/share/classes/com/sun/jndi/ldap/sasl/TlsChannelBinding.java | 146 openjdk-11-11.0.16+8/src/java.naming/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java | 19 openjdk-11-11.0.16+8/src/java.naming/share/classes/com/sun/jndi/toolkit/url/Uri.java | 285 openjdk-11-11.0.16+8/src/java.net.http/share/classes/jdk/internal/net/http/Stream.java | 4 openjdk-11-11.0.16+8/src/java.security.jgss/share/classes/sun/net/www/protocol/http/spnego/NegotiatorImpl.java | 15 openjdk-11-11.0.16+8/src/java.security.jgss/share/classes/sun/security/jgss/spnego/SpNegoContext.java | 4 openjdk-11-11.0.16+8/src/java.security.jgss/share/native/libj2gss/gssapi.h | 8 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/Init.java | 8 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/algorithms/implementations/IntegrityHmac.java | 2 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer20010315.java | 2 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/CanonicalizerBase.java | 6 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/CanonicalizerPhysical.java | 2 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/NameSpaceSymbTable.java | 2 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/exceptions/XMLSecurityRuntimeException.java | 181 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/KeyResolver.java | 12 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/KeyInfoReferenceResolver.java | 3 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/resource/config.xml | 2 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/resource/xmlsecurity_en.properties | 3 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/signature/XMLSignatureInput.java | 15 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformC14N.java | 2 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformC14NExclusive.java | 2 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformEnvelopedSignature.java | 8 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformXPath.java | 15 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/Base64.java | 1 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/DOMNamespaceContext.java | 6 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java | 110 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/XMLUtils.java | 2 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/ResourceResolver.java | 13 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/ResourceResolverContext.java | 1 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverDirectHTTP.java | 5 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverLocalFilesystem.java | 45 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/ApacheCanonicalizer.java | 3 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMHMACSignatureMethod.java | 6 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMReference.java | 2 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMTransform.java | 2 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMURIDereferencer.java | 8 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/Policy.java | 25 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/Utils.java | 8 openjdk-11-11.0.16+8/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/XMLDSigRI.java | 2 openjdk-11-11.0.16+8/src/java.xml.crypto/share/legal/santuario.md | 2 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/java_cup/internal/runtime/lr_parser.java | 62 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/Const.java | 535 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/ExceptionConst.java | 23 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/AnnotationDefault.java | 12 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/AnnotationElementValue.java | 2 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/AnnotationEntry.java | 36 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Annotations.java | 40 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ArrayElementValue.java | 26 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Attribute.java | 4 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/BootstrapMethod.java | 56 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/BootstrapMethods.java | 38 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ClassParser.java | 86 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Code.java | 77 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/CodeException.java | 84 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Constant.java | 4 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantClass.java | 22 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantInvokeDynamic.java | 2 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantMethodHandle.java | 24 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantMethodType.java | 12 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantModule.java | 22 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantNameAndType.java | 38 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantPackage.java | 22 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantPool.java | 71 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantString.java | 22 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantValue.java | 20 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ElementValue.java | 6 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/EnumElementValue.java | 2 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ExceptionTable.java | 54 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/InnerClass.java | 88 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/InnerClasses.java | 34 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/JavaClass.java | 184 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LineNumber.java | 36 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LineNumberTable.java | 53 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariable.java | 114 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariableTable.java | 46 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariableTypeTable.java | 34 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/MethodParameter.java | 32 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/MethodParameters.java | 2 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Module.java | 137 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ModuleExports.java | 38 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ModuleMainClass.java | 36 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ModuleOpens.java | 38 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ModulePackages.java | 52 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ModuleProvides.java | 30 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ModuleRequires.java | 26 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/NestHost.java | 30 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/PMGClass.java | 52 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ParameterAnnotationEntry.java | 12 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ParameterAnnotations.java | 36 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Signature.java | 26 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/SimpleElementValue.java | 22 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/SourceFile.java | 24 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMap.java | 4 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMapEntry.java | 280 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMapType.java | 20 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Unknown.java | 10 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Utility.java | 59 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/AnnotationElementValueGen.java | 4 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ArrayElementValueGen.java | 2 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ArrayInstruction.java | 2 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ArrayType.java | 18 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ClassGen.java | 174 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CodeExceptionGen.java | 80 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ConstantPoolGen.java | 93 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ElementValueGen.java | 8 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ElementValuePairGen.java | 20 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/EnumElementValueGen.java | 2 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldGen.java | 6 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldGenOrMethodGen.java | 34 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEDYNAMIC.java | 6 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEINTERFACE.java | 2 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKESPECIAL.java | 2 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKESTATIC.java | 2 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEVIRTUAL.java | 2 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionFactory.java | 84 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionHandle.java | 8 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionList.java | 26 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/JsrInstruction.java | 2 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LDC.java | 8 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LDC2_W.java | 8 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LineNumberGen.java | 21 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LocalVariableGen.java | 26 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LocalVariableInstruction.java | 30 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MethodGen.java | 358 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ObjectType.java | 34 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SWITCH.java | 12 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/Select.java | 6 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SimpleElementValueGen.java | 10 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/Type.java | 6 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/BCELFactory.java | 6 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/CodeHTML.java | 92 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ConstantHTML.java | 74 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/InstructionFinder.java | 14 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/MethodHTML.java | 14 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/SyntheticRepository.java | 8 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/XalanConstants.java | 15 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/utils/XMLSecurityManager.java | 467 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java | 15 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XPathParser.java | 47 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java | 18 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/sym.java | 14 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java | 25 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMsg.java | 15 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java | 2 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java | 6 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/Util.java | 12 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/AbstractDOMParser.java | 49 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java | 29 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToStream.java | 71 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/dom3/DOM3TreeWalker.java | 20 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SystemIDResolver.java | 7 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java | 14 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/XPath.java | 89 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/Lexer.java | 161 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/Token.java | 77 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/XPathParser.java | 319 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java | 15 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/jaxp/XPathImpl.java | 20 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/jaxp/XPathImplUtil.java | 6 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/jaxp/XPathResultImpl.java | 8 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources.java | 15 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/xml/internal/stream/events/EntityDeclarationImpl.java | 15 openjdk-11-11.0.16+8/src/java.xml/share/classes/com/sun/xml/internal/stream/events/NotationDeclarationImpl.java | 14 openjdk-11-11.0.16+8/src/java.xml/share/classes/jdk/xml/internal/JdkXmlUtils.java | 48 openjdk-11-11.0.16+8/src/java.xml/share/classes/jdk/xml/internal/XMLLimitAnalyzer.java | 249 openjdk-11-11.0.16+8/src/java.xml/share/classes/jdk/xml/internal/XMLSecurityManager.java | 604 openjdk-11-11.0.16+8/src/java.xml/share/classes/module-info.java | 39 openjdk-11-11.0.16+8/src/java.xml/share/legal/bcel.md | 13 openjdk-11-11.0.16+8/src/jdk.compiler/share/classes/com/sun/tools/javac/code/TypeAnnotations.java | 6 openjdk-11-11.0.16+8/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java | 44 openjdk-11-11.0.16+8/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/DeferredAttr.java | 2 openjdk-11-11.0.16+8/src/jdk.compiler/share/classes/com/sun/tools/javac/file/JavacFileManager.java | 11 openjdk-11-11.0.16+8/src/jdk.compiler/share/classes/com/sun/tools/javac/file/PathFileObject.java | 5 openjdk-11-11.0.16+8/src/jdk.compiler/share/classes/com/sun/tools/javac/main/JavaCompiler.java | 16 openjdk-11-11.0.16+8/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java | 7 openjdk-11-11.0.16+8/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java | 14 openjdk-11-11.0.16+8/src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java | 18 openjdk-11-11.0.16+8/src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeMaker.java | 6 openjdk-11-11.0.16+8/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11AEADCipher.java | 292 openjdk-11-11.0.16+8/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11KeyGenerator.java | 6 openjdk-11-11.0.16+8/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11SecretKeyFactory.java | 5 openjdk-11-11.0.16+8/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java | 22 openjdk-11-11.0.16+8/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/CK_MECHANISM.java | 7 openjdk-11-11.0.16+8/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/CK_SALSA20_CHACHA20_POLY1305_PARAMS.java | 80 openjdk-11-11.0.16+8/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_convert.c | 74 openjdk-11-11.0.16+8/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_util.c | 7 openjdk-11-11.0.16+8/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11wrapper.h | 4 openjdk-11-11.0.16+8/src/jdk.hotspot.agent/linux/native/libsaproc/ps_core.c | 25 openjdk-11-11.0.16+8/src/jdk.hotspot.agent/linux/native/libsaproc/ps_proc.c | 9 openjdk-11-11.0.16+8/src/jdk.hotspot.agent/macosx/native/libsaproc/MacosxDebuggerLocal.m | 142 openjdk-11-11.0.16+8/src/jdk.hotspot.agent/macosx/native/libsaproc/libproc_impl.c | 14 openjdk-11-11.0.16+8/src/jdk.hotspot.agent/macosx/native/libsaproc/libproc_impl.h | 65 openjdk-11-11.0.16+8/src/jdk.hotspot.agent/macosx/native/libsaproc/ps_core.c | 155 openjdk-11-11.0.16+8/src/jdk.hotspot.agent/macosx/native/libsaproc/symtab.c | 110 openjdk-11-11.0.16+8/src/jdk.hotspot.agent/macosx/native/libsaproc/symtab.h | 4 openjdk-11-11.0.16+8/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/HotSpotAgent.java | 5 openjdk-11-11.0.16+8/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/bsd/BsdCDebugger.java | 12 openjdk-11-11.0.16+8/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/bsd/BsdThreadContextFactory.java | 5 openjdk-11-11.0.16+8/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/bsd/aarch64/BsdAARCH64CFrame.java | 87 openjdk-11-11.0.16+8/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/bsd/aarch64/BsdAARCH64ThreadContext.java | 47 openjdk-11-11.0.16+8/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/LinuxCDebugger.java | 4 openjdk-11-11.0.16+8/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/posix/elf/ELFFileParser.java | 109 openjdk-11-11.0.16+8/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/posix/elf/ELFSectionHeader.java | 4 openjdk-11-11.0.16+8/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/posix/elf/ELFSymbol.java | 4 openjdk-11-11.0.16+8/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/Threads.java | 5 openjdk-11-11.0.16+8/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/bsd_aarch64/BsdAARCH64JavaThreadPDAccess.java | 137 openjdk-11-11.0.16+8/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/RobustOopDeterminator.java | 9 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/Candidate.java | 5 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/CompletionMatcher.java | 48 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/ConfigurationPath.java | 75 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/EndOfFileException.java | 12 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/LineReader.java | 67 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/LineReaderBuilder.java | 11 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/Parser.java | 6 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/PrintAboveWriter.java | 42 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/ScriptEngine.java | 153 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/impl/CompletionMatcherImpl.java | 210 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/impl/DefaultHighlighter.java | 6 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/impl/DefaultParser.java | 81 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/impl/LineReaderImpl.java | 557 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/impl/ReaderUtils.java | 13 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/impl/completer/StringsCompleter.java | 13 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/impl/completer/SystemCompleter.java | 150 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/impl/history/DefaultHistory.java | 41 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/Terminal.java | 7 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/TerminalBuilder.java | 355 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/impl/AbstractTerminal.java | 25 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/impl/AbstractWindowsTerminal.java | 2 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/spi/JansiSupport.java | 7 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/spi/JnaSupport.java | 7 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/AttributedCharSequence.java | 142 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/AttributedString.java | 12 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/AttributedStringBuilder.java | 20 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/AttributedStyle.java | 94 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/ColorPalette.java | 262 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/Colors.java | 119 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/Curses.java | 75 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/Display.java | 4 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/InfoCmp.java | 2 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/Log.java | 9 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/NonBlockingPumpInputStream.java | 14 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/NonBlockingPumpReader.java | 6 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/PumpReader.java | 2 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/Signals.java | 11 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/StyleResolver.java | 109 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/rxvt-basic.caps | 41 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/rxvt-unicode-256color.caps | 44 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/rxvt-unicode.caps | 44 openjdk-11-11.0.16+8/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/rxvt.caps | 43 openjdk-11-11.0.16+8/src/jdk.internal.le/share/legal/jline.md | 2 openjdk-11-11.0.16+8/src/jdk.internal.le/windows/classes/jdk/internal/org/jline/terminal/impl/jna/JnaSupportImpl.java | 27 openjdk-11-11.0.16+8/src/jdk.internal.le/windows/classes/jdk/internal/org/jline/terminal/impl/jna/win/JnaWinSysTerminal.java | 36 openjdk-11-11.0.16+8/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/InstalledCode.java | 6 openjdk-11-11.0.16+8/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot.aarch64/src/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotJVMCIBackendFactory.java | 6 openjdk-11-11.0.16+8/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot.aarch64/src/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig.java | 18 openjdk-11-11.0.16+8/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java | 2 openjdk-11-11.0.16+8/src/jdk.jdwp.agent/share/native/libjdwp/classTrack.c | 39 openjdk-11-11.0.16+8/src/jdk.jdwp.agent/share/native/libjdwp/invoker.c | 6 openjdk-11-11.0.16+8/src/jdk.jdwp.agent/share/native/libjdwp/util.h | 6 openjdk-11-11.0.16+8/src/jdk.jfr/share/classes/jdk/jfr/consumer/ParserFactory.java | 3 openjdk-11-11.0.16+8/src/jdk.jfr/share/classes/jdk/jfr/internal/MetadataReader.java | 2 openjdk-11-11.0.16+8/src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/RecordingInput.java | 12 openjdk-11-11.0.16+8/src/jdk.jfr/share/classes/jdk/jfr/internal/tool/JSONWriter.java | 2 openjdk-11-11.0.16+8/src/jdk.jfr/share/classes/jdk/jfr/internal/tool/XMLWriter.java | 6 openjdk-11-11.0.16+8/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/JShellTool.java | 8 openjdk-11-11.0.16+8/src/jdk.management/unix/classes/com/sun/management/internal/OperatingSystemImpl.java | 2 openjdk-11-11.0.16+8/src/jdk.naming.dns/share/classes/com/sun/jndi/dns/DnsUrl.java | 71 openjdk-11-11.0.16+8/src/jdk.naming.rmi/share/classes/com/sun/jndi/url/rmi/rmiURLContext.java | 303 openjdk-11-11.0.16+8/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java | 75 openjdk-11-11.0.16+8/src/utils/hsdis/Makefile | 13 openjdk-11-11.0.16+8/test/failure_handler/src/share/conf/linux.properties | 17 openjdk-11-11.0.16+8/test/failure_handler/src/share/conf/mac.properties | 8 openjdk-11-11.0.16+8/test/failure_handler/src/share/conf/solaris.properties | 17 openjdk-11-11.0.16+8/test/failure_handler/src/share/conf/windows.properties | 17 openjdk-11-11.0.16+8/test/hotspot/gtest/gc/shared/test_oopStorage_parperf.cpp | 5 openjdk-11-11.0.16+8/test/hotspot/gtest/gtestMain.cpp | 13 openjdk-11-11.0.16+8/test/hotspot/gtest/logging/logTestUtils.inline.hpp | 2 openjdk-11-11.0.16+8/test/hotspot/gtest/logging/test_logConfiguration.cpp | 25 openjdk-11-11.0.16+8/test/hotspot/gtest/logging/test_logFileOutput.cpp | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/ProblemList.txt | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/TEST.ROOT | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/TEST.quick-groups | 15 openjdk-11-11.0.16+8/test/hotspot/jtreg/applications/scimark/Scimark.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/allocation/TestAllocArrayAfterAllocNoUse.java | 52 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/allocation/TestCCPAllocateArray.java | 53 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/allocation/TestFailedAllocationBadGraph.java | 80 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/c1/Test8271202.java | 67 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/c1/Test8275337.java | 65 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/c1/TestC1PhiPlacementPathology.jasm | 76 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/c1/TestC1PhiPlacementPathologyMain.java | 40 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/c2/PolynomialRoot.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/c2/Test6661247.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/c2/Test7047069.java | 19 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/c2/Test7160610.java | 14 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/c2/Test7177917.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/c2/TestModDivTopInput.java | 76 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/c2/TestSqrt.java | 54 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/codecache/OverflowCodeCacheTest.java | 57 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/codecache/cli/codeheapsize/TestCodeHeapSizeOptions.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/codecache/dtrace/SegmentedCodeCacheDtraceTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/codecache/stress/Helper.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/codecache/stress/OverloadCompileQueueTest.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/codecache/stress/RandomAllocationTest.java | 15 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/codecache/stress/UnexpectedDeoptimizationTest.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/codegen/Test6896617.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/codegen/Test7100757.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/codegen/aes/TestAESMain.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/codegen/aes/TestCipherBlockChainingEncrypt.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/commandfile/CompileOnlyTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/commandfile/ExcludeTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/commandfile/LogTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/commandfile/PrintTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/commands/CompileOnlyTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/commands/ExcludeTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/commands/LogTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/commands/PrintTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/directives/CompileOnlyTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/directives/ExcludeTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/directives/LogTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/directives/PrintTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/jcmd/AddAndRemoveTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/jcmd/AddCompileOnlyTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/jcmd/AddExcludeTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/jcmd/AddLogTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/jcmd/AddPrintAssemblyTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/jcmd/ClearDirectivesFileStackTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/jcmd/ClearDirectivesStackTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/jcmd/PrintDirectivesTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/jcmd/StressAddMultiThreadedTest.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/matcher/MethodMatcherTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/mixed/RandomCommandsTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/mixed/RandomValidCommandsTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/parser/DirectiveStressTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/compilercontrol/parser/HugeDirectiveUtil.java | 15 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/escapeAnalysis/TestSelfArrayCopy.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/gcbarriers/UnsafeIntrinsicsTest.java | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/inlining/InlineAccessors.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/interpreter/Custom.jasm | 63 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/interpreter/DisableOSRTest.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/interpreter/VerifyStackWithUnreachableBlock.java | 42 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/base64/TestBase64.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/bigInteger/MontgomeryMultiplyTest.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/bigInteger/TestMulAdd.java | 13 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/bigInteger/TestMultiplyToLen.java | 13 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/bigInteger/TestSquareToLen.java | 13 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/bmi/BMITestRunner.java | 13 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/bmi/TestAndnI.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/bmi/TestAndnL.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/bmi/TestBlsiI.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/bmi/TestBlsiL.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/bmi/TestBlsmskI.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/bmi/TestBlsmskL.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/bmi/TestBlsrI.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/bmi/TestBlsrL.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/bmi/TestLzcntI.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/bmi/TestLzcntL.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/bmi/TestTzcntI.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/bmi/TestTzcntL.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/math/TestFpMinMaxIntrinsics.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/mathexact/AddExactILoadTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/mathexact/AddExactILoopDependentTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/mathexact/AddExactINonConstantTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/mathexact/AddExactIRepeatTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/mathexact/AddExactLNonConstantTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/mathexact/MulExactILoadTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/mathexact/MulExactILoopDependentTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/mathexact/MulExactINonConstantTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/mathexact/MulExactIRepeatTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/mathexact/MulExactLNonConstantTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/mathexact/NegExactILoadTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/mathexact/NegExactILoopDependentTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/mathexact/NegExactINonConstantTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/mathexact/NegExactLNonConstantTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/mathexact/SubExactILoadTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/mathexact/SubExactILoopDependentTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/mathexact/SubExactINonConstantTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/mathexact/SubExactIRepeatTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/mathexact/SubExactLNonConstantTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/unsafe/DirectByteBufferTest.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/intrinsics/unsafe/HeapByteBufferTest.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/jsr292/ConcurrentClassLoadingTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/jsr292/cr8026328/libTest8026328.c | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/jvmci/compilerToVM/AllocateCompileIdTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/jvmci/compilerToVM/HasCompiledCodeForOSRTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/loopopts/FillArrayWithUnsafe.java | 63 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/loopopts/LoopRotateBadNodeBudget.java | 81 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/loopopts/LoopUnrollBadNodeBudget.java | 76 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/loopopts/LoopUnswitchingBadNodeBudget.java | 168 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/loopopts/TestDeadPostLoopBecausePredicate.java | 79 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/loopopts/TestEliminateNullCheckWithSplitIf.java | 100 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/loopopts/TestIterationSplitWithRegionHead.java | 82 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/loopopts/TestPeelingNeverEnteredLoop.java | 62 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/loopopts/TestPredicateInputBelowLoopPredicate.java | 268 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/loopopts/TestRangeCheckPredicatesControl.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/loopopts/TestSkeletonPredicateNegation.java | 66 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/loopopts/TestUnswitchCloneSkeletonPredicates.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/loopstripmining/TestCastIIAfterUnrollingInOuterLoop.java | 76 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/stable/TestStableShort.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/types/correctness/OffTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/unsafe/UnsafeRaw.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/unsafe/UnsafeSmallOffsetBooleanAccessTest.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/vectorization/TestVectorsNotSavedAtSafepoint.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/compiler/whitebox/BlockingCompilation.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/containers/cgroup/CgroupSubsystemFactory.java | 357 openjdk-11-11.0.16+8/test/hotspot/jtreg/containers/cgroup/PlainRead.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/containers/docker/CheckOperatingSystemMXBean.java | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/containers/docker/TestCPUAwareness.java | 29 openjdk-11-11.0.16+8/test/hotspot/jtreg/containers/docker/TestCPUSets.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/containers/docker/TestJFREvents.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/containers/docker/TestMemoryAwareness.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/containers/docker/TestMisc.java | 12 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/CondCardMark/Basic.java | 20 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestAgeOutput.java | 27 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestAllocateHeapAt.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestAllocateHeapAtError.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestAllocateHeapAtMultiple.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestBigObj.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestCardTablePageCommits.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestDisableExplicitGC.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestFullGCALot.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestFullGCCount.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestGenerationPerfCounter.java | 40 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestHumongousReferenceObject.java | 30 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestMemoryInitialization.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestMemoryInitializationWithCMS.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestMemoryInitializationWithSerial.java | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestMemoryMXBeansAndPoolsPresence.java | 36 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestNUMAPageSize.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestNumWorkerOutput.java | 14 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestObjectAlignment.java | 28 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestPolicyNamePerfCounter.java | 40 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestSmallHeap.java | 33 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestSoftReferencesBehaviorOnOOME.java | 12 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestStackOverflow.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestSystemGC.java | 47 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestVerifyDuringStartup.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestVerifySilently.java | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/TestVerifySubSet.java | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/AllocationHelper.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/FlagsValue.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/GCTypes.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/HeapRegionUsageTool.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestAggressiveHeap.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestAlignmentToUseLargePages.java | 51 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestArrayAllocatorMallocLimit.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestCMSHeapSizeFlags.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestCompressedClassFlags.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestDisableDefaultGC.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestDynMaxHeapFreeRatio.java | 16 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestDynMinHeapFreeRatio.java | 16 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestG1ConcMarkStepDurationMillis.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestG1ConcRefinementThreads.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestG1HeapRegionSize.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestG1HeapSizeFlags.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestG1PercentageOptions.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestHeapFreeRatio.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestInitialTenuringThreshold.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestMaxHeapSizeTools.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestMaxMinHeapFreeRatioFlags.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestMaxNewSize.java | 44 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestMinAndInitialSurvivorRatioFlags.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestMinInitialErgonomics.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestNewRatioFlag.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestNewSizeFlags.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestNewSizeThreadIncrease.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestObjectTenuringFlags.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestParallelGCThreads.java | 31 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestParallelHeapSizeFlags.java | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestParallelRefProc.java | 39 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestSelectDefaultGC.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestSerialHeapSizeFlags.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestShrinkHeapInSteps.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestSmallInitialHeapWithLargePageAndNUMA.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestSurvivorAlignmentInBytesOption.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestSurvivorRatioFlag.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestTargetSurvivorRatioFlag.java | 11 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestUnrecognizedVMOptionsHandling.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestUseCompressedOopsErgo.java | 55 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestUseCompressedOopsErgoTools.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestUseNUMAInterleaving.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/arguments/TestVerifyBeforeAndAfterGCFlags.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/class_unloading/TestCMSClassUnloadingEnabledHWM.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/class_unloading/TestClassUnloadingDisabled.java | 56 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/class_unloading/TestG1ClassUnloadingHWM.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/cms/DisableResizePLAB.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/cms/GuardShrinkWarning.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/cms/TestBubbleUpRef.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/cms/TestCMSScavengeBeforeRemark.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/cms/TestCriticalPriority.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/cms/TestMBeanCMS.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/concurrent_phase_control/TestConcurrentPhaseControlCMS.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/concurrent_phase_control/TestConcurrentPhaseControlG1.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/concurrent_phase_control/TestConcurrentPhaseControlG1Basics.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/concurrent_phase_control/TestConcurrentPhaseControlParallel.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/concurrent_phase_control/TestConcurrentPhaseControlSerial.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/cslocker/TestCSLocker.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/cslocker/libTestCSLocker.c | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestAlignment.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestAlwaysPretouch.java | 14 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestArraycopyCheckcast.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestByteArrays.java | 28 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestClasses.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestDieDefault.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestDieWithHeapDump.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestDieWithOnError.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestElasticTLAB.java | 21 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestElasticTLABDecay.java | 18 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestEpsilonEnabled.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestHelloWorld.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestLogTrace.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestManyThreads.java | 18 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestMaxTLAB.java | 18 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestMemoryMXBeans.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestMemoryPools.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestObjects.java | 28 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestPrintHeapSteps.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestRefArrays.java | 27 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/epsilon/TestUpdateCountersSteps.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/ergonomics/TestDynamicNumberOfGCThreads.java | 31 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/ergonomics/TestInitialGCThreadLogging.java | 31 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/Test2GbHeap.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestConcurrentSystemGC.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegions.java | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegionsClearMarkBits.java | 14 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegionsLog.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegionsWithRefs.java | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestFromCardCacheIndex.java | 26 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestG1TraceEagerReclaimHumongousObjects.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestGCLogMessages.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestGreyReclaimedHumongousObjects.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestHumongousAllocInitialMark.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestHumongousAllocNearlyFullRegion.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestHumongousCodeCacheRoots.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestHumongousRemsetsMatch.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestHumongousShrinkHeap.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestInvalidateArrayCopy.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestJNIWeakG1/TestJNIWeakG1.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestJNIWeakG1/libTestJNIWeakG1.c | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestLargePageUseForAuxMemory.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestNoEagerReclaimOfHumongousRegions.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestPLABOutput.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestPLABSizeBounds.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestParallelAlwaysPreTouch.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestPrintRegionRememberedSetInfo.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestRegionAlignment.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestRegionLivenessPrint.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestRemsetLogging.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestRemsetLoggingPerRegion.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestRemsetLoggingThreads.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestRemsetLoggingTools.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestSharedArchiveWithPreTouch.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData.java | 13 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData00.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData05.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData10.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData15.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData20.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData25.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData30.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestShrinkDefragmentedHeap.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestShrinkToOneRegion.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestStringDeduplicationAgeThreshold.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestStringDeduplicationFullGC.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestStringDeduplicationInterned.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestStringDeduplicationPrintOptions.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestStringDeduplicationTableRehash.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestStringDeduplicationTableResize.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestStringDeduplicationTools.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestStringDeduplicationYoungGC.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/TestVerifyGCType.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/humongousObjects/TestHumongousMovement.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/humongousObjects/TestNoAllocationsInHRegions.java | 15 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/g1/mixedgc/TestOldGenCollectionUsage.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/logging/TestDeprecatedPrintFlags.java | 13 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/logging/TestGCId.java | 37 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/logging/TestPrintReferences.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/logging/TestUnifiedLoggingSwitchStress.java | 26 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/metaspace/CompressedClassSpaceSizeInJmapHeap.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/metaspace/G1AddMetaspaceDependency.java | 15 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/metaspace/InputArguments.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/metaspace/TestCapacityUntilGCWrapAround.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/metaspace/TestMetaspaceCMSCancel.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/metaspace/TestMetaspaceInitialization.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/metaspace/TestMetaspaceMemoryPool.java | 13 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/metaspace/TestMetaspacePerfCounters.java | 49 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/metaspace/TestMetaspaceSizeFlags.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/metaspace/TestPerfCountersAndMemoryPools.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/parallel/AdaptiveGCBoundary.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/parallel/TestDynShrinkHeap.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/parallel/TestPrintGCDetailsVerbose.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/serial/HeapChangeLogging.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/TestAllocHumongousFragment.java | 17 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/TestAllocIntArrays.java | 12 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/TestAllocObjectArrays.java | 13 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/TestAllocObjects.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/TestArrayCopyStress.java | 14 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/TestElasticTLAB.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/TestHeapUncommit.java | 15 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/TestHumongousThreshold.java | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/TestLargeObjectAlignment.java | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/TestSieveObjects.java | 17 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/TestStringDedup.java | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/TestStringDedupStress.java | 11 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/compiler/TestBarrierAboveProj.java | 71 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/compiler/TestC1VectorizedMismatch.java | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/jni/CriticalNative.java | 36 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/jni/CriticalNativeArgs.java | 15 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/jni/CriticalNativeStress.java | 33 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/jni/TestJNICritical.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/jni/TestPinnedGarbage.java | 13 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/jni/libCriticalNative.c | 12 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/shenandoah/options/TestHumongousMoves.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/startup_warnings/TestCMS.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/startup_warnings/TestG1.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/startup_warnings/TestParallelGC.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/startup_warnings/TestParallelScavengeSerialOld.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/startup_warnings/TestSerialGC.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/startup_warnings/TestShenandoah.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/TestJNIBlockFullGC/TestJNIBlockFullGC.java | 30 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/TestMultiThreadStressRSet.java | 23 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/TestReclaimStringsLeaksMemory.java | 14 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/TestStressG1Humongous.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/TestStressIHOPMultiThread.java | 14 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/TestStressRSetCoarsening.java | 16 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcbasher/ByteCursor.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcbasher/Bytecode.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcbasher/ClassInfo.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcbasher/ConstantPoolEntry.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcbasher/Decompiler.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcbasher/Dependency.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcbasher/MethodInfo.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasher.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithAllocateHeapAt.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithCMS.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithG1.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithParallel.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithSerial.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithShenandoah.java | 28 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithZ.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gclocker/TestGCLocker.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gclocker/TestGCLockerWithCMS.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gclocker/TestGCLockerWithG1.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gclocker/TestGCLockerWithParallel.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gclocker/TestGCLockerWithSerial.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gclocker/TestGCLockerWithShenandoah.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gclocker/libTestGCLocker.c | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcold/TestGCOld.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithCMS.java | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithG1.java | 13 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithParallel.java | 11 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithSerial.java | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithShenandoah.java | 48 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithZ.java | 11 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/jfr/TestStressAllocationGCEventsWithCMS.java | 39 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/jfr/TestStressAllocationGCEventsWithDefNew.java | 40 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/jfr/TestStressAllocationGCEventsWithG1.java | 40 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/jfr/TestStressAllocationGCEventsWithParNew.java | 39 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/jfr/TestStressAllocationGCEventsWithParallel.java | 40 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/jfr/TestStressBigAllocationGCEventsWithCMS.java | 39 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/jfr/TestStressBigAllocationGCEventsWithDefNew.java | 40 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/jfr/TestStressBigAllocationGCEventsWithG1.java | 46 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/jfr/TestStressBigAllocationGCEventsWithParNew.java | 39 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/jfr/TestStressBigAllocationGCEventsWithParallel.java | 40 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/systemgc/TestSystemGC.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/systemgc/TestSystemGCWithCMS.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/systemgc/TestSystemGCWithG1.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/systemgc/TestSystemGCWithParallel.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/systemgc/TestSystemGCWithSerial.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/stress/systemgc/TestSystemGCWithShenandoah.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/survivorAlignment/AlignmentHelper.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/survivorAlignment/SurvivorAlignmentTestMain.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/survivorAlignment/TestAllocationInEden.java | 17 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/survivorAlignment/TestPromotionFromEdenToTenured.java | 17 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/survivorAlignment/TestPromotionFromSurvivorToTenuredAfterFullGC.java | 17 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/survivorAlignment/TestPromotionFromSurvivorToTenuredAfterMinorGC.java | 16 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/survivorAlignment/TestPromotionLABLargeSurvivorAlignment.java | 16 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/survivorAlignment/TestPromotionToSurvivor.java | 16 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/whitebox/TestConcMarkCycleWB.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gc/whitebox/TestWBGC.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/gtest/GTestWrapper.java | 14 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/8176717/TestInheritFD.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/BootstrapMethod/BSMCalledTwice.java | 12 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/CompressedOops/CompressedClassPointers.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/Metaspace/FragmentMetaspace.java | 11 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/NMT/HugeArenaTracking.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/NMT/MallocStressTest.java | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/NMT/MallocTrackingVerify.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/ReservedStack/ReservedStackTest.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/ReservedStack/ReservedStackTestCompiler.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/SharedArchiveFile/SpaceUtilizationCheck.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c | 30 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/Thread/ThreadPriorities.java | 23 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/appcds/MoveJDKTest.java | 12 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/appcds/SharedArchiveConsistency.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/appcds/cacheObject/GCStressApp.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/appcds/cacheObject/GCStressTest.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/AddModules.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/AddOpens.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/AddReads.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/ExportModule.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/MainModuleOnly.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/ModulePathAndCP.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/exceptionMsgs/ArrayIndexOutOfBoundsException/libArrayIndexOutOfBoundsExceptionTest.c | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/execstack/TestCheckJDK.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/jni/codegenAttachThread/TestCodegenAttach.java | 42 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/jni/codegenAttachThread/libcodegenAttach.c | 124 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/jni/terminatedThread/TestTerminatedThread.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/logging/RedefineClasses.java | 60 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/logging/ThreadLoggingTest.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/modules/LoadUnloadModuleStress.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/signal/SigTestDriver.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/signal/exesigtest.c | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/testlibrary/GeneratedClassLoader.java | 16 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/verifier/PutfieldProtectedTest.java | 45 openjdk-11-11.0.16+8/test/hotspot/jtreg/runtime/verifier/putfieldProtected.jasm | 56 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/jvmti/FieldAccessWatch/libFieldAccessWatch.c | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/logging/TestFullNames.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/ClhsdbAttach.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/ClhsdbField.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/ClhsdbFindPC.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/ClhsdbFlags.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/ClhsdbInspect.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/ClhsdbJdis.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/ClhsdbJhisto.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/ClhsdbJstack.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/ClhsdbLauncher.java | 36 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/ClhsdbLongConstant.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/ClhsdbPmap.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/ClhsdbPrintAll.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/ClhsdbPrintAs.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/ClhsdbPrintStatics.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/ClhsdbPstack.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/ClhsdbScanOops.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/ClhsdbSource.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/ClhsdbThread.java | 13 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/ClhsdbVmStructsDump.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/ClhsdbWhere.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/DeadlockDetectionTest.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/LingeredAppWithNativeMethod.java | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/sa/TestJhsdbJstackMixed.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/serviceability/threads/TestFalseDeadLock.java | 12 openjdk-11-11.0.16+8/test/hotspot/jtreg/testlibrary_tests/RandomGeneratorTest.java | 5 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/ExecDriver.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/TEST.properties | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/README | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/libdefine.cpp | 14 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_anonclassloader_inMemoryCompilation_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_anonclassloader_inMemoryCompilation_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_anonclassloader_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_anonclassloader_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level1_inMemoryCompilation_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level1_inMemoryCompilation_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level1_inMemoryCompilation_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level1_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level1_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level1_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level2_inMemoryCompilation_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level2_inMemoryCompilation_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level2_inMemoryCompilation_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level2_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level2_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level2_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level3_inMemoryCompilation_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level3_inMemoryCompilation_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level3_inMemoryCompilation_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level3_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level3_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level3_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level4_inMemoryCompilation_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level4_inMemoryCompilation_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level4_inMemoryCompilation_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level4_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level4_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level4_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_humongous_class_inMemoryCompilation_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_humongous_class_inMemoryCompilation_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_humongous_class_inMemoryCompilation_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_humongous_class_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_humongous_class_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_humongous_class_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_jni_classloading_inMemoryCompilation_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_jni_classloading_inMemoryCompilation_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_jni_classloading_inMemoryCompilation_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_jni_classloading_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_jni_classloading_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_jni_classloading_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_global_ref_inMemoryCompilation_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_global_ref_inMemoryCompilation_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_global_ref_inMemoryCompilation_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_global_ref_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_global_ref_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_global_ref_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_local_ref_inMemoryCompilation_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_local_ref_inMemoryCompilation_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_local_ref_inMemoryCompilation_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_local_ref_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_local_ref_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_local_ref_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_rootClass_inMemoryCompilation_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_rootClass_inMemoryCompilation_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_rootClass_inMemoryCompilation_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_rootClass_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_rootClass_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_rootClass_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_stackLocal_inMemoryCompilation_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_stackLocal_inMemoryCompilation_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_stackLocal_inMemoryCompilation_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_stackLocal_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_stackLocal_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_stackLocal_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_staticField_inMemoryCompilation_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_staticField_inMemoryCompilation_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_staticField_inMemoryCompilation_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_staticField_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_staticField_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_staticField_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_strongRef_inMemoryCompilation_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_strongRef_inMemoryCompilation_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_strongRef_inMemoryCompilation_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_strongRef_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_strongRef_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_strongRef_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_threadItself_inMemoryCompilation_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_threadItself_inMemoryCompilation_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_threadItself_inMemoryCompilation_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_threadItself_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_threadItself_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_threadItself_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_phantom_ref_inMemoryCompilation_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_phantom_ref_inMemoryCompilation_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_phantom_ref_inMemoryCompilation_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_phantom_ref_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_phantom_ref_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_phantom_ref_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_prot_domains_inMemoryCompilation_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_prot_domains_inMemoryCompilation_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_prot_domains_inMemoryCompilation_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_prot_domains_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_prot_domains_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_prot_domains_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_redefinition_inMemoryCompilation_keep_cl/TestDescription.java | 11 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_redefinition_inMemoryCompilation_keep_class/TestDescription.java | 11 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_redefinition_inMemoryCompilation_keep_obj/TestDescription.java | 11 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_redefinition_keep_cl/TestDescription.java | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_redefinition_keep_class/TestDescription.java | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_redefinition_keep_obj/TestDescription.java | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_reflection_classloading_inMemoryCompilation_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_reflection_classloading_inMemoryCompilation_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_reflection_classloading_inMemoryCompilation_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_reflection_classloading_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_reflection_classloading_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_reflection_classloading_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_weak_ref_inMemoryCompilation_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_weak_ref_inMemoryCompilation_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_weak_ref_inMemoryCompilation_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_weak_ref_keep_cl/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_weak_ref_keep_class/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_weak_ref_keep_obj/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/huge/quicklook/largeheap/MemOptions/MemOptions.sh | 173 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/huge/quicklook/largeheap/MemOptions/MemOptionsTest.java | 128 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/huge/quicklook/largeheap/MemOptions/MemStat.java | 37 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/huge/quicklook/largeheap/MemOptions/TEST.properties | 23 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/gc/huge/quicklook/largeheap/MemOptions/TestDescription.java | 39 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/Arrays/ArrayBounds/ArrayBounds.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/Arrays/ArrayStoreCheck/ArrayStoreCheck.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/Arrays/ArrayTests/ArrayTests.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/CEETest/CEETest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/CondExpr/CondExpr.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/DivTest/DivTest.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/ExcOpt/ExcOpt.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/FloatingPoint/FPCompare/TestFPBinop/TestFPBinop.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/FloatingPoint/gen_math/Filtering/Filtering.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/FloatingPoint/gen_math/Loops01/Loops01.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/FloatingPoint/gen_math/Loops02/Loops02.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/FloatingPoint/gen_math/Loops03/Loops03.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/FloatingPoint/gen_math/Loops04/Loops04.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/FloatingPoint/gen_math/Loops05/Loops05.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/FloatingPoint/gen_math/Loops06/Loops06.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/FloatingPoint/gen_math/Loops07/Loops07.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/FloatingPoint/gen_math/Matrix_3d/Matrix_3d.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/FloatingPoint/gen_math/ShortCircuitTest/ShortCircuitTest.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/FloatingPoint/gen_math/Summ/Summ.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/PrintProperties/PrintProperties.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/PrintThis/PrintThis.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/Robert/Robert.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/Sleeper/Sleeper.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/bounds/bounds.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/collapse/collapse.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/deoptimization/test01/test01.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/deoptimization/test02/test02.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/deoptimization/test03/test03.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/deoptimization/test04/test04.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/deoptimization/test05/test05.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/deoptimization/test06/test06.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/deoptimization/test07/test07.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/deoptimization/test08/test08.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/escape/AdaptiveBlocking/AdaptiveBlocking001/AdaptiveBlocking001.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/escape/LockElision/MatMul/MatMul.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/exception/exception.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/init/init01/init01.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/init/init02/init02.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/inline/inline003/inline003.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/inline/inline004/inline004.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/inline/inline005/inline005.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/inline/inline007/inline007.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/misctests/JitBug1/JitBug1.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/misctests/Pi/Pi.java | 6 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/misctests/clss14702/clss14702.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/misctests/fpustack/GraphApplet.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/misctests/putfield00802/putfield00802.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/misctests/t5/t5.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/overflow/overflow.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/regression/CrashC1/CrashC1.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/regression/b4427606/b4427606.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/regression/b4446672/b4446672.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/series/series.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t001/t001.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t002/t002.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t003/t003.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t004/t004.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t005/t005.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t006/t006.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t007/t007.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t008/t008.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t009/t009.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t011/t011.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t012/t012.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t013/t013.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t014/t014.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t015/t015.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t016/t016.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t017/t017.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t018/t018.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t019/t019.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t020/t020.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t021/t021.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t022/t022.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t023/t023.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t024/t024.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t025/t025.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t026/t026.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t027/t027.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t028/t028.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t029/t029.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t030/t030.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t031/t031.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t032/t032.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t033/t033.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t034/t034.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t035/t035.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t036/t036.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t037/t037.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t038/t038.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t039/t039.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t040/t040.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t041/t041.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t042/t042.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t043/t043.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t044/t044.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t045/t045.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t046/t046.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t047/t047.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t048/t048.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t049/t049.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t050/t050.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t051/t051.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t052/t052.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t053/t053.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t054/t054.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t055/t055.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t056/t056.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t057/t057.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t058/t058.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t059/t059.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t060/t060.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t061/t061.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t062/t062.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t063/t063.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t064/t064.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t065/t065.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t066/t066.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t067/t067.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t068/t068.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t069/t069.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t070/t070.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t071/t071.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t072/t072.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t073/t073.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t074/t074.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t075/t075.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t076/t076.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t077/t077.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t078/t078.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t079/t079.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t080/t080.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t081/t081.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t086/t086.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t087/t087.java | 54 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t088/t088.java | 58 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t091/t091.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t093/t093.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t094/t094.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t095/t095.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t096/t096.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t098/t098.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t099/t099.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t100/t100.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t101/t101.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t102/t102.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t103/t103.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t104/t104.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t105/t105.java | 13 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t106/t106.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t107/t107.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t108/TestDescription.java | 39 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t108/t108.gold | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t108/t108.java | 36 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t109/TestDescription.java | 39 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t109/t109.gold | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t109/t109.java | 42 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t110/TestDescription.java | 39 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t110/t110.gold | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t110/t110.java | 44 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t111/TestDescription.java | 39 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t111/t111.gold | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t111/t111.java | 42 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t112/TestDescription.java | 39 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t112/t112.gold | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t112/t112.java | 42 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t113/TestDescription.java | 39 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t113/t113.gold | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/t/t113/t113.java | 62 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/tiered/Test.java | 76 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/tiered/TestDescription.java | 42 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/tiered/tieredTest.sh | 70 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/verifier/VerifyInitLocal/VerifyInitLocal.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/verifier/VerifyMergeStack/VerifyMergeStack.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/wide/wide01/wide01.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/jit/wide/wide02/wide02.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/gc/HighWaterMarkTest.java | 9 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/gc/watermark_0_1/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/gc/watermark_10_20/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/gc/watermark_70_80/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/gc/watermark_99_100/TestDescription.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/common/PerformChecksHelper.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/common/StressHierarchyBaseClass.java | 11 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy001/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy002/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy003/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy004/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy005/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy006/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy007/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy008/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy009/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy010/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy011/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy012/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy012/TestDescription.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy013/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy014/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy015/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/aod/TEST.properties | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/jdb/TEST.properties | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/jdi/TEST.properties | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/jdwp/TEST.properties | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResourceExhausted/resexhausted003/TestDescription.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RetransformClasses/retransform003/TestDriver.java | 12 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix002/TestDriver.java | 12 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/jvmti/StopThread/stopthrd007.java | 8 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/jvmti/TEST.properties | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref001/followref001.cpp | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref002/followref002.cpp | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref003/followref003.cpp | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/share/GoldChecker.java | 47 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/share/classload/GeneratingClassLoader.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/share/jdi/ArgumentHandler.java | 18 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/ArgumentHandler.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/jvmti_FollowRefObjects.cpp | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/share/test/timeoutwatchdog/TimeoutHandler.java | 36 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/share/test/timeoutwatchdog/TimeoutWatchdog.java | 73 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/except/except012.java | 4 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/jni/gclocker/gcl001.java | 34 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/jni/gclocker/libgcl001.cpp | 127 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/jni/jnistress002.java | 7 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/numeric/numeric001.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/numeric/numeric002.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/numeric/numeric003.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/numeric/numeric004.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/numeric/numeric005.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/numeric/numeric006.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/numeric/numeric007.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/numeric/numeric008.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/numeric/numeric009.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/numeric/numeric010.java | 10 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack001.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack002.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack003.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack004.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack005.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack006.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack007.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack008.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack009.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack010.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack011.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack012.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack013.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack014.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack015.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack016.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack017.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack018.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack019.java | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/TEST.properties | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree001/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree002/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree003/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree004/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree005/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree006/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree007/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree008/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree009/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree010/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree011/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree012/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/chain/chain001/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/chain/chain002/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/chain/chain003/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/chain/chain004/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/chain/chain005/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/chain/chain006/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/chain/chain007/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/chain/chain008/TEST.properties | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/CodeCacheInfo/Test.java | 75 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/CodeCacheInfo/TestDescription.java | 40 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/CodeCacheInfo/run.sh | 60 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/CodeCacheInfoOnCompilation/Test.java | 59 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/CodeCacheInfoOnCompilation/TestDescription.java | 44 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/CodeCacheInfoOnCompilation/run.sh | 50 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/complog/uninit/TEST.properties | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/complog/uninit/uninit001/uninit001.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/complog/uninit/uninit002/uninit002.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/complog/uninit/uninit003/uninit003.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/complog/uninit/uninit004/uninit004.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/complog/uninit/uninit005/uninit005.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/complog/uninit/uninit006/uninit006.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/complog/uninit/uninit007/uninit007.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/complog/uninit/uninit008/uninit008.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/complog/uninit/uninit009/uninit009.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/complog/uninit/uninit010/uninit010.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/complog/uninit/uninit011/uninit011.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/complog/uninit/uninit012/uninit012.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/complog/uninit/uninit013/uninit013.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/coverage/parentheses/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/constprop/constprop01/constprop01.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/constprop/constprop02/constprop02.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/dead/dead01/dead01.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/dead/dead02/dead02.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/dead/dead03/dead03.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/dead/dead04/dead04.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/dead/dead05/dead05.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/dead/dead06/dead06.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/dead/dead07/dead07.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/dead/dead08/dead08.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/dead/dead09/dead09.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/dead/dead10/dead10.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/dead/dead11/dead11.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/dead/dead12/dead12.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/dead/dead13/dead13.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/dead/dead14/dead14.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/dead/dead15/dead15.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/dead/dead16/dead16.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/hoist/hoist01/hoist01.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/hoist/hoist02/hoist02.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/hoist/hoist03/hoist03.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/hoist/hoist04/hoist04.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/subcommon/subcommon01/subcommon01.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/subcommon/subcommon02/subcommon02.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/subcommon/subcommon03/subcommon03.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/subcommon/subcommon04/subcommon04.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/jbe/subcommon/subcommon05/subcommon05.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/optimizations/stringconcat/explicit/Explicit01/cs_disabled/TestDescription.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/optimizations/stringconcat/explicit/Explicit01/cs_enabled/TestDescription.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/optimizations/stringconcat/explicit/Merge01/cs_disabled/TestDescription.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/optimizations/stringconcat/explicit/Merge01/cs_enabled/TestDescription.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Implicit01/cs_disabled/TestDescription.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Implicit01/cs_enabled/TestDescription.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Merge01/cs_disabled/TestDescription.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Merge01/cs_enabled/TestDescription.java | 3 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/gc/kind/parOld/TestDescription.java | 41 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/gc/kind/parOld/test.sh | 45 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc1/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc10/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc11/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc12/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc13/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc14/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc15/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc16/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc17/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc18/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc19/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc2/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc20/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc21/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc22/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc23/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc24/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc25/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc26/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc27/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc28/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc29/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc3/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc30/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc31/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc32/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc33/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc34/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc35/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc36/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc37/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc38/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc39/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc4/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc40/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc41/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc42/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc43/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc44/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc45/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc46/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc47/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc48/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc49/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc5/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc50/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc51/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc52/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc6/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc7/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc8/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/nativeFnc9/TestDescription.java | 1 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/mlvm/TEST.properties | 2 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/share/gc/TriggerUnloadingByFillingHeap.java | 69 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/share/gc/TriggerUnloadingByFillingMetaspace.java | 70 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/share/vmstresser/CompileAndDeoptimize.java | 79 openjdk-11-11.0.16+8/test/hotspot/jtreg/vmTestbase/vm/share/vmstresser/MetaspaceStresser.java | 260 openjdk-11-11.0.16+8/test/jaxp/javax/xml/jaxp/unittest/xpath/XPathExceptionTest.java | 82 openjdk-11-11.0.16+8/test/jaxp/javax/xml/jaxp/unittest/xpath/XPathExpTest.java | 121 openjdk-11-11.0.16+8/test/jdk/ProblemList.txt | 22 openjdk-11-11.0.16+8/test/jdk/TEST.ROOT | 7 openjdk-11-11.0.16+8/test/jdk/TEST.groups | 11 openjdk-11-11.0.16+8/test/jdk/build/AbsPathsInImage.java | 11 openjdk-11-11.0.16+8/test/jdk/com/oracle/security/ucrypto/TestAES.java | 8 openjdk-11-11.0.16+8/test/jdk/com/sun/crypto/provider/Cipher/ChaCha20/ChaCha20Poly1305ParamTest.java | 118 openjdk-11-11.0.16+8/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGens.java | 8 openjdk-11-11.0.16+8/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGensLongKey.java | 32 openjdk-11-11.0.16+8/test/jdk/com/sun/jdi/BadAgentPath.java | 10 openjdk-11-11.0.16+8/test/jdk/com/sun/jdi/BadHandshakeTest.java | 207 openjdk-11-11.0.16+8/test/jdk/com/sun/jdi/BasicJDWPConnectionTest.java | 1 openjdk-11-11.0.16+8/test/jdk/com/sun/jdi/DoubleAgentTest.java | 11 openjdk-11-11.0.16+8/test/jdk/com/sun/jdi/ExclusiveBind.java | 122 openjdk-11-11.0.16+8/test/jdk/com/sun/jdi/NoLaunchOptionTest.java | 7 openjdk-11-11.0.16+8/test/jdk/com/sun/jdi/PrivateTransportTest.java | 17 openjdk-11-11.0.16+8/test/jdk/com/sun/jdi/ProcessAttachTest.java | 5 openjdk-11-11.0.16+8/test/jdk/com/sun/jdi/RedefineCrossEvent.java | 5 openjdk-11-11.0.16+8/test/jdk/com/sun/jdi/RunToExit.java | 8 openjdk-11-11.0.16+8/test/jdk/com/sun/jdi/SuspendNoFlagTest.java | 9 openjdk-11-11.0.16+8/test/jdk/com/sun/jdi/TestScaffold.java | 7 openjdk-11-11.0.16+8/test/jdk/com/sun/jdi/cds/CDSBreakpointTest.java | 5 openjdk-11-11.0.16+8/test/jdk/com/sun/jdi/cds/CDSDeleteAllBkptsTest.java | 5 openjdk-11-11.0.16+8/test/jdk/com/sun/jdi/cds/CDSFieldWatchpoints.java | 5 openjdk-11-11.0.16+8/test/jdk/com/sun/jdi/cds/CDSJDITest.java | 6 openjdk-11-11.0.16+8/test/jdk/com/sun/jdi/lib/jdb/Debuggee.java | 191 openjdk-11-11.0.16+8/test/jdk/com/sun/jdi/lib/jdb/JdbTest.java | 57 openjdk-11-11.0.16+8/test/jdk/com/sun/jndi/ldap/LdapCBPropertiesTest.java | 6 openjdk-11-11.0.16+8/test/jdk/com/sun/jndi/ldap/LdapPoolTimeoutTest.java | 140 openjdk-11-11.0.16+8/test/jdk/com/sun/management/HotSpotDiagnosticMXBean/CheckOrigin.java | 5 openjdk-11-11.0.16+8/test/jdk/com/sun/management/HotSpotDiagnosticMXBean/DumpHeap.java | 4 openjdk-11-11.0.16+8/test/jdk/com/sun/management/OperatingSystemMXBean/TestTotalSwap.java | 73 openjdk-11-11.0.16+8/test/jdk/com/sun/org/apache/xml/internal/security/ShortECDSA.java | 20 openjdk-11-11.0.16+8/test/jdk/com/sun/org/apache/xml/internal/security/SignatureKeyInfo.java | 216 openjdk-11-11.0.16+8/test/jdk/com/sun/org/apache/xml/internal/security/TruncateHMAC.java | 19 openjdk-11-11.0.16+8/test/jdk/com/sun/org/apache/xml/internal/security/signature-enveloping-hmac-sha1-keyinfo.xml | 25 openjdk-11-11.0.16+8/test/jdk/com/sun/tools/attach/BasicTests.java | 9 openjdk-11-11.0.16+8/test/jdk/com/sun/tools/attach/PermissionTest.java | 9 openjdk-11-11.0.16+8/test/jdk/com/sun/tools/attach/ProviderTest.java | 8 openjdk-11-11.0.16+8/test/jdk/com/sun/tools/attach/RunnerUtil.java | 8 openjdk-11-11.0.16+8/test/jdk/com/sun/tools/attach/StartManagementAgent.java | 10 openjdk-11-11.0.16+8/test/jdk/com/sun/tools/attach/TempDirTest.java | 9 openjdk-11-11.0.16+8/test/jdk/java/awt/Choice/ItemStateChangeTest/ItemStateChangeTest.java | 10 openjdk-11-11.0.16+8/test/jdk/java/awt/Choice/PopupPosTest/PopupPosTest.java | 2 openjdk-11-11.0.16+8/test/jdk/java/awt/Choice/ResizeAutoClosesChoice/ResizeAutoClosesChoice.java | 10 openjdk-11-11.0.16+8/test/jdk/java/awt/Cursor/MultiResolutionCursorTest/MultiResolutionCursorTest.java | 11 openjdk-11-11.0.16+8/test/jdk/java/awt/Desktop/8064934/bug8064934.java | 11 openjdk-11-11.0.16+8/test/jdk/java/awt/FileDialog/8003399/bug8003399.java | 11 openjdk-11-11.0.16+8/test/jdk/java/awt/FileDialog/8017487/bug8017487.java | 13 openjdk-11-11.0.16+8/test/jdk/java/awt/FileDialog/FileDialogForDirectories/FileDialogForDirectories.html | 6 openjdk-11-11.0.16+8/test/jdk/java/awt/FileDialog/FileDialogForDirectories/FileDialogForDirectories.java | 6 openjdk-11-11.0.16+8/test/jdk/java/awt/FileDialog/FileDialogForPackages/FileDialogForPackages.html | 6 openjdk-11-11.0.16+8/test/jdk/java/awt/FileDialog/FileDialogForPackages/FileDialogForPackages.java | 6 openjdk-11-11.0.16+8/test/jdk/java/awt/Focus/MouseClickRequestFocusRaceTest/MouseClickRequestFocusRaceTest.java | 10 openjdk-11-11.0.16+8/test/jdk/java/awt/FontClass/DrawStringWithInfiniteXform.java | 10 openjdk-11-11.0.16+8/test/jdk/java/awt/Frame/MaximizedByPlatform/MaximizedByPlatform.java | 10 openjdk-11-11.0.16+8/test/jdk/java/awt/Frame/RestoreToOppositeScreen/RestoreToOppositeScreen.java | 91 openjdk-11-11.0.16+8/test/jdk/java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeNextMnemonicKeyTypedTest.java | 16 openjdk-11-11.0.16+8/test/jdk/java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.java | 7 openjdk-11-11.0.16+8/test/jdk/java/awt/List/FirstItemRemoveTest/FirstItemRemoveTest.java | 10 openjdk-11-11.0.16+8/test/jdk/java/awt/List/KeyEventsTest/KeyEventsTest.java | 12 openjdk-11-11.0.16+8/test/jdk/java/awt/Menu/OpensWithNoGrab/OpensWithNoGrab.java | 9 openjdk-11-11.0.16+8/test/jdk/java/awt/MenuBar/8007006/bug8007006.java | 101 openjdk-11-11.0.16+8/test/jdk/java/awt/MenuBar/MenuBarSetFont/MenuBarSetFont.java | 10 openjdk-11-11.0.16+8/test/jdk/java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Extra.java | 14 openjdk-11-11.0.16+8/test/jdk/java/awt/Multiscreen/MultiScreenInsetsTest/MultiScreenInsetsTest.java | 12 openjdk-11-11.0.16+8/test/jdk/java/awt/Robot/RobotWheelTest/RobotWheelTest.java | 11 openjdk-11-11.0.16+8/test/jdk/java/awt/TextArea/ScrollbarIntersectionTest/ScrollbarIntersectionTest.java | 10 openjdk-11-11.0.16+8/test/jdk/java/awt/Toolkit/ToolkitPropertyTest/bug7129133.java | 10 openjdk-11-11.0.16+8/test/jdk/java/awt/TrayIcon/8072769/bug8072769.java | 10 openjdk-11-11.0.16+8/test/jdk/java/awt/TrayIcon/DblClickActionEventTest/DblClickActionEventTest.html | 6 openjdk-11-11.0.16+8/test/jdk/java/awt/TrayIcon/DblClickActionEventTest/DblClickActionEventTest.java | 6 openjdk-11-11.0.16+8/test/jdk/java/awt/TrayIcon/DisposeInActionEventTest/DisposeInActionEventTest.html | 6 openjdk-11-11.0.16+8/test/jdk/java/awt/TrayIcon/DisposeInActionEventTest/DisposeInActionEventTest.java | 6 openjdk-11-11.0.16+8/test/jdk/java/awt/Window/WindowResizingOnDPIChanging/WindowResizingOnMovingToAnotherDisplay.java | 2 openjdk-11-11.0.16+8/test/jdk/java/awt/color/CheckDefaultProperties.java | 85 openjdk-11-11.0.16+8/test/jdk/java/awt/color/ICC_Profile/GetInstanceBrokenStream.java | 54 openjdk-11-11.0.16+8/test/jdk/java/awt/color/ICC_ProfileRGB/MTMatrixAccess.java | 72 openjdk-11-11.0.16+8/test/jdk/java/awt/color/ProfileActivationDuringPropertyAccess.java | 79 openjdk-11-11.0.16+8/test/jdk/java/awt/datatransfer/ClipboardInterVMTest/ClipboardInterVMTest.java | 6 openjdk-11-11.0.16+8/test/jdk/java/awt/datatransfer/HTMLDataFlavors/HTMLDataFlavorTest.java | 10 openjdk-11-11.0.16+8/test/jdk/java/awt/datatransfer/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.java | 11 openjdk-11-11.0.16+8/test/jdk/java/awt/dnd/ImageTransferTest/ImageTransferTest.java | 9 openjdk-11-11.0.16+8/test/jdk/java/awt/event/KeyEvent/8020209/bug8020209.java | 10 openjdk-11-11.0.16+8/test/jdk/java/awt/event/KeyEvent/DeadKey/DeadKeyMacOSXInputText.java | 10 openjdk-11-11.0.16+8/test/jdk/java/awt/event/KeyEvent/DeadKey/deadKeyMacOSX.java | 10 openjdk-11-11.0.16+8/test/jdk/java/awt/event/KeyEvent/SwallowKeyEvents/SwallowKeyEvents.java | 10 openjdk-11-11.0.16+8/test/jdk/java/awt/font/GlyphVector/MultiSlotFontTest.java | 136 openjdk-11-11.0.16+8/test/jdk/java/awt/image/DrawImage/ByteIndexedDitherTest.java | 83 openjdk-11-11.0.16+8/test/jdk/java/awt/image/MultiResolutionImage/NSImageToMultiResolutionImageTest.java | 11 openjdk-11-11.0.16+8/test/jdk/java/awt/image/multiresolution/MultiDisplayTest/MultiDisplayTest.java | 12 openjdk-11-11.0.16+8/test/jdk/java/beans/Introspector/FlushClassInfoCache.java | 97 openjdk-11-11.0.16+8/test/jdk/java/io/BufferedInputStream/LargeCopyWithMark.java | 7 openjdk-11-11.0.16+8/test/jdk/java/io/ClassCache/ContinuousGCTest.java | 50 openjdk-11-11.0.16+8/test/jdk/java/io/ClassCache/NullValueTest.java | 42 openjdk-11-11.0.16+8/test/jdk/java/io/ClassCache/java.base/java/io/NameClassCache.java | 35 openjdk-11-11.0.16+8/test/jdk/java/io/ClassCache/java.base/java/io/NullClassCache.java | 34 openjdk-11-11.0.16+8/test/jdk/java/io/File/LastModifiedTest.java | 60 openjdk-11-11.0.16+8/test/jdk/java/io/FileOutputStream/OpenNUL.java | 54 openjdk-11-11.0.16+8/test/jdk/java/io/ObjectStreamClass/ObjectStreamClassCaching.java | 83 openjdk-11-11.0.16+8/test/jdk/java/io/ObjectStreamClass/TestOSCClassLoaderLeak.java | 108 openjdk-11-11.0.16+8/test/jdk/java/lang/Class/forName/modules/TestDriver.java | 8 openjdk-11-11.0.16+8/test/jdk/java/lang/Class/getResource/ResourcesTest.java | 8 openjdk-11-11.0.16+8/test/jdk/java/lang/ClassLoader/EndorsedDirs.java | 6 openjdk-11-11.0.16+8/test/jdk/java/lang/ClassLoader/ExtDirs.java | 6 openjdk-11-11.0.16+8/test/jdk/java/lang/ClassLoader/GetDotResource.java | 7 openjdk-11-11.0.16+8/test/jdk/java/lang/ClassLoader/GetSystemPackage.java | 8 openjdk-11-11.0.16+8/test/jdk/java/lang/ClassLoader/getResource/GetResource.java | 10 openjdk-11-11.0.16+8/test/jdk/java/lang/ClassLoader/getResource/automaticmodules/Driver.java | 8 openjdk-11-11.0.16+8/test/jdk/java/lang/ClassLoader/getResource/modules/ResourcesTest.java | 8 openjdk-11-11.0.16+8/test/jdk/java/lang/ClassLoader/nativeLibrary/NativeLibraryTest.java | 3 openjdk-11-11.0.16+8/test/jdk/java/lang/ClassLoader/securityManager/ClassLoaderTest.java | 5 openjdk-11-11.0.16+8/test/jdk/java/lang/ModuleTests/access/AccessTest.java | 8 openjdk-11-11.0.16+8/test/jdk/java/lang/Package/GetPackages.java | 8 openjdk-11-11.0.16+8/test/jdk/java/lang/ProcessBuilder/ArgCheck.java | 321 openjdk-11-11.0.16+8/test/jdk/java/lang/ProcessBuilder/Basic.java | 63 openjdk-11-11.0.16+8/test/jdk/java/lang/ProcessBuilder/RedirectWithLongFilename.java | 6 openjdk-11-11.0.16+8/test/jdk/java/lang/ProcessHandle/InfoTest.java | 9 openjdk-11-11.0.16+8/test/jdk/java/lang/Runtime/shutdown/ShutdownInterruptedMain.java | 11 openjdk-11-11.0.16+8/test/jdk/java/lang/RuntimeTests/loadLibrary/exeLibraryCache/LibraryFromCache.java | 64 openjdk-11-11.0.16+8/test/jdk/java/lang/RuntimeTests/loadLibrary/exeLibraryCache/exeLibraryCache.c | 49 openjdk-11-11.0.16+8/test/jdk/java/lang/StackWalker/Basic.java | 7 openjdk-11-11.0.16+8/test/jdk/java/lang/StackWalker/CallerFromMain.java | 9 openjdk-11-11.0.16+8/test/jdk/java/lang/System/LoggerFinder/modules/Base.java | 6 openjdk-11-11.0.16+8/test/jdk/java/lang/System/LoggerFinder/modules/JDKLoggerForImageTest.java | 19 openjdk-11-11.0.16+8/test/jdk/java/lang/System/LoggerFinder/modules/JDKLoggerForJDKTest.java | 19 openjdk-11-11.0.16+8/test/jdk/java/lang/System/LoggerFinder/modules/LoggerInImageTest.java | 19 openjdk-11-11.0.16+8/test/jdk/java/lang/System/LoggerFinder/modules/NamedLoggerForImageTest.java | 17 openjdk-11-11.0.16+8/test/jdk/java/lang/System/LoggerFinder/modules/NamedLoggerForJDKTest.java | 17 openjdk-11-11.0.16+8/test/jdk/java/lang/System/LoggerFinder/modules/UnnamedLoggerForImageTest.java | 17 openjdk-11-11.0.16+8/test/jdk/java/lang/System/LoggerFinder/modules/UnnamedLoggerForJDKTest.java | 17 openjdk-11-11.0.16+8/test/jdk/java/lang/System/OsVersionTest.java | 7 openjdk-11-11.0.16+8/test/jdk/java/lang/Thread/ThreadStateController.java | 2 openjdk-11-11.0.16+8/test/jdk/java/lang/instrument/DaemonThread/TestDaemonThread.java | 6 openjdk-11-11.0.16+8/test/jdk/java/lang/instrument/DaemonThread/TestDaemonThreadLauncher.java | 6 openjdk-11-11.0.16+8/test/jdk/java/lang/instrument/PremainClass/NoPremainAgentTest.java | 12 openjdk-11-11.0.16+8/test/jdk/java/lang/instrument/PremainClass/PremainClassTest.java | 12 openjdk-11-11.0.16+8/test/jdk/java/lang/instrument/PremainClass/ZeroArgPremainAgentTest.java | 12 openjdk-11-11.0.16+8/test/jdk/java/lang/instrument/executableJAR/ExecJarWithAgent.java | 9 openjdk-11-11.0.16+8/test/jdk/java/lang/instrument/modules/AppendToClassPathModuleTest.java | 25 openjdk-11-11.0.16+8/test/jdk/java/lang/invoke/LFCaching/LambdaFormTestCase.java | 2 openjdk-11-11.0.16+8/test/jdk/java/lang/invoke/MethodHandles/CatchExceptionTest.java | 2 openjdk-11-11.0.16+8/test/jdk/java/lang/invoke/MethodHandlesAsCollectorTest.java | 2 openjdk-11-11.0.16+8/test/jdk/java/lang/invoke/MethodHandlesCastFailureTest.java | 2 openjdk-11-11.0.16+8/test/jdk/java/lang/invoke/MethodHandlesGeneralTest.java | 2 openjdk-11-11.0.16+8/test/jdk/java/lang/invoke/MethodHandlesInsertArgumentsTest.java | 2 openjdk-11-11.0.16+8/test/jdk/java/lang/invoke/MethodHandlesInvokersTest.java | 2 openjdk-11-11.0.16+8/test/jdk/java/lang/invoke/MethodHandlesPermuteArgumentsTest.java | 2 openjdk-11-11.0.16+8/test/jdk/java/lang/invoke/MethodHandlesSpreadArgumentsTest.java | 2 openjdk-11-11.0.16+8/test/jdk/java/lang/invoke/PermuteArgsTest.java | 2 openjdk-11-11.0.16+8/test/jdk/java/lang/invoke/TestCatchExceptionWithVarargs.java | 2 openjdk-11-11.0.16+8/test/jdk/java/lang/invoke/VarargsArrayTest.java | 2 openjdk-11-11.0.16+8/test/jdk/java/lang/invoke/common/test/java/lang/invoke/lib/CodeCacheOverflowProcessor.java | 4 openjdk-11-11.0.16+8/test/jdk/java/lang/management/MemoryMXBean/LowMemoryTest.java | 10 openjdk-11-11.0.16+8/test/jdk/java/lang/management/MemoryMXBean/MemoryTest.java | 14 openjdk-11-11.0.16+8/test/jdk/java/lang/management/MemoryMXBean/RunUtil.java | 10 openjdk-11-11.0.16+8/test/jdk/java/lang/reflect/Proxy/ProxyClassAccessTest.java | 8 openjdk-11-11.0.16+8/test/jdk/java/lang/reflect/Proxy/ProxyLayerTest.java | 8 openjdk-11-11.0.16+8/test/jdk/java/lang/reflect/Proxy/ProxyTest.java | 8 openjdk-11-11.0.16+8/test/jdk/java/math/BigInteger/BitLengthOverflow.java | 35 openjdk-11-11.0.16+8/test/jdk/java/net/MulticastSocket/MultiDead.java | 7 openjdk-11-11.0.16+8/test/jdk/java/net/NetworkInterface/UniqueMacAddressesTest.java | 117 openjdk-11-11.0.16+8/test/jdk/java/net/SocketOption/TcpKeepAliveTest.java | 18 openjdk-11-11.0.16+8/test/jdk/java/net/URLConnection/SetIfModifiedSince.java | 93 openjdk-11-11.0.16+8/test/jdk/java/net/httpclient/ShortResponseBody.java | 203 openjdk-11-11.0.16+8/test/jdk/java/net/httpclient/ShortResponseBodyGet.java | 112 openjdk-11-11.0.16+8/test/jdk/java/net/httpclient/ShortResponseBodyPost.java | 142 openjdk-11-11.0.16+8/test/jdk/java/net/httpclient/ShortResponseBodyPostWithRetry.java | 35 openjdk-11-11.0.16+8/test/jdk/java/net/httpclient/ShortResponseBodyWithRetry.java | 34 openjdk-11-11.0.16+8/test/jdk/java/net/httpclient/SpecialHeadersTest.java | 87 openjdk-11-11.0.16+8/test/jdk/java/net/httpclient/security/Driver.java | 5 openjdk-11-11.0.16+8/test/jdk/java/net/spi/URLStreamHandlerProvider/Basic.java | 6 openjdk-11-11.0.16+8/test/jdk/java/nio/channels/DatagramChannel/Connect.java | 163 openjdk-11-11.0.16+8/test/jdk/java/nio/channels/DatagramChannel/Disconnect.java | 4 openjdk-11-11.0.16+8/test/jdk/java/nio/channels/FileChannel/BlockDeviceSize.java | 3 openjdk-11-11.0.16+8/test/jdk/java/nio/channels/FileChannel/LoopingTruncate.java | 6 openjdk-11-11.0.16+8/test/jdk/java/nio/channels/Selector/Wakeup.java | 4 openjdk-11-11.0.16+8/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/InheritedChannelTest.java | 13 openjdk-11-11.0.16+8/test/jdk/java/nio/file/Files/InterruptCopy.java | 91 openjdk-11-11.0.16+8/test/jdk/java/nio/file/Files/probeContentType/Basic.java | 123 openjdk-11-11.0.16+8/test/jdk/java/nio/file/spi/SetDefaultProvider.java | 8 openjdk-11-11.0.16+8/test/jdk/java/rmi/module/ModuleTest.java | 8 openjdk-11-11.0.16+8/test/jdk/java/security/AccessController/DoPrivAccompliceTest.java | 1 openjdk-11-11.0.16+8/test/jdk/java/security/KeyStore/PKCS12/EntryProtectionTest.java | 2 openjdk-11-11.0.16+8/test/jdk/java/security/KeyStore/PKCS12/KeytoolReaderP12Test.java | 7 openjdk-11-11.0.16+8/test/jdk/java/security/KeyStore/PKCS12/KeytoolWriteP12Test.java | 7 openjdk-11-11.0.16+8/test/jdk/java/security/KeyStore/PKCS12/MetadataEmptyTest.java | 5 openjdk-11-11.0.16+8/test/jdk/java/security/KeyStore/PKCS12/MetadataStoreLoadTest.java | 5 openjdk-11-11.0.16+8/test/jdk/java/security/KeyStore/PKCS12/StoreTrustedCertAPITest.java | 5 openjdk-11-11.0.16+8/test/jdk/java/security/KeyStore/PKCS12/StoreTrustedCertKeytool.java | 7 openjdk-11-11.0.16+8/test/jdk/java/security/KeyStore/PKCS12/Utils.java | 8 openjdk-11-11.0.16+8/test/jdk/java/security/Policy/ExtensiblePolicy/ExtensiblePolicyWithJarTest.java | 6 openjdk-11-11.0.16+8/test/jdk/java/security/Policy/SignedJar/SignedJarTest.java | 4 openjdk-11-11.0.16+8/test/jdk/java/security/SecureRandom/ThreadSafe.java | 4 openjdk-11-11.0.16+8/test/jdk/java/text/Format/DateFormat/DateFormatTest.java | 19 openjdk-11-11.0.16+8/test/jdk/java/text/Format/DateFormat/NonGregorianFormatTest.java | 12 openjdk-11-11.0.16+8/test/jdk/java/time/test/java/time/format/TestDateTimeParsing.java | 14 openjdk-11-11.0.16+8/test/jdk/java/util/Arrays/TimSortStackSize2.java | 8 openjdk-11-11.0.16+8/test/jdk/java/util/Currency/ValidateISO4217.java | 6 openjdk-11-11.0.16+8/test/jdk/java/util/Currency/tablea1.txt | 6 openjdk-11-11.0.16+8/test/jdk/java/util/DoubleStreamSums/CompensatedSums.java | 140 openjdk-11-11.0.16+8/test/jdk/java/util/DoubleSummaryStatistics/NegativeCompensation.java | 73 openjdk-11-11.0.16+8/test/jdk/java/util/Locale/Bug8040211.java | 404 openjdk-11-11.0.16+8/test/jdk/java/util/Locale/LanguageSubtagRegistryTest.java | 423 openjdk-11-11.0.16+8/test/jdk/java/util/Locale/bcp47u/SystemPropertyTests.java | 6 openjdk-11-11.0.16+8/test/jdk/java/util/ResourceBundle/modules/cache/CacheTest.java | 10 openjdk-11-11.0.16+8/test/jdk/java/util/ResourceBundle/modules/casesensitive/CaseInsensitiveNameClash.java | 8 openjdk-11-11.0.16+8/test/jdk/java/util/ResourceBundle/modules/security/TestPermission.java | 8 openjdk-11-11.0.16+8/test/jdk/java/util/Vector/VectorElementCNFE.java | 137 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/BlockingQueue/CancelledProducerConsumerLoops.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/BlockingQueue/Interrupt.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/BlockingQueue/MultipleProducersSingleConsumerLoops.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/BlockingQueue/ProducerConsumerLoops.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/BlockingQueue/SingleProducerMultipleConsumerLoops.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/CompletableFuture/Basic.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/ConcurrentHashMap/MapLoops.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/ConcurrentQueues/ConcurrentQueueLoops.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/CyclicBarrier/Basic.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/Exchanger/ExchangeLoops.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/ExecutorCompletionService/ExecutorCompletionServiceLoops.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/Executors/AutoShutdown.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/FutureTask/BlockingTaskExecutor.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/FutureTask/CancelledFutureLoops.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/FutureTask/DoneMeansDone.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/ScheduledThreadPoolExecutor/DelayOverflow.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/ScheduledThreadPoolExecutor/ZeroCorePoolSize.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/ScheduledThreadPoolExecutor/ZeroCoreThreads.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/ThreadPoolExecutor/CoreThreadTimeOut.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/ThreadPoolExecutor/Custom.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/ThreadPoolExecutor/FlakyThreadFactory.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/ThreadPoolExecutor/SelfInterrupt.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/ThreadPoolExecutor/ThreadRestarts.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/ThreadPoolExecutor/TimeOutShrink.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/forkjoin/SubmissionTest.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/locks/Lock/CheckedLockLoops.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/locks/Lock/TimedAcquireLeak.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/locks/ReentrantLock/LockOncePerThreadLoops.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/locks/ReentrantLock/SimpleReentrantLockLoops.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/locks/ReentrantLock/TimeoutLockLoops.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/locks/ReentrantReadWriteLock/Count.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/locks/ReentrantReadWriteLock/MapLoops.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/concurrent/locks/StampedLock/Basic.java | 4 openjdk-11-11.0.16+8/test/jdk/java/util/logging/TestLoggerWeakRefLeak.java | 7 openjdk-11-11.0.16+8/test/jdk/java/util/logging/modules/GetResourceBundleTest.java | 8 openjdk-11-11.0.16+8/test/jdk/java/util/zip/EntryCount64k.java | 6 openjdk-11-11.0.16+8/test/jdk/javax/accessibility/JTable/BooleanRendererHasAccessibleActionTest.java | 192 openjdk-11-11.0.16+8/test/jdk/javax/imageio/plugins/jpeg/CMYK/CMYKJPEGTest.java | 200 openjdk-11-11.0.16+8/test/jdk/javax/imageio/plugins/png/VerifyBitDepthScalingWithTRNSChunk.java | 137 openjdk-11-11.0.16+8/test/jdk/javax/management/monitor/GaugeMonitorDeadlockTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/management/monitor/StartStopTest.java | 5 openjdk-11-11.0.16+8/test/jdk/javax/management/mxbean/MXBeanWeirdParamTest.java | 10 openjdk-11-11.0.16+8/test/jdk/javax/management/remote/mandatory/connection/DefaultAgentFilterTest.java | 112 openjdk-11-11.0.16+8/test/jdk/javax/management/remote/mandatory/loading/MethodResultTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/management/security/AuthorizationTest.java | 10 openjdk-11-11.0.16+8/test/jdk/javax/management/security/SecurityTest.java | 10 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLS/DTLSBufferOverflowUnderflowTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLS/DTLSDataExchangeTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLS/DTLSEnginesClosureTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLS/DTLSHandshakeTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLS/DTLSHandshakeWithReplicatedPacketsTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLS/DTLSMFLNTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLS/DTLSNotEnabledRC4Test.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLS/DTLSRehandshakeTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLS/DTLSRehandshakeWithDataExTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLS/DTLSUnsupportedCiphersTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLSv10/DTLSv10BufferOverflowUnderflowTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLSv10/DTLSv10DataExchangeTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLSv10/DTLSv10EnginesClosureTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLSv10/DTLSv10HandshakeTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLSv10/DTLSv10HandshakeWithReplicatedPacketsTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLSv10/DTLSv10MFLNTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLSv10/DTLSv10NotEnabledRC4Test.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLSv10/DTLSv10RehandshakeTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLSv10/DTLSv10RehandshakeWithDataExTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLSv10/DTLSv10SequenceNumberTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/DTLSv10/DTLSv10UnsupportedCiphersTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/SSLEngine/ArgCheck.java | 6 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/SSLEngine/Basics.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/SSLSession/TestEnabledProtocols.java | 18 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLS/TLSDataExchangeTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLS/TLSEnginesClosureTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLS/TLSHandshakeTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLS/TLSMFLNTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLS/TLSNotEnabledRC4Test.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLS/TLSRehandshakeTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLS/TLSRehandshakeWithDataExTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLS/TLSUnsupportedCiphersTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLSv1/TLSDataExchangeTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLSv1/TLSEnginesClosureTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLSv1/TLSHandshakeTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLSv1/TLSMFLNTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLSv1/TLSNotEnabledRC4Test.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLSv1/TLSRehandshakeTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLSv1/TLSRehandshakeWithDataExTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLSv1/TLSUnsupportedCiphersTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLSv11/TLSDataExchangeTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLSv11/TLSEnginesClosureTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLSv11/TLSHandshakeTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLSv11/TLSMFLNTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLSv11/TLSNotEnabledRC4Test.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLSv11/TLSRehandshakeTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLSv11/TLSRehandshakeWithDataExTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLSv11/TLSUnsupportedCiphersTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/TLSv12/TLSEnginesClosureTest.java | 4 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/compatibility/JdkInfo.java | 39 openjdk-11-11.0.16+8/test/jdk/javax/net/ssl/templates/SSLSocketTemplate.java | 24 openjdk-11-11.0.16+8/test/jdk/javax/security/auth/Subject/doAs/NestedActions.java | 6 openjdk-11-11.0.16+8/test/jdk/javax/sound/sampled/Clip/SetPositionHang.java | 106 openjdk-11-11.0.16+8/test/jdk/javax/swing/DefaultButtonModel/DefaultButtonModelCrashTest.java | 29 openjdk-11-11.0.16+8/test/jdk/javax/swing/JButton/4796987/bug4796987.java | 13 openjdk-11-11.0.16+8/test/jdk/javax/swing/JCheckBox/4449413/bug4449413.java | 11 openjdk-11-11.0.16+8/test/jdk/javax/swing/JCheckBox/8032667/bug8032667_image_diff.java | 11 openjdk-11-11.0.16+8/test/jdk/javax/swing/JComboBox/4199622/bug4199622.java | 11 openjdk-11-11.0.16+8/test/jdk/javax/swing/JFileChooser/4150029/bug4150029.html | 6 openjdk-11-11.0.16+8/test/jdk/javax/swing/JFileChooser/4150029/bug4150029.java | 6 openjdk-11-11.0.16+8/test/jdk/javax/swing/JFileChooser/4524490/bug4524490.java | 11 openjdk-11-11.0.16+8/test/jdk/javax/swing/JFileChooser/6840086/bug6840086.java | 10 openjdk-11-11.0.16+8/test/jdk/javax/swing/JFileChooser/8041694/bug8041694.java | 8 openjdk-11-11.0.16+8/test/jdk/javax/swing/JFileChooser/8046391/bug8046391.java | 12 openjdk-11-11.0.16+8/test/jdk/javax/swing/JFileChooser/8062561/bug8062561.java | 10 openjdk-11-11.0.16+8/test/jdk/javax/swing/JFrame/8016356/bug8016356.java | 11 openjdk-11-11.0.16+8/test/jdk/javax/swing/JFrame/NSTexturedJFrame/NSTexturedJFrame.java | 14 openjdk-11-11.0.16+8/test/jdk/javax/swing/JInternalFrame/4251301/bug4251301.java | 10 openjdk-11-11.0.16+8/test/jdk/javax/swing/JLabel/6596966/bug6596966.java | 10 openjdk-11-11.0.16+8/test/jdk/javax/swing/JMenu/6470128/bug6470128.java | 13 openjdk-11-11.0.16+8/test/jdk/javax/swing/JMenuItem/ActionListenerCalledTwice/ActionListenerCalledTwiceTest.java | 10 openjdk-11-11.0.16+8/test/jdk/javax/swing/JMenuItem/ShortcutNotDiplayed/ShortcutNotDisplayedTest.java | 10 openjdk-11-11.0.16+8/test/jdk/javax/swing/JOptionPane/8024926/bug8024926.java | 11 openjdk-11-11.0.16+8/test/jdk/javax/swing/JPopupMenu/6827786/bug6827786.java | 11 openjdk-11-11.0.16+8/test/jdk/javax/swing/JPopupMenu/7154841/bug7154841.java | 12 openjdk-11-11.0.16+8/test/jdk/javax/swing/JScrollBar/bug4202954/bug4202954.java | 11 openjdk-11-11.0.16+8/test/jdk/javax/swing/JScrollPane/HorizontalMouseWheelOnShiftPressed/HorizontalMouseWheelOnShiftPressed.java | 10 openjdk-11-11.0.16+8/test/jdk/javax/swing/JSlider/6579827/bug6579827.java | 13 openjdk-11-11.0.16+8/test/jdk/javax/swing/JTabbedPane/4624207/bug4624207.java | 10 openjdk-11-11.0.16+8/test/jdk/javax/swing/JTabbedPane/6416920/bug6416920.java | 11 openjdk-11-11.0.16+8/test/jdk/javax/swing/JTable/4235420/bug4235420.java | 38 openjdk-11-11.0.16+8/test/jdk/javax/swing/JTable/7124218/SelectEditTableCell.java | 32 openjdk-11-11.0.16+8/test/jdk/javax/swing/JTextArea/6940863/bug6940863.java | 10 openjdk-11-11.0.16+8/test/jdk/javax/swing/UIDefaults/6302464/bug6302464.java | 43 openjdk-11-11.0.16+8/test/jdk/javax/swing/UITest/UITest.java | 118 openjdk-11-11.0.16+8/test/jdk/javax/swing/plaf/aqua/CustomComboBoxFocusTest.java | 11 openjdk-11-11.0.16+8/test/jdk/javax/swing/plaf/aqua/JInternalFrameBorderTest.java | 143 openjdk-11-11.0.16+8/test/jdk/javax/swing/plaf/basic/BasicLabelUI/bug7172652.java | 11 openjdk-11-11.0.16+8/test/jdk/javax/swing/text/Caret/TestCaretPositionJTextPane.java | 2 openjdk-11-11.0.16+8/test/jdk/javax/swing/text/FlowView/6318524/bug6318524.java | 194 openjdk-11-11.0.16+8/test/jdk/javax/swing/text/ParagraphView/6364882/bug6364882.java | 252 openjdk-11-11.0.16+8/test/jdk/javax/xml/crypto/dsig/BadXPointer.java | 60 openjdk-11-11.0.16+8/test/jdk/jdk/editpad/EditPadTest.java | 1 openjdk-11-11.0.16+8/test/jdk/jdk/internal/jline/AbstractWindowsTerminalTest.java | 7 openjdk-11-11.0.16+8/test/jdk/jdk/internal/jline/KeyConversionTest.java | 9 openjdk-11-11.0.16+8/test/jdk/jdk/internal/misc/VM/RuntimeArguments.java | 6 openjdk-11-11.0.16+8/test/jdk/jdk/internal/platform/cgroup/TestCgroupMetrics.java | 12 openjdk-11-11.0.16+8/test/jdk/jdk/internal/platform/cgroup/TestCgroupSubsystemController.java | 219 openjdk-11-11.0.16+8/test/jdk/jdk/internal/platform/cgroup/TestCgroupSubsystemFactory.java | 450 openjdk-11-11.0.16+8/test/jdk/jdk/internal/platform/docker/MetricsCpuTester.java | 10 openjdk-11-11.0.16+8/test/jdk/jdk/internal/platform/docker/MetricsMemoryTester.java | 52 openjdk-11-11.0.16+8/test/jdk/jdk/internal/platform/docker/TestDockerCpuMetrics.java | 7 openjdk-11-11.0.16+8/test/jdk/jdk/internal/platform/docker/TestDockerMemoryMetrics.java | 31 openjdk-11-11.0.16+8/test/jdk/jdk/internal/platform/docker/TestGetFreeSwapSpaceSize.java | 1 openjdk-11-11.0.16+8/test/jdk/jdk/internal/platform/docker/TestSystemMetrics.java | 3 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/gc/detailed/StressAllocationGCEvents.java | 6 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/gc/detailed/TestStressAllocationGCEventsWithCMS.java | 39 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/gc/detailed/TestStressAllocationGCEventsWithDefNew.java | 39 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/gc/detailed/TestStressAllocationGCEventsWithG1.java | 39 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/gc/detailed/TestStressAllocationGCEventsWithParNew.java | 39 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/gc/detailed/TestStressAllocationGCEventsWithParallel.java | 39 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/gc/detailed/TestStressBigAllocationGCEventsWithCMS.java | 39 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/gc/detailed/TestStressBigAllocationGCEventsWithDefNew.java | 39 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/gc/detailed/TestStressBigAllocationGCEventsWithG1.java | 45 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/gc/detailed/TestStressBigAllocationGCEventsWithParNew.java | 39 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/gc/detailed/TestStressBigAllocationGCEventsWithParallel.java | 39 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/io/EvilInstrument.java | 6 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/io/IOEvent.java | 9 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/io/IOHelper.java | 8 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/io/TestDisabledEvents.java | 37 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/io/TestFileChannelEvents.java | 142 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/io/TestFileReadOnly.java | 85 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/io/TestFileStreamEvents.java | 88 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/io/TestInstrumentation.java | 4 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/io/TestRandomAccessFileEvents.java | 119 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/io/TestRandomAccessFileThread.java | 45 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/io/TestSocketChannelEvents.java | 118 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/event/io/TestSocketEvents.java | 102 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/jcmd/TestJcmdConfigure.java | 5 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/jmx/JmxHelper.java | 5 openjdk-11-11.0.16+8/test/jdk/jdk/jfr/jvm/TestJavaEvent.java | 5 openjdk-11-11.0.16+8/test/jdk/jdk/modules/etc/DefaultModules.java | 8 openjdk-11-11.0.16+8/test/jdk/jdk/modules/incubator/DefaultImage.java | 6 openjdk-11-11.0.16+8/test/jdk/jdk/modules/incubator/ImageModules.java | 6 openjdk-11-11.0.16+8/test/jdk/jdk/modules/scenarios/automaticmodules/RunWithAutomaticModules.java | 8 openjdk-11-11.0.16+8/test/jdk/jdk/modules/scenarios/container/ContainerTest.java | 8 openjdk-11-11.0.16+8/test/jdk/jdk/modules/scenarios/overlappingpackages/OverlappingPackagesTest.java | 8 openjdk-11-11.0.16+8/test/jdk/jdk/net/Sockets/Test.java | 18 openjdk-11-11.0.16+8/test/jdk/jdk/net/Sockets/policy.fail | 14 openjdk-11-11.0.16+8/test/jdk/jdk/net/Sockets/policy.success | 14 openjdk-11-11.0.16+8/test/jdk/jdk/security/JavaDotSecurity/MakeJavaSecurityTest.java | 95 openjdk-11-11.0.16+8/test/jdk/jdk/security/JavaDotSecurity/ifdefs.sh | 58 openjdk-11-11.0.16+8/test/jdk/jdk/security/jarsigner/JarWithOneNonDisabledDigestAlg.java | 169 openjdk-11-11.0.16+8/test/jdk/lib/testlibrary/OutputAnalyzerReportingTest.java | 10 openjdk-11-11.0.16+8/test/jdk/lib/testlibrary/OutputAnalyzerTest.java | 23 openjdk-11-11.0.16+8/test/jdk/lib/testlibrary/jdk/testlibrary/JDKToolFinder.java | 115 openjdk-11-11.0.16+8/test/jdk/lib/testlibrary/jdk/testlibrary/JDKToolLauncher.java | 134 openjdk-11-11.0.16+8/test/jdk/lib/testlibrary/jdk/testlibrary/JcmdBase.java | 117 openjdk-11-11.0.16+8/test/jdk/lib/testlibrary/jdk/testlibrary/OSInfo.java | 217 openjdk-11-11.0.16+8/test/jdk/lib/testlibrary/jdk/testlibrary/OutputAnalyzer.java | 580 openjdk-11-11.0.16+8/test/jdk/lib/testlibrary/jdk/testlibrary/OutputBuffer.java | 113 openjdk-11-11.0.16+8/test/jdk/lib/testlibrary/jdk/testlibrary/ProcessThread.java | 213 openjdk-11-11.0.16+8/test/jdk/lib/testlibrary/jdk/testlibrary/ProcessTools.java | 560 openjdk-11-11.0.16+8/test/jdk/lib/testlibrary/jdk/testlibrary/StreamPumper.java | 204 openjdk-11-11.0.16+8/test/jdk/lib/testlibrary/jdk/testlibrary/TestThread.java | 204 openjdk-11-11.0.16+8/test/jdk/lib/testlibrary/jdk/testlibrary/Utils.java | 295 openjdk-11-11.0.16+8/test/jdk/lib/testlibrary/jdk/testlibrary/XRun.java | 56 openjdk-11-11.0.16+8/test/jdk/native_sanity/simplenativelauncher/ProgramTest.java | 10 openjdk-11-11.0.16+8/test/jdk/sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.java | 10 openjdk-11-11.0.16+8/test/jdk/sun/jvmstat/monitor/MonitoredVm/TestPollingInterval.java | 2 openjdk-11-11.0.16+8/test/jdk/sun/management/jdp/DynamicLauncher.java | 8 openjdk-11-11.0.16+8/test/jdk/sun/management/jdp/JdpDefaultsTest.java | 3 openjdk-11-11.0.16+8/test/jdk/sun/management/jdp/JdpJmxRemoteDynamicPortTest.java | 3 openjdk-11-11.0.16+8/test/jdk/sun/management/jdp/JdpOffTest.java | 3 openjdk-11-11.0.16+8/test/jdk/sun/management/jdp/JdpSpecificAddressTest.java | 3 openjdk-11-11.0.16+8/test/jdk/sun/management/jdp/PortAlreadyInUseTest.java | 6 openjdk-11-11.0.16+8/test/jdk/sun/management/jmxremote/bootstrap/AbstractFilePermissionTest.java | 10 openjdk-11-11.0.16+8/test/jdk/sun/management/jmxremote/bootstrap/CustomLauncherTest.java | 7 openjdk-11-11.0.16+8/test/jdk/sun/management/jmxremote/bootstrap/JMXInterfaceBindingTest.java | 8 openjdk-11-11.0.16+8/test/jdk/sun/management/jmxremote/bootstrap/LocalManagementTest.java | 10 openjdk-11-11.0.16+8/test/jdk/sun/management/jmxremote/bootstrap/RmiBootstrapTest.java | 2 openjdk-11-11.0.16+8/test/jdk/sun/management/jmxremote/bootstrap/RmiBootstrapTest.sh | 4 openjdk-11-11.0.16+8/test/jdk/sun/management/jmxremote/bootstrap/RmiRegistrySslTest.java | 12 openjdk-11-11.0.16+8/test/jdk/sun/management/jmxremote/bootstrap/RmiRegistrySslTestApp.java | 2 openjdk-11-11.0.16+8/test/jdk/sun/management/jmxremote/bootstrap/RmiSslBootstrapTest.sh | 4 openjdk-11-11.0.16+8/test/jdk/sun/management/jmxremote/startstop/JMXStartStopTest.java | 10 openjdk-11-11.0.16+8/test/jdk/sun/management/jmxremote/startstop/JMXStatusPerfCountersTest.java | 5 openjdk-11-11.0.16+8/test/jdk/sun/management/jmxremote/startstop/JMXStatusTest.java | 5 openjdk-11-11.0.16+8/test/jdk/sun/management/jmxremote/startstop/ManagementAgentJcmd.java | 6 openjdk-11-11.0.16+8/test/jdk/sun/net/www/http/HttpClient/GetProxyPort.java | 16 openjdk-11-11.0.16+8/test/jdk/sun/net/www/http/HttpClient/ImplicitFileName.java | 18 openjdk-11-11.0.16+8/test/jdk/sun/net/www/http/HttpClient/IsAvailable.java | 64 openjdk-11-11.0.16+8/test/jdk/sun/net/www/http/HttpClient/IsKeepingAlive.java | 38 openjdk-11-11.0.16+8/test/jdk/sun/net/www/http/HttpClient/OpenServer.java | 21 openjdk-11-11.0.16+8/test/jdk/sun/net/www/http/KeepAliveStream/KeepAliveStreamCloseWithWrongContentLength.java | 163 openjdk-11-11.0.16+8/test/jdk/sun/net/www/protocol/http/StreamingOutputStream.java | 17 openjdk-11-11.0.16+8/test/jdk/sun/net/www/protocol/http/UserAuth.java | 16 openjdk-11-11.0.16+8/test/jdk/sun/net/www/protocol/http/UserCookie.java | 16 openjdk-11-11.0.16+8/test/jdk/sun/security/krb5/auto/BasicProc.java | 5 openjdk-11-11.0.16+8/test/jdk/sun/security/krb5/auto/HttpsCB.java | 326 openjdk-11-11.0.16+8/test/jdk/sun/security/krb5/auto/IgnoreChannelBinding.java | 30 openjdk-11-11.0.16+8/test/jdk/sun/security/krb5/auto/KDC.java | 8 openjdk-11-11.0.16+8/test/jdk/sun/security/krb5/auto/NoAddresses.java | 3 openjdk-11-11.0.16+8/test/jdk/sun/security/krb5/auto/ReplayCacheTestProc.java | 5 openjdk-11-11.0.16+8/test/jdk/sun/security/krb5/auto/principalProperty/PrincipalSystemPropTest.java | 6 openjdk-11-11.0.16+8/test/jdk/sun/security/krb5/auto/tools/KinitConfPlusProps.java | 8 openjdk-11-11.0.16+8/test/jdk/sun/security/lib/cacerts/VerifyCACerts.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/security/pkcs11/Cipher/TestChaChaPoly.java | 323 openjdk-11-11.0.16+8/test/jdk/sun/security/pkcs11/Cipher/TestChaChaPolyKAT.java | 233 openjdk-11-11.0.16+8/test/jdk/sun/security/pkcs11/Cipher/TestChaChaPolyNoReuse.java | 267 openjdk-11-11.0.16+8/test/jdk/sun/security/pkcs11/Cipher/TestChaChaPolyOutputSize.java | 164 openjdk-11-11.0.16+8/test/jdk/sun/security/pkcs11/Cipher/TestKATForGCM.java | 12 openjdk-11-11.0.16+8/test/jdk/sun/security/pkcs11/KeyGenerator/TestChaCha20.java | 91 openjdk-11-11.0.16+8/test/jdk/sun/security/pkcs11/PKCS11Test.java | 34 openjdk-11-11.0.16+8/test/jdk/sun/security/pkcs11/SecretKeyFactory/TestGeneral.java | 119 openjdk-11-11.0.16+8/test/jdk/sun/security/pkcs11/tls/TestLeadingZeroesP11.java | 29 openjdk-11-11.0.16+8/test/jdk/sun/security/pkcs12/KeytoolOpensslInteropTest.java | 2 openjdk-11-11.0.16+8/test/jdk/sun/security/pkcs12/ParamsPreferences.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/security/provider/DSA/SupportedDSAParamGen.java | 8 openjdk-11-11.0.16+8/test/jdk/sun/security/provider/DSA/SupportedDSAParamGenLongKey.java | 32 openjdk-11-11.0.16+8/test/jdk/sun/security/provider/NSASuiteB/TestDSAGenParameterSpec.java | 9 openjdk-11-11.0.16+8/test/jdk/sun/security/provider/NSASuiteB/TestDSAGenParameterSpecLongKey.java | 36 openjdk-11-11.0.16+8/test/jdk/sun/security/rsa/SignatureTest.java | 75 openjdk-11-11.0.16+8/test/jdk/sun/security/ssl/SSLEngineImpl/SSLEngineKeyLimit.java | 9 openjdk-11-11.0.16+8/test/jdk/sun/security/ssl/SSLSessionImpl/NoInvalidateSocketException.java | 415 openjdk-11-11.0.16+8/test/jdk/sun/security/ssl/SSLSocketImpl/ClientSocketCloseHang.java | 134 openjdk-11-11.0.16+8/test/jdk/sun/security/ssl/SSLSocketImpl/SSLSocketKeyLimit.java | 11 openjdk-11-11.0.16+8/test/jdk/sun/security/ssl/X509TrustManagerImpl/Symantec/Distrust.java | 28 openjdk-11-11.0.16+8/test/jdk/sun/security/ssl/X509TrustManagerImpl/Symantec/appleistca2g1-chain.pem | 80 openjdk-11-11.0.16+8/test/jdk/sun/security/ssl/X509TrustManagerImpl/Symantec/geotrustglobalca-chain.pem | 66 openjdk-11-11.0.16+8/test/jdk/sun/security/tools/jarsigner/TsacertOptionTest.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/security/tools/jarsigner/Warning.java | 6 openjdk-11-11.0.16+8/test/jdk/sun/security/tools/jarsigner/compatibility/Compatibility.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/security/tools/jarsigner/compatibility/SignTwice.java | 2 openjdk-11-11.0.16+8/test/jdk/sun/security/tools/jarsigner/warnings/AliasNotInStoreTest.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/security/tools/jarsigner/warnings/BadExtendedKeyUsageTest.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/security/tools/jarsigner/warnings/BadKeyUsageTest.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/security/tools/jarsigner/warnings/BadNetscapeCertTypeTest.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/security/tools/jarsigner/warnings/ChainNotValidatedTest.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/security/tools/jarsigner/warnings/HasExpiredCertTest.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/security/tools/jarsigner/warnings/HasExpiringCertTest.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/security/tools/jarsigner/warnings/HasUnsignedEntryTest.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/security/tools/jarsigner/warnings/LowerCaseManifest.java | 2 openjdk-11-11.0.16+8/test/jdk/sun/security/tools/jarsigner/warnings/MultipleWarningsTest.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/security/tools/jarsigner/warnings/NoTimestampTest.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/security/tools/jarsigner/warnings/NotSignedByAliasTest.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/security/tools/jarsigner/warnings/NotYetValidCertTest.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/security/tools/jarsigner/warnings/Test.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/security/tools/keytool/CheckCertAKID.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/security/tools/keytool/fakegen/java.base/sun/security/rsa/RSAKeyPairGenerator.java | 102 openjdk-11-11.0.16+8/test/jdk/sun/security/util/DerInputBuffer/PaddedBitString.java | 87 openjdk-11-11.0.16+8/test/jdk/sun/security/util/RegisteredDomain/ParseNames.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/security/util/RegisteredDomain/tests.dat | 5 openjdk-11-11.0.16+8/test/jdk/sun/text/resources/LocaleData | 3 openjdk-11-11.0.16+8/test/jdk/sun/text/resources/LocaleDataTest.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/tools/jcmd/JcmdBase.java | 119 openjdk-11-11.0.16+8/test/jdk/sun/tools/jcmd/TestJcmdDefaults.java | 14 openjdk-11-11.0.16+8/test/jdk/sun/tools/jcmd/TestJcmdSanity.java | 22 openjdk-11-11.0.16+8/test/jdk/sun/tools/jhsdb/BasicLauncherTest.java | 10 openjdk-11-11.0.16+8/test/jdk/sun/tools/jhsdb/HeapDumpTest.java | 9 openjdk-11-11.0.16+8/test/jdk/sun/tools/jhsdb/heapconfig/JMapHeapConfigTest.java | 3 openjdk-11-11.0.16+8/test/jdk/sun/tools/jhsdb/heapconfig/TmtoolTestScenario.java | 4 openjdk-11-11.0.16+8/test/jdk/sun/tools/jinfo/BasicJInfoTest.java | 11 openjdk-11-11.0.16+8/test/jdk/sun/tools/jmap/BasicJMapTest.java | 6 openjdk-11-11.0.16+8/test/jdk/sun/tools/jps/JpsHelper.java | 15 openjdk-11-11.0.16+8/test/jdk/sun/tools/jps/TestJpsSanity.java | 2 openjdk-11-11.0.16+8/test/jdk/sun/tools/jstack/BasicJStackTest.java | 11 openjdk-11-11.0.16+8/test/jdk/sun/tools/jstack/DeadlockDetectionTest.java | 10 openjdk-11-11.0.16+8/test/jdk/sun/tools/jstat/JStatInterval.java | 10 openjdk-11-11.0.16+8/test/jdk/sun/tools/jstat/jstatClassloadOutput1.sh | 2 openjdk-11-11.0.16+8/test/jdk/sun/tools/jstatd/JstatGCUtilParser.java | 2 openjdk-11-11.0.16+8/test/jdk/sun/tools/jstatd/JstatdTest.java | 14 openjdk-11-11.0.16+8/test/jdk/sun/tools/jstatd/TestJstatdDefaults.java | 3 openjdk-11-11.0.16+8/test/jdk/sun/tools/jstatd/TestJstatdExternalRegistry.java | 3 openjdk-11-11.0.16+8/test/jdk/sun/tools/jstatd/TestJstatdPort.java | 3 openjdk-11-11.0.16+8/test/jdk/sun/tools/jstatd/TestJstatdPortAndServer.java | 3 openjdk-11-11.0.16+8/test/jdk/sun/tools/jstatd/TestJstatdServer.java | 3 openjdk-11-11.0.16+8/test/jdk/sun/tools/jstatd/TestJstatdUsage.java | 11 openjdk-11-11.0.16+8/test/jdk/tools/jar/JarEntryTime.java | 13 openjdk-11-11.0.16+8/test/jdk/tools/jar/compat/CLICompatibility.java | 4 openjdk-11-11.0.16+8/test/jdk/tools/jar/modularJar/Basic.java | 6 openjdk-11-11.0.16+8/test/jdk/tools/jimage/JImageToolTest.java | 8 openjdk-11-11.0.16+8/test/jdk/tools/jlink/basic/AllModulePath.java | 10 openjdk-11-11.0.16+8/test/jdk/tools/jlink/basic/BasicTest.java | 10 openjdk-11-11.0.16+8/test/jdk/tools/jlink/bindservices/BindServices.java | 8 openjdk-11-11.0.16+8/test/jdk/tools/jlink/plugins/SystemModuleDescriptors/CompiledVersionTest.java | 8 openjdk-11-11.0.16+8/test/jdk/tools/jlink/plugins/SystemModuleDescriptors/UserModuleTest.java | 6 openjdk-11-11.0.16+8/test/jdk/tools/jmod/hashes/HashesTest.java | 48 openjdk-11-11.0.16+8/test/jdk/tools/launcher/ExecutionEnvironment.java | 44 openjdk-11-11.0.16+8/test/jdk/tools/launcher/InfoStreams.java | 11 openjdk-11-11.0.16+8/test/jdk/tools/launcher/Test7029048.java | 127 openjdk-11-11.0.16+8/test/jdk/tools/launcher/modules/addexports/AddExportsTest.java | 8 openjdk-11-11.0.16+8/test/jdk/tools/launcher/modules/addexports/AddExportsTestWarningError.java | 9 openjdk-11-11.0.16+8/test/jdk/tools/launcher/modules/addexports/manifest/AddExportsAndOpensInManifest.java | 7 openjdk-11-11.0.16+8/test/jdk/tools/launcher/modules/addmods/AddModsTest.java | 6 openjdk-11-11.0.16+8/test/jdk/tools/launcher/modules/addreads/AddReadsTest.java | 10 openjdk-11-11.0.16+8/test/jdk/tools/launcher/modules/addreads/AddReadsTestWarningError.java | 9 openjdk-11-11.0.16+8/test/jdk/tools/launcher/modules/basic/BasicTest.java | 8 openjdk-11-11.0.16+8/test/jdk/tools/launcher/modules/basic/InitErrors.java | 10 openjdk-11-11.0.16+8/test/jdk/tools/launcher/modules/classpath/JavaClassPathTest.java | 30 openjdk-11-11.0.16+8/test/jdk/tools/launcher/modules/describe/DescribeModuleTest.java | 8 openjdk-11-11.0.16+8/test/jdk/tools/launcher/modules/dryrun/DryRunTest.java | 8 openjdk-11-11.0.16+8/test/jdk/tools/launcher/modules/illegalaccess/IllegalAccessTest.java | 7 openjdk-11-11.0.16+8/test/jdk/tools/launcher/modules/limitmods/LimitModsTest.java | 8 openjdk-11-11.0.16+8/test/jdk/tools/launcher/modules/listmods/ListModsTest.java | 10 openjdk-11-11.0.16+8/test/jdk/tools/launcher/modules/patch/basic/PatchTest.java | 8 openjdk-11-11.0.16+8/test/jdk/tools/launcher/modules/patch/basic/PatchTestWarningError.java | 9 openjdk-11-11.0.16+8/test/jdk/tools/launcher/modules/patch/systemmodules/PatchSystemModules.java | 8 openjdk-11-11.0.16+8/test/jdk/tools/launcher/modules/showmoduleresolution/ShowModuleResolutionTest.java | 8 openjdk-11-11.0.16+8/test/jdk/tools/launcher/modules/validate/ValidateModulesTest.java | 8 openjdk-11-11.0.16+8/test/jtreg-ext/requires/VMProps.java | 76 openjdk-11-11.0.16+8/test/langtools/jdk/jshell/CommandCompletionTest.java | 25 openjdk-11-11.0.16+8/test/langtools/jdk/jshell/ToolBasicTest.java | 4 openjdk-11-11.0.16+8/test/langtools/jdk/jshell/ToolSimpleTest.java | 5 openjdk-11-11.0.16+8/test/langtools/tools/javac/annotations/typeAnnotations/VariablesDeclaredWithVarTest.java | 136 openjdk-11-11.0.16+8/test/langtools/tools/javac/file/SymLinkArchiveTest.java | 90 openjdk-11-11.0.16+8/test/langtools/tools/javac/file/SymLinkShortNameTest.java | 96 openjdk-11-11.0.16+8/test/langtools/tools/javac/generics/diamond/protectedConstructor/ProtectedConstructorTest.java | 50 openjdk-11-11.0.16+8/test/langtools/tools/javac/generics/diamond/protectedConstructor/pkg/Bar.java | 29 openjdk-11-11.0.16+8/test/langtools/tools/javac/lambda/lambdaExecution/LambdaTranslationTest1.java | 4 openjdk-11-11.0.16+8/test/langtools/tools/javac/lambda/lambdaExecution/LambdaTranslationTest2.java | 4 openjdk-11-11.0.16+8/test/langtools/tools/javac/lvti/T8236210.java | 28 openjdk-11-11.0.16+8/test/langtools/tools/javac/lvti/T8236210.out | 2 openjdk-11-11.0.16+8/test/langtools/tools/javac/processing/T8210649.java | 153 openjdk-11-11.0.16+8/test/langtools/tools/javac/processing/model/testgetallmembers/Main.java | 2 openjdk-11-11.0.16+8/test/langtools/tools/lib/toolbox/ToolBox.java | 157 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/KnownOIDs.java | 513 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/OSVersion.java | 112 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/Platform.java | 107 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/SA/SATestUtils.java | 80 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/SecurityTools.java | 61 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/Utils.java | 20 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/apps/LingeredApp.java | 2 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/containers/cgroup/CPUSetsReader.java | 4 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/containers/cgroup/CgroupMetricsTester.java | 127 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/containers/cgroup/MetricsTester.java | 622 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/containers/cgroup/MetricsTesterCgroupV1.java | 579 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/containers/cgroup/MetricsTesterCgroupV2.java | 479 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/dcmd/CommandExecutor.java | 6 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/process/OutputAnalyzer.java | 259 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/process/OutputBuffer.java | 128 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/process/ProcessTools.java | 83 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/process/StreamPumper.java | 33 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/security/DerUtils.java | 2 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/security/SecurityUtils.java | 11 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/security/XMLUtils.java | 578 openjdk-11-11.0.16+8/test/lib/jdk/test/lib/thread/ProcessThread.java | 216 openjdk-11-11.0.16+8/test/lib/sun/hotspot/WhiteBox.java | 6 openjdk-11-11.0.16+8/test/micro/org/openjdk/bench/java/lang/StringEncode.java | 124 2804 files changed, 96541 insertions(+), 52289 deletions(-) diff -Nru openjdk-11-11.0.14+9/.jcheck/conf openjdk-11-11.0.16+8/.jcheck/conf --- openjdk-11-11.0.14+9/.jcheck/conf 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/.jcheck/conf 2022-07-16 20:06:34.000000000 +0000 @@ -1,7 +1,7 @@ [general] project=jdk-updates jbs=JDK -version=11.0.14 +version=11.0.16 [checks] error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace diff -Nru openjdk-11-11.0.14+9/debian/changelog openjdk-11-11.0.16+8/debian/changelog --- openjdk-11-11.0.14+9/debian/changelog 2022-01-21 16:20:34.000000000 +0000 +++ openjdk-11-11.0.16+8/debian/changelog 2022-07-21 17:08:53.000000000 +0000 @@ -1,12 +1,83 @@ -openjdk-11 (11.0.14+9-1~deb10u1) buster-security; urgency=medium +openjdk-11 (11.0.16+8-1~deb10u1) buster-security; urgency=medium * Rebuild for buster - -- Moritz Muehlenhoff Fri, 21 Jan 2022 17:20:34 +0100 + -- Moritz Muehlenhoff Thu, 21 Jul 2022 19:08:53 +0200 + +openjdk-11 (11.0.16+8-1) unstable; urgency=high + + * OpenJDK 11.0.16+8 build (release). + + -- Matthias Klose Wed, 20 Jul 2022 10:54:16 +0200 + +openjdk-11 (11.0.15+10-1) unstable; urgency=high + + * OpenJDK 11.0.15+10 build (release). + * Security fixes + - JDK-8269938: Enhance XML processing passes redux. + - JDK-8270504, CVE-2022-21426: Better XPath expression handling. + - JDK-8272255: Completely handle MIDI files. + - JDK-8272261: Improve JFR recording file processing. + - JDK-8272594: Better record of recordings. + - JDK-8274221: More definite BER encodings. + - JDK-8275082, JDK-8278008, CVE-2022-21476: Update XML Security for Java + to 2.3.0. + - JDK-8275151, CVE-2022-21443: Improved Object Identification. + - JDK-8277227: Better identification of OIDs. + - JDK-8277672, CVE-2022-21434: Better invocation handler handling. + - JDK-8278356: Improve file creation. + - JDK-8278449: Improve keychain support. + - JDK-8278798: Improve supported intrinsic. + - JDK-8278805: Enhance BMP image loading. + - JDK-8278972, CVE-2022-21496: Improve URL supports. + - JDK-8281388: Change wrapping of EncryptedPrivateKeyInfo. + * Refresh patches. + + -- Matthias Klose Mon, 02 May 2022 19:42:14 +0200 + +openjdk-11 (11.0.14.1+1-1) unstable; urgency=medium + + * OpenJDK 11.0.14.1+1 build (release). + - Fix JDK-8218546. LP: #1966338. + + -- Matthias Klose Sun, 27 Mar 2022 11:16:07 +0200 openjdk-11 (11.0.14+9-1) unstable; urgency=high * OpenJDK 11.0.14+9 build (release). + * Security fixes + - JDK-8217375: jarsigner breaks old signature with long lines in manifest. + - JDK-8251329: (zipfs) Files.walkFileTree walks infinitely if zip has dir + named "." inside. + - JDK-8264934, CVE-2022-21248: Enhance cross VM serialization. + - JDK-8268488: More valuable DerValues. + - JDK-8268494: Better inlining of inlined interfaces. + - JDK-8268512: More content for ContentInfo. + - JDK-8268795: Enhance digests of Jar files. + - JDK-8268801: Improve PKCS attribute handling. + - JDK-8268813, CVE-2022-21283: Better String matching. + - JDK-8269151: Better construction of EncryptedPrivateKeyInfo. + - JDK-8269944: Better HTTP transport redux. + - JDK-8270386, CVE-2022-21291: Better verification of scan methods. + - JDK-8270392, CVE-2022-21293: Improve String constructions. + - JDK-8270416, CVE-2022-21294: Enhance construction of Identity maps. + - JDK-8270492, CVE-2022-21282: Better resolution of URIs. + - JDK-8270498, CVE-2022-21296: Improve SAX Parser configuration management. + - JDK-8270646, CVE-2022-21299: Improved scanning of XML entities. + - JDK-8270952, CVE-2022-21277: Improve TIFF file handling. + - JDK-8271962: Better TrueType font loading. + - JDK-8271968: Better canonical naming. + - JDK-8271987: Manifest improved manifest entries. + - JDK-8272014, CVE-2022-21305: Better array indexing. + - JDK-8272026, CVE-2022-21340: Verify Jar Verification. + - JDK-8272236, CVE-2022-21341: Improve serial forms for transport. + - JDK-8272272: Enhance jcmd communication. + - JDK-8272462: Enhance image handling. + - JDK-8273290: Enhance sound handling. + - JDK-8273756, CVE-2022-21360: Enhance BMP image support. + - JDK-8273838, CVE-2022-21365: Enhanced BMP processing. + - JDK-8274096, CVE-2022-21366: Improve decoding of image files. + - JDK-8279541: Improve HarfBuzz. -- Matthias Klose Wed, 19 Jan 2022 11:05:38 +0100 diff -Nru openjdk-11-11.0.14+9/debian/copyright openjdk-11-11.0.16+8/debian/copyright --- openjdk-11-11.0.14+9/debian/copyright 2021-07-21 05:09:12.000000000 +0000 +++ openjdk-11-11.0.16+8/debian/copyright 2022-07-20 08:54:16.000000000 +0000 @@ -2,7 +2,7 @@ Wed, 08 Aug 2007 15:55:39 +0200. It was downloaded from - https://hg.openjdk.java.net/jdk-updates/jdk11u/ + https://github.com/openjdk/jdk11u-dev ------------------------------------------------------------------------------ Upstream Authors: @@ -19,14 +19,14 @@ OpenJDK: Copyright © 1996-2007 Sun Microsystems, Inc. - Copyright © 1996-2021 Oracle and/or its affiliates. + Copyright © 1996-2022 Oracle and/or its affiliates. For third party copyrights see below (copies from the third party readme). Portions Copyright © 1993-2014 IBM Corp. Portions Copyright © 1997 Eastman Kodak Company. Portions Copyright © 1999-2005 The Apache Software Foundation. Packaging: - Copyright © 2007-2021 Canonical Ltd. + Copyright © 2007-2022 Canonical Ltd. ------------------------------------------------------------------------------ License: diff -Nru openjdk-11-11.0.14+9/debian/patches/8222825.diff openjdk-11-11.0.16+8/debian/patches/8222825.diff --- openjdk-11-11.0.14+9/debian/patches/8222825.diff 2021-07-21 05:09:12.000000000 +0000 +++ openjdk-11-11.0.16+8/debian/patches/8222825.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,150 +0,0 @@ ---- a/src/hotspot/cpu/arm/arm.ad -+++ b/src/hotspot/cpu/arm/arm.ad -@@ -5317,7 +5317,7 @@ instruct loadConD(regD dst, immD src, iR - // Must be safe to execute with invalid address (cannot fault). - - instruct prefetchAlloc_mp( memoryP mem ) %{ -- predicate(os::is_MP()); -+ predicate(VM_Version::has_multiprocessing_extensions()); - match( PrefetchAllocation mem ); - ins_cost(MEMORY_REF_COST); - size(4); ---- a/src/hotspot/cpu/arm/assembler_arm_32.hpp -+++ b/src/hotspot/cpu/arm/assembler_arm_32.hpp -@@ -434,7 +434,9 @@ class Assembler : public AbstractAssembl - } - - void pldw(Address addr) { -- assert(VM_Version::arm_arch() >= 7 && os::is_MP(), "no pldw on this processor"); -+ assert(!VM_Version::is_initialized() || -+ (VM_Version::arm_arch() >= 7 && VM_Version::has_multiprocessing_extensions()), -+ "PLDW is available on ARMv7 with Multiprocessing Extensions only"); - emit_int32(0xf510f000 | addr.encoding2()); - } - ---- a/src/hotspot/cpu/arm/vm_version_arm.hpp -+++ b/src/hotspot/cpu/arm/vm_version_arm.hpp -@@ -32,6 +32,7 @@ class VM_Version: public Abstract_VM_Ver - friend class JVMCIVMStructs; - - static bool _has_simd; -+ static bool _has_mp_ext; - - protected: - // Are we done with vm version initialization -@@ -64,6 +65,7 @@ class VM_Version: public Abstract_VM_Ver - vfp = 0, - vfp3_32 = 1, - simd = 2, -+ mp_ext = 3 - }; - - enum Feature_Flag_Set { -@@ -73,6 +75,7 @@ class VM_Version: public Abstract_VM_Ver - vfp_m = 1 << vfp, - vfp3_32_m = 1 << vfp3_32, - simd_m = 1 << simd, -+ mp_ext_m = 1 << mp_ext - }; - - // The value stored by "STR PC, [addr]" instruction can be either -@@ -115,6 +118,7 @@ class VM_Version: public Abstract_VM_Ver - static bool has_vfp() { return (_features & vfp_m) != 0; } - static bool has_vfp3_32() { return (_features & vfp3_32_m) != 0; } - static bool has_simd() { return (_features & simd_m) != 0; } -+ static bool has_multiprocessing_extensions() { return (_features & mp_ext_m) != 0; } - - static bool simd_math_is_compliant() { return false; } - ---- a/src/hotspot/cpu/arm/vm_version_arm_32.cpp -+++ b/src/hotspot/cpu/arm/vm_version_arm_32.cpp -@@ -40,6 +40,7 @@ extern "C" { - typedef int (*get_cpu_info_t)(); - typedef bool (*check_vfp_t)(double *d); - typedef bool (*check_simd_t)(); -+ typedef bool (*check_mp_ext_t)(int *addr); - } - - #define __ _masm-> -@@ -95,6 +96,20 @@ class VM_Version_StubGenerator: public S - - return start; - }; -+ -+ address generate_check_mp_ext() { -+ StubCodeMark mark(this, "VM_Version", "check_mp_ext"); -+ address start = __ pc(); -+ -+ // PLDW is available with Multiprocessing Extensions only -+ __ pldw(Address(R0)); -+ // Return true if instruction caused no signals -+ __ mov(R0, 1); -+ // JVM_handle_linux_signal moves PC here if SIGILL happens -+ __ bx(LR); -+ -+ return start; -+ }; - }; - - #undef __ -@@ -103,6 +118,7 @@ class VM_Version_StubGenerator: public S - extern "C" address check_vfp3_32_fault_instr; - extern "C" address check_vfp_fault_instr; - extern "C" address check_simd_fault_instr; -+extern "C" address check_mp_ext_fault_instr; - - void VM_Version::early_initialize() { - -@@ -165,6 +181,13 @@ void VM_Version::initialize() { - #endif - #endif - -+ address check_mp_ext_pc = g.generate_check_mp_ext(); -+ check_mp_ext_t check_mp_ext = CAST_TO_FN_PTR(check_mp_ext_t, check_mp_ext_pc); -+ check_mp_ext_fault_instr = (address)check_mp_ext; -+ int dummy_local_variable; -+ if (check_mp_ext(&dummy_local_variable)) { -+ _features |= mp_ext_m; -+ } - - if (UseAESIntrinsics && !FLAG_IS_DEFAULT(UseAESIntrinsics)) { - warning("AES intrinsics are not available on this CPU"); -@@ -247,11 +270,12 @@ void VM_Version::initialize() { - && _supports_atomic_getset8 && _supports_atomic_getadd8, "C2: atomic operations must be supported"); - #endif - char buf[512]; -- jio_snprintf(buf, sizeof(buf), "(ARMv%d)%s%s%s", -+ jio_snprintf(buf, sizeof(buf), "(ARMv%d)%s%s%s%s", - _arm_arch, - (has_vfp() ? ", vfp" : ""), - (has_vfp3_32() ? ", vfp3-32" : ""), -- (has_simd() ? ", simd" : "")); -+ (has_simd() ? ", simd" : ""), -+ (has_multiprocessing_extensions() ? ", mp_ext" : "")); - - // buf is started with ", " or is empty - _features_string = os::strdup(buf); ---- a/src/hotspot/os_cpu/linux_arm/os_linux_arm.cpp -+++ b/src/hotspot/os_cpu/linux_arm/os_linux_arm.cpp -@@ -259,9 +259,11 @@ frame os::current_frame() { - #ifndef AARCH64 - extern "C" address check_vfp_fault_instr; - extern "C" address check_vfp3_32_fault_instr; -+extern "C" address check_mp_ext_fault_instr; - - address check_vfp_fault_instr = NULL; - address check_vfp3_32_fault_instr = NULL; -+address check_mp_ext_fault_instr = NULL; - #endif // !AARCH64 - extern "C" address check_simd_fault_instr; - address check_simd_fault_instr = NULL; -@@ -283,7 +285,8 @@ extern "C" int JVM_handle_linux_signal(i - if (sig == SIGILL && - ((info->si_addr == (caddr_t)check_simd_fault_instr) - NOT_AARCH64(|| info->si_addr == (caddr_t)check_vfp_fault_instr) -- NOT_AARCH64(|| info->si_addr == (caddr_t)check_vfp3_32_fault_instr))) { -+ NOT_AARCH64(|| info->si_addr == (caddr_t)check_vfp3_32_fault_instr) -+ NOT_AARCH64(|| info->si_addr == (caddr_t)check_mp_ext_fault_instr))) { - // skip faulty instruction + instruction that sets return value to - // success and set return value to failure. - os::Linux::ucontext_set_pc(uc, (address)info->si_addr + 8); diff -Nru openjdk-11-11.0.14+9/debian/patches/generated-headers.patch openjdk-11-11.0.16+8/debian/patches/generated-headers.patch --- openjdk-11-11.0.14+9/debian/patches/generated-headers.patch 2022-01-19 09:00:30.000000000 +0000 +++ openjdk-11-11.0.16+8/debian/patches/generated-headers.patch 2022-05-02 17:53:38.000000000 +0000 @@ -16,5 +16,5 @@ - CFLAGS := $(CFLAGS_JDKLIB), \ + CFLAGS := $(CFLAGS_JDKLIB) -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop, \ HEADERS_FROM_SRC := $(LIBJPEG_HEADERS_FROM_SRC), \ - DISABLED_WARNINGS_gcc := clobbered implicit-fallthrough shift-negative-value, \ + DISABLED_WARNINGS_gcc := clobbered implicit-fallthrough shift-negative-value array-bounds, \ LDFLAGS := $(LDFLAGS_JDKLIB) \ diff -Nru openjdk-11-11.0.14+9/debian/patches/hotspot-disable-exec-shield-workaround.diff openjdk-11-11.0.16+8/debian/patches/hotspot-disable-exec-shield-workaround.diff --- openjdk-11-11.0.14+9/debian/patches/hotspot-disable-exec-shield-workaround.diff 2021-07-21 05:09:12.000000000 +0000 +++ openjdk-11-11.0.16+8/debian/patches/hotspot-disable-exec-shield-workaround.diff 2022-05-02 17:53:28.000000000 +0000 @@ -1,6 +1,6 @@ --- a/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp +++ b/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp -@@ -863,7 +863,7 @@ void os::verify_stack_alignment() { +@@ -858,7 +858,7 @@ void os::verify_stack_alignment() { * updates (JDK-8023956). */ void os::workaround_expand_exec_shield_cs_limit() { diff -Nru openjdk-11-11.0.14+9/debian/patches/hotspot-libpath.diff openjdk-11-11.0.16+8/debian/patches/hotspot-libpath.diff --- openjdk-11-11.0.14+9/debian/patches/hotspot-libpath.diff 2021-10-20 09:07:11.000000000 +0000 +++ openjdk-11-11.0.16+8/debian/patches/hotspot-libpath.diff 2022-07-20 08:54:16.000000000 +0000 @@ -1,6 +1,6 @@ --- a/src/hotspot/os/linux/os_linux.cpp +++ b/src/hotspot/os/linux/os_linux.cpp -@@ -411,18 +411,22 @@ void os::init_system_properties_values() +@@ -427,18 +427,22 @@ void os::init_system_properties_values() // 1: ... // ... // 7: The default directories, normally /lib and /usr/lib. diff -Nru openjdk-11-11.0.14+9/debian/patches/icc_loading_with_symlink.diff openjdk-11-11.0.16+8/debian/patches/icc_loading_with_symlink.diff --- openjdk-11-11.0.14+9/debian/patches/icc_loading_with_symlink.diff 2021-07-21 05:09:12.000000000 +0000 +++ openjdk-11-11.0.16+8/debian/patches/icc_loading_with_symlink.diff 2022-07-20 08:54:16.000000000 +0000 @@ -1,6 +1,6 @@ --- a/src/java.desktop/share/classes/java/awt/color/ICC_Profile.java +++ b/src/java.desktop/share/classes/java/awt/color/ICC_Profile.java -@@ -1816,9 +1816,6 @@ public class ICC_Profile implements Seri +@@ -1753,9 +1753,6 @@ public class ICC_Profile implements Seri dir = st.nextToken(); fullPath = dir + File.separatorChar + fileName; f = new File(fullPath); @@ -10,7 +10,7 @@ } } -@@ -1858,26 +1855,6 @@ public class ICC_Profile implements Seri +@@ -1795,26 +1792,6 @@ public class ICC_Profile implements Seri } /** diff -Nru openjdk-11-11.0.14+9/debian/patches/jaw-classpath.diff openjdk-11-11.0.16+8/debian/patches/jaw-classpath.diff --- openjdk-11-11.0.14+9/debian/patches/jaw-classpath.diff 2022-01-19 09:00:37.000000000 +0000 +++ openjdk-11-11.0.16+8/debian/patches/jaw-classpath.diff 2022-07-20 08:54:16.000000000 +0000 @@ -2,7 +2,7 @@ --- a/src/hotspot/os/linux/os_linux.cpp +++ b/src/hotspot/os/linux/os_linux.cpp -@@ -465,6 +465,7 @@ void os::init_system_properties_values() +@@ -481,6 +481,7 @@ void os::init_system_properties_values() } Arguments::set_java_home(buf); set_boot_path('/', ':'); diff -Nru openjdk-11-11.0.14+9/debian/patches/jdk-getAccessibleValue.diff openjdk-11-11.0.16+8/debian/patches/jdk-getAccessibleValue.diff --- openjdk-11-11.0.14+9/debian/patches/jdk-getAccessibleValue.diff 2021-07-21 05:09:12.000000000 +0000 +++ openjdk-11-11.0.16+8/debian/patches/jdk-getAccessibleValue.diff 2022-07-20 08:54:16.000000000 +0000 @@ -79,7 +79,7 @@ --- a/src/java.desktop/share/classes/javax/swing/JTable.java +++ b/src/java.desktop/share/classes/javax/swing/JTable.java -@@ -8344,7 +8344,12 @@ public class JTable extends JComponent i +@@ -9165,7 +9165,12 @@ public class JTable extends JComponent i * @return the AccessibleAction, or null */ public AccessibleAction getAccessibleAction() { @@ -93,7 +93,7 @@ } /** -@@ -8366,7 +8371,12 @@ public class JTable extends JComponent i +@@ -9187,7 +9192,12 @@ public class JTable extends JComponent i * null */ public AccessibleSelection getAccessibleSelection() { @@ -107,7 +107,7 @@ } /** -@@ -8376,7 +8386,12 @@ public class JTable extends JComponent i +@@ -9197,7 +9207,12 @@ public class JTable extends JComponent i * @return the AccessibleText, or null */ public AccessibleText getAccessibleText() { @@ -121,63 +121,7 @@ } /** -@@ -8386,7 +8401,12 @@ public class JTable extends JComponent i - * @return the AccessibleValue, or null - */ - public AccessibleValue getAccessibleValue() { -- return getCurrentAccessibleContext().getAccessibleValue(); -+ AccessibleContext ac = getCurrentAccessibleContext(); -+ if (ac != null) { -+ return ac.getAccessibleValue(); -+ } else { -+ return null; -+ } - } - - -@@ -9146,7 +9166,12 @@ public class JTable extends JComponent i - * @return the AccessibleAction, or null - */ - public AccessibleAction getAccessibleAction() { -- return getCurrentAccessibleContext().getAccessibleAction(); -+ AccessibleContext ac = getCurrentAccessibleContext(); -+ if (ac != null) { -+ return ac.getAccessibleAction(); -+ } else { -+ return null; -+ } - } - - /** -@@ -9168,7 +9193,12 @@ public class JTable extends JComponent i - * null - */ - public AccessibleSelection getAccessibleSelection() { -- return getCurrentAccessibleContext().getAccessibleSelection(); -+ AccessibleContext ac = getCurrentAccessibleContext(); -+ if (ac != null) { -+ return ac.getAccessibleSelection(); -+ } else { -+ return null; -+ } - } - - /** -@@ -9178,7 +9208,12 @@ public class JTable extends JComponent i - * @return the AccessibleText, or null - */ - public AccessibleText getAccessibleText() { -- return getCurrentAccessibleContext().getAccessibleText(); -+ AccessibleContext ac = getCurrentAccessibleContext(); -+ if (ac != null) { -+ return ac.getAccessibleText(); -+ } else { -+ return null; -+ } - } - - /** -@@ -9188,7 +9223,12 @@ public class JTable extends JComponent i +@@ -9207,7 +9222,12 @@ public class JTable extends JComponent i * @return the AccessibleValue, or null */ public AccessibleValue getAccessibleValue() { diff -Nru openjdk-11-11.0.14+9/debian/patches/jtreg-location.diff openjdk-11-11.0.16+8/debian/patches/jtreg-location.diff --- openjdk-11-11.0.14+9/debian/patches/jtreg-location.diff 2022-01-19 08:55:39.000000000 +0000 +++ openjdk-11-11.0.16+8/debian/patches/jtreg-location.diff 2022-07-20 08:54:16.000000000 +0000 @@ -1,6 +1,6 @@ --- a/make/autoconf/toolchain.m4 +++ b/make/autoconf/toolchain.m4 -@@ -1115,7 +1115,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_JTREG], +@@ -1137,7 +1137,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_JTREG], AC_MSG_ERROR([jtreg home directory from --with-jtreg=$with_jtreg does not exist]) fi @@ -9,7 +9,7 @@ AC_MSG_ERROR([jtreg home directory from --with-jtreg=$with_jtreg is not a valid jtreg home]) fi -@@ -1134,7 +1134,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_JTREG], +@@ -1156,7 +1156,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_JTREG], AC_MSG_WARN([Ignoring JT_HOME pointing to invalid directory: $JT_HOME]) JT_HOME= else @@ -18,7 +18,7 @@ AC_MSG_WARN([Ignoring JT_HOME which is not a valid jtreg home: $JT_HOME]) JT_HOME= elif test ! -x "$JT_HOME/bin/jtreg"; then -@@ -1154,7 +1154,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_JTREG], +@@ -1176,7 +1176,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_JTREG], if test "x$JTREGEXE" != x; then # That's good, now try to derive JT_HOME JT_HOME=`(cd $($DIRNAME $JTREGEXE)/.. && pwd)` @@ -29,7 +29,7 @@ JTREGEXE= --- a/make/RunTests.gmk +++ b/make/RunTests.gmk -@@ -743,7 +743,7 @@ define SetupRunJtregTestBody +@@ -752,7 +752,7 @@ define SetupRunJtregTestBody $1_COMMAND_LINE := \ $$(JAVA) $$($1_JTREG_LAUNCHER_OPTIONS) \ diff -Nru openjdk-11-11.0.14+9/debian/patches/machine-flag.diff openjdk-11-11.0.16+8/debian/patches/machine-flag.diff --- openjdk-11-11.0.14+9/debian/patches/machine-flag.diff 2021-07-21 05:09:12.000000000 +0000 +++ openjdk-11-11.0.16+8/debian/patches/machine-flag.diff 2022-05-02 17:53:22.000000000 +0000 @@ -1,14 +1,14 @@ --- a/make/autoconf/flags.m4 +++ b/make/autoconf/flags.m4 -@@ -256,6 +256,7 @@ AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN], +@@ -262,6 +262,7 @@ AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN], test "x$OPENJDK_TARGET_CPU_ARCH" = xppc; then MACHINE_FLAG="-m${OPENJDK_TARGET_CPU_BITS}" fi + case "$host" in *x32) MACHINE_FLAG=;; esac fi - # FIXME: global flags are not used yet... -@@ -330,11 +331,8 @@ AC_DEFUN([FLAGS_SETUP_TOOLCHAIN_CONTROL] + if test "x$OPENJDK_TARGET_OS" = xmacosx; then +@@ -344,11 +345,8 @@ AC_DEFUN([FLAGS_SETUP_TOOLCHAIN_CONTROL] AC_SUBST(COMPILER_COMMAND_FILE_FLAG) AC_SUBST(COMPILER_BINDCMD_FILE_FLAG) diff -Nru openjdk-11-11.0.14+9/debian/patches/multiple-pkcs11-library-init.diff openjdk-11-11.0.16+8/debian/patches/multiple-pkcs11-library-init.diff --- openjdk-11-11.0.14+9/debian/patches/multiple-pkcs11-library-init.diff 2022-01-19 09:00:09.000000000 +0000 +++ openjdk-11-11.0.16+8/debian/patches/multiple-pkcs11-library-init.diff 2022-05-02 17:53:07.000000000 +0000 @@ -26,7 +26,7 @@ } --- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java +++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java -@@ -174,26 +174,37 @@ public final class SunPKCS11 extends Aut +@@ -176,26 +176,37 @@ public final class SunPKCS11 extends Aut String nssLibraryDirectory = config.getNssLibraryDirectory(); String nssSecmodDirectory = config.getNssSecmodDirectory(); boolean nssOptimizeSpace = config.getNssOptimizeSpace(); diff -Nru openjdk-11-11.0.14+9/debian/patches/riscv64.diff openjdk-11-11.0.16+8/debian/patches/riscv64.diff --- openjdk-11-11.0.14+9/debian/patches/riscv64.diff 2022-01-19 08:59:38.000000000 +0000 +++ openjdk-11-11.0.16+8/debian/patches/riscv64.diff 2022-07-20 08:54:16.000000000 +0000 @@ -9,7 +9,7 @@ --- a/make/autoconf/build-aux/config.guess +++ b/make/autoconf/build-aux/config.guess -@@ -27,6 +27,13 @@ +@@ -28,6 +28,13 @@ # autoconf system (which might easily get lost in a future update), we wrap it # and fix the broken property, if needed. @@ -25,9 +25,9 @@ --- a/make/autoconf/build-aux/config.sub +++ b/make/autoconf/build-aux/config.sub -@@ -29,8 +29,8 @@ - - DIR=`dirname $0` +@@ -34,8 +34,8 @@ if echo $* | grep linux-musl >/dev/null + exit + fi -# First, filter out everything that doesn't begin with "aarch64-" -if ! echo $* | grep '^aarch64-' >/dev/null ; then @@ -36,7 +36,7 @@ . $DIR/autoconf-config.sub "$@" # autoconf-config.sub exits, so we never reach here, but just in # case we do: -@@ -45,6 +45,10 @@ while test $# -gt 0 ; do +@@ -50,6 +50,10 @@ while test $# -gt 0 ; do config=`echo $1 | sed 's/^aarch64-/arm-/'` sub_args="$sub_args $config" shift; ;; @@ -47,7 +47,7 @@ - ) # Use stdin as input. sub_args="$sub_args $1" shift; break ;; -@@ -57,7 +61,7 @@ done +@@ -62,7 +66,7 @@ done result=`. $DIR/autoconf-config.sub $sub_args "$@"` exitcode=$? diff -Nru openjdk-11-11.0.14+9/debian/patches/s390x-opt.diff openjdk-11-11.0.16+8/debian/patches/s390x-opt.diff --- openjdk-11-11.0.14+9/debian/patches/s390x-opt.diff 2022-01-19 09:00:13.000000000 +0000 +++ openjdk-11-11.0.16+8/debian/patches/s390x-opt.diff 2022-07-20 08:54:16.000000000 +0000 @@ -1,6 +1,6 @@ --- a/make/autoconf/flags-cflags.m4 +++ b/make/autoconf/flags-cflags.m4 -@@ -747,6 +747,9 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP], +@@ -756,6 +756,9 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP], fi elif test "x$FLAGS_CPU" = xs390x; then $1_CFLAGS_CPU="-mbackchain -march=z10" diff -Nru openjdk-11-11.0.14+9/debian/patches/series openjdk-11-11.0.16+8/debian/patches/series --- openjdk-11-11.0.14+9/debian/patches/series 2021-10-20 09:10:19.000000000 +0000 +++ openjdk-11-11.0.16+8/debian/patches/series 2022-05-02 17:51:40.000000000 +0000 @@ -43,5 +43,4 @@ reproducible-copyright-headers.diff reproducible-build-user.diff reproducible-build-jmod.diff -8222825.diff 8262085.diff diff -Nru openjdk-11-11.0.14+9/debian/patches/system-pcsclite.diff openjdk-11-11.0.16+8/debian/patches/system-pcsclite.diff --- openjdk-11-11.0.14+9/debian/patches/system-pcsclite.diff 2022-01-19 08:59:59.000000000 +0000 +++ openjdk-11-11.0.16+8/debian/patches/system-pcsclite.diff 2022-07-20 08:54:16.000000000 +0000 @@ -52,7 +52,7 @@ +]) --- a/make/autoconf/spec.gmk.in +++ b/make/autoconf/spec.gmk.in -@@ -758,6 +758,7 @@ ENABLE_AOT:=@ENABLE_AOT@ +@@ -768,6 +768,7 @@ ENABLE_AOT:=@ENABLE_AOT@ ENABLE_INTREE_EC:=@ENABLE_INTREE_EC@ USE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@ USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@ diff -Nru openjdk-11-11.0.14+9/debian/patches/workaround_expand_exec_shield_cs_limit.diff openjdk-11-11.0.16+8/debian/patches/workaround_expand_exec_shield_cs_limit.diff --- openjdk-11-11.0.14+9/debian/patches/workaround_expand_exec_shield_cs_limit.diff 2021-07-21 05:09:12.000000000 +0000 +++ openjdk-11-11.0.16+8/debian/patches/workaround_expand_exec_shield_cs_limit.diff 2022-05-02 17:53:03.000000000 +0000 @@ -1,6 +1,6 @@ --- a/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp +++ b/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp -@@ -863,7 +863,7 @@ void os::verify_stack_alignment() { +@@ -858,7 +858,7 @@ void os::verify_stack_alignment() { * updates (JDK-8023956). */ void os::workaround_expand_exec_shield_cs_limit() { diff -Nru openjdk-11-11.0.14+9/debian/patches/zero-x32.diff openjdk-11-11.0.16+8/debian/patches/zero-x32.diff --- openjdk-11-11.0.14+9/debian/patches/zero-x32.diff 2022-01-19 09:00:23.000000000 +0000 +++ openjdk-11-11.0.16+8/debian/patches/zero-x32.diff 2022-07-20 08:54:16.000000000 +0000 @@ -1,6 +1,6 @@ --- a/src/hotspot/os/linux/os_linux.cpp +++ b/src/hotspot/os/linux/os_linux.cpp -@@ -1872,7 +1872,7 @@ void * os::dll_load(const char *filename +@@ -1906,7 +1906,7 @@ void * os::dll_load(const char *filename #if (defined IA32) static Elf32_Half running_arch_code=EM_386; @@ -22,7 +22,7 @@ ;; i?86) VAR_CPU=x86 -@@ -504,6 +508,8 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS_HEL +@@ -546,6 +550,8 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS_HEL HOTSPOT_$1_CPU_DEFINE=IA32 elif test "x$OPENJDK_$1_CPU" = xx86_64; then HOTSPOT_$1_CPU_DEFINE=AMD64 diff -Nru openjdk-11-11.0.14+9/debian/rules openjdk-11-11.0.16+8/debian/rules --- openjdk-11-11.0.14+9/debian/rules 2022-01-19 09:38:13.000000000 +0000 +++ openjdk-11-11.0.16+8/debian/rules 2022-07-20 08:54:16.000000000 +0000 @@ -1845,10 +1845,8 @@ dh_builddeb -a $(nodemo) $(nojrez) #$(bd_options) is_release = yes -hg_project = jdk11u -hg_tag = jdk-11.0.12+7 git_project = jdk11u -git_tag = jdk-11.0.14+9 +git_tag = jdk-11.0.16+8 package_version = $(subst jdk-,,$(git_tag)) package_version = $(shell echo $(PKGVERSION) | sed 's/-[^-][^-]*$$//') ifneq ($(is_release),yes) diff -Nru openjdk-11-11.0.14+9/debian/watch openjdk-11-11.0.16+8/debian/watch --- openjdk-11-11.0.14+9/debian/watch 2021-07-21 05:09:12.000000000 +0000 +++ openjdk-11-11.0.16+8/debian/watch 2022-07-20 08:54:16.000000000 +0000 @@ -1,4 +1,4 @@ version=4 -opts="pagemangle=s{\s*(jdk-11\.[^<\s]*)}{$1}g" \ -https://hg.openjdk.java.net/jdk-updates/jdk11u/tags \ -.*/jdk-([0-9.]*\+[0-9]*).tar.gz +opts="filenamemangle=s%(?:.*?)?jdk-(\d[\d.]*\+\d[\d]*)\.tar\.gz%-$1.tar.gz%, dversionmangle=s/~/+/" \ + https://github.com/openjdk/jdk11u-dev/tags \ + (?:.*?/)?jdk-(\d[\d.]*\+\d[\d]*)\.tar\.gz debian uupdate diff -Nru openjdk-11-11.0.14+9/doc/building.html openjdk-11-11.0.16+8/doc/building.html --- openjdk-11-11.0.14+9/doc/building.html 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/doc/building.html 2022-07-16 20:06:34.000000000 +0000 @@ -73,8 +73,9 @@
  • Specifying the Target Platform
  • Toolchain Considerations
  • Native Libraries
  • -
  • Creating And Using Sysroots With qemu-deboostrap
  • +
  • Cross compiling with Debian sysroots
  • Building for ARM/aarch64
  • +
  • Building for musl
  • Verifying the Build
  • Build Performance
      @@ -224,6 +225,8 @@
      sudo apt-get install build-essential

      For rpm-based distributions (Fedora, Red Hat, etc), try this:

      sudo yum groupinstall "Development Tools"
      +

      For Alpine Linux, aside from basic tooling, install the GNU versions of some programs:

      +
      sudo apk add build-base bash grep zip

      AIX

      The regular builds by SAP is using AIX version 7.1, but AIX 5.3 is also supported. See the OpenJDK PowerPC Port Status Page for details.

      Native Compiler (Toolchain) Requirements

      @@ -380,6 +383,7 @@
      • To install on an apt-based Linux, try running sudo apt-get install libfreetype6-dev.
      • To install on an rpm-based Linux, try running sudo yum install freetype-devel.
      • +
      • To install on Alpine Linux, try running sudo apk add freetype-dev.
      • To install on Solaris, try running pkg install system/library/freetype-2.

      Use --with-freetype-include=<path> and --with-freetype-lib=<path> if configure does not automatically locate the platform FreeType files.

      @@ -388,6 +392,7 @@
      • To install on an apt-based Linux, try running sudo apt-get install libcups2-dev.
      • To install on an rpm-based Linux, try running sudo yum install cups-devel.
      • +
      • To install on Alpine Linux, try running sudo apk add cups-dev.
      • To install on Solaris, try running pkg install print/cups.

      Use --with-cups=<path> if configure does not properly locate your CUPS files.

      @@ -396,6 +401,7 @@
      • To install on an apt-based Linux, try running sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev.
      • To install on an rpm-based Linux, try running sudo yum install libXtst-devel libXt-devel libXrender-devel libXi-devel.
      • +
      • To install on Alpine Linux, try running sudo apk add libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev.
      • To install on Solaris, try running pkg install x11/header/x11-protocols x11/library/libice x11/library/libpthread-stubs x11/library/libsm x11/library/libx11 x11/library/libxau x11/library/libxcb x11/library/libxdmcp x11/library/libxevie x11/library/libxext x11/library/libxrender x11/library/libxscrnsaver x11/library/libxtst x11/library/toolkit/libxt.

      Use --with-x=<path> if configure does not properly locate your X11 files.

      @@ -404,6 +410,7 @@
      • To install on an apt-based Linux, try running sudo apt-get install libasound2-dev.
      • To install on an rpm-based Linux, try running sudo yum install alsa-lib-devel.
      • +
      • To install on Alpine Linux, try running sudo apk add alsa-lib-dev.

      Use --with-alsa=<path> if configure does not properly locate your ALSA files.

      libffi

      @@ -411,6 +418,7 @@
      • To install on an apt-based Linux, try running sudo apt-get install libffi-dev.
      • To install on an rpm-based Linux, try running sudo yum install libffi-devel.
      • +
      • To install on Alpine Linux, try running sudo apk add libffi-dev.

      Use --with-libffi=<path> if configure does not properly locate your libffi files.

      Build Tools Requirements

      @@ -419,6 +427,7 @@
      • To install on an apt-based Linux, try running sudo apt-get install autoconf.
      • To install on an rpm-based Linux, try running sudo yum install autoconf.
      • +
      • To install on Alpine Linux, try running sudo apk add autoconf.
      • To install on macOS, try running brew install autoconf.
      • To install on Windows, try running <path to Cygwin setup>/setup-x86_64 -q -P autoconf.
      @@ -679,7 +688,7 @@ cp: cannot stat `arm-linux-gnueabihf/libXt.so': No such file or directory
    • If the X11 libraries are not properly detected by configure, you can point them out by --with-x.

    -

    Creating And Using Sysroots With qemu-deboostrap

    +

    Cross compiling with Debian sysroots

    Fortunately, you can create sysroots for foreign architectures with tools provided by your OS. On Debian/Ubuntu systems, one could use qemu-deboostrap to create the target system chroot, which would have the native libraries and headers specific to that target system. After that, we can use the cross-compiler on the build system, pointing into chroot to get the build dependencies right. This allows building for foreign architectures with native compilation speed.

    For example, cross-compiling to AArch64 from x86_64 could be done like this:

      @@ -689,7 +698,7 @@
      sudo qemu-debootstrap \
         --arch=arm64 \
         --verbose \
      -  --include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev \
      +  --include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev,libffi-dev \
         --resolve-deps \
         buster \
         ~/sysroot-arm64 \
      @@ -697,70 +706,137 @@
       
    • Make sure the symlinks inside the newly created chroot point to proper locations:

      sudo chroot ~/sysroot-arm64 symlinks -cr .
    • Configure and build with newly created chroot as sysroot/toolchain-path:

      -
      CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ sh ./configure \
      - --openjdk-target=aarch64-linux-gnu \
      - --with-sysroot=~/sysroot-arm64 \
      - --with-toolchain-path=~/sysroot-arm64 \
      - --with-freetype-lib=~/sysroot-arm64/usr/lib/aarch64-linux-gnu/ \
      - --with-freetype-include=~/sysroot-arm64/usr/include/freetype2/ \
      - --x-libraries=~/sysroot-arm64/usr/lib/aarch64-linux-gnu/
      +
      sh ./configure \
      +  --openjdk-target=aarch64-linux-gnu \
      +  --with-sysroot=~/sysroot-arm64
       make images
       ls build/linux-aarch64-normal-server-release/

    The build does not create new files in that chroot, so it can be reused for multiple builds without additional cleanup.

    +

    The build system should automatically detect the toolchain paths and dependencies, but sometimes it might require a little nudge with:

    +
      +
    • Native compilers: override CC or CXX for ./configure

    • +
    • Freetype lib location: override --with-freetype-lib, for example ${sysroot}/usr/lib/${target}/

    • +
    • Freetype includes location: override --with-freetype-include for example ${sysroot}/usr/include/freetype2/

    • +
    • X11 libraries location: override --x-libraries, for example ${sysroot}/usr/lib/${target}/

    • +

    Architectures that are known to successfully cross-compile like this are:

    - - - - + + + + - - - - + + + + + + - - - - + + - - - - + + + + + + - - - - + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TargetCCCXX--arch=...--openjdk-target=...Debian treeDebian arch--openjdk-target=...--with-jvm-variants=...
    x86defaultdefaulti386i386-linux-gnubusteri386i386-linux-gnu(all)
    armbuster armhfgcc-arm-linux-gnueabihfg++-arm-linux-gnueabihfarmhfarm-linux-gnueabihfarm-linux-gnueabihf(all)
    aarch64gcc-aarch64-linux-gnug++-aarch64-linux-gnuarm64aarch64-linux-gnubusterarm64aarch64-linux-gnu(all)
    ppc64lebuster ppc64elgcc-powerpc64le-linux-gnug++-powerpc64le-linux-gnuppc64elpowerpc64le-linux-gnupowerpc64le-linux-gnu(all)
    s390xgcc-s390x-linux-gnug++-s390x-linux-gnus390xs390x-linux-gnubusters390xs390x-linux-gnu(all)
    mipslebustermipselmipsel-linux-gnuzero
    mips64lebustermips64elmips64el-linux-gnueabi64zero
    armelbusterarmarm-linux-gnueabizero
    ppcsidpowerpcpowerpc-linux-gnuzero
    ppc64besidppc64powerpc64-linux-gnu(all)
    m68ksidm68km68k-linux-gnuzero
    alphasidalphaalpha-linux-gnuzero
    sh4sidsh4sh4-linux-gnuzero
    -

    Additional architectures might be supported by Debian/Ubuntu Ports.

    Building for ARM/aarch64

    A common cross-compilation target is the ARM CPU. When building for ARM, it is useful to set the ABI profile. A number of pre-defined ABI profiles are available using --with-abi-profile: arm-vfp-sflt, arm-vfp-hflt, arm-sflt, armv5-vfp-sflt, armv6-vfp-hflt. Note that soft-float ABIs are no longer properly supported by the JDK.

    The JDK contains two different ports for the aarch64 platform, one is the original aarch64 port from the AArch64 Port Project and one is a 64-bit version of the Oracle contributed ARM port. When targeting aarch64, by the default the original aarch64 port is used. To select the Oracle ARM 64 port, use --with-cpu-port=arm64. Also set the corresponding value (aarch64 or arm64) to --with-abi-profile, to ensure a consistent build.

    +

    Building for musl

    +

    Just like it's possible to cross-compile for a different CPU, it's possible to cross-compile for musl libc on a glibc-based build system. A devkit suitable for most target CPU architectures can be obtained from musl.cc. After installing the required packages in the sysroot, configure the build with --openjdk-target:

    +
    sh ./configure --with-jvm-variants=server \
    +--with-boot-jdk=$BOOT_JDK \
    +--with-build-jdk=$BUILD_JDK \
    +--openjdk-target=x86_64-unknown-linux-musl \
    +--with-devkit=$DEVKIT \
    +--with-sysroot=$SYSROOT
    +

    and run make normally.

    Verifying the Build

    The build will end up in a directory named like build/linux-arm-normal-server-release.

    Inside this build output directory, the images/jdk will contain the newly built JDK, for your target system.

    diff -Nru openjdk-11-11.0.14+9/doc/building.md openjdk-11-11.0.16+8/doc/building.md --- openjdk-11-11.0.14+9/doc/building.md 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/doc/building.md 2022-07-16 20:06:34.000000000 +0000 @@ -272,6 +272,13 @@ sudo yum groupinstall "Development Tools" ``` +For Alpine Linux, aside from basic tooling, install the GNU versions of some +programs: + +``` +sudo apk add build-base bash grep zip +``` + ### AIX The regular builds by SAP is using AIX version 7.1, but AIX 5.3 is also @@ -465,6 +472,7 @@ libfreetype6-dev`. * To install on an rpm-based Linux, try running `sudo yum install freetype-devel`. + * To install on Alpine Linux, try running `sudo apk add freetype-dev`. * To install on Solaris, try running `pkg install system/library/freetype-2`. Use `--with-freetype-include=` and `--with-freetype-lib=` @@ -480,6 +488,7 @@ libcups2-dev`. * To install on an rpm-based Linux, try running `sudo yum install cups-devel`. + * To install on Alpine Linux, try running `sudo apk add cups-dev`. * To install on Solaris, try running `pkg install print/cups`. Use `--with-cups=` if `configure` does not properly locate your CUPS @@ -494,6 +503,8 @@ libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev`. * To install on an rpm-based Linux, try running `sudo yum install libXtst-devel libXt-devel libXrender-devel libXi-devel`. + * To install on Alpine Linux, try running `sudo apk add libx11-dev + libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev`. * To install on Solaris, try running `pkg install x11/header/x11-protocols x11/library/libice x11/library/libpthread-stubs x11/library/libsm x11/library/libx11 x11/library/libxau x11/library/libxcb @@ -512,6 +523,7 @@ libasound2-dev`. * To install on an rpm-based Linux, try running `sudo yum install alsa-lib-devel`. + * To install on Alpine Linux, try running `sudo apk add alsa-lib-dev`. Use `--with-alsa=` if `configure` does not properly locate your ALSA files. @@ -526,6 +538,7 @@ libffi-dev`. * To install on an rpm-based Linux, try running `sudo yum install libffi-devel`. + * To install on Alpine Linux, try running `sudo apk add libffi-dev`. Use `--with-libffi=` if `configure` does not properly locate your libffi files. @@ -541,6 +554,7 @@ autoconf`. * To install on an rpm-based Linux, try running `sudo yum install autoconf`. + * To install on Alpine Linux, try running `sudo apk add autoconf`. * To install on macOS, try running `brew install autoconf`. * To install on Windows, try running `/setup-x86_64 -q -P autoconf`. @@ -1088,7 +1102,7 @@ * If the X11 libraries are not properly detected by `configure`, you can point them out by `--with-x`. -### Creating And Using Sysroots With qemu-deboostrap +### Cross compiling with Debian sysroots Fortunately, you can create sysroots for foreign architectures with tools provided by your OS. On Debian/Ubuntu systems, one could use `qemu-deboostrap` to @@ -1109,7 +1123,7 @@ sudo qemu-debootstrap \ --arch=arm64 \ --verbose \ - --include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev \ + --include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev,libffi-dev \ --resolve-deps \ buster \ ~/sysroot-arm64 \ @@ -1123,13 +1137,9 @@ * Configure and build with newly created chroot as sysroot/toolchain-path: ``` - CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ sh ./configure \ - --openjdk-target=aarch64-linux-gnu \ - --with-sysroot=~/sysroot-arm64 \ - --with-toolchain-path=~/sysroot-arm64 \ - --with-freetype-lib=~/sysroot-arm64/usr/lib/aarch64-linux-gnu/ \ - --with-freetype-include=~/sysroot-arm64/usr/include/freetype2/ \ - --x-libraries=~/sysroot-arm64/usr/lib/aarch64-linux-gnu/ + sh ./configure \ + --openjdk-target=aarch64-linux-gnu \ + --with-sysroot=~/sysroot-arm64 make images ls build/linux-aarch64-normal-server-release/ ``` @@ -1137,17 +1147,34 @@ The build does not create new files in that chroot, so it can be reused for multiple builds without additional cleanup. -Architectures that are known to successfully cross-compile like this are: +The build system should automatically detect the toolchain paths and dependencies, but sometimes +it might require a little nudge with: + + * Native compilers: override `CC` or `CXX` for `./configure` + + * Freetype lib location: override `--with-freetype-lib`, for example `${sysroot}/usr/lib/${target}/` + + * Freetype includes location: override `--with-freetype-include` for example `${sysroot}/usr/include/freetype2/` - Target `CC` `CXX` `--arch=...` `--openjdk-target=...` - ------------ ------------------------- --------------------------- ------------ ---------------------- - x86 default default i386 i386-linux-gnu - armhf gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf armhf arm-linux-gnueabihf - aarch64 gcc-aarch64-linux-gnu g++-aarch64-linux-gnu arm64 aarch64-linux-gnu - ppc64el gcc-powerpc64le-linux-gnu g++-powerpc64le-linux-gnu ppc64el powerpc64le-linux-gnu - s390x gcc-s390x-linux-gnu g++-s390x-linux-gnu s390x s390x-linux-gnu + * X11 libraries location: override `--x-libraries`, for example `${sysroot}/usr/lib/${target}/` -Additional architectures might be supported by Debian/Ubuntu Ports. +Architectures that are known to successfully cross-compile like this are: + + Target Debian tree Debian arch `--openjdk-target=...` `--with-jvm-variants=...` + ------------ ------------ ------------- ------------------------ -------------- + x86 buster i386 i386-linux-gnu (all) + arm buster armhf arm-linux-gnueabihf (all) + aarch64 buster arm64 aarch64-linux-gnu (all) + ppc64le buster ppc64el powerpc64le-linux-gnu (all) + s390x buster s390x s390x-linux-gnu (all) + mipsle buster mipsel mipsel-linux-gnu zero + mips64le buster mips64el mips64el-linux-gnueabi64 zero + armel buster arm arm-linux-gnueabi zero + ppc sid powerpc powerpc-linux-gnu zero + ppc64be sid ppc64 powerpc64-linux-gnu (all) + m68k sid m68k m68k-linux-gnu zero + alpha sid alpha alpha-linux-gnu zero + sh4 sid sh4 sh4-linux-gnu zero ### Building for ARM/aarch64 @@ -1165,6 +1192,25 @@ `--with-cpu-port=arm64`. Also set the corresponding value (`aarch64` or `arm64`) to --with-abi-profile, to ensure a consistent build. +### Building for musl + +Just like it's possible to cross-compile for a different CPU, it's possible to +cross-compile for musl libc on a glibc-based *build* system. +A devkit suitable for most target CPU architectures can be obtained from +[musl.cc](https://musl.cc). After installing the required packages in the +sysroot, configure the build with `--openjdk-target`: + +``` +sh ./configure --with-jvm-variants=server \ +--with-boot-jdk=$BOOT_JDK \ +--with-build-jdk=$BUILD_JDK \ +--openjdk-target=x86_64-unknown-linux-musl \ +--with-devkit=$DEVKIT \ +--with-sysroot=$SYSROOT +``` + +and run `make` normally. + ### Verifying the Build The build will end up in a directory named like diff -Nru openjdk-11-11.0.14+9/doc/testing.html openjdk-11-11.0.16+8/doc/testing.html --- openjdk-11-11.0.14+9/doc/testing.html 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/doc/testing.html 2022-07-16 20:06:34.000000000 +0000 @@ -157,7 +157,9 @@

    AOT_MODULES

    Generate AOT modules before testing for the specified module, or set of modules. If multiple modules are specified, they should be separated by space (or, to help avoid quoting issues, the special value %20).

    RETRY_COUNT

    -

    Retry failed tests up to a set number of times. Defaults to 0.

    +

    Retry failed tests up to a set number of times, until they pass. This allows to pass the tests with intermittent failures. Defaults to 0.

    +

    REPEAT_COUNT

    +

    Repeat the tests up to a set number of times, stopping at first failure. This helps to reproduce intermittent test failures. Defaults to 0.

    Gtest keywords

    REPEAT

    The number of times to repeat the tests (--gtest_repeat).

    diff -Nru openjdk-11-11.0.14+9/doc/testing.md openjdk-11-11.0.16+8/doc/testing.md --- openjdk-11-11.0.14+9/doc/testing.md 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/doc/testing.md 2022-07-16 20:06:34.000000000 +0000 @@ -317,7 +317,15 @@ #### RETRY_COUNT -Retry failed tests up to a set number of times. Defaults to 0. +Retry failed tests up to a set number of times, until they pass. +This allows to pass the tests with intermittent failures. +Defaults to 0. + +#### REPEAT_COUNT + +Repeat the tests up to a set number of times, stopping at first failure. +This helps to reproduce intermittent test failures. +Defaults to 0. ### Gtest keywords diff -Nru openjdk-11-11.0.14+9/make/ReleaseFile.gmk openjdk-11-11.0.16+8/make/ReleaseFile.gmk --- openjdk-11-11.0.14+9/make/ReleaseFile.gmk 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/ReleaseFile.gmk 2022-07-16 20:06:34.000000000 +0000 @@ -53,6 +53,7 @@ $(call info-file-item, "JAVA_VERSION_DATE", "$(VERSION_DATE)") $(call info-file-item, "OS_NAME", "$(RELEASE_FILE_OS_NAME)") $(call info-file-item, "OS_ARCH", "$(RELEASE_FILE_OS_ARCH)") + $(call info-file-item, "LIBC", "$(RELEASE_FILE_LIBC)") endef # Param 1 - The file containing the MODULES list diff -Nru openjdk-11-11.0.14+9/make/RunTests.gmk openjdk-11-11.0.16+8/make/RunTests.gmk --- openjdk-11-11.0.14+9/make/RunTests.gmk 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/RunTests.gmk 2022-07-16 20:06:34.000000000 +0000 @@ -276,7 +276,7 @@ $(eval $(call ParseKeywordVariable, JTREG, \ SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR TEST_MODE ASSERT VERBOSE RETAIN \ - MAX_MEM RETRY_COUNT, \ + MAX_MEM RETRY_COUNT REPEAT_COUNT, \ STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS KEYWORDS \ EXTRA_PROBLEM_LISTS AOT_MODULES, \ )) @@ -652,6 +652,15 @@ JTREG_VERBOSE ?= fail,error,summary JTREG_RETAIN ?= fail,error JTREG_RETRY_COUNT ?= 0 + JTREG_REPEAT_COUNT ?= 0 + + ifneq ($$(JTREG_RETRY_COUNT), 0) + ifneq ($$(JTREG_REPEAT_COUNT), 0) + $$(info Error: Cannot use both JTREG_RETRY_COUNT and JTREG_REPEAT_COUNT together.) + $$(info Please choose one or the other.) + $$(error Cannot continue) + endif + endif ifneq ($$($1_JTREG_MAX_MEM), 0) $1_JTREG_BASIC_OPTIONS += -vmoption:-Xmx$$($1_JTREG_MAX_MEM) @@ -771,6 +780,18 @@ done endif + ifneq ($$(JTREG_REPEAT_COUNT), 0) + $1_COMMAND_LINE := \ + for i in {1..$$(JTREG_REPEAT_COUNT)}; do \ + $$(PRINTF) "\nRepeating Jtreg run: $$$$i out of $$(JTREG_REPEAT_COUNT)\n"; \ + $$($1_COMMAND_LINE); \ + if [ "`$$(CAT) $$($1_EXITCODE)`" != "0" ]; then \ + $$(PRINTF) "\nFailures detected, no more repeats.\n"; \ + break; \ + fi; \ + done + endif + run-test-$1: clean-workdir-$1 $$($1_AOT_TARGETS) $$(call LogWarn) $$(call LogWarn, Running test '$$($1_TEST)') diff -Nru openjdk-11-11.0.14+9/make/RunTestsPrebuilt.gmk openjdk-11-11.0.16+8/make/RunTestsPrebuilt.gmk --- openjdk-11-11.0.14+9/make/RunTestsPrebuilt.gmk 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/RunTestsPrebuilt.gmk 2022-07-16 20:06:34.000000000 +0000 @@ -230,7 +230,7 @@ NUM_CORES := $(shell /usr/sbin/sysctl -n hw.ncpu) MEMORY_SIZE := $(shell $(EXPR) `/usr/sbin/sysctl -n hw.memsize` / 1024 / 1024) else ifeq ($(OPENJDK_TARGET_OS), solaris) - NUM_CORES := $(shell LC_MESSAGES=C /usr/sbin/psrinfo -v | $(GREP) -c on-line) + NUM_CORES := $(shell /usr/sbin/psrinfo -v | $(GREP) -c on-line) MEMORY_SIZE := $(shell \ /usr/sbin/prtconf 2> /dev/null | $(GREP) "^Memory [Ss]ize" | $(AWK) '{print $$3}' \ ) diff -Nru openjdk-11-11.0.14+9/make/RunTestsPrebuiltSpec.gmk openjdk-11-11.0.16+8/make/RunTestsPrebuiltSpec.gmk --- openjdk-11-11.0.14+9/make/RunTestsPrebuiltSpec.gmk 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/RunTestsPrebuiltSpec.gmk 2022-07-16 20:06:34.000000000 +0000 @@ -27,6 +27,9 @@ # Fake minimalistic spec file for RunTestsPrebuilt.gmk. ################################################################################ +# Make sure all shell commands are executed with the C locale +export LC_ALL := C + define VerifyVariable ifeq ($$($1), ) $$(info Error: Variable $1 is missing, needed by RunTestPrebuiltSpec.gmk) diff -Nru openjdk-11-11.0.14+9/make/autoconf/basics.m4 openjdk-11-11.0.16+8/make/autoconf/basics.m4 --- openjdk-11-11.0.14+9/make/autoconf/basics.m4 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/autoconf/basics.m4 2022-07-16 20:06:34.000000000 +0000 @@ -405,7 +405,7 @@ # Save the path variable before it gets changed ORIGINAL_PATH="$PATH" AC_SUBST(ORIGINAL_PATH) - DATE_WHEN_CONFIGURED=`LANG=C date` + DATE_WHEN_CONFIGURED=`date` AC_SUBST(DATE_WHEN_CONFIGURED) AC_MSG_NOTICE([Configuration created at $DATE_WHEN_CONFIGURED.]) ]) diff -Nru openjdk-11-11.0.14+9/make/autoconf/build-aux/config.guess openjdk-11-11.0.16+8/make/autoconf/build-aux/config.guess --- openjdk-11-11.0.14+9/make/autoconf/build-aux/config.guess 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/autoconf/build-aux/config.guess 2022-07-16 20:06:34.000000000 +0000 @@ -1,6 +1,7 @@ #!/bin/sh # -# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2012, 2021, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2021, Azul Systems, Inc. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -46,6 +47,17 @@ OUT=$REAL_CPU`echo $OUT | sed -e 's/[^-]*//'` fi +# Detect C library. +# Use '-gnu' suffix on systems that use glibc. +# Use '-musl' suffix on systems that use the musl libc. +echo $OUT | grep -- -linux- > /dev/null 2> /dev/null +if test $? = 0; then + libc_vendor=`ldd --version 2>&1 | sed -n '1s/.*\(musl\).*/\1/p'` + if [ x"${libc_vendor}" = x"musl" ]; then + OUT=`echo $OUT | sed 's/-gnu/-musl/'` + fi +fi + # Test and fix cygwin on x86_64 echo $OUT | grep 86-pc-cygwin > /dev/null 2> /dev/null if test $? != 0; then @@ -106,6 +118,14 @@ fi fi +# Test and fix cpu on macos-aarch64, uname -p reports arm, buildsys expects aarch64 +echo $OUT | grep arm-apple-darwin > /dev/null 2> /dev/null +if test $? = 0; then + if [ `uname -m` = arm64 ]; then + OUT=aarch64`echo $OUT | sed -e 's/[^-]*//'` + fi +fi + # Test and fix cpu on Macosx when C preprocessor is not on the path echo $OUT | grep i386-apple-darwin > /dev/null 2> /dev/null if test $? = 0; then diff -Nru openjdk-11-11.0.14+9/make/autoconf/build-aux/config.sub openjdk-11-11.0.16+8/make/autoconf/build-aux/config.sub --- openjdk-11-11.0.14+9/make/autoconf/build-aux/config.sub 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/autoconf/build-aux/config.sub 2022-07-16 20:06:34.000000000 +0000 @@ -29,6 +29,11 @@ DIR=`dirname $0` +if echo $* | grep linux-musl >/dev/null ; then + echo $* + exit +fi + # First, filter out everything that doesn't begin with "aarch64-" if ! echo $* | grep '^aarch64-' >/dev/null ; then . $DIR/autoconf-config.sub "$@" diff -Nru openjdk-11-11.0.14+9/make/autoconf/build-performance.m4 openjdk-11-11.0.16+8/make/autoconf/build-performance.m4 --- openjdk-11-11.0.14+9/make/autoconf/build-performance.m4 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/autoconf/build-performance.m4 2022-07-16 20:06:34.000000000 +0000 @@ -35,7 +35,7 @@ FOUND_CORES=yes elif test -x /usr/sbin/psrinfo; then # Looks like a Solaris system - NUM_CORES=`LC_MESSAGES=C /usr/sbin/psrinfo -v | grep -c on-line` + NUM_CORES=`/usr/sbin/psrinfo -v | grep -c on-line` FOUND_CORES=yes elif test -x /usr/sbin/sysctl; then # Looks like a MacOSX system diff -Nru openjdk-11-11.0.14+9/make/autoconf/buildjdk-spec.gmk.in openjdk-11-11.0.16+8/make/autoconf/buildjdk-spec.gmk.in --- openjdk-11-11.0.14+9/make/autoconf/buildjdk-spec.gmk.in 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/autoconf/buildjdk-spec.gmk.in 2022-07-16 20:06:34.000000000 +0000 @@ -50,11 +50,13 @@ OPENJDK_BUILD_CPU_LEGACY := @OPENJDK_BUILD_CPU_LEGACY@ OPENJDK_BUILD_CPU_LEGACY_LIB := @OPENJDK_BUILD_CPU_LEGACY_LIB@ +OPENJDK_BUILD_LIBC := @OPENJDK_BUILD_LIBC@ OPENJDK_TARGET_CPU := @OPENJDK_BUILD_CPU@ OPENJDK_TARGET_CPU_ARCH := @OPENJDK_BUILD_CPU_ARCH@ OPENJDK_TARGET_CPU_BITS := @OPENJDK_BUILD_CPU_BITS@ OPENJDK_TARGET_CPU_ENDIAN := @OPENJDK_BUILD_CPU_ENDIAN@ OPENJDK_TARGET_CPU_LEGACY := @OPENJDK_BUILD_CPU_LEGACY@ +OPENJDK_TARGET_LIBC := @OPENJDK_BUILD_LIBC@ OPENJDK_TARGET_OS_INCLUDE_SUBDIR := @OPENJDK_BUILD_OS_INCLUDE_SUBDIR@ HOTSPOT_TARGET_OS := @HOTSPOT_BUILD_OS@ @@ -62,6 +64,7 @@ HOTSPOT_TARGET_CPU := @HOTSPOT_BUILD_CPU@ HOTSPOT_TARGET_CPU_ARCH := @HOTSPOT_BUILD_CPU_ARCH@ HOTSPOT_TARGET_CPU_DEFINE := @HOTSPOT_BUILD_CPU_DEFINE@ +HOTSPOT_TARGET_LIBC := @HOTSPOT_BUILD_LIBC@ CFLAGS_JDKLIB := @OPENJDK_BUILD_CFLAGS_JDKLIB@ CXXFLAGS_JDKLIB := @OPENJDK_BUILD_CXXFLAGS_JDKLIB@ diff -Nru openjdk-11-11.0.14+9/make/autoconf/configure openjdk-11-11.0.16+8/make/autoconf/configure --- openjdk-11-11.0.14+9/make/autoconf/configure 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/autoconf/configure 2022-07-16 20:06:34.000000000 +0000 @@ -43,6 +43,9 @@ export CONFIG_SHELL=$BASH export _as_can_reexec=no +# Make sure all shell commands are executed with the C locale +export LC_ALL=C + if test "x$CUSTOM_CONFIG_DIR" != x; then custom_hook=$CUSTOM_CONFIG_DIR/custom-hook.m4 if test ! -e $custom_hook; then diff -Nru openjdk-11-11.0.14+9/make/autoconf/flags-cflags.m4 openjdk-11-11.0.16+8/make/autoconf/flags-cflags.m4 --- openjdk-11-11.0.14+9/make/autoconf/flags-cflags.m4 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/autoconf/flags-cflags.m4 2022-07-16 20:06:34.000000000 +0000 @@ -121,7 +121,11 @@ # -g0 enables debug symbols without disabling inlining. CFLAGS_DEBUG_SYMBOLS="-g0 -xs" elif test "x$TOOLCHAIN_TYPE" = xxlc; then - CFLAGS_DEBUG_SYMBOLS="-g" + if test "x$XLC_USES_CLANG" = xtrue; then + CFLAGS_DEBUG_SYMBOLS="-g1" + else + CFLAGS_DEBUG_SYMBOLS="-g" + fi elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then CFLAGS_DEBUG_SYMBOLS="-Z7 -d2Zi+" fi @@ -528,10 +532,10 @@ fi elif test "x$TOOLCHAIN_TYPE" = xxlc; then - TOOLCHAIN_CFLAGS_JDK="-qchars=signed -qfullpath -qsaveopt" # add on both CFLAGS - TOOLCHAIN_CFLAGS_JVM="-qtune=balanced \ - -qalias=noansi -qstrict -qtls=default -qlanglvl=c99vla \ - -qlanglvl=noredefmac -qnortti -qnoeh -qignerrno" + # set -qtbtable=full for a better traceback table/better stacks in hs_err when xlc16 is used + TOOLCHAIN_CFLAGS_JDK="-qtbtable=full -qchars=signed -qfullpath -qsaveopt -qstackprotect" # add on both CFLAGS + TOOLCHAIN_CFLAGS_JVM="-qtbtable=full -qtune=balanced \ + -qalias=noansi -qstrict -qtls=default -qnortti -qnoeh -qignerrno -qstackprotect" elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then TOOLCHAIN_CFLAGS_JVM="-nologo -MD -MP" TOOLCHAIN_CFLAGS_JDK="-nologo -MD -Zc:wchar_t-" @@ -585,6 +589,11 @@ fi fi + OS_CFLAGS="$OS_CFLAGS -DLIBC=$OPENJDK_TARGET_LIBC" + if test "x$OPENJDK_TARGET_LIBC" = xmusl; then + OS_CFLAGS="$OS_CFLAGS -DMUSL_LIBC" + fi + # Where does this really belong?? if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then PICFLAG="-fPIC" diff -Nru openjdk-11-11.0.14+9/make/autoconf/flags.m4 openjdk-11-11.0.16+8/make/autoconf/flags.m4 --- openjdk-11-11.0.14+9/make/autoconf/flags.m4 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/autoconf/flags.m4 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ # -# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -111,19 +111,25 @@ [ # Additional macosx handling if test "x$OPENJDK_TARGET_OS" = xmacosx; then + # The expected format for is either nn.n.n or nn.nn.nn. See + # /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/AvailabilityVersions.h + # MACOSX_VERSION_MIN specifies the lowest version of Macosx that the built # binaries should be compatible with, even if compiled on a newer version # of the OS. It currently has a hard coded value. Setting this also limits # exposure to API changes in header files. Bumping this is likely to # require code changes to build. - MACOSX_VERSION_MIN=10.9.0 + if test "x$OPENJDK_TARGET_CPU_ARCH" = xaarch64; then + MACOSX_VERSION_MIN=11.00.00 + else + MACOSX_VERSION_MIN=10.12.0 + fi MACOSX_VERSION_MIN_NODOTS=${MACOSX_VERSION_MIN//\./} AC_SUBST(MACOSX_VERSION_MIN) # Setting --with-macosx-version-max= makes it an error to build or - # link to macosx APIs that are newer than the given OS version. The expected - # format for is either nn.n.n or nn.nn.nn. See /usr/include/AvailabilityMacros.h. + # link to macosx APIs that are newer than the given OS version. AC_ARG_WITH([macosx-version-max], [AS_HELP_STRING([--with-macosx-version-max], [error on use of newer functionality. @<:@macosx@:>@])], [ @@ -258,6 +264,14 @@ fi fi + if test "x$OPENJDK_TARGET_OS" = xmacosx; then + if test "x$OPENJDK_TARGET_CPU" = xaarch64; then + MACHINE_FLAG="$MACHINE_FLAG -arch arm64" + elif test "x$OPENJDK_TARGET_CPU" = xx86_64; then + MACHINE_FLAG="$MACHINE_FLAG -arch x86_64" + fi + fi + # FIXME: global flags are not used yet... # The "global" flags will *always* be set. Without them, it is not possible to # get a working compilation. diff -Nru openjdk-11-11.0.14+9/make/autoconf/help.m4 openjdk-11-11.0.16+8/make/autoconf/help.m4 --- openjdk-11-11.0.14+9/make/autoconf/help.m4 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/autoconf/help.m4 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ # -# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -25,7 +25,7 @@ AC_DEFUN_ONCE([HELP_SETUP_DEPENDENCY_HELP], [ - AC_CHECK_PROGS(PKGHANDLER, apt-get yum brew port pkgutil pkgadd) + AC_CHECK_PROGS(PKGHANDLER, apt-get yum brew port pkgutil pkgadd apk) ]) AC_DEFUN([HELP_MSG_MISSING_DEPENDENCY], @@ -54,6 +54,8 @@ pkgutil_help $MISSING_DEPENDENCY ;; pkgadd) pkgadd_help $MISSING_DEPENDENCY ;; + apk) + apk_help $MISSING_DEPENDENCY ;; esac if test "x$PKGHANDLER_COMMAND" != x; then @@ -158,6 +160,27 @@ PKGHANDLER_COMMAND="" } +apk_help() { + case $1 in + devkit) + PKGHANDLER_COMMAND="sudo apk add alpine-sdk linux-headers" ;; + alsa) + PKGHANDLER_COMMAND="sudo apk add alsa-lib-dev" ;; + cups) + PKGHANDLER_COMMAND="sudo apk add cups-dev" ;; + fontconfig) + PKGHANDLER_COMMAND="sudo apk add fontconfig-dev" ;; + freetype) + PKGHANDLER_COMMAND="sudo apk add freetype-dev" ;; + harfbuzz) + PKGHANDLER_COMMAND="sudo apk add harfbuzz-dev" ;; + x11) + PKGHANDLER_COMMAND="sudo apk add libxtst-dev libxt-dev libxrender-dev libxrandr-dev" ;; + ccache) + PKGHANDLER_COMMAND="sudo apk add ccache" ;; + esac +} + # This function will check if we're called from the "configure" wrapper while # printing --help. If so, we will print out additional information that can # only be extracted within the autoconf script, and then exit. This must be diff -Nru openjdk-11-11.0.14+9/make/autoconf/hotspot.m4 openjdk-11-11.0.16+8/make/autoconf/hotspot.m4 --- openjdk-11-11.0.14+9/make/autoconf/hotspot.m4 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/autoconf/hotspot.m4 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ # -# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -274,6 +274,14 @@ fi fi + # Disable CDS on macos-aarch64 + if test "x$OPENJDK_TARGET_OS" = "xmacosx" && test "x$OPENJDK_TARGET_CPU" = "xaarch64"; then + ENABLE_CDS="false" + if test "x$enable_cds" = "xyes"; then + AC_MSG_ERROR([CDS is currently not supported on macOS/aarch64. Remove --enable-cds.]) + fi + fi + AC_SUBST(ENABLE_CDS) ]) @@ -413,7 +421,7 @@ # Only enable jvmci on x86_64, sparcv9 and aarch64 if test "x$OPENJDK_TARGET_CPU" = "xx86_64" || \ test "x$OPENJDK_TARGET_CPU" = "xsparcv9" || \ - test "x$OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU" = "xlinux-aarch64" ; then + test "x$OPENJDK_TARGET_CPU" = "xaarch64" ; then AC_MSG_RESULT([yes]) JVM_FEATURES_jvmci="jvmci" INCLUDE_JVMCI="true" @@ -444,10 +452,11 @@ JVM_FEATURES_graal="graal" INCLUDE_GRAAL="true" else - # By default enable graal build on x64 or where AOT is available. + # By default enable graal build on x64/aarch64 or where AOT is available. # graal build requires jvmci. if test "x$JVM_FEATURES_jvmci" = "xjvmci" && \ (test "x$OPENJDK_TARGET_CPU" = "xx86_64" || \ + test "x$OPENJDK_TARGET_CPU" = "xaarch64" || \ test "x$ENABLE_AOT" = "xtrue") ; then AC_MSG_RESULT([yes]) JVM_FEATURES_graal="graal" diff -Nru openjdk-11-11.0.14+9/make/autoconf/platform.m4 openjdk-11-11.0.16+8/make/autoconf/platform.m4 --- openjdk-11-11.0.14+9/make/autoconf/platform.m4 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/autoconf/platform.m4 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ # -# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -210,6 +210,24 @@ # Support macro for PLATFORM_EXTRACT_TARGET_AND_BUILD. # Converts autoconf style OS name to OpenJDK style, into +# VAR_LIBC. +AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_LIBC], +[ + case "$1" in + *linux*-musl) + VAR_LIBC=musl + ;; + *linux*-gnu) + VAR_LIBC=gnu + ;; + *) + VAR_LIBC=default + ;; + esac +]) + +# Support macro for PLATFORM_EXTRACT_TARGET_AND_BUILD. +# Converts autoconf style OS name to OpenJDK style, into # VAR_ABI. AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_ABI], [ @@ -252,9 +270,10 @@ AC_SUBST(OPENJDK_TARGET_AUTOCONF_NAME) AC_SUBST(OPENJDK_BUILD_AUTOCONF_NAME) - # Convert the autoconf OS/CPU value to our own data, into the VAR_OS/CPU variables. + # Convert the autoconf OS/CPU value to our own data, into the VAR_OS/CPU/LIBC variables. PLATFORM_EXTRACT_VARS_FROM_OS($build_os) PLATFORM_EXTRACT_VARS_FROM_CPU($build_cpu) + PLATFORM_EXTRACT_VARS_FROM_LIBC($build_os) PLATFORM_EXTRACT_VARS_FROM_ABI($build_os) # ..and setup our own variables. (Do this explicitly to facilitate searching) OPENJDK_BUILD_OS="$VAR_OS" @@ -273,6 +292,7 @@ OPENJDK_BUILD_CPU_BITS="$VAR_CPU_BITS" OPENJDK_BUILD_CPU_ENDIAN="$VAR_CPU_ENDIAN" OPENJDK_BUILD_CPU_AUTOCONF="$build_cpu" + OPENJDK_BUILD_LIBC="$VAR_LIBC" OPENJDK_BUILD_ABI="$VAR_ABI" AC_SUBST(OPENJDK_BUILD_OS) AC_SUBST(OPENJDK_BUILD_OS_TYPE) @@ -282,14 +302,21 @@ AC_SUBST(OPENJDK_BUILD_CPU_BITS) AC_SUBST(OPENJDK_BUILD_CPU_ENDIAN) AC_SUBST(OPENJDK_BUILD_CPU_AUTOCONF) + AC_SUBST(OPENJDK_BUILD_LIBC) AC_SUBST(OPENJDK_BUILD_ABI) AC_MSG_CHECKING([openjdk-build os-cpu]) AC_MSG_RESULT([$OPENJDK_BUILD_OS-$OPENJDK_BUILD_CPU]) - # Convert the autoconf OS/CPU value to our own data, into the VAR_OS/CPU variables. + if test "x$OPENJDK_BUILD_OS" = "xlinux"; then + AC_MSG_CHECKING([openjdk-build C library]) + AC_MSG_RESULT([$OPENJDK_BUILD_LIBC]) + fi + + # Convert the autoconf OS/CPU value to our own data, into the VAR_OS/CPU/LIBC variables. PLATFORM_EXTRACT_VARS_FROM_OS($host_os) PLATFORM_EXTRACT_VARS_FROM_CPU($host_cpu) + PLATFORM_EXTRACT_VARS_FROM_LIBC($host_os) PLATFORM_EXTRACT_VARS_FROM_ABI($host_os) # ... and setup our own variables. (Do this explicitly to facilitate searching) OPENJDK_TARGET_OS="$VAR_OS" @@ -309,6 +336,7 @@ OPENJDK_TARGET_CPU_ENDIAN="$VAR_CPU_ENDIAN" OPENJDK_TARGET_CPU_AUTOCONF="$host_cpu" OPENJDK_TARGET_OS_UPPERCASE=`$ECHO $OPENJDK_TARGET_OS | $TR 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + OPENJDK_TARGET_LIBC="$VAR_LIBC" OPENJDK_TARGET_ABI="$VAR_ABI" AC_SUBST(OPENJDK_TARGET_OS) @@ -320,10 +348,16 @@ AC_SUBST(OPENJDK_TARGET_CPU_BITS) AC_SUBST(OPENJDK_TARGET_CPU_ENDIAN) AC_SUBST(OPENJDK_TARGET_CPU_AUTOCONF) + AC_SUBST(OPENJDK_TARGET_LIBC) AC_SUBST(OPENJDK_TARGET_ABI) AC_MSG_CHECKING([openjdk-target os-cpu]) AC_MSG_RESULT([$OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU]) + + if test "x$OPENJDK_TARGET_OS" = "xlinux"; then + AC_MSG_CHECKING([openjdk-target C library]) + AC_MSG_RESULT([$OPENJDK_TARGET_LIBC]) + fi ]) # Check if a reduced build (32-bit on 64-bit platforms) is requested, and modify behaviour @@ -447,9 +481,11 @@ fi # The new version string in JDK 9 also defined new naming of OS and ARCH for bundles - # Macosx is osx and x86_64 is x64 + # The macOS bundle name was revised in JDK 17 + # + # macosx is macos and x86_64 is x64 if test "x$OPENJDK_$1_OS" = xmacosx; then - OPENJDK_$1_OS_BUNDLE="osx" + OPENJDK_$1_OS_BUNDLE="macos" else OPENJDK_$1_OS_BUNDLE="$OPENJDK_TARGET_OS" fi @@ -458,7 +494,13 @@ else OPENJDK_$1_CPU_BUNDLE="$OPENJDK_$1_CPU" fi - OPENJDK_$1_BUNDLE_PLATFORM="${OPENJDK_$1_OS_BUNDLE}-${OPENJDK_$1_CPU_BUNDLE}" + + OPENJDK_$1_LIBC_BUNDLE="" + if test "x$OPENJDK_$1_LIBC" = "xmusl"; then + OPENJDK_$1_LIBC_BUNDLE="-$OPENJDK_$1_LIBC" + fi + + OPENJDK_$1_BUNDLE_PLATFORM="${OPENJDK_$1_OS_BUNDLE}-${OPENJDK_$1_CPU_BUNDLE}${OPENJDK_$1_LIBC_BUNDLE}" AC_SUBST(OPENJDK_$1_BUNDLE_PLATFORM) if test "x$COMPILE_TYPE" = "xcross"; then @@ -529,6 +571,9 @@ fi AC_SUBST(HOTSPOT_$1_CPU_DEFINE) + HOTSPOT_$1_LIBC=$OPENJDK_$1_LIBC + AC_SUBST(HOTSPOT_$1_LIBC) + # For historical reasons, the OS include directories have odd names. OPENJDK_$1_OS_INCLUDE_SUBDIR="$OPENJDK_TARGET_OS" if test "x$OPENJDK_TARGET_OS" = "xwindows"; then @@ -557,9 +602,11 @@ RELEASE_FILE_OS_NAME="AIX" fi RELEASE_FILE_OS_ARCH=${OPENJDK_TARGET_CPU} + RELEASE_FILE_LIBC=${OPENJDK_TARGET_LIBC} AC_SUBST(RELEASE_FILE_OS_NAME) AC_SUBST(RELEASE_FILE_OS_ARCH) + AC_SUBST(RELEASE_FILE_LIBC) ]) AC_DEFUN([PLATFORM_SET_MODULE_TARGET_OS_VALUES], diff -Nru openjdk-11-11.0.14+9/make/autoconf/spec.gmk.in openjdk-11-11.0.16+8/make/autoconf/spec.gmk.in --- openjdk-11-11.0.14+9/make/autoconf/spec.gmk.in 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/autoconf/spec.gmk.in 2022-07-16 20:06:34.000000000 +0000 @@ -46,6 +46,9 @@ # What make to use for main processing, after bootstrapping top-level Makefile. MAKE := @MAKE@ +# Make sure all shell commands are executed with the C locale +export LC_ALL := C + # The default make arguments MAKE_ARGS = $(MAKE_LOG_FLAGS) -r -R -I $(TOPDIR)/make/common SPEC=$(SPEC) \ MAKE_LOG_FLAGS="$(MAKE_LOG_FLAGS)" $(MAKE_LOG_VARS) @@ -72,6 +75,8 @@ OPENJDK_TARGET_CPU_BITS:=@OPENJDK_TARGET_CPU_BITS@ OPENJDK_TARGET_CPU_ENDIAN:=@OPENJDK_TARGET_CPU_ENDIAN@ +OPENJDK_TARGET_LIBC:=@OPENJDK_TARGET_LIBC@ + COMPILE_TYPE:=@COMPILE_TYPE@ # Legacy support @@ -88,6 +93,8 @@ HOTSPOT_TARGET_CPU_ARCH := @HOTSPOT_TARGET_CPU_ARCH@ HOTSPOT_TARGET_CPU_DEFINE := @HOTSPOT_TARGET_CPU_DEFINE@ +HOTSPOT_TARGET_LIBC := @HOTSPOT_TARGET_LIBC@ + OPENJDK_TARGET_BUNDLE_PLATFORM:=@OPENJDK_TARGET_BUNDLE_PLATFORM@ JDK_ARCH_ABI_PROP_NAME := @JDK_ARCH_ABI_PROP_NAME@ @@ -102,6 +109,8 @@ OPENJDK_BUILD_CPU_BITS:=@OPENJDK_BUILD_CPU_BITS@ OPENJDK_BUILD_CPU_ENDIAN:=@OPENJDK_BUILD_CPU_ENDIAN@ +OPENJDK_BUILD_LIBC:=@OPENJDK_BUILD_LIBC@ + OPENJDK_BUILD_OS_INCLUDE_SUBDIR:=@OPENJDK_TARGET_OS_INCLUDE_SUBDIR@ # Target platform value in ModuleTarget class file attribute. @@ -110,6 +119,7 @@ # OS_* properties in release file RELEASE_FILE_OS_NAME:=@RELEASE_FILE_OS_NAME@ RELEASE_FILE_OS_ARCH:=@RELEASE_FILE_OS_ARCH@ +RELEASE_FILE_LIBC:=@RELEASE_FILE_LIBC@ LIBM:=@LIBM@ LIBDL:=@LIBDL@ diff -Nru openjdk-11-11.0.14+9/make/autoconf/toolchain.m4 openjdk-11-11.0.16+8/make/autoconf/toolchain.m4 --- openjdk-11-11.0.14+9/make/autoconf/toolchain.m4 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/autoconf/toolchain.m4 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ # -# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -229,7 +229,7 @@ if test "x$OPENJDK_TARGET_OS" = xmacosx; then if test -n "$XCODEBUILD"; then # On Mac OS X, default toolchain to clang after Xcode 5 - XCODE_VERSION_OUTPUT=`"$XCODEBUILD" -version 2>&1 | $HEAD -n 1` + XCODE_VERSION_OUTPUT=`"$XCODEBUILD" -version | $HEAD -n 1` $ECHO "$XCODE_VERSION_OUTPUT" | $GREP "Xcode " > /dev/null if test $? -ne 0; then AC_MSG_ERROR([Failed to determine Xcode version.]) @@ -278,6 +278,20 @@ fi AC_SUBST(TOOLCHAIN_TYPE) + # on AIX, check for xlclang++ on the PATH and TOOLCHAIN_PATH and use it if it is available + if test "x$OPENJDK_TARGET_OS" = xaix; then + if test "x$TOOLCHAIN_PATH" != x; then + XLC_TEST_PATH=${TOOLCHAIN_PATH}/ + fi + + XLCLANG_VERSION_OUTPUT=`${XLC_TEST_PATH}xlclang++ -qversion 2>&1 | $HEAD -n 1` + $ECHO "$XLCLANG_VERSION_OUTPUT" | $GREP "IBM XL C/C++ for AIX" > /dev/null + if test $? -eq 0; then + AC_MSG_NOTICE([xlclang++ output: $XLCLANG_VERSION_OUTPUT]) + XLC_USES_CLANG=true + fi + fi + TOOLCHAIN_CC_BINARY_clang="clang" TOOLCHAIN_CC_BINARY_gcc="gcc" TOOLCHAIN_CC_BINARY_microsoft="cl" @@ -290,6 +304,14 @@ TOOLCHAIN_CXX_BINARY_solstudio="CC" TOOLCHAIN_CXX_BINARY_xlc="xlC_r" + if test "x$OPENJDK_TARGET_OS" = xaix; then + if test "x$XLC_USES_CLANG" = xtrue; then + AC_MSG_NOTICE([xlclang++ detected, using it]) + TOOLCHAIN_CC_BINARY_xlc="xlclang" + TOOLCHAIN_CXX_BINARY_xlc="xlclang++" + fi + fi + # Use indirect variable referencing toolchain_var_name=TOOLCHAIN_DESCRIPTION_$TOOLCHAIN_TYPE TOOLCHAIN_DESCRIPTION=${!toolchain_var_name} diff -Nru openjdk-11-11.0.14+9/make/autoconf/version-numbers openjdk-11-11.0.16+8/make/autoconf/version-numbers --- openjdk-11-11.0.14+9/make/autoconf/version-numbers 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/autoconf/version-numbers 2022-07-16 20:06:34.000000000 +0000 @@ -28,12 +28,12 @@ DEFAULT_VERSION_FEATURE=11 DEFAULT_VERSION_INTERIM=0 -DEFAULT_VERSION_UPDATE=14 +DEFAULT_VERSION_UPDATE=16 DEFAULT_VERSION_PATCH=0 DEFAULT_VERSION_EXTRA1=0 DEFAULT_VERSION_EXTRA2=0 DEFAULT_VERSION_EXTRA3=0 -DEFAULT_VERSION_DATE=2022-01-18 +DEFAULT_VERSION_DATE=2022-07-19 DEFAULT_VERSION_CLASSFILE_MAJOR=55 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`" DEFAULT_VERSION_CLASSFILE_MINOR=0 DEFAULT_ACCEPTABLE_BOOT_VERSIONS="10 11" diff -Nru openjdk-11-11.0.14+9/make/common/JavaCompilation.gmk openjdk-11-11.0.16+8/make/common/JavaCompilation.gmk --- openjdk-11-11.0.14+9/make/common/JavaCompilation.gmk 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/common/JavaCompilation.gmk 2022-07-16 20:06:34.000000000 +0000 @@ -121,7 +121,7 @@ $1_CLEAN_$$($2_TARGET) := 1 $$($1_BIN)$$($1_MODULE_SUBDIR)$$($2_TARGET) : $2 $(MKDIR) -p $$(@D) - export LC_ALL=C ; ( $(CAT) $$< && $(ECHO) "" ) \ + ( $(CAT) $$< && $(ECHO) "" ) \ | $(SED) -e 's/\([^\\]\):/\1\\:/g' -e 's/\([^\\]\)=/\1\\=/g' \ -e 's/\([^\\]\)!/\1\\!/g' -e 's/^[ ]*#.*/#/g' \ | $(SED) -f "$(TOPDIR)/make/common/support/unicode2x.sed" \ diff -Nru openjdk-11-11.0.14+9/make/common/NativeCompilation.gmk openjdk-11-11.0.16+8/make/common/NativeCompilation.gmk --- openjdk-11-11.0.14+9/make/common/NativeCompilation.gmk 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/common/NativeCompilation.gmk 2022-07-16 20:06:34.000000000 +0000 @@ -1213,7 +1213,7 @@ # This only works if the openjdk_codesign identity is present on the system. Let # silently fail otherwise. ifneq ($(CODESIGN), ) - $(CODESIGN) -s "$(MACOSX_CODESIGN_IDENTITY)" --timestamp --options runtime \ + $(CODESIGN) -f -s "$(MACOSX_CODESIGN_IDENTITY)" --timestamp --options runtime \ --entitlements $$(call GetEntitlementsFile, $$@) $$@ endif endif diff -Nru openjdk-11-11.0.14+9/make/conf/jib-profiles.js openjdk-11-11.0.16+8/make/conf/jib-profiles.js --- openjdk-11-11.0.14+9/make/conf/jib-profiles.js 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/conf/jib-profiles.js 2022-07-16 20:06:34.000000000 +0000 @@ -415,7 +415,7 @@ target_cpu: "x64", dependencies: ["devkit", "graalunit_lib"], configure_args: concat(common.configure_args_64bit, "--with-zlib=system", - "--with-macosx-version-max=10.9.0"), + "--with-macosx-version-max=10.12.00"), }, "solaris-x64": { @@ -598,11 +598,7 @@ profiles[bootcyclePrebuiltName].default_make_targets = [ "product-images" ]; }); - // // Define artifacts for profiles - // - // Macosx bundles are named osx - // tar.gz. var artifactData = { "linux-x64": { platform: "linux-x64", @@ -611,7 +607,7 @@ platform: "linux-x86", }, "macosx-x64": { - platform: "osx-x64", + platform: "macos-x64", jdk_subdir: "jdk-" + data.version + ".jdk/Contents/Home", }, "solaris-x64": { diff -Nru openjdk-11-11.0.14+9/make/conf/test-dependencies openjdk-11-11.0.16+8/make/conf/test-dependencies --- openjdk-11-11.0.14+9/make/conf/test-dependencies 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/conf/test-dependencies 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ # -# Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -30,14 +30,14 @@ JTREG_BUILD=b01 GTEST_VERSION=1.8.1 -LINUX_X64_BOOT_JDK_FILENAME=openjdk-11_linux-x64_bin.tar.gz -LINUX_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.12%2B7/OpenJDK11U-jdk_x64_linux_hotspot_11.0.12_7.tar.gz -LINUX_X64_BOOT_JDK_SHA256=8770f600fc3b89bf331213c7aa21f8eedd9ca5d96036d1cd48cb2748a3dbefd2 +LINUX_X64_BOOT_JDK_FILENAME=openjdk-11.0.14.1_linux-x64_bin.tar.gz +LINUX_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.14.1%2B1/OpenJDK11U-jdk_x64_linux_hotspot_11.0.14.1_1.tar.gz +LINUX_X64_BOOT_JDK_SHA256=43fb84f8063ad9bf6b6d694a67b8f64c8827552b920ec5ce794dfe5602edffe7 -WINDOWS_X64_BOOT_JDK_FILENAME=openjdk-11_windows-x64_bin.zip -WINDOWS_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.12%2B7/OpenJDK11U-jdk_x64_windows_hotspot_11.0.12_7.zip -WINDOWS_X64_BOOT_JDK_SHA256=c54123dd4b0d6473221539e7003b8ca1c1757c5588c46465565b03bf8781f807 +WINDOWS_X64_BOOT_JDK_FILENAME=openjdk-11.0.14.1_windows-x64_bin.zip +WINDOWS_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.14.1%2B1/OpenJDK11U-jdk_x64_windows_hotspot_11.0.14.1_1.zip +WINDOWS_X64_BOOT_JDK_SHA256=3e7da701aa92e441418299714f0ed6db10c3bb1e2db625c35a2c2cd9cc619731 -MACOS_X64_BOOT_JDK_FILENAME=openjdk-11_osx-x64_bin.tar.gz -MACOS_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.12%2B7/OpenJDK11U-jdk_x64_mac_hotspot_11.0.12_7.tar.gz -MACOS_X64_BOOT_JDK_SHA256=13d056ee9a57bf2d5b3af4504c8f8cf7a246c4dff78f96b70dd05dad98075855 +MACOS_X64_BOOT_JDK_FILENAME=openjdk-11.0.14.1_osx-x64_bin.tar.gz +MACOS_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.14.1%2B1/OpenJDK11U-jdk_x64_mac_hotspot_11.0.14.1_1.tar.gz +MACOS_X64_BOOT_JDK_SHA256=8c69808f5d9d209b195575e979de0e43cdf5d0f1acec1853a569601fe2c1f743 diff -Nru openjdk-11-11.0.14+9/make/data/currency/CurrencyData.properties openjdk-11-11.0.16+8/make/data/currency/CurrencyData.properties --- openjdk-11-11.0.14+9/make/data/currency/CurrencyData.properties 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/data/currency/CurrencyData.properties 2022-07-16 20:06:34.000000000 +0000 @@ -32,7 +32,7 @@ # Version of the currency code information in this class. # It is a serial number that accompanies with each amendment. -dataVersion=169 +dataVersion=170 # List of all valid ISO 4217 currency codes. # To ensure compatibility, do not remove codes. @@ -54,7 +54,7 @@ SBD090-SCR690-SDD736-SDG938-SEK752-SGD702-SHP654-SIT705-SKK703-SLL694-SOS706-\ SRD968-SRG740-SSP728-STD678-STN930-SVC222-SYP760-SZL748-THB764-TJS972-TMM795-TMT934-TND788-TOP776-\ TPE626-TRL792-TRY949-TTD780-TWD901-TZS834-UAH980-UGX800-USD840-USN997-USS998-UYI940-\ - UYU858-UZS860-VEB862-VEF937-VES928-VND704-VUV548-WST882-XAF950-XAG961-XAU959-XBA955-\ + UYU858-UZS860-VEB862-VED926-VEF937-VES928-VND704-VUV548-WST882-XAF950-XAG961-XAU959-XBA955-\ XBB956-XBC957-XBD958-XCD951-XDR960-XFO000-XFU000-XOF952-XPD964-XPF953-\ XPT962-XSU994-XTS963-XUA965-XXX999-YER886-YUM891-ZAR710-ZMK894-ZMW967-ZWD716-ZWL932-\ ZWN942-ZWR935 diff -Nru openjdk-11-11.0.14+9/make/data/lsrdata/language-subtag-registry.txt openjdk-11-11.0.16+8/make/data/lsrdata/language-subtag-registry.txt --- openjdk-11-11.0.14+9/make/data/lsrdata/language-subtag-registry.txt 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/data/lsrdata/language-subtag-registry.txt 2022-07-16 20:06:34.000000000 +0000 @@ -1,4 +1,4 @@ -File-Date: 2020-09-29 +File-Date: 2021-05-11 %% Type: language Subtag: aa @@ -2925,6 +2925,11 @@ Added: 2009-07-29 %% Type: language +Subtag: aqk +Description: Aninka +Added: 2021-02-20 +%% +Type: language Subtag: aql Description: Algic languages Added: 2009-07-29 @@ -4878,6 +4883,8 @@ Subtag: bic Description: Bikaru Added: 2009-07-29 +Deprecated: 2021-02-20 +Preferred-Value: bir %% Type: language Subtag: bid @@ -4903,6 +4910,8 @@ Subtag: bij Description: Vaghat-Ya-Bijim-Legeri Added: 2009-07-29 +Deprecated: 2021-02-20 +Comments: see dkg, jbm, tyy %% Type: language Subtag: bik @@ -5279,6 +5288,8 @@ Subtag: blg Description: Balau Added: 2009-07-29 +Deprecated: 2021-02-20 +Preferred-Value: iba %% Type: language Subtag: blh @@ -5766,6 +5777,11 @@ Added: 2009-07-29 %% Type: language +Subtag: bpe +Description: Bauni +Added: 2021-02-20 +%% +Type: language Subtag: bpg Description: Bonggo Added: 2009-07-29 @@ -8626,6 +8642,11 @@ Macrolanguage: cr %% Type: language +Subtag: csx +Description: Cambodian Sign Language +Added: 2021-02-20 +%% +Type: language Subtag: csy Description: Siyin Chin Added: 2009-07-29 @@ -8707,6 +8728,11 @@ Added: 2009-07-29 %% Type: language +Subtag: cty +Description: Moundadan Chetty +Added: 2021-02-20 +%% +Type: language Subtag: ctz Description: Zacatepec Chatino Added: 2009-07-29 @@ -9674,6 +9700,11 @@ Added: 2009-07-29 %% Type: language +Subtag: dkg +Description: Kadung +Added: 2021-02-20 +%% +Type: language Subtag: dkk Description: Dakka Added: 2009-07-29 @@ -10587,6 +10618,11 @@ Added: 2005-10-16 %% Type: language +Subtag: ehs +Description: Miyakubo Sign Language +Added: 2021-02-20 +%% +Type: language Subtag: ehu Description: Ehueun Added: 2009-07-29 @@ -10774,6 +10810,11 @@ Added: 2009-07-29 %% Type: language +Subtag: emq +Description: Eastern Minyag +Added: 2021-02-20 +%% +Type: language Subtag: ems Description: Pacific Gulf Yupik Added: 2009-07-29 @@ -10799,6 +10840,11 @@ Added: 2009-07-29 %% Type: language +Subtag: emz +Description: Mbessa +Added: 2021-02-20 +%% +Type: language Subtag: ena Description: Apali Added: 2009-07-29 @@ -12279,6 +12325,11 @@ Added: 2013-09-10 %% Type: language +Subtag: gii +Description: Girirra +Added: 2021-02-20 +%% +Type: language Subtag: gil Description: Gilbertese Added: 2005-10-16 @@ -12354,6 +12405,8 @@ Subtag: gji Description: Geji Added: 2009-07-29 +Deprecated: 2021-02-20 +Comments: see gyz, zbu %% Type: language Subtag: gjk @@ -12418,6 +12471,11 @@ Added: 2015-02-12 %% Type: language +Subtag: glb +Description: Belning +Added: 2021-02-20 +%% +Type: language Subtag: glc Description: Bon Gula Added: 2009-07-29 @@ -13360,6 +13418,12 @@ Added: 2009-07-29 %% Type: language +Subtag: gyz +Description: Geji +Description: Gyaazi +Added: 2021-02-20 +%% +Type: language Subtag: gza Description: Ganza Added: 2009-07-29 @@ -13704,6 +13768,12 @@ Added: 2009-07-29 %% Type: language +Subtag: hkh +Description: Khah +Description: Poguli +Added: 2021-02-20 +%% +Type: language Subtag: hkk Description: Hunjara-Kaina Ke Added: 2009-07-29 @@ -15411,6 +15481,11 @@ Added: 2012-08-12 %% Type: language +Subtag: jbm +Description: Bijim +Added: 2021-02-20 +%% +Type: language Subtag: jbn Description: Nafusi Added: 2009-07-29 @@ -15569,7 +15644,7 @@ %% Type: language Subtag: jid -Description: Bu +Description: Bu (Kaduna State) Added: 2009-07-29 %% Type: language @@ -15671,6 +15746,11 @@ Added: 2012-08-12 %% Type: language +Subtag: jks +Description: Amami Koniya Sign Language +Added: 2021-02-20 +%% +Type: language Subtag: jku Description: Labir Added: 2009-07-29 @@ -15844,7 +15924,7 @@ %% Type: language Subtag: jrt -Description: Jorto +Description: Jakattoe Added: 2009-07-29 %% Type: language @@ -17779,7 +17859,7 @@ %% Type: language Subtag: koe -Description: Kacipo-Balesi +Description: Kacipo-Bale Suri Added: 2009-07-29 %% Type: language @@ -20723,6 +20803,12 @@ Added: 2009-07-29 %% Type: language +Subtag: lsb +Description: Burundian Sign Language +Description: Langue des Signes Burundaise +Added: 2021-02-20 +%% +Type: language Subtag: lsd Description: Lishana Deni Added: 2009-07-29 @@ -21043,6 +21129,11 @@ Added: 2009-07-29 %% Type: language +Subtag: lxm +Description: Lakurumau +Added: 2021-02-20 +%% +Type: language Subtag: lya Description: Layakha Added: 2009-07-29 @@ -23788,6 +23879,8 @@ Subtag: mvm Description: Muya Added: 2009-07-29 +Deprecated: 2021-02-20 +Comments: see emq, wmg %% Type: language Subtag: mvn @@ -25096,6 +25189,8 @@ Subtag: ngo Description: Ngoni Added: 2009-07-29 +Deprecated: 2021-02-20 +Comments: see xnj, xnq %% Type: language Subtag: ngp @@ -26182,6 +26277,11 @@ Added: 2013-09-10 %% Type: language +Subtag: nqt +Description: Nteng +Added: 2021-02-20 +%% +Type: language Subtag: nqy Description: Akyaung Ari Naga Added: 2012-08-12 @@ -27006,6 +27106,11 @@ Added: 2009-07-29 %% Type: language +Subtag: ocm +Description: Old Cham +Added: 2021-02-20 +%% +Type: language Subtag: oco Description: Old Cornish Added: 2009-07-29 @@ -27151,6 +27256,11 @@ Added: 2009-07-29 %% Type: language +Subtag: okc +Description: Kobo +Added: 2021-02-20 +%% +Type: language Subtag: okd Description: Okodia Added: 2009-07-29 @@ -27232,6 +27342,11 @@ Added: 2009-07-29 %% Type: language +Subtag: okz +Description: Old Khmer +Added: 2021-02-20 +%% +Type: language Subtag: ola Description: Walungge Added: 2009-07-29 @@ -27370,6 +27485,11 @@ Added: 2009-07-29 %% Type: language +Subtag: omy +Description: Old Malay +Added: 2021-02-20 +%% +Type: language Subtag: ona Description: Ona Added: 2009-07-29 @@ -27605,6 +27725,11 @@ Added: 2009-07-29 %% Type: language +Subtag: osn +Description: Old Sundanese +Added: 2021-02-20 +%% +Type: language Subtag: oso Description: Ososo Added: 2009-07-29 @@ -27891,6 +28016,8 @@ Subtag: pat Description: Papitalai Added: 2009-07-29 +Deprecated: 2021-02-20 +Preferred-Value: kxr %% Type: language Subtag: pau @@ -28856,6 +28983,7 @@ %% Type: language Subtag: png +Description: Pangu Description: Pongu Added: 2009-07-29 %% @@ -30764,6 +30892,11 @@ Added: 2009-07-29 %% Type: language +Subtag: rwl +Description: Ruwila +Added: 2021-02-20 +%% +Type: language Subtag: rwm Description: Amba (Uganda) Added: 2009-07-29 @@ -32644,6 +32777,11 @@ Added: 2009-07-29 %% Type: language +Subtag: sqx +Description: Kufr Qassem Sign Language (KQSL) +Added: 2021-02-20 +%% +Type: language Subtag: sra Description: Saruga Added: 2009-07-29 @@ -33059,7 +33197,13 @@ Comments: see ulw, yan %% Type: language +Subtag: suo +Description: Bouni +Added: 2021-02-20 +%% +Type: language Subtag: suq +Description: Tirmaga-Chai Suri Description: Suri Added: 2009-07-29 %% @@ -36127,6 +36271,11 @@ Added: 2009-07-29 %% Type: language +Subtag: tyy +Description: Tiyaa +Added: 2021-02-20 +%% +Type: language Subtag: tyz Description: Tày Added: 2009-07-29 @@ -36538,6 +36687,11 @@ Added: 2009-07-29 %% Type: language +Subtag: uni +Description: Uni +Added: 2021-02-20 +%% +Type: language Subtag: unk Description: Enawené-Nawé Added: 2009-07-29 @@ -37037,6 +37191,8 @@ Subtag: vki Description: Ija-Zuba Added: 2009-07-29 +Deprecated: 2021-02-20 +Comments: see vkn, vkz %% Type: language Subtag: vkj @@ -37060,6 +37216,11 @@ Added: 2009-07-29 %% Type: language +Subtag: vkn +Description: Koro Nulu +Added: 2021-02-20 +%% +Type: language Subtag: vko Description: Kodeoha Added: 2009-07-29 @@ -37081,6 +37242,11 @@ Added: 2009-07-29 %% Type: language +Subtag: vkz +Description: Koro Zuba +Added: 2021-02-20 +%% +Type: language Subtag: vlp Description: Valpei Added: 2009-07-29 @@ -37313,7 +37479,8 @@ %% Type: language Subtag: wad -Description: Wandamen +Description: Wamesa +Description: Wondama Added: 2009-07-29 %% Type: language @@ -37958,6 +38125,11 @@ Added: 2009-07-29 %% Type: language +Subtag: wmg +Description: Western Minyag +Added: 2021-02-20 +%% +Type: language Subtag: wmh Description: Waima'a Added: 2009-07-29 @@ -38163,6 +38335,8 @@ Subtag: wra Description: Warapu Added: 2009-07-29 +Deprecated: 2021-02-20 +Comments: see bpe, suo, uni %% Type: language Subtag: wrb @@ -39340,6 +39514,11 @@ Added: 2013-09-10 %% Type: language +Subtag: xnj +Description: Ngoni (Tanzania) +Added: 2021-02-20 +%% +Type: language Subtag: xnk Description: Nganakarti Added: 2013-09-10 @@ -39360,6 +39539,11 @@ Added: 2009-07-29 %% Type: language +Subtag: xnq +Description: Ngoni (Mozambique) +Added: 2021-02-20 +%% +Type: language Subtag: xnr Description: Kangri Added: 2009-07-29 @@ -41069,6 +41253,11 @@ Added: 2009-07-29 %% Type: language +Subtag: ysm +Description: Myanmar Sign Language +Added: 2021-02-20 +%% +Type: language Subtag: ysn Description: Sani Added: 2009-07-29 @@ -41523,6 +41712,11 @@ Added: 2009-07-29 %% Type: language +Subtag: zbu +Description: Bu (Bauchi State) +Added: 2021-02-20 +%% +Type: language Subtag: zbw Description: West Berawan Added: 2009-07-29 @@ -41749,6 +41943,11 @@ Added: 2009-07-29 %% Type: language +Subtag: zla +Description: Zula +Added: 2021-02-20 +%% +Type: language Subtag: zle Description: East Slavic languages Added: 2009-07-29 @@ -42861,6 +43060,13 @@ Prefix: sgn %% Type: extlang +Subtag: csx +Description: Cambodian Sign Language +Added: 2021-02-20 +Preferred-Value: csx +Prefix: sgn +%% +Type: extlang Subtag: czh Description: Huizhou Chinese Added: 2009-07-29 @@ -42913,6 +43119,13 @@ Prefix: sgn %% Type: extlang +Subtag: ehs +Description: Miyakubo Sign Language +Added: 2021-02-20 +Preferred-Value: ehs +Prefix: sgn +%% +Type: extlang Subtag: esl Description: Egypt Sign Language Added: 2009-07-29 @@ -43197,6 +43410,13 @@ Prefix: sgn %% Type: extlang +Subtag: jks +Description: Amami Koniya Sign Language +Added: 2021-02-20 +Preferred-Value: jks +Prefix: sgn +%% +Type: extlang Subtag: jls Description: Jamaican Sign Language Added: 2010-03-11 @@ -43310,6 +43530,14 @@ Prefix: sgn %% Type: extlang +Subtag: lsb +Description: Burundian Sign Language +Description: Langue des Signes Burundaise +Added: 2021-02-20 +Preferred-Value: lsb +Prefix: sgn +%% +Type: extlang Subtag: lsg Description: Lyons Sign Language Added: 2009-07-29 @@ -43817,6 +44045,13 @@ Prefix: sgn %% Type: extlang +Subtag: sqx +Description: Kufr Qassem Sign Language (KQSL) +Added: 2021-02-20 +Preferred-Value: sqx +Prefix: sgn +%% +Type: extlang Subtag: ssh Description: Shihhi Arabic Added: 2009-07-29 @@ -44107,6 +44342,13 @@ Prefix: sgn %% Type: extlang +Subtag: ysm +Description: Myanmar Sign Language +Added: 2021-02-20 +Preferred-Value: ysm +Prefix: sgn +%% +Type: extlang Subtag: yue Description: Yue Chinese Description: Cantonese @@ -44855,6 +45097,11 @@ Added: 2005-10-16 %% Type: script +Subtag: Ougr +Description: Old Uyghur +Added: 2021-02-12 +%% +Type: script Subtag: Palm Description: Palmyrene Added: 2010-04-10 @@ -44865,6 +45112,16 @@ Added: 2013-12-02 %% Type: script +Subtag: Pcun +Description: Proto-Cuneiform +Added: 2021-02-12 +%% +Type: script +Subtag: Pelm +Description: Proto-Elamite +Added: 2021-02-12 +%% +Type: script Subtag: Perm Description: Old Permic Added: 2005-10-16 @@ -44911,11 +45168,21 @@ Added: 2007-12-05 %% Type: script +Subtag: Psin +Description: Proto-Sinaitic +Added: 2021-02-12 +%% +Type: script Subtag: Qaaa..Qabx Description: Private use Added: 2005-10-16 %% Type: script +Subtag: Ranj +Description: Ranjana +Added: 2021-02-12 +%% +Type: script Subtag: Rjng Description: Rejang Description: Redjang @@ -45128,6 +45395,11 @@ Added: 2011-08-16 %% Type: script +Subtag: Tnsa +Description: Tangsa +Added: 2021-03-05 +%% +Type: script Subtag: Toto Description: Toto Added: 2020-05-12 @@ -45148,6 +45420,11 @@ Added: 2005-10-16 %% Type: script +Subtag: Vith +Description: Vithkuqi +Added: 2021-03-05 +%% +Type: script Subtag: Wara Description: Warang Citi Description: Varang Kshiti @@ -46892,6 +47169,14 @@ Comments: Preferred tag is hyw %% Type: variant +Subtag: arkaika +Description: Arcaicam Esperantom +Description: Arkaika Esperanto +Added: 2020-12-17 +Prefix: eo +Comments: Archaic Esperanto variant devised by Manuel Halvelik +%% +Type: variant Subtag: asante Description: Asante Twi Description: Ashanti Twi @@ -47083,6 +47368,16 @@ Description: Classical Occitan orthography Added: 2018-04-22 Prefix: oc +Prefix: oc-aranes +Prefix: oc-auvern +Prefix: oc-cisaup +Prefix: oc-creiss +Prefix: oc-gascon +Prefix: oc-lemosin +Prefix: oc-lengadoc +Prefix: oc-nicard +Prefix: oc-provenc +Prefix: oc-vivaraup Comments: Classical written standard for Occitan developed in 1935 by Alibèrt %% @@ -47091,12 +47386,25 @@ Description: Italian-inspired Occitan orthography Added: 2018-04-22 Prefix: oc +Prefix: oc-cisaup +Prefix: oc-nicard +Prefix: oc-provenc %% Type: variant Subtag: grmistr Description: Mistralian or Mistralian-inspired Occitan orthography Added: 2018-04-22 Prefix: oc +Prefix: oc-aranes +Prefix: oc-auvern +Prefix: oc-cisaup +Prefix: oc-creiss +Prefix: oc-gascon +Prefix: oc-lemosin +Prefix: oc-lengadoc +Prefix: oc-nicard +Prefix: oc-provenc +Prefix: oc-vivaraup Comments: Written standard developed by Romanilha in 1853 and used by Mistral and the Félibres, including derived standards such as Escolo dóu Po, Escolo Gaston Febus, and others diff -Nru openjdk-11-11.0.14+9/make/data/publicsuffixlist/VERSION openjdk-11-11.0.16+8/make/data/publicsuffixlist/VERSION --- openjdk-11-11.0.14+9/make/data/publicsuffixlist/VERSION 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/data/publicsuffixlist/VERSION 2022-07-16 20:06:34.000000000 +0000 @@ -1,2 +1,2 @@ -Github: https://raw.githubusercontent.com/publicsuffix/list/cbbba1d234670453df9c930dfbf510c0474d4301/public_suffix_list.dat -Date: 2020-04-24 +Github: https://raw.githubusercontent.com/publicsuffix/list/3c213aab32b3c014f171b1673d4ce9b5cd72bf1c/public_suffix_list.dat +Date: 2021-11-27 diff -Nru openjdk-11-11.0.14+9/make/data/publicsuffixlist/public_suffix_list.dat openjdk-11-11.0.16+8/make/data/publicsuffixlist/public_suffix_list.dat --- openjdk-11-11.0.14+9/make/data/publicsuffixlist/public_suffix_list.dat 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/data/publicsuffixlist/public_suffix_list.dat 2022-07-16 20:06:34.000000000 +0000 @@ -175,17 +175,21 @@ // aq : https://en.wikipedia.org/wiki/.aq aq -// ar : https://nic.ar/nic-argentina/normativa-vigente +// ar : https://nic.ar/es/nic-argentina/normativa ar +bet.ar com.ar +coop.ar edu.ar gob.ar gov.ar int.ar mil.ar musica.ar +mutual.ar net.ar org.ar +senasa.ar tur.ar // arpa : https://en.wikipedia.org/wiki/.arpa @@ -258,7 +262,7 @@ vic.gov.au wa.gov.au // 4LDs -education.tas.edu.au +// education.tas.edu.au - Removed at the request of the Department of Education Tasmania schools.nsw.edu.au // aw : https://en.wikipedia.org/wiki/.aw @@ -456,6 +460,7 @@ am.br anani.br aparecida.br +app.br arq.br art.br ato.br @@ -463,6 +468,7 @@ barueri.br belem.br bhz.br +bib.br bio.br blog.br bmd.br @@ -477,14 +483,19 @@ com.br contagem.br coop.br +coz.br cri.br cuiaba.br curitiba.br def.br +des.br +det.br +dev.br ecn.br eco.br edu.br emp.br +enf.br eng.br esp.br etc.br @@ -500,6 +511,7 @@ foz.br fst.br g12.br +geo.br ggf.br goiania.br gov.br @@ -543,6 +555,7 @@ jus.br leg.br lel.br +log.br londrina.br macapa.br maceio.br @@ -575,6 +588,7 @@ radio.br rec.br recife.br +rep.br ribeirao.br rio.br riobranco.br @@ -585,6 +599,7 @@ santoandre.br saobernardo.br saogonca.br +seg.br sjc.br slg.br slz.br @@ -592,6 +607,7 @@ srv.br taxi.br tc.br +tec.br teo.br the.br tmp.br @@ -722,7 +738,6 @@ // cl : https://www.nic.cl // Confirmed by .CL registry cl -aprendemas.cl co.cl gob.cl gov.cl @@ -827,7 +842,13 @@ inf.cu // cv : https://en.wikipedia.org/wiki/.cv +// cv : http://www.dns.cv/tldcv_portal/do?com=DS;5446457100;111;+PAGE(4000018)+K-CAT-CODIGO(RDOM)+RCNT(100); <- registration rules cv +com.cv +edu.cv +int.cv +nome.cv +org.cv // cw : http://www.una.cw/cw_registry/ // Confirmed by registry 2013-03-26 @@ -895,16 +916,18 @@ sld.do web.do -// dz : https://en.wikipedia.org/wiki/.dz +// dz : http://www.nic.dz/images/pdf_nic/charte.pdf dz +art.dz +asso.dz com.dz +edu.dz +gov.dz org.dz net.dz -gov.dz -edu.dz -asso.dz pol.dz -art.dz +soc.dz +tm.dz // ec : http://www.nic.ec/reg/paso1.asp // Submitted by registry @@ -1002,6 +1025,10 @@ *.fk // fm : https://en.wikipedia.org/wiki/.fm +com.fm +edu.fm +net.fm +org.fm fm // fo : https://en.wikipedia.org/wiki/.fo @@ -1041,6 +1068,8 @@ gb // gd : https://en.wikipedia.org/wiki/.gd +edu.gd +gov.gd gd // ge : http://www.nic.net.ge/policy_en.pdf @@ -1132,7 +1161,7 @@ // gs : https://en.wikipedia.org/wiki/.gs gs -// gt : http://www.gt/politicas_de_registro.html +// gt : https://www.gt/sitio/registration_policy.php?lang=en gt com.gt edu.gt @@ -1156,6 +1185,7 @@ web.gu // gw : https://en.wikipedia.org/wiki/.gw +// gw : https://nic.gw/regras/ gw // gy : https://en.wikipedia.org/wiki/.gy @@ -3785,7 +3815,7 @@ // li : https://en.wikipedia.org/wiki/.li li -// lk : http://www.nic.lk/seclevpr.html +// lk : https://www.nic.lk/index.php/domain-registration/lk-domain-naming-structure lk gov.lk sch.lk @@ -4574,15 +4604,17 @@ edu.mx net.mx -// my : http://www.mynic.net.my/ +// my : http://www.mynic.my/ +// Available strings: https://mynic.my/resources/domains/buying-a-domain/ my +biz.my com.my -net.my -org.my -gov.my edu.my +gov.my mil.my name.my +net.my +org.my // mz : http://www.uem.mz/ // Submitted by registry @@ -4679,13 +4711,13 @@ // ccTLD for the Netherlands nl -// no : http://www.norid.no/regelverk/index.en.html -// The Norwegian registry has declined to notify us of updates. The web pages -// referenced below are the official source of the data. There is also an -// announce mailing list: -// https://postlister.uninett.no/sympa/info/norid-diskusjon +// no : https://www.norid.no/en/om-domenenavn/regelverk-for-no/ +// Norid geographical second level domains : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-b/ +// Norid category second level domains : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-c/ +// Norid category second-level domains managed by parties other than Norid : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-d/ +// RSS feed: https://teknisk.norid.no/en/feed/ no -// Norid generic domains : http://www.norid.no/regelverk/vedlegg-c.en.html +// Norid category second level domains : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-c/ fhs.no vgs.no fylkesbibl.no @@ -4693,13 +4725,13 @@ museum.no idrett.no priv.no -// Non-Norid generic domains : http://www.norid.no/regelverk/vedlegg-d.en.html +// Norid category second-level domains managed by parties other than Norid : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-d/ mil.no stat.no dep.no kommune.no herad.no -// no geographical names : http://www.norid.no/regelverk/vedlegg-b.en.html +// Norid geographical second level domains : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-b/ // counties aa.no ah.no @@ -5828,7 +5860,7 @@ org.ps net.ps -// pt : http://online.dns.pt/dns/start_dns +// pt : https://www.dns.pt/en/domain/pt-terms-and-conditions-registration-rules/ pt net.pt gov.pt @@ -6065,8 +6097,10 @@ com.ss edu.ss gov.ss +me.ss net.ss org.ss +sch.ss // st : http://www.nic.st/html/policyrules/ st @@ -6075,7 +6109,6 @@ consulado.st edu.st embaixada.st -gov.st mil.st net.st org.st @@ -6180,29 +6213,22 @@ mil.tm edu.tm -// tn : https://en.wikipedia.org/wiki/.tn -// http://whois.ati.tn/ +// tn : http://www.registre.tn/fr/ +// https://whois.ati.tn/ tn com.tn ens.tn fin.tn gov.tn ind.tn +info.tn intl.tn +mincom.tn nat.tn net.tn org.tn -info.tn perso.tn tourism.tn -edunet.tn -rnrt.tn -rns.tn -rnu.tn -mincom.tn -agrinet.tn -defense.tn -turen.tn // to : https://en.wikipedia.org/wiki/.to // Submitted by registry @@ -6327,7 +6353,6 @@ dn.ua dnepropetrovsk.ua dnipropetrovsk.ua -dominic.ua donetsk.ua dp.ua if.ua @@ -6693,9 +6718,10 @@ edu.vc // ve : https://registro.nic.ve/ -// Submitted by registry +// Submitted by registry nic@nic.ve and nicve@conatel.gob.ve ve arts.ve +bib.ve co.ve com.ve e12.ve @@ -6707,7 +6733,9 @@ int.ve mil.ve net.ve +nom.ve org.ve +rar.ve rec.ve store.ve tec.ve @@ -6786,6 +6814,9 @@ // xn--90ae ("bg", Bulgarian) : BG бг +// xn--mgbcpq6gpa1a ("albahrain", Arabic) : BH +البحرين + // xn--90ais ("bel", Belarusian/Russian Cyrillic) : BY // Operated by .by registry бел @@ -6918,12 +6949,15 @@ // xn--80ao21a ("Kaz", Kazakh) : KZ қаз +// xn--q7ce6a ("Lao", Lao) : LA +ລາວ + // xn--fzc2c9e2c ("Lanka", Sinhalese-Sinhala) : LK -// http://nic.lk +// https://nic.lk ලංකා // xn--xkc2al3hye2a ("Ilangai", Tamil) : LK -// http://nic.lk +// https://nic.lk இலங்கை // xn--mgbc0a9azcg ("Morocco/al-Maghrib", Arabic) : MA @@ -7043,7 +7077,13 @@ xxx // ye : http://www.y.net.ye/services/domain_name.htm -*.ye +ye +com.ye +edu.ye +gov.ye +net.ye +mil.ye +org.ye // za : https://www.zadna.org.za/content/page/domain-information/ ac.za @@ -7092,7 +7132,7 @@ // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2020-04-02T18:20:31Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2021-11-13T15:12:42Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7118,7 +7158,7 @@ // able : 2015-06-25 Able Inc. able -// abogado : 2014-04-24 Minds + Machines Group Limited +// abogado : 2014-04-24 Registry Services, LLC abogado // abudhabi : 2015-07-30 Abu Dhabi Systems and Information Centre @@ -7175,9 +7215,6 @@ // aig : 2014-12-18 American International Group, Inc. aig -// aigo : 2015-08-06 aigo Digital Technology Co,Ltd. -aigo - // airbus : 2015-07-30 Airbus S.A.S. airbus @@ -7241,7 +7278,7 @@ // android : 2014-08-07 Charleston Road Registry Inc. android -// anquan : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. +// anquan : 2015-01-08 Beijing Qihu Keji Co., Ltd. anquan // anz : 2015-07-31 Australia and New Zealand Banking Group Limited @@ -7301,7 +7338,7 @@ // audible : 2015-06-25 Amazon Registry Services, Inc. audible -// audio : 2014-03-20 Uniregistry, Corp. +// audio : 2014-03-20 UNR Corp. audio // auspost : 2015-08-13 Australian Postal Corporation @@ -7310,19 +7347,19 @@ // author : 2014-12-18 Amazon Registry Services, Inc. author -// auto : 2014-11-13 Cars Registry Limited +// auto : 2014-11-13 XYZ.COM LLC auto -// autos : 2014-01-09 DERAutos, LLC +// autos : 2014-01-09 XYZ.COM LLC autos // avianca : 2015-01-08 Avianca Holdings S.A. avianca -// aws : 2015-06-25 Amazon Registry Services, Inc. +// aws : 2015-06-25 AWS Registry LLC aws -// axa : 2013-12-19 AXA SA +// axa : 2013-12-19 AXA Group Operations SAS axa // azure : 2014-12-18 Microsoft Corporation @@ -7397,7 +7434,7 @@ // beauty : 2015-12-03 XYZ.COM LLC beauty -// beer : 2014-01-09 Minds + Machines Group Limited +// beer : 2014-01-09 Registry Services, LLC beer // bentley : 2014-12-18 Bentley Motors Limited @@ -7439,7 +7476,7 @@ // black : 2014-01-16 Afilias Limited black -// blackfriday : 2014-01-16 Uniregistry, Corp. +// blackfriday : 2014-01-16 UNR Corp. blackfriday // blockbuster : 2015-07-30 Dish DBS Corporation @@ -7463,7 +7500,7 @@ // bnpparibas : 2014-05-29 BNP Paribas bnpparibas -// boats : 2014-12-04 DERBoats, LLC +// boats : 2014-12-04 XYZ.COM LLC boats // boehringer : 2015-07-09 Boehringer Ingelheim International GmbH @@ -7502,7 +7539,7 @@ // boutique : 2013-11-14 Binky Moon, LLC boutique -// box : 2015-11-12 .BOX INC. +// box : 2015-11-12 Intercap Registry Inc. box // bradesco : 2014-12-18 Banco Bradesco S.A. @@ -7514,7 +7551,7 @@ // broadway : 2014-12-22 Celebrate Broadway, Inc. broadway -// broker : 2014-12-11 Dotbroker Registry Limited +// broker : 2014-12-11 Dog Beach, LLC broker // brother : 2015-01-29 Brother Industries, Ltd. @@ -7586,7 +7623,7 @@ // capitalone : 2015-08-06 Capital One Financial Corporation capitalone -// car : 2015-01-22 Cars Registry Limited +// car : 2015-01-22 XYZ.COM LLC car // caravan : 2013-12-12 Caravan International, Inc. @@ -7604,18 +7641,15 @@ // careers : 2013-10-02 Binky Moon, LLC careers -// cars : 2014-11-13 Cars Registry Limited +// cars : 2014-11-13 XYZ.COM LLC cars -// casa : 2013-11-21 Minds + Machines Group Limited +// casa : 2013-11-21 Registry Services, LLC casa -// case : 2015-09-03 CNH Industrial N.V. +// case : 2015-09-03 Helium TLDs Ltd case -// caseih : 2015-09-03 CNH Industrial N.V. -caseih - // cash : 2014-03-06 Binky Moon, LLC cash @@ -7640,9 +7674,6 @@ // cbs : 2015-08-06 CBS Domains Inc. cbs -// ceb : 2015-04-09 The Corporate Executive Board Company -ceb - // center : 2013-11-07 Binky Moon, LLC center @@ -7655,7 +7686,7 @@ // cfa : 2014-08-28 CFA Institute cfa -// cfd : 2014-12-11 DotCFD Registry Limited +// cfd : 2014-12-11 ShortDot SA cfd // chanel : 2015-04-09 Chanel International B.V. @@ -7679,7 +7710,7 @@ // chintai : 2015-06-11 CHINTAI Corporation chintai -// christmas : 2013-11-21 Uniregistry, Corp. +// christmas : 2013-11-21 UNR Corp. christmas // chrome : 2014-07-24 Charleston Road Registry Inc. @@ -7718,7 +7749,7 @@ // cleaning : 2013-12-05 Binky Moon, LLC cleaning -// click : 2014-06-05 Uniregistry, Corp. +// click : 2014-06-05 UNR Corp. click // clinic : 2014-03-20 Binky Moon, LLC @@ -7733,7 +7764,7 @@ // cloud : 2015-04-16 Aruba PEC S.p.A. cloud -// club : 2013-11-08 .CLUB DOMAINS, LLC +// club : 2013-11-08 Registry Services, LLC club // clubmed : 2015-06-25 Club Méditerranée S.A. @@ -7790,7 +7821,7 @@ // contractors : 2013-09-10 Binky Moon, LLC contractors -// cooking : 2013-11-21 Minds + Machines Group Limited +// cooking : 2013-11-21 Registry Services, LLC cooking // cookingchannel : 2015-07-02 Lifestyle Domain Holdings, Inc. @@ -7823,7 +7854,7 @@ // creditcard : 2014-03-20 Binky Moon, LLC creditcard -// creditunion : 2015-01-22 CUNA Performance Resources, LLC +// creditunion : 2015-01-22 DotCooperation LLC creditunion // cricket : 2014-10-09 dot Cricket Limited @@ -7880,7 +7911,7 @@ // dclk : 2014-11-20 Charleston Road Registry Inc. dclk -// dds : 2015-05-07 Minds + Machines Group Limited +// dds : 2015-05-07 Registry Services, LLC dds // deal : 2015-06-25 Amazon Registry Services, Inc. @@ -7919,7 +7950,7 @@ // desi : 2013-11-14 Desi Networks LLC desi -// design : 2014-11-07 Top Level Design, LLC +// design : 2014-11-07 Registry Services, LLC design // dev : 2014-10-16 Charleston Road Registry Inc. @@ -7931,7 +7962,7 @@ // diamonds : 2013-09-22 Binky Moon, LLC diamonds -// diet : 2014-06-26 Uniregistry, Corp. +// diet : 2014-06-26 UNR Corp. diet // digital : 2014-03-06 Binky Moon, LLC @@ -7991,7 +8022,7 @@ // dunlop : 2015-07-02 The Goodyear Tire & Rubber Company dunlop -// dupont : 2015-06-25 E. I. du Pont de Nemours and Company +// dupont : 2015-06-25 DuPont Specialty Products USA, LLC dupont // durban : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry @@ -8054,9 +8085,6 @@ // estate : 2013-08-27 Binky Moon, LLC estate -// esurance : 2015-07-23 Esurance Insurance Company -esurance - // etisalat : 2015-09-03 Emirates Telecommunications Corporation (trading as Etisalat) etisalat @@ -8111,7 +8139,7 @@ // farmers : 2015-07-09 Farmers Insurance Exchange farmers -// fashion : 2014-07-03 Minds + Machines Group Limited +// fashion : 2014-07-03 Registry Services, LLC fashion // fast : 2014-12-18 Amazon Registry Services, Inc. @@ -8162,16 +8190,16 @@ // fish : 2013-12-12 Binky Moon, LLC fish -// fishing : 2013-11-21 Minds + Machines Group Limited +// fishing : 2013-11-21 Registry Services, LLC fishing -// fit : 2014-11-07 Minds + Machines Group Limited +// fit : 2014-11-07 Registry Services, LLC fit // fitness : 2014-03-06 Binky Moon, LLC fitness -// flickr : 2015-04-02 Yahoo! Domain Services Inc. +// flickr : 2015-04-02 Flickr, Inc. flickr // flights : 2013-12-05 Binky Moon, LLC @@ -8183,7 +8211,7 @@ // florist : 2013-11-07 Binky Moon, LLC florist -// flowers : 2014-10-09 Uniregistry, Corp. +// flowers : 2014-10-09 UNR Corp. flowers // fly : 2014-05-08 Charleston Road Registry Inc. @@ -8204,7 +8232,7 @@ // ford : 2014-11-13 Ford Motor Company ford -// forex : 2014-12-11 Dotforex Registry Limited +// forex : 2014-12-11 Dog Beach, LLC forex // forsale : 2014-05-22 Dog Beach, LLC @@ -8243,10 +8271,7 @@ // fujitsu : 2015-07-30 Fujitsu Limited fujitsu -// fujixerox : 2015-07-23 Xerox DNHC LLC -fujixerox - -// fun : 2016-01-14 DotSpace Inc. +// fun : 2016-01-14 Radix FZC fun // fund : 2014-03-20 Binky Moon, LLC @@ -8273,7 +8298,7 @@ // gallup : 2015-02-19 Gallup, Inc. gallup -// game : 2015-05-28 Uniregistry, Corp. +// game : 2015-05-28 UNR Corp. game // games : 2015-05-28 Dog Beach, LLC @@ -8282,7 +8307,7 @@ // gap : 2015-07-31 The Gap, Inc. gap -// garden : 2014-06-26 Minds + Machines Group Limited +// garden : 2014-06-26 Registry Services, LLC garden // gay : 2019-05-23 Top Level Design, LLC @@ -8411,7 +8436,7 @@ // guide : 2013-09-13 Binky Moon, LLC guide -// guitars : 2013-11-14 Uniregistry, Corp. +// guitars : 2013-11-14 UNR Corp. guitars // guru : 2013-08-27 Binky Moon, LLC @@ -8444,7 +8469,7 @@ // healthcare : 2014-06-12 Binky Moon, LLC healthcare -// help : 2014-06-26 Uniregistry, Corp. +// help : 2014-06-26 UNR Corp. help // helsinki : 2015-02-05 City of Helsinki @@ -8459,7 +8484,7 @@ // hgtv : 2015-07-02 Lifestyle Domain Holdings, Inc. hgtv -// hiphop : 2014-03-06 Uniregistry, Corp. +// hiphop : 2014-03-06 UNR Corp. hiphop // hisamitsu : 2015-07-16 Hisamitsu Pharmaceutical Co.,Inc. @@ -8468,7 +8493,7 @@ // hitachi : 2014-10-31 Hitachi, Ltd. hitachi -// hiv : 2014-03-13 Uniregistry, Corp. +// hiv : 2014-03-13 UNR Corp. hiv // hkt : 2015-05-14 PCCW-HKT DataCom Services Limited @@ -8489,7 +8514,7 @@ // homegoods : 2015-07-16 The TJX Companies, Inc. homegoods -// homes : 2014-01-09 DERHomes, LLC +// homes : 2014-01-09 XYZ.COM LLC homes // homesense : 2015-07-16 The TJX Companies, Inc. @@ -8498,16 +8523,16 @@ // honda : 2014-12-18 Honda Motor Co., Ltd. honda -// horse : 2013-11-21 Minds + Machines Group Limited +// horse : 2013-11-21 Registry Services, LLC horse // hospital : 2016-10-20 Binky Moon, LLC hospital -// host : 2014-04-17 DotHost Inc. +// host : 2014-04-17 Radix FZC host -// hosting : 2014-05-29 Uniregistry, Corp. +// hosting : 2014-05-29 UNR Corp. hosting // hot : 2015-08-27 Amazon Registry Services, Inc. @@ -8597,9 +8622,6 @@ // insure : 2014-03-20 Binky Moon, LLC insure -// intel : 2015-08-06 Intel Corporation -intel - // international : 2013-11-07 Binky Moon, LLC international @@ -8630,9 +8652,6 @@ // itv : 2015-07-09 ITV Services Limited itv -// iveco : 2015-09-03 CNH Industrial N.V. -iveco - // jaguar : 2014-11-13 Jaguar Land Rover Ltd jaguar @@ -8642,9 +8661,6 @@ // jcb : 2014-11-20 JCB Co., Ltd. jcb -// jcp : 2015-04-23 JCP Media, Inc. -jcp - // jeep : 2015-07-30 FCA US LLC. jeep @@ -8681,7 +8697,7 @@ // jprs : 2014-09-18 Japan Registry Services Co., Ltd. jprs -// juegos : 2014-03-20 Uniregistry, Corp. +// juegos : 2014-03-20 UNR Corp. juegos // juniper : 2015-07-30 JUNIPER NETWORKS, INC. @@ -8708,6 +8724,9 @@ // kia : 2015-07-09 KIA MOTORS CORPORATION kia +// kids : 2021-08-13 DotKids Foundation Limited +kids + // kim : 2013-09-23 Afilias Limited kim @@ -8786,13 +8805,13 @@ // latrobe : 2014-06-16 La Trobe University latrobe -// law : 2015-01-22 LW TLD Limited +// law : 2015-01-22 Registry Services, LLC law // lawyer : 2014-03-20 Dog Beach, LLC lawyer -// lds : 2014-03-20 IRI Domain Management, LLC ("Applicant") +// lds : 2014-03-20 IRI Domain Management, LLC lds // lease : 2014-03-06 Binky Moon, LLC @@ -8849,7 +8868,7 @@ // linde : 2014-12-04 Linde Aktiengesellschaft linde -// link : 2013-11-14 Uniregistry, Corp. +// link : 2013-11-14 UNR Corp. link // lipsy : 2015-06-25 Lipsy Ltd @@ -8867,7 +8886,7 @@ // llc : 2017-12-14 Afilias Limited llc -// llp : 2019-08-26 Dot Registry LLC +// llp : 2019-08-26 UNR Corp. llp // loan : 2014-11-20 dot Loan Limited @@ -8885,7 +8904,7 @@ // loft : 2015-07-30 Annco, Inc. loft -// lol : 2015-01-30 Uniregistry, Corp. +// lol : 2015-01-30 UNR Corp. lol // london : 2013-11-14 Dot London Domains Limited @@ -8915,10 +8934,7 @@ // lundbeck : 2015-08-06 H. Lundbeck A/S lundbeck -// lupin : 2014-11-07 LUPIN LIMITED -lupin - -// luxe : 2014-01-09 Minds + Machines Group Limited +// luxe : 2014-01-09 Registry Services, LLC luxe // luxury : 2013-10-17 Luxury Partners, LLC @@ -8957,7 +8973,7 @@ // marketing : 2013-11-07 Binky Moon, LLC marketing -// markets : 2014-12-11 Dotmarkets Registry Limited +// markets : 2014-12-11 Dog Beach, LLC markets // marriott : 2014-10-09 Marriott Worldwide Corporation @@ -9005,9 +9021,6 @@ // merckmsd : 2016-07-14 MSD Registry Holdings, Inc. merckmsd -// metlife : 2015-05-07 MetLife Services and Solutions, LLC -metlife - // miami : 2013-12-19 Minds + Machines Group Limited miami @@ -9047,7 +9060,7 @@ // moi : 2014-12-18 Amazon Registry Services, Inc. moi -// mom : 2015-04-16 Uniregistry, Corp. +// mom : 2015-04-16 UNR Corp. mom // monash : 2013-09-30 Monash University @@ -9059,7 +9072,7 @@ // monster : 2015-09-11 XYZ.COM LLC monster -// mormon : 2013-12-05 IRI Domain Management, LLC ("Applicant") +// mormon : 2013-12-05 IRI Domain Management, LLC mormon // mortgage : 2014-03-20 Dog Beach, LLC @@ -9071,7 +9084,7 @@ // moto : 2015-06-04 Motorola Trademark Holdings, LLC moto -// motorcycles : 2014-01-09 DERMotorcycles, LLC +// motorcycles : 2014-01-09 XYZ.COM LLC motorcycles // mov : 2014-01-30 Charleston Road Registry Inc. @@ -9089,6 +9102,9 @@ // mtr : 2015-03-12 MTR Corporation Limited mtr +// music : 2021-05-04 DotMusic Limited +music + // mutual : 2015-04-02 Northwestern Mutual MU TLD Registry, LLC mutual @@ -9098,9 +9114,6 @@ // nagoya : 2013-10-24 GMO Registry, Inc. nagoya -// nationwide : 2015-07-23 Nationwide Mutual Insurance Company -nationwide - // natura : 2015-03-12 NATURA COSMÉTICOS S.A. natura @@ -9122,15 +9135,12 @@ // network : 2013-11-14 Binky Moon, LLC network -// neustar : 2013-12-05 Registry Services, LLC +// neustar : 2013-12-05 NeuStar, Inc. neustar // new : 2014-01-30 Charleston Road Registry Inc. new -// newholland : 2015-09-03 CNH Industrial N.V. -newholland - // news : 2014-12-18 Dog Beach, LLC news @@ -9176,7 +9186,7 @@ // northwesternmutual : 2015-06-18 Northwestern Mutual Registry, LLC northwesternmutual -// norton : 2014-12-04 Symantec Corporation +// norton : 2014-12-04 NortonLifeLock Inc. norton // now : 2015-06-25 Amazon Registry Services, Inc. @@ -9203,7 +9213,7 @@ // obi : 2014-09-25 OBI Group Holding SE & Co. KGaA obi -// observer : 2015-04-30 Top Level Spectrum, Inc. +// observer : 2015-04-30 Dog Beach, LLC observer // off : 2015-07-23 Johnson Shareholdings, Inc. @@ -9236,15 +9246,12 @@ // ong : 2014-03-06 Public Interest Registry ong -// onl : 2013-09-16 I-Registry Ltd. +// onl : 2013-09-16 iRegistry GmbH onl -// online : 2015-01-15 DotOnline Inc. +// online : 2015-01-15 Radix FZC online -// onyourside : 2015-07-23 Nationwide Mutual Insurance Company -onyourside - // ooo : 2014-01-09 INFIBEAM AVENUES LIMITED ooo @@ -9323,7 +9330,7 @@ // phone : 2016-06-02 Dish DBS Corporation phone -// photo : 2013-11-14 Uniregistry, Corp. +// photo : 2013-11-14 UNR Corp. photo // photography : 2013-09-20 Binky Moon, LLC @@ -9335,7 +9342,7 @@ // physio : 2014-05-01 PhysBiz Pty Ltd physio -// pics : 2013-11-14 Uniregistry, Corp. +// pics : 2013-11-14 UNR Corp. pics // pictet : 2014-06-26 Pictet Europe S.A. @@ -9398,7 +9405,7 @@ // praxi : 2013-12-05 Praxi S.p.A. praxi -// press : 2014-04-03 DotPress Inc. +// press : 2014-04-03 Radix FZC press // prime : 2015-06-25 Amazon Registry Services, Inc. @@ -9422,7 +9429,7 @@ // properties : 2013-12-05 Binky Moon, LLC properties -// property : 2014-05-22 Uniregistry, Corp. +// property : 2014-05-22 UNR Corp. property // protection : 2015-04-23 XYZ.COM LLC @@ -9449,9 +9456,6 @@ // quest : 2015-03-26 XYZ.COM LLC quest -// qvc : 2015-07-30 QVC, Inc. -qvc - // racing : 2014-12-04 Premier Registry Limited racing @@ -9470,7 +9474,7 @@ // realtor : 2014-05-29 Real Estate Domains LLC realtor -// realty : 2015-03-19 Fegistry, LLC +// realty : 2015-03-19 Dog Beach, LLC realty // recipes : 2013-10-17 Binky Moon, LLC @@ -9533,7 +9537,7 @@ // rexroth : 2015-06-18 Robert Bosch GMBH rexroth -// rich : 2013-11-21 I-Registry Ltd. +// rich : 2013-11-21 iRegistry GmbH rich // richardli : 2015-05-14 Pacific Century Asset Management (HK) Limited @@ -9542,9 +9546,6 @@ // ricoh : 2014-11-20 Ricoh Company, Ltd. ricoh -// rightathome : 2015-07-23 Johnson Shareholdings, Inc. -rightathome - // ril : 2015-04-02 Reliance Industries Limited ril @@ -9554,16 +9555,13 @@ // rip : 2014-07-10 Dog Beach, LLC rip -// rmit : 2015-11-19 Royal Melbourne Institute of Technology -rmit - // rocher : 2014-12-18 Ferrero Trading Lux S.A. rocher // rocks : 2013-11-14 Dog Beach, LLC rocks -// rodeo : 2013-12-19 Minds + Machines Group Limited +// rodeo : 2013-12-19 Registry Services, LLC rodeo // rogers : 2015-08-06 Rogers Communications Canada Inc. @@ -9641,7 +9639,7 @@ // sbi : 2015-03-12 STATE BANK OF INDIA sbi -// sbs : 2014-11-07 SPECIAL BROADCASTING SERVICE CORPORATION +// sbs : 2014-11-07 ShortDot SA sbs // sca : 2014-03-13 SVENSKA CELLULOSA AKTIEBOLAGET SCA (publ) @@ -9674,9 +9672,6 @@ // scjohnson : 2015-07-23 Johnson Shareholdings, Inc. scjohnson -// scor : 2014-10-31 SCOR SE -scor - // scot : 2014-01-23 Dot Scot Registry Limited scot @@ -9716,7 +9711,7 @@ // sex : 2014-11-13 ICM Registry SX LLC sex -// sexy : 2013-09-11 Uniregistry, Corp. +// sexy : 2013-09-11 UNR Corp. sexy // sfr : 2015-08-13 Societe Francaise du Radiotelephone - SFR @@ -9749,7 +9744,7 @@ // shopping : 2016-03-31 Binky Moon, LLC shopping -// shouji : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. +// shouji : 2015-01-08 Beijing Qihu Keji Co., Ltd. shouji // show : 2015-03-05 Binky Moon, LLC @@ -9758,9 +9753,6 @@ // showtime : 2015-08-06 CBS Domains Inc. showtime -// shriram : 2014-01-23 Shriram Capital Ltd. -shriram - // silk : 2015-06-25 Amazon Registry Services, Inc. silk @@ -9770,7 +9762,7 @@ // singles : 2013-08-27 Binky Moon, LLC singles -// site : 2015-01-15 DotSite Inc. +// site : 2015-01-15 Radix FZC site // ski : 2015-04-09 Afilias Limited @@ -9830,7 +9822,7 @@ // spa : 2019-09-19 Asia Spa and Wellness Promotion Council Limited spa -// space : 2014-04-03 DotSpace Inc. +// space : 2014-04-03 Radix FZC space // sport : 2017-11-16 Global Association of International Sports Federations (GAISF) @@ -9839,9 +9831,6 @@ // spot : 2015-02-26 Amazon Registry Services, Inc. spot -// spreadbetting : 2014-12-11 Dotspreadbetting Registry Limited -spreadbetting - // srl : 2015-05-07 InterNetX, Corp srl @@ -9872,7 +9861,7 @@ // storage : 2014-12-22 XYZ.COM LLC storage -// store : 2015-04-09 DotStore Inc. +// store : 2015-04-09 Radix FZC store // stream : 2016-01-08 dot Stream Limited @@ -9899,7 +9888,7 @@ // support : 2013-10-24 Binky Moon, LLC support -// surf : 2014-01-09 Minds + Machines Group Limited +// surf : 2014-01-09 Registry Services, LLC surf // surgery : 2014-03-20 Binky Moon, LLC @@ -9911,18 +9900,12 @@ // swatch : 2015-01-08 The Swatch Group Ltd swatch -// swiftcover : 2015-07-23 Swiftcover Insurance Services Limited -swiftcover - // swiss : 2014-10-16 Swiss Confederation swiss // sydney : 2014-09-18 State of New South Wales, Department of Premier and Cabinet sydney -// symantec : 2014-12-04 Symantec Corporation -symantec - // systems : 2013-11-07 Binky Moon, LLC systems @@ -9947,7 +9930,7 @@ // tatar : 2014-04-24 Limited Liability Company "Coordination Center of Regional Domain of Tatarstan Republic" tatar -// tattoo : 2013-08-30 Uniregistry, Corp. +// tattoo : 2013-08-30 UNR Corp. tattoo // tax : 2014-03-20 Binky Moon, LLC @@ -9965,7 +9948,7 @@ // team : 2015-03-05 Binky Moon, LLC team -// tech : 2015-01-30 Personals TLD Inc. +// tech : 2015-01-30 Radix FZC tech // technology : 2013-09-13 Binky Moon, LLC @@ -9992,7 +9975,7 @@ // tiaa : 2015-07-23 Teachers Insurance and Annuity Association of America tiaa -// tickets : 2015-02-05 Accent Media Limited +// tickets : 2015-02-05 XYZ.COM LLC tickets // tienda : 2013-11-14 Binky Moon, LLC @@ -10058,7 +10041,7 @@ // trade : 2014-01-23 Elite Registry Limited trade -// trading : 2014-12-11 Dottrading Registry Limited +// trading : 2014-12-11 Dog Beach, LLC trading // training : 2013-11-07 Binky Moon, LLC @@ -10076,7 +10059,7 @@ // travelersinsurance : 2015-03-26 Travelers TLD, LLC travelersinsurance -// trust : 2014-10-16 NCC Group Inc. +// trust : 2014-10-16 UNR Corp. trust // trv : 2015-03-26 Travelers TLD, LLC @@ -10109,7 +10092,7 @@ // university : 2014-03-06 Binky Moon, LLC university -// uno : 2013-09-11 DotSite Inc. +// uno : 2013-09-11 Radix FZC uno // uol : 2014-05-01 UBN INTERNET LTDA. @@ -10160,7 +10143,7 @@ // vin : 2015-06-18 Binky Moon, LLC vin -// vip : 2015-01-22 Minds + Machines Group Limited +// vip : 2015-01-22 Registry Services, LLC vip // virgin : 2014-09-25 Virgin Enterprises Limited @@ -10181,7 +10164,7 @@ // vlaanderen : 2014-02-06 DNS.be vzw vlaanderen -// vodka : 2013-12-19 Minds + Machines Group Limited +// vodka : 2013-12-19 Registry Services, LLC vodka // volkswagen : 2015-05-14 Volkswagen Group of America Inc. @@ -10223,7 +10206,7 @@ // watch : 2013-11-14 Binky Moon, LLC watch -// watches : 2014-12-22 Richemont DNS Inc. +// watches : 2014-12-22 Afilias Limited watches // weather : 2015-01-08 International Business Machines Corporation @@ -10238,13 +10221,10 @@ // weber : 2015-06-04 Saint-Gobain Weber SA weber -// website : 2014-04-03 DotWebsite Inc. +// website : 2014-04-03 Radix FZC website -// wed : 2013-10-01 Atgron, Inc. -wed - -// wedding : 2014-04-24 Minds + Machines Group Limited +// wedding : 2014-04-24 Registry Services, LLC wedding // weibo : 2015-03-05 Sina Corporation @@ -10286,7 +10266,7 @@ // woodside : 2015-07-09 Woodside Petroleum Limited woodside -// work : 2013-12-19 Minds + Machines Group Limited +// work : 2013-12-19 Registry Services, LLC work // works : 2013-11-14 Binky Moon, LLC @@ -10313,7 +10293,7 @@ // xfinity : 2015-07-09 Comcast IP Holdings I, LLC xfinity -// xihuan : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. +// xihuan : 2015-01-08 Beijing Qihu Keji Co., Ltd. xihuan // xin : 2014-12-11 Elegant Leader Limited @@ -10337,9 +10317,6 @@ // xn--3ds443g : 2013-09-08 TLD REGISTRY LIMITED OY 在线 -// xn--3oq18vl8pn36a : 2015-07-02 Volkswagen (China) Investment Co., Ltd. -大众汽车 - // xn--3pxu8k : 2015-01-15 VeriSign Sarl 点看 @@ -10349,7 +10326,7 @@ // xn--45q11c : 2013-11-21 Zodiac Gemini Ltd 八卦 -// xn--4gbrim : 2013-10-04 Fans TLD Limited +// xn--4gbrim : 2013-10-04 Helium TLDs Ltd موقع // xn--55qw42g : 2013-11-08 China Organizational Name Administration Center @@ -10454,7 +10431,7 @@ // xn--fzys8d69uvgm : 2015-05-14 PCCW Enterprises Limited 電訊盈科 -// xn--g2xx48c : 2015-01-30 Minds + Machines Group Limited +// xn--g2xx48c : 2015-01-30 Nawang Heli(Xiamen) Network Service Co., LTD. 购物 // xn--gckr3f0f : 2015-02-26 Amazon Registry Services, Inc. @@ -10490,9 +10467,6 @@ // xn--kcrx77d1x4a : 2014-11-07 Koninklijke Philips N.V. 飞利浦 -// xn--kpu716f : 2014-12-22 Richemont DNS Inc. -手表 - // xn--kput3i : 2014-02-13 Beijing RITT-Net Technology Development Co., Ltd 手机 @@ -10547,9 +10521,6 @@ // xn--p1acf : 2013-12-12 Rusnames Limited рус -// xn--pbt977c : 2014-12-22 Richemont DNS Inc. -珠宝 - // xn--pssy2u : 2015-01-15 VeriSign Sarl 大拿 @@ -10607,10 +10578,10 @@ // xyz : 2013-12-05 XYZ.COM LLC xyz -// yachts : 2014-01-09 DERYachts, LLC +// yachts : 2014-01-09 XYZ.COM LLC yachts -// yahoo : 2015-04-02 Yahoo! Domain Services Inc. +// yahoo : 2015-04-02 Oath Inc. yahoo // yamaxun : 2014-12-18 Amazon Registry Services, Inc. @@ -10622,7 +10593,7 @@ // yodobashi : 2014-11-20 YODOBASHI CAMERA CO.,LTD. yodobashi -// yoga : 2014-05-29 Minds + Machines Group Limited +// yoga : 2014-05-29 Registry Services, LLC yoga // yokohama : 2013-12-12 GMO Registry, Inc. @@ -10634,7 +10605,7 @@ // youtube : 2014-05-01 Charleston Road Registry Inc. youtube -// yun : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. +// yun : 2015-01-08 Beijing Qihu Keji Co., Ltd. yun // zappos : 2015-06-25 Amazon Registry Services, Inc. @@ -10666,11 +10637,25 @@ inf.ua ltd.ua +// 611coin : https://611project.org/ +611.to + +// Aaron Marais' Gitlab pages: https://lab.aaronleem.co.za +// Submitted by Aaron Marais +graphox.us + +// accesso Technology Group, plc. : https://accesso.com/ +// Submitted by accesso Team +*.devcdnaccesso.com + // Adobe : https://www.adobe.com/ -// Submitted by Ian Boston +// Submitted by Ian Boston and Lars Trieloff adobeaemcloud.com -adobeaemcloud.net *.dev.adobeaemcloud.com +hlx.live +adobeaemcloud.net +hlx.page +hlx3.page // Agnat sp. z o.o. : https://domena.pl // Submitted by Przemyslaw Plewa @@ -10685,6 +10670,10 @@ *.compute.estate *.alces.network +// all-inkl.com : https://all-inkl.com +// Submitted by Werner Kaltofen +kasserver.com + // Altervista: https://www.altervista.org // Submitted by Carlo Cannas altervista.org @@ -10732,6 +10721,10 @@ *.elb.amazonaws.com *.elb.amazonaws.com.cn +// Amazon Global Accelerator : https://aws.amazon.com/global-accelerator/ +// Submitted by Daniel Massaguer +awsglobalaccelerator.com + // Amazon S3 : https://aws.amazon.com/s3/ // Submitted by Luke Wells s3.amazonaws.com @@ -10789,10 +10782,6 @@ s3-website.eu-west-3.amazonaws.com s3-website.us-east-2.amazonaws.com -// Amsterdam Wireless: https://www.amsterdamwireless.nl/ -// Submitted by Imre Jonk -amsw.nl - // Amune : https://amune.org/ // Submitted by Team Amune t3l3p0rt.net @@ -10802,6 +10791,19 @@ // Submitted by Apigee Security Team apigee.io +// Apphud : https://apphud.com +// Submitted by Alexander Selivanov +siiites.com + +// Appspace : https://www.appspace.com +// Submitted by Appspace Security Team +appspacehosted.com +appspaceusercontent.com + +// Appudo UG (haftungsbeschränkt) : https://www.appudo.com +// Submitted by Alexander Hochbaum +appudo.net + // Aptible : https://www.aptible.com/ // Submitted by Thomas Orozco on-aptible.com @@ -10827,15 +10829,27 @@ // Submitted by Vincent Tseng myasustor.com +// Atlassian : https://atlassian.com +// Submitted by Sam Smyth +cdn.prod.atlassian-dev.net + // AVM : https://avm.de // Submitted by Andreas Weise myfritz.net +// AVStack Pte. Ltd. : https://avstack.io +// Submitted by Jasper Hugo +onavstack.net + // AW AdvisorWebsites.com Software Inc : https://advisorwebsites.com // Submitted by James Kennedy *.awdev.ca *.advisor.ws +// AZ.pl sp. z.o.o: https://az.pl +// Submited by Krzysztof Wolski +ecommerce-shop.pl + // b-data GmbH : https://www.b-data.io // Submitted by Olivier Benz b-data.io @@ -10848,9 +10862,17 @@ // Submitted by Petros Angelatos balena-devices.com +// University of Banja Luka : https://unibl.org +// Domains for Republic of Srpska administrative entity. +// Submitted by Marko Ivanovic +rs.ba + // Banzai Cloud -// Submitted by Gabor Kozma +// Submitted by Janos Matyas +*.banzai.cloud app.banzaicloud.io +*.backyards.banzaicloud.io + // BetaInABox // Submitted by Adrian @@ -10860,14 +10882,30 @@ // Submitted by Nathan O'Sullivan bnr.la +// Bitbucket : http://bitbucket.org +// Submitted by Andy Ortlieb +bitbucket.io + // Blackbaud, Inc. : https://www.blackbaud.com // Submitted by Paul Crowder blackbaudcdn.net +// Blatech : http://www.blatech.net +// Submitted by Luke Bratch +of.je + +// Blue Bite, LLC : https://bluebite.com +// Submitted by Joshua Weiss +bluebite.io + // Boomla : https://boomla.com // Submitted by Tibor Halter boomla.net +// Boutir : https://www.boutir.com +// Submitted by Eric Ng Ka Ka +boutir.com + // Boxfuse : https://boxfuse.com // Submitted by Axel Fontaine boxfuse.io @@ -10881,6 +10919,10 @@ bplaced.net square7.net +// Brendly : https://brendly.rs +// Submitted by Dusan Radovanovic +shop.brendly.rs + // BrowserSafetyMark // Submitted by Dave Tharp browsersafetymark.io @@ -10891,46 +10933,54 @@ dh.bytemark.co.uk vm.bytemark.co.uk +// Caf.js Labs LLC : https://www.cafjs.com +// Submitted by Antonio Lain +cafjs.com + // callidomus : https://www.callidomus.com/ // Submitted by Marcus Popp mycd.eu // Carrd : https://carrd.co // Submitted by AJ +drr.ac +uwu.ai carrd.co crd.co -uwu.ai +ju.mp // CentralNic : http://www.centralnic.com/names/domains // Submitted by registry ae.org -ar.com br.com cn.com com.de com.se de.com eu.com -gb.com gb.net -hu.com hu.net jp.net jpn.com -kr.com mex.com -no.com -qc.com ru.com sa.com se.net uk.com uk.net us.com -uy.com za.bz za.com +// No longer operated by CentralNic, these entries should be adopted and/or removed by current operators +// Submitted by Gavin Brown +ar.com +hu.com +kr.com +no.com +qc.com +uy.com + // Africa.com Web Solutions Ltd : https://registry.africa.com // Submitted by Gavin Brown africa.com @@ -10942,6 +10992,7 @@ // Radix FZC : http://domains.in.net // Submitted by Gavin Brown in.net +web.in // US REGISTRY LLC : http://us.org // Submitted by Gavin Brown @@ -10951,6 +11002,16 @@ // Submitted by Gavin Brown co.com +// Roar Domains LLC : https://roar.basketball/ +// Submitted by Gavin Brown +aus.basketball +nz.basketball + +// BRS Media : https://brsmedia.com/ +// Submitted by Gavin Brown +radio.am +radio.fm + // c.la : http://www.c.la/ c.la @@ -10958,31 +11019,31 @@ // Submitted by B. Blechschmidt certmgr.org -// Citrix : https://citrix.com -// Submitted by Alex Stoddard -xenapponazure.com +// Cityhost LLC : https://cityhost.ua +// Submitted by Maksym Rivtin +cx.ua // Civilized Discourse Construction Kit, Inc. : https://www.discourse.org/ // Submitted by Rishabh Nambiar & Michael Brown discourse.group discourse.team -// ClearVox : http://www.clearvox.nl/ -// Submitted by Leon Rowland -virtueeldomein.nl - // Clever Cloud : https://www.clever-cloud.com/ // Submitted by Quentin Adam cleverapps.io // Clerk : https://www.clerk.dev -// Submitted by Colin Sidoti +// Submitted by Colin Sidoti +clerk.app +clerkstage.app *.lcl.dev +*.lclstage.dev *.stg.dev +*.stgstage.dev -// Clic2000 : https://clic2000.fr -// Submitted by Mathilde Blanchemanche -clic2000.net +// ClickRising : https://clickrising.com/ +// Submitted by Umut Gumeli +clickrising.net // Cloud66 : https://www.cloud66.com/ // Submitted by Khash Sajadi @@ -11004,11 +11065,12 @@ cloudcontrolapp.com // Cloudera, Inc. : https://www.cloudera.com/ -// Submitted by Philip Langdale -cloudera.site +// Submitted by Kedarnath Waikar +*.cloudera.site // Cloudflare, Inc. : https://www.cloudflare.com/ -// Submitted by Jake Riesterer +// Submitted by Cloudflare Team +pages.dev trycloudflare.com workers.dev @@ -11049,10 +11111,6 @@ cloudns.pw cloudns.us -// Cloudeity Inc : https://cloudeity.com -// Submitted by Stefan Dimitrov -cloudeity.net - // CNPY : https://cnpy.gdn // Submitted by Angelo Gladding cnpy.gdn @@ -11116,6 +11174,12 @@ cyon.link cyon.site +// Danger Science Group: https://dangerscience.com/ +// Submitted by Skylar MacDonald +fnwk.site +folionetwork.site +platform0.app + // Daplie, Inc : https://daplie.com // Submitted by AJ ONeal daplie.me @@ -11151,18 +11215,41 @@ // Submitted by Paul Biggar builtwithdark.com +// DataDetect, LLC. : https://datadetect.com +// Submitted by Andrew Banchich +demo.datadetect.com +instance.datadetect.com + // Datawire, Inc : https://www.datawire.io // Submitted by Richard Li edgestack.me +// DDNS5 : https://ddns5.com +// Submitted by Cameron Elliott +ddns5.com + // Debian : https://www.debian.org/ // Submitted by Peter Palfrader / Debian Sysadmin Team debian.net +// Deno Land Inc : https://deno.com/ +// Submitted by Luca Casonato +deno.dev +deno-staging.dev + // deSEC : https://desec.io/ // Submitted by Peter Thomassen dedyn.io +// Diher Solutions : https://diher.solutions +// Submitted by Didi Hermawan +*.rss.my.id +*.diher.solutions + +// DNS Africa Ltd https://dns.business +// Submitted by Calvin Browne +jozi.biz + // DNShome : https://www.dnshome.de/ // Submitted by Norbert Auler dnshome.de @@ -11176,6 +11263,10 @@ // Submitted by Paul Fang drayddns.com +// DreamCommerce : https://shoper.pl/ +// Submitted by Konrad Kotarba +shoparena.pl + // DreamHost : http://www.dreamhost.com/ // Submitted by Andrew Farmer dreamhosters.com @@ -11193,6 +11284,13 @@ // Submitted by Richard Harper duckdns.org +// Bip : https://bip.sh +// Submitted by Joel Kennedy +bip.sh + +// bitbridge.net : Submitted by Craig Welch, abeliidev@gmail.com +bitbridge.net + // dy.fi : http://dy.fi/ // Submitted by Heikki Hannikainen dy.fi @@ -11496,6 +11594,14 @@ definima.net definima.io +// DigitalOcean App Platform : https://www.digitalocean.com/products/app-platform/ +// Submitted by Braxton Huggins +ondigitalocean.app + +// DigitalOcean Spaces : https://www.digitalocean.com/products/spaces/ +// Submitted by Robin H. Johnson +*.digitaloceanspaces.com + // dnstrace.pro : https://dnstrace.pro/ // Submitted by Chris Partridge bci.dnstrace.pro @@ -11528,6 +11634,16 @@ // Submitted by Vladimir Dudr e4.cz +// eero : https://eero.com/ +// Submitted by Yue Kang +eero.online +eero-stage.online + +// Elementor : Elementor Ltd. +// Submitted by Anton Barkan +elementor.cloud +elementor.cool + // En root‽ : https://en-root.org // Submitted by Emmanuel Raviart en-root.fr @@ -11535,17 +11651,13 @@ // Enalean SAS: https://www.enalean.com // Submitted by Thomas Cottier mytuleap.com +tuleap-partners.com // ECG Robotics, Inc: https://ecgrobotics.org // Submitted by onred.one staging.onred.one -// Enonic : http://enonic.com/ -// Submitted by Erik Kaareng-Sunde -enonic.io -customer.enonic.io - // EU.org https://eu.org/ // Submitted by Pierre Beyssac eu.org @@ -11605,6 +11717,10 @@ uk.eu.org us.eu.org +// Eurobyte : https://eurobyte.ru +// Submitted by Evgeniy Subbotin +eurodir.ru + // Evennode : http://www.evennode.com/ // Submitted by Michal Kralik eu-1.evennode.com @@ -11715,6 +11831,7 @@ // Fastly Inc. : http://www.fastly.com/ // Submitted by Fastly Security +edgecompute.app fastly-terrarium.com fastlylb.net map.fastlylb.net @@ -11728,16 +11845,11 @@ // FASTVPS EESTI OU : https://fastvps.ru/ // Submitted by Likhachev Vasiliy -fastpanel.direct fastvps-server.com -myfast.space +fastvps.host myfast.host fastvps.site -fastvps.host - -// Featherhead : https://featherhead.xyz/ -// Submitted by Simon Menke -fhapp.xyz +myfast.space // Fedora : https://fedoraproject.org/ // submitted by Patrick Uiterwijk @@ -11749,15 +11861,20 @@ // FearWorks Media Ltd. : https://fearworksmedia.co.uk // submitted by Keith Fairley -conn.uk -copro.uk couk.me ukco.me +conn.uk +copro.uk +hosp.uk // Fermax : https://fermax.com/ // submitted by Koen Van Isterdael mydobiss.com +// FH Muenster : https://www.fh-muenster.de +// Submitted by Robin Naundorf +fh-muenster.io + // Filegear Inc. : https://www.filegear.com // Submitted by Jason Zhu filegear.me @@ -11772,10 +11889,47 @@ // Submitted by Chris Raynor firebaseapp.com +// Firewebkit : https://www.firewebkit.com +// Submitted by Majid Qureshi +fireweb.app + +// FLAP : https://www.flap.cloud +// Submitted by Louis Chemineau +flap.id + +// FlashDrive : https://flashdrive.io +// Submitted by Eric Chan +onflashdrive.app +fldrv.com + +// fly.io: https://fly.io +// Submitted by Kurt Mackey +fly.dev +edgeapp.net +shw.io + // Flynn : https://flynn.io // Submitted by Jonathan Rudenberg flynnhosting.net +// Forgerock : https://www.forgerock.com +// Submitted by Roderick Parr +forgeblocks.com +id.forgerock.io + +// Framer : https://www.framer.com +// Submitted by Koen Rouwhorst +framer.app +framercanvas.com + +// Frusky MEDIA&PR : https://www.frusky.de +// Submitted by Victor Pupynin +*.frusky.de + +// RavPage : https://www.ravpage.co.il +// Submitted by Roni Horowitz +ravpage.co.il + // Frederik Braun https://frederik-braun.com // Submitted by Frederik Braun 0e.vc @@ -11793,6 +11947,14 @@ // Submitted by Daniel Stone freedesktop.org +// freemyip.com : https://freemyip.com +// Submitted by Cadence +freemyip.com + +// FunkFeuer - Verein zur Förderung freier Netze : https://www.funkfeuer.at +// Submitted by Daniel A. Maierhofer +wien.funkfeuer.at + // Futureweb OG : http://www.futureweb.at // Submitted by Andreas Schnederle-Wagner *.futurecms.at @@ -11816,30 +11978,59 @@ // Gentlent, Inc. : https://www.gentlent.com // Submitted by Tom Klein gentapps.com +gentlentapis.com lab.ms +cdn-edges.net + +// Ghost Foundation : https://ghost.org +// Submitted by Matt Hanley +ghost.io + +// GignoSystemJapan: http://gsj.bz +// Submitted by GignoSystemJapan +gsj.bz // GitHub, Inc. // Submitted by Patrick Toomey -github.io githubusercontent.com +githubpreview.dev +github.io // GitLab, Inc. // Submitted by Alex Hanselka gitlab.io +// Gitplac.si - https://gitplac.si +// Submitted by Aljaž Starc +gitapp.si +gitpage.si + // Glitch, Inc : https://glitch.com // Submitted by Mads Hartmann glitch.me +// Global NOG Alliance : https://nogalliance.org/ +// Submitted by Sander Steffann +nog.community + +// Globe Hosting SRL : https://www.globehosting.com/ +// Submitted by Gavin Brown +co.ro +shop.ro + // GMO Pepabo, Inc. : https://pepabo.com/ // Submitted by dojineko lolipop.io // GOV.UK Platform as a Service : https://www.cloud.service.gov.uk/ -// Submitted by Tom Whitwell +// Submitted by Tom Whitwell cloudapps.digital london.cloudapps.digital +// GOV.UK Pay : https://www.payments.service.gov.uk/ +// Submitted by Richard Baker +pymnt.uk + // UKHomeOffice : https://www.gov.uk/government/organisations/home-office // Submitted by Jon Shanks homeoffice.gov.uk @@ -11847,7 +12038,6 @@ // GlobeHosting, Inc. // Submitted by Zoltan Egresi ro.im -shop.ro // GoIP DNS Services : http://www.goip.de // Submitted by Christian Poulter @@ -11861,6 +12051,18 @@ *.0emm.com appspot.com *.r.appspot.com +codespot.com +googleapis.com +googlecode.com +pagespeedmobilizer.com +publishproxy.com +withgoogle.com +withyoutube.com +*.gateway.dev +cloud.goog +translate.goog +*.usercontent.goog +cloudfunctions.net blogspot.ae blogspot.al blogspot.am @@ -11935,24 +12137,20 @@ blogspot.tw blogspot.ug blogspot.vn -cloudfunctions.net -cloud.goog -codespot.com -googleapis.com -googlecode.com -pagespeedmobilizer.com -publishproxy.com -withgoogle.com -withyoutube.com -// Aaron Marais' Gitlab pages: https://lab.aaronleem.co.za -// Submitted by Aaron Marais -graphox.us +// Goupile : https://goupile.fr +// Submitted by Niels Martignene +goupile.fr // Group 53, LLC : https://www.group53.com // Submitted by Tyler Todd awsmppl.com +// GünstigBestellen : https://günstigbestellen.de +// Submitted by Furkan Akkoc +günstigbestellen.de +günstigliefern.de + // Hakaran group: http://hakaran.cz // Submited by Arseniy Sokolov fin.ci @@ -11974,6 +12172,10 @@ hasura.app hasura-app.io +// Heilbronn University of Applied Sciences - Faculty Informatics (GitLab Pages): https://www.hs-heilbronn.de +// Submitted by Richard Zowalla +pages.it.hs-heilbronn.de + // Hepforge : https://www.hepforge.org // Submitted by David Grellscheid hepforge.org @@ -11991,20 +12193,29 @@ development.run ravendb.run +// home.pl S.A.: https://home.pl +// Submited by Krzysztof Wolski +homesklep.pl + +// Hong Kong Productivity Council: https://www.hkpc.org/ +// Submitted by SECaaS Team +secaas.hk + // HOSTBIP REGISTRY : https://www.hostbip.com/ // Submitted by Atanunu Igbunuroghene -bpl.biz orx.biz -ng.city biz.gl -ng.ink col.ng firm.ng gen.ng ltd.ng ngo.ng -ng.school +edu.scot sch.so +org.yt + +// HostyHosting (hostyhosting.com) +hostyhosting.io // Häkkinen.fi // Submitted by Eero Häkkinen @@ -12019,6 +12230,19 @@ // Submitted by Hannu Aronsson iki.fi +// Impertrix Solutions : +// Submitted by Zhixiang Zhao +impertrixcdn.com +impertrix.com + +// Incsub, LLC: https://incsub.com/ +// Submitted by Aaron Edwards +smushcdn.com +wphostedmail.com +wpmucdn.com +tempurl.host +wpmudev.host + // Individual Network Berlin e.V. : https://www.in-berlin.de/ // Submitted by Christian Seitz dyn-berlin.de @@ -12074,6 +12298,14 @@ // Submitted by Wolfgang Schwarz pixolino.com +// Internet-Pro, LLP: https://netangels.ru/ +// Submited by Vasiliy Sheredeko +na4u.ru + +// iopsys software solutions AB : https://iopsys.eu/ +// Submitted by Roman Azarenko +iopsys.se + // IPiFony Systems, Inc. : https://www.ipifony.com/ // Submitted by Matthew Hardeman ipifony.net @@ -12089,6 +12321,92 @@ // Submitted by Yuji Minagawa iobb.net +// Jelastic, Inc. : https://jelastic.com/ +// Submited by Ihor Kolodyuk +mel.cloudlets.com.au +cloud.interhostsolutions.be +users.scale.virtualcloud.com.br +mycloud.by +alp1.ae.flow.ch +appengine.flow.ch +es-1.axarnet.cloud +diadem.cloud +vip.jelastic.cloud +jele.cloud +it1.eur.aruba.jenv-aruba.cloud +it1.jenv-aruba.cloud +keliweb.cloud +cs.keliweb.cloud +oxa.cloud +tn.oxa.cloud +uk.oxa.cloud +primetel.cloud +uk.primetel.cloud +ca.reclaim.cloud +uk.reclaim.cloud +us.reclaim.cloud +ch.trendhosting.cloud +de.trendhosting.cloud +jele.club +amscompute.com +clicketcloud.com +dopaas.com +hidora.com +paas.hosted-by-previder.com +rag-cloud.hosteur.com +rag-cloud-ch.hosteur.com +jcloud.ik-server.com +jcloud-ver-jpc.ik-server.com +demo.jelastic.com +kilatiron.com +paas.massivegrid.com +jed.wafaicloud.com +lon.wafaicloud.com +ryd.wafaicloud.com +j.scaleforce.com.cy +jelastic.dogado.eu +fi.cloudplatform.fi +demo.datacenter.fi +paas.datacenter.fi +jele.host +mircloud.host +paas.beebyte.io +sekd1.beebyteapp.io +jele.io +cloud-fr1.unispace.io +jc.neen.it +cloud.jelastic.open.tim.it +jcloud.kz +upaas.kazteleport.kz +cloudjiffy.net +fra1-de.cloudjiffy.net +west1-us.cloudjiffy.net +jls-sto1.elastx.net +jls-sto2.elastx.net +jls-sto3.elastx.net +faststacks.net +fr-1.paas.massivegrid.net +lon-1.paas.massivegrid.net +lon-2.paas.massivegrid.net +ny-1.paas.massivegrid.net +ny-2.paas.massivegrid.net +sg-1.paas.massivegrid.net +jelastic.saveincloud.net +nordeste-idc.saveincloud.net +j.scaleforce.net +jelastic.tsukaeru.net +sdscloud.pl +unicloud.pl +mircloud.ru +jelastic.regruhosting.ru +enscaled.sg +jele.site +jelastic.team +orangecloud.tn +j.layershift.co.uk +phx.enscaled.us +mircloud.us + // Jino : https://www.jino.ru // Submitted by Sergey Ulyashin myjino.ru @@ -12097,6 +12415,10 @@ *.spectrum.myjino.ru *.vps.myjino.ru +// Jotelulu S.L. : https://jotelulu.com +// Submitted by Daniel Fariña +jotelulu.cloud + // Joyent : https://www.joyent.com/ // Submitted by Brian Bennett *.triton.zone @@ -12128,10 +12450,20 @@ // Submitted by DisposaBoy oya.to +// Katholieke Universiteit Leuven: https://www.kuleuven.be +// Submitted by Abuse KU Leuven +kuleuven.cloud +ezproxy.kuleuven.be + // .KRD : http://nic.krd/data/krd/Registration%20Policy.pdf co.krd edu.krd +// Krellian Ltd. : https://krellian.com +// Submitted by Ben Francis +krellian.net +webthings.io + // LCube - Professional hosting e.K. : https://www.lcube-webhosting.de // Submitted by Lars Laehn git-repos.de @@ -12162,10 +12494,6 @@ // Submitted by Greg Holland app.lmpm.com -// Linki Tools UG : https://linki.tools -// Submitted by Paulo Matos -linkitools.space - // linkyard ldt: https://www.linkyard.ch/ // Submitted by Mario Siegenthaler linkyard.cloud @@ -12174,12 +12502,18 @@ // Linode : https://linode.com // Submitted by members.linode.com -nodebalancer.linode.com +*.nodebalancer.linode.com +*.linodeobjects.com +ip.linodeusercontent.com // LiquidNet Ltd : http://www.liquidnetlimited.com/ // Submitted by Victor Velchev we.bs +// localzone.xyz +// Submitted by Kenny Niehage +localzone.xyz + // Log'in Line : https://www.loginline.com/ // Submitted by Rémi Mach loginline.app @@ -12188,6 +12522,14 @@ loginline.services loginline.site +// Lokalized : https://lokalized.nl +// Submitted by Noah Taheij +servers.run + +// Lõhmus Family, The +// Submitted by Heiki Lõhmus +lohmus.me + // LubMAN UMCS Sp. z o.o : https://lubman.pl/ // Submitted by Ireneusz Maliszewski krasnik.pl @@ -12199,7 +12541,6 @@ // Lug.org.uk : https://lug.org.uk // Submitted by Jon Spriggs -uklugs.org glug.org.uk lug.org.uk lugs.org.uk @@ -12225,6 +12566,7 @@ barsy.org barsy.pro barsy.pub +barsy.ro barsy.shop barsy.site barsy.support @@ -12243,6 +12585,34 @@ // Submitted by Ilya Zaretskiy hb.cldmail.ru +// Mail Transfer Platform : https://www.neupeer.com +// Submitted by Li Hui +cn.vu + +// Maze Play: https://www.mazeplay.com +// Submitted by Adam Humpherys +mazeplay.com + +// mcpe.me : https://mcpe.me +// Submitted by Noa Heyl +mcpe.me + +// McHost : https://mchost.ru +// Submitted by Evgeniy Subbotin +mcdir.me +mcdir.ru +mcpre.ru +vps.mcdir.ru + +// Mediatech : https://mediatech.by +// Submitted by Evgeniy Kozhuhovskiy +mediatech.by +mediatech.dev + +// Medicom Health : https://medicomhealth.com +// Submitted by Michael Olson +hra.health + // Memset hosting : https://www.memset.com // Submitted by Tom Whitwell miniserver.com @@ -12250,7 +12620,7 @@ // MetaCentrum, CESNET z.s.p.o. : https://www.metacentrum.cz/en/ // Submitted by Zdeněk Šustr -cloud.metacentrum.cz +*.cloud.metacentrum.cz custom.metacentrum.cz // MetaCentrum, CESNET z.s.p.o. : https://www.metacentrum.cz/en/ @@ -12267,11 +12637,29 @@ co.pl // Microsoft Corporation : http://microsoft.com -// Submitted by Mostafa Elzeiny +// Submitted by Mitch Webster *.azurecontainer.io azurewebsites.net azure-mobile.net cloudapp.net +azurestaticapps.net +centralus.azurestaticapps.net +eastasia.azurestaticapps.net +eastus2.azurestaticapps.net +westeurope.azurestaticapps.net +westus2.azurestaticapps.net + +// minion.systems : http://minion.systems +// Submitted by Robert Böttinger +csx.cc + +// Mintere : https://mintere.com/ +// Submitted by Ben Aubin +mintere.site + +// MobileEducation, LLC : https://joinforte.com +// Submitted by Grayson Martin +forte.id // Mozilla Corporation : https://mozilla.com // Submitted by Ben Francis @@ -12287,35 +12675,48 @@ org.ru pp.ru +// Mythic Beasts : https://www.mythic-beasts.com +// Submitted by Paul Cammish +hostedpi.com +customer.mythic-beasts.com +caracal.mythic-beasts.com +fentiger.mythic-beasts.com +lynx.mythic-beasts.com +ocelot.mythic-beasts.com +oncilla.mythic-beasts.com +onza.mythic-beasts.com +sphinx.mythic-beasts.com +vs.mythic-beasts.com +x.mythic-beasts.com +yali.mythic-beasts.com +cust.retrosnub.co.uk + // Nabu Casa : https://www.nabucasa.com // Submitted by Paulus Schoutsen ui.nabu.casa // Names.of.London : https://names.of.london/ -// Submitted by James Stevens or +// Submitted by James Stevens or pony.club of.fashion -on.fashion -of.football in.london of.london +from.marketing +with.marketing for.men +repair.men and.mom for.mom for.one +under.one for.sale -of.work +that.win +from.work to.work -// NCTU.ME : https://nctu.me/ -// Submitted by Tocknicsu -nctu.me - // Netlify : https://www.netlify.com // Submitted by Jessica Parsons -bitballoon.com netlify.app -netlify.com // Neustar Inc. // Submitted by Trung Tran @@ -12333,6 +12734,20 @@ // Submitted by Jeff Wheelhouse nfshost.com +// Noop : https://noop.app +// Submitted by Nathaniel Schweinberg +*.developer.app +noop.app + +// Northflank Ltd. : https://northflank.com/ +// Submitted by Marco Suter +*.northflank.app +*.code.run + +// Noticeable : https://noticeable.io +// Submitted by Laurent Pellegrino +noticeable.news + // Now-DNS : https://now-dns.com // Submitted by Steve Russell dnsking.ch @@ -12471,60 +12886,6 @@ // Submitted by Matthew Brown nyc.mn -// NymNom : https://nymnom.com/ -// Submitted by NymNom -nom.ae -nom.af -nom.ai -nom.al -nym.by -nom.bz -nym.bz -nom.cl -nym.ec -nom.gd -nom.ge -nom.gl -nym.gr -nom.gt -nym.gy -nym.hk -nom.hn -nym.ie -nom.im -nom.ke -nym.kz -nym.la -nym.lc -nom.li -nym.li -nym.lt -nym.lu -nom.lv -nym.me -nom.mk -nym.mn -nym.mx -nom.nu -nym.nz -nym.pe -nym.pt -nom.pw -nom.qa -nym.ro -nom.rs -nom.si -nym.sk -nom.st -nym.su -nym.sx -nom.tj -nym.tw -nom.ug -nom.uy -nom.vc -nom.vg - // Observable, Inc. : https://observablehq.com // Submitted by Mike Bostock static.observableusercontent.com @@ -12533,35 +12894,66 @@ // Submitted by Andrew Sampson cya.gg +// OMG.LOL : +// Submitted by Adam Newbold +omg.lol + // Omnibond Systems, LLC. : https://www.omnibond.com // Submitted by Cole Estep cloudycluster.net +// OmniWe Limited: https://omniwe.com +// Submitted by Vicary Archangel +omniwe.site + +// One.com: https://www.one.com/ +// Submitted by Jacob Bunk Nielsen +service.one + // One Fold Media : http://www.onefoldmedia.com/ // Submitted by Eddie Jones nid.io +// Open Social : https://www.getopensocial.com/ +// Submitted by Alexander Varwijk +opensocial.site + // OpenCraft GmbH : http://opencraft.com/ // Submitted by Sven Marnach opencraft.hosting +// OpenResearch GmbH: https://openresearch.com/ +// Submitted by Philipp Schmid +orsites.com + // Opera Software, A.S.A. // Submitted by Yngve Pettersen operaunite.com -// Oursky Limited : https://skygear.io/ -// Submited by Skygear Developer +// Oursky Limited : https://authgear.com/, https://skygear.io/ +// Submited by Authgear Team , Skygear Developer +authgear-staging.com +authgearapps.com skygearapp.com // OutSystems // Submitted by Duarte Santos outsystemscloud.com +// OVHcloud: https://ovhcloud.com +// Submitted by Vincent Cassé +*.webpaas.ovh.net +*.hosting.ovh.net + // OwnProvider GmbH: http://www.ownprovider.com // Submitted by Jan Moennich ownprovider.com own.pm +// OwO : https://whats-th.is/ +// Submitted by Dean Sheather +*.owo.codes + // OX : http://www.ox.rs // Submitted by Adam Grand ox.rs @@ -12578,6 +12970,21 @@ // Submitted by Jason Kriss pagefrontapp.com +// PageXL : https://pagexl.com +// Submitted by Yann Guichard +pagexl.com + +// Paywhirl, Inc : https://paywhirl.com/ +// Submitted by Daniel Netzer +*.paywhirl.com + +// pcarrier.ca Software Inc: https://pcarrier.ca/ +// Submitted by Pierre Carrier +bar0.net +bar1.net +bar2.net +rdv.to + // .pl domains (grandfathered) art.pl gliwice.pl @@ -12599,14 +13006,22 @@ // Submitted by Kenneth Van Alstyne perspecta.cloud +// PE Ulyanov Kirill Sergeevich : https://airy.host +// Submitted by Kirill Ulyanov +lk3.ru + // Planet-Work : https://www.planet-work.com/ // Submitted by Frédéric VANNIÈRE on-web.fr // Platform.sh : https://platform.sh // Submitted by Nikola Kotur -*.platform.sh +bc.platform.sh +ent.platform.sh +eu.platform.sh +us.platform.sh *.platformsh.site +*.tst.site // Platter: https://platter.dev // Submitted by Patrick Flor @@ -12614,6 +13029,12 @@ platter-app.dev platterp.us +// Plesk : https://www.plesk.com/ +// Submitted by Anton Akhtyamov +pdns.page +plesk.page +pleskns.com + // Port53 : https://port53.io/ // Submitted by Maximilian Schieder dyn53.io @@ -12622,6 +13043,17 @@ // Submitted by Zulfais co.bn +// Postman, Inc : https://postman.com +// Submitted by Rahul Dhawan +postman-echo.com +pstmn.io +mock.pstmn.io +httpbin.org + +//prequalifyme.today : https://prequalifyme.today +//Submitted by DeepakTiwari deepak@ivylead.io +prequalifyme.today + // prgmr.com : https://prgmr.com/ // Submitted by Sarah Newman xen.prgmr.com @@ -12651,6 +13083,15 @@ // Submitted by Kor Nielsen pubtls.org +// PythonAnywhere LLP: https://www.pythonanywhere.com +// Submitted by Giles Thomas +pythonanywhere.com +eu.pythonanywhere.com + +// QOTO, Org. +// Submitted by Jeffrey Phillips Freeman +qoto.io + // Qualifio : https://qualifio.com/ // Submitted by Xavier De Cock qualifioapp.com @@ -12659,6 +13100,14 @@ // Submitted by Dani Biro qbuser.com +// Rad Web Hosting: https://radwebhosting.com +// Submitted by Scott Claeys +cloudsite.builders + +// Redgate Software: https://red-gate.com +// Submitted by Andrew Farries +instances.spawn.cc + // Redstar Consultants : https://www.redstarconsultants.com/ // Submitted by Jons Slemmer instantcloud.cn @@ -12696,6 +13145,10 @@ rackmaze.com rackmaze.net +// Rakuten Games, Inc : https://dev.viberplay.io +// Submitted by Joshua Zhang +g.vbrplsbx.io + // Rancher Labs, Inc : https://rancher.com // Submitted by Vincent Fiduccia *.on-k3s.io @@ -12718,6 +13171,7 @@ // Repl.it : https://repl.it // Submitted by Mason Clayton repl.co +id.repl.co repl.run // Resin.io : https://resin.io @@ -12732,13 +13186,33 @@ // Revitalised Limited : http://www.revitalised.co.uk // Submitted by Jack Price wellbeingzone.eu -ptplus.fit wellbeingzone.co.uk +// Rico Developments Limited : https://adimo.co +// Submitted by Colin Brown +adimo.co.uk + +// Riseup Networks : https://riseup.net +// Submitted by Micah Anderson +itcouldbewor.se + // Rochester Institute of Technology : http://www.rit.edu/ // Submitted by Jennifer Herting git-pages.rit.edu +// Rusnames Limited: http://rusnames.ru/ +// Submitted by Sergey Zotov +биз.рус +ком.рус +крым.рус +мир.рус +мск.рус +орг.рус +самара.рус +сочи.рус +спб.рус +я.рус + // Sandstorm Development Group, Inc. : https://sandcats.io/ // Submitted by Asheesh Laroia sandcats.io @@ -12755,6 +13229,7 @@ // Scottish Government: https://www.gov.scot // Submitted by Martin Ellis gov.scot +service.gov.scot // Scry Security : http://www.scrysec.com // Submitted by Shante Adam @@ -12773,16 +13248,37 @@ myfirewall.org spdns.org +// Seidat : https://www.seidat.com +// Submitted by Artem Kondratev +seidat.net + +// Sellfy : https://sellfy.com +// Submitted by Yuriy Romadin +sellfy.store + // Senseering GmbH : https://www.senseering.de // Submitted by Felix Mönckemeyer senseering.net +// Sendmsg: https://www.sendmsg.co.il +// Submitted by Assaf Stern +minisite.ms + +// Service Magnet : https://myservicemagnet.com +// Submitted by Dave Sanders +magnet.page + // Service Online LLC : http://drs.ua/ // Submitted by Serhii Bulakh biz.ua co.ua pp.ua +// Shift Crypto AG : https://shiftcrypto.ch +// Submitted by alex +shiftcrypto.dev +shiftcrypto.io + // ShiftEdit : https://shiftedit.net/ // Submitted by Adam Jimenez shiftedit.io @@ -12791,6 +13287,10 @@ // Submitted by Alex Bowers myshopblocks.com +// Shopify : https://www.shopify.com +// Submitted by Alex Richter +myshopify.com + // Shopit : https://www.shopitcommerce.com/ // Submitted by Craig McMahon shopitsite.com @@ -12821,16 +13321,47 @@ alpha.bounty-full.com beta.bounty-full.com +// Small Technology Foundation : https://small-tech.org +// Submitted by Aral Balkan +small-web.org + +// Smoove.io : https://www.smoove.io/ +// Submitted by Dan Kozak +vp4.me + +// Snowplow Analytics : https://snowplowanalytics.com/ +// Submitted by Ian Streeter +try-snowplow.com + +// SourceHut : https://sourcehut.org +// Submitted by Drew DeVault +srht.site + // Stackhero : https://www.stackhero.io // Submitted by Adrien Gillon stackhero-network.com +// Staclar : https://staclar.com +// Submitted by Matthias Merkel +novecore.site + // staticland : https://static.land // Submitted by Seth Vincent static.land dev.static.land sites.static.land +// Storebase : https://www.storebase.io +// Submitted by Tony Schirmer +storebase.store + +// Strategic System Consulting (eApps Hosting): https://www.eapps.com/ +// Submitted by Alex Oancea +vps-host.net +atl.jelastic.vps-host.net +njs.jelastic.vps-host.net +ric.jelastic.vps-host.net + // Sony Interactive Entertainment LLC : https://sie.com/ // Submitted by David Coles playstation-cloud.com @@ -12848,6 +13379,28 @@ // Submitted by Stefan Neufeind customer.speedpartner.de +// Spreadshop (sprd.net AG) : https://www.spreadshop.com/ +// Submitted by Martin Breest +myspreadshop.at +myspreadshop.com.au +myspreadshop.be +myspreadshop.ca +myspreadshop.ch +myspreadshop.com +myspreadshop.de +myspreadshop.dk +myspreadshop.es +myspreadshop.fi +myspreadshop.fr +myspreadshop.ie +myspreadshop.it +myspreadshop.net +myspreadshop.nl +myspreadshop.no +myspreadshop.pl +myspreadshop.se +myspreadshop.co.uk + // Standard Library : https://stdlib.com // Submitted by Jacob Lee api.stdlib.com @@ -12869,10 +13422,12 @@ // Submitted by Dan Miller temp-dns.com -// Swisscom Application Cloud: https://developer.swisscom.com -// Submitted by Matthias.Winzeler -applicationcloud.io -scapp.io +// Supabase : https://supabase.io +// Submitted by Inian Parameshwaran +supabase.co +supabase.in +supabase.net +su.paba.se // Symfony, SAS : https://symfony.com/ // Submitted by Fabien Potencier @@ -12901,10 +13456,19 @@ vpnplus.to direct.quickconnect.to +// Tabit Technologies Ltd. : https://tabit.cloud/ +// Submitted by Oren Agiv +tabitorder.co.il + // TAIFUN Software AG : http://taifun-software.de // Submitted by Bjoern Henke taifun-dns.de +// Tailscale Inc. : https://www.tailscale.com +// Submitted by David Anderson +beta.tailscale.net +ts.net + // TASK geographical domains (www.task.gda.pl/uslugi/dns) gda.pl gdansk.pl @@ -12928,22 +13492,42 @@ // Thingdust AG : https://thingdust.com/ // Submitted by Adrian Imboden +*.firenet.ch +*.svc.firenet.ch +reservd.com thingdustdata.com cust.dev.thingdust.io cust.disrec.thingdust.io cust.prod.thingdust.io cust.testing.thingdust.io +reservd.dev.thingdust.io +reservd.disrec.thingdust.io +reservd.testing.thingdust.io + +// ticket i/O GmbH : https://ticket.io +// Submitted by Christian Franke +tickets.io // Tlon.io : https://tlon.io // Submitted by Mark Staarink arvo.network azimuth.network +tlon.network + +// Tor Project, Inc. : https://torproject.org +// Submitted by Antoine Beaupré bloxcms.com townnews-staging.com +// TradableBits: https://tradablebits.com +// Submitted by Dmitry Khrisanov dmitry@tradablebits.com +tbits.me + // TrafficPlex GmbH : https://www.trafficplex.de/ // Submitted by Phillipp Röll 12hp.at @@ -13009,6 +13593,10 @@ virtualuser.de virtual-user.de +// Upli : https://upli.io +// Submitted by Lenny Bakkalian +upli.io + // urown.net : https://urown.net // Submitted by Hostmaster urown.cloud @@ -13022,6 +13610,12 @@ // Submitted by Danko Aleksejevs 2038.io +// Vercel, Inc : https://vercel.com/ +// Submitted by Connor Davis +vercel.app +vercel.dev +now.sh + // Viprinet Europe GmbH : http://www.viprinet.com // Submitted by Simon Kissel router.management @@ -13034,6 +13628,48 @@ // Submitted by Nathan van Bakel voorloper.cloud +// Voxel.sh DNS : https://voxel.sh/dns/ +// Submitted by Mia Rehlinger +neko.am +nyaa.am +be.ax +cat.ax +es.ax +eu.ax +gg.ax +mc.ax +us.ax +xy.ax +nl.ci +xx.gl +app.gp +blog.gt +de.gt +to.gt +be.gy +cc.hn +blog.kg +io.kg +jp.kg +tv.kg +uk.kg +us.kg +de.ls +at.md +de.md +jp.md +to.md +indie.porn +vxl.sh +ch.tc +me.tc +we.tc +nyan.to +at.vg +blog.vu +dev.vu +me.vu + // V.UA Domain Administrator : https://domain.v.ua/ // Submitted by Serhii Rostilo v.ua @@ -13042,10 +13678,26 @@ // Submitted by Masayuki Note wafflecell.com +// WapBlog.ID : https://www.wapblog.id +// Submitted by Fajar Sodik +idnblogger.com +indowapblog.com +bloger.id +wblog.id +wbq.me +fastblog.net + // WebHare bv: https://www.webhare.com/ // Submitted by Arnold Hendriks *.webhare.dev +// WebHotelier Technologies Ltd: https://www.webhotelier.net/ +// Submitted by Apostolos Tsakpinis +reserve-online.net +reserve-online.com +bookonline.app +hotelwithflight.com + // WeDeploy by Liferay, Inc. : https://www.wedeploy.com // Submitted by Henrique Vicente wedeploy.io @@ -13056,6 +13708,10 @@ // Submitted by Jung Jin remotewd.com +// WIARD Enterprises : https://wiardweb.com +// Submitted by Kidd Hustle +pages.wiardweb.com + // Wikimedia Labs : https://wikitech.wikimedia.org // Submitted by Arturo Borrero Gonzalez wmflabs.org @@ -13069,12 +13725,30 @@ // WoltLab GmbH : https://www.woltlab.com // Submitted by Tim Düsterhus +woltlab-demo.com myforum.community community-pro.de diskussionsbereich.de community-pro.net meinforum.net +// Woods Valldata : https://www.woodsvalldata.co.uk/ +// Submitted by Chris Whittle +affinitylottery.org.uk +raffleentry.org.uk +weeklylottery.org.uk + +// WP Engine : https://wpengine.com/ +// Submitted by Michael Smith +// Submitted by Brandon DuRette +wpenginepowered.com +js.wpenginepowered.com + +// Wix.com, Inc. : https://www.wix.com +// Submitted by Shahar Talmi +wixsite.com +editorx.io + // XenonCloud GbR: https://xenoncloud.net // Submitted by Julian Uphoff half.host @@ -13117,6 +13791,7 @@ // Yunohost : https://yunohost.org // Submitted by Valentin Grimaud +ynh.fr nohost.me noho.st @@ -13125,10 +13800,6 @@ za.net za.org -// Zeit, Inc. : https://zeit.domains/ -// Submitted by Olli Vanhoja -now.sh - // Zine EOOD : https://zine.bg/ // Submitted by Martin Angelov bss.design @@ -13139,8 +13810,4 @@ virtualserver.io enterprisecloud.nu -// Mintere : https://mintere.com/ -// Submitted by Ben Aubin -mintere.site - // ===END PRIVATE DOMAINS=== diff -Nru openjdk-11-11.0.14+9/make/data/tzdata/VERSION openjdk-11-11.0.16+8/make/data/tzdata/VERSION --- openjdk-11-11.0.14+9/make/data/tzdata/VERSION 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/data/tzdata/VERSION 2022-07-16 20:06:34.000000000 +0000 @@ -21,4 +21,4 @@ # or visit www.oracle.com if you need additional information or have any # questions. # -tzdata2021e +tzdata2022a diff -Nru openjdk-11-11.0.14+9/make/data/tzdata/africa openjdk-11-11.0.16+8/make/data/tzdata/africa --- openjdk-11-11.0.14+9/make/data/tzdata/africa 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/data/tzdata/africa 2022-07-16 20:06:34.000000000 +0000 @@ -941,6 +941,10 @@ # (car (cdr (cdr a))) (calendar-month-name (car a) t) (car (cdr a)) # (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b))))) # (setq islamic-year (+ 1 islamic-year)))) +# +# From Milamber (2021-03-31, 2022-03-10), confirming these predictions: +# https://www.mmsp.gov.ma/fr/actualites.aspx?id=2076 +# https://www.ecoactu.ma/horaires-administration-ramadan-gmtheure-gmt-a-partir-de-dimanche-27-mars/ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Morocco 1939 only - Sep 12 0:00 1:00 - diff -Nru openjdk-11-11.0.14+9/make/data/tzdata/asia openjdk-11-11.0.16+8/make/data/tzdata/asia --- openjdk-11-11.0.14+9/make/data/tzdata/asia 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/data/tzdata/asia 2022-07-16 20:06:34.000000000 +0000 @@ -3429,8 +3429,12 @@ # ... winter time will begin in Palestine from Friday 10-29, 01:00 AM # by 60 minutes backwards. # -# From Paul Eggert (2021-10-20): -# Guess future fall transitions on October's last Friday at 01:00. +# From Tim Parenti (2021-10-25), per Paul Eggert (2021-10-24): +# Guess future fall transitions at 01:00 on the Friday preceding October's +# last Sunday (i.e., Fri>=23), as this is more consistent with recent practice. + +# From Heba Hamad (2022-03-10): +# summer time will begin in Palestine from Sunday 03-27-2022, 00:00 AM. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule EgyptAsia 1957 only - May 10 0:00 1:00 S @@ -3466,9 +3470,10 @@ Rule Palestine 2016 2018 - Oct Sat>=24 1:00 0 - Rule Palestine 2019 only - Mar 29 0:00 1:00 S Rule Palestine 2019 only - Oct Sat>=24 0:00 0 - -Rule Palestine 2020 max - Mar Sat>=24 0:00 1:00 S +Rule Palestine 2020 2021 - Mar Sat>=24 0:00 1:00 S Rule Palestine 2020 only - Oct 24 1:00 0 - -Rule Palestine 2021 max - Oct lastFri 1:00 0 - +Rule Palestine 2021 max - Oct Fri>=23 1:00 0 - +Rule Palestine 2022 max - Mar Sun>=25 0:00 1:00 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Gaza 2:17:52 - LMT 1900 Oct diff -Nru openjdk-11-11.0.14+9/make/data/tzdata/europe openjdk-11-11.0.16+8/make/data/tzdata/europe --- openjdk-11-11.0.14+9/make/data/tzdata/europe 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/data/tzdata/europe 2022-07-16 20:06:34.000000000 +0000 @@ -2808,8 +2808,26 @@ # says he remembers that Samara opted out of the 1992-01-19 exception # 2 days before the switch. # +# From Alois Treindl (2022-02-15): +# the Russian wikipedia page +# https://ru.wikipedia.org/wiki/Московское_время#Перемещение_границы_применения_московского_времени_на_восток +# contains the sentence (in Google translation) "In the autumn of +# 1981, Arkhangelsk, Vologda, Yaroslavl, Ivanovo, Vladimir, Ryazan, +# Lipetsk, Voronezh, Rostov-on-Don, Krasnodar and regions to the east +# of those named (about 30 in total) parted ways with Moscow time. +# However, the convenience of common time with Moscow turned out to be +# decisive - in 1982, these regions again switched to Moscow time." +# Shanks International atlas has similar information, and also the +# Russian book Zaitsev A., Kutalev D. A new astrologer's reference +# book. Coordinates of cities and time corrections, - The World of +# Urania, 2012 (Russian: Зайцев А., Куталёв Д., Новый справочник +# астролога. Координаты городов и временные поправки). +# To me it seems that an extra zone is needed, which starts with LMT +# util 1919, later follows Moscow since 1930, but deviates from it +# between 1 October 1981 until 1 April 1982. # -# From Paul Eggert (2016-03-18): +# +# From Paul Eggert (2022-02-15): # Given the above, we appear to be missing some Zone entries for the # chaotic early 1980s in Russia. It's not clear what these entries # should be. For now, sweep this under the rug and just document the @@ -2856,7 +2874,7 @@ 1:00 C-Eur CE%sT 1944 Apr 13 3:00 Russia MSK/MSD 1990 3:00 - MSK 1990 Jul 1 2:00 - 2:00 - EET 1992 + 2:00 - EET 1992 Mar 20 # Central Crimea used Moscow time 1994/1997. # # From Paul Eggert (2006-03-22): @@ -2866,7 +2884,7 @@ # sometime between the 1994 DST switches. Shanks & Pottenger simply say # 1994-09-25 03:00, but that can't be right. For now, guess it # changed in May. - 2:00 E-Eur EE%sT 1994 May + 2:00 C-Eur EE%sT 1994 May # From IATA SSIM (1994/1997), which also says that Kerch is still like Kiev. 3:00 E-Eur MSK/MSD 1996 Mar 31 0:00s 3:00 1:00 MSD 1996 Oct 27 3:00s @@ -4033,6 +4051,27 @@ # Ukraine # +# From Alois Triendl (2014-03-01): +# REGULATION A N O V A on March 20, 1992 N 139 ... means that from +# 1992 on, Ukraine had DST with begin time at 02:00 am, on last Sunday +# in March, and end time 03:00 am, last Sunday in September.... +# CABINET OF MINISTERS OF UKRAINE RESOLUTION on May 13, 1996 N 509 +# "On the order of computation time on the territory of Ukraine" .... +# As this cabinet decision is from May 1996, it seems likely that the +# transition in March 1996, which predates it, was still at 2:00 am +# and not at 3:00 as would have been under EU rules. +# This is why I have set the change to EU rules into May 1996, +# so that the change in March is stil covered by the Ukraine rule. +# The next change in October 1996 happened under EU rules.... +# TZ database holds three other zones for Ukraine.... I have not yet +# worked out the consequences for these three zones, as we (me and my +# US colleague David Cochrane) are still trying to get more +# information upon these local deviations from Kiev rules. +# +# From Paul Eggert (2022-02-08): +# For now, assume that Ukraine's other three zones followed the same rules, +# except that Crimea switched to Moscow time in 1994 as described elsewhere. + # From Igor Karpov, who works for the Ukrainian Ministry of Justice, # via Garrett Wollman (2003-01-27): # BTW, I've found the official document on this matter. It's government @@ -4122,7 +4161,7 @@ 1:00 C-Eur CE%sT 1943 Nov 6 3:00 Russia MSK/MSD 1990 Jul 1 2:00 2:00 1:00 EEST 1991 Sep 29 3:00 - 2:00 E-Eur EE%sT 1995 + 2:00 C-Eur EE%sT 1996 May 13 2:00 EU EE%sT # Transcarpathia used CET 1990/1991. # "Uzhhorod" is the transliteration of the Rusyn/Ukrainian pronunciation, but @@ -4135,8 +4174,8 @@ 3:00 Russia MSK/MSD 1990 3:00 - MSK 1990 Jul 1 2:00 1:00 - CET 1991 Mar 31 3:00 - 2:00 - EET 1992 - 2:00 E-Eur EE%sT 1995 + 2:00 - EET 1992 Mar 20 + 2:00 C-Eur EE%sT 1996 May 13 2:00 EU EE%sT # Zaporozh'ye and eastern Lugansk oblasts observed DST 1990/1991. # "Zaporizhia" is the transliteration of the Ukrainian name, but @@ -4149,7 +4188,8 @@ 3:00 - MSK 1941 Aug 25 1:00 C-Eur CE%sT 1943 Oct 25 3:00 Russia MSK/MSD 1991 Mar 31 2:00 - 2:00 E-Eur EE%sT 1995 + 2:00 E-Eur EE%sT 1992 Mar 20 + 2:00 C-Eur EE%sT 1996 May 13 2:00 EU EE%sT # Vatican City diff -Nru openjdk-11-11.0.14+9/make/data/tzdata/leapseconds openjdk-11-11.0.16+8/make/data/tzdata/leapseconds --- openjdk-11-11.0.14+9/make/data/tzdata/leapseconds 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/data/tzdata/leapseconds 2022-07-16 20:06:34.000000000 +0000 @@ -95,11 +95,11 @@ # Any additional leap seconds will come after this. # This Expires line is commented out for now, # so that pre-2020a zic implementations do not reject this file. -#Expires 2022 Jun 28 00:00:00 +#Expires 2022 Dec 28 00:00:00 # POSIX timestamps for the data in this file: #updated 1467936000 (2016-07-08 00:00:00 UTC) -#expires 1656374400 (2022-06-28 00:00:00 UTC) +#expires 1672185600 (2022-12-28 00:00:00 UTC) -# Updated through IERS Bulletin C62 -# File expires on: 28 June 2022 +# Updated through IERS Bulletin C63 +# File expires on: 28 December 2022 diff -Nru openjdk-11-11.0.14+9/make/data/tzdata/southamerica openjdk-11-11.0.16+8/make/data/tzdata/southamerica --- openjdk-11-11.0.14+9/make/data/tzdata/southamerica 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/data/tzdata/southamerica 2022-07-16 20:06:34.000000000 +0000 @@ -1109,7 +1109,7 @@ # Chile -# From Paul Eggert (2015-04-03): +# From Paul Eggert (2022-03-15): # Shanks & Pottenger says America/Santiago introduced standard time in # 1890 and rounds its UT offset to 70W40; guess that in practice this # was the same offset as in 1916-1919. It also says Pacific/Easter @@ -1132,7 +1132,7 @@ # Historia de la hora oficial de Chile (retrieved 2012-10-24). See: # https://web.archive.org/web/20121024234627/http://www.horaoficial.cl/horaof.htm # A fancier Spanish version (requiring mouse-clicking) is at: -# http://www.horaoficial.cl/historia_hora.html +# http://www.horaoficial.cl/historia_hora.php # Conflicts between [1] and [2] were resolved as follows: # # - [1] says the 1910 transition was Jan 1, [2] says Jan 10 and cites @@ -1141,7 +1141,8 @@ # - [1] says SMT was -4:42:45, [2] says Chile's official time from # 1916 to 1919 was -4:42:46.3, the meridian of Chile's National # Astronomical Observatory (OAN), then located in what is now -# Quinta Normal in Santiago. Go with [2], rounding it to -4:42:46. +# Quinta Normal in Santiago. Go with [1], as this matches the meridian +# referred to by the relevant Chilean laws to this day. # # - [1] says the 1918 transition was Sep 1, [2] says Sep 10 and cites # Boletín No. 22, Aviso No. 129/1918 (1918-08-23). Go with [2]. @@ -1163,6 +1164,32 @@ # this is known to work for DST transitions starting in 2008 and # may well be true for earlier transitions. +# From Tim Parenti (2022-03-15): +# For a brief period of roughly six weeks in 1946, DST was only observed on an +# emergency basis in specific regions of central Chile; namely, "the national +# territory between the provinces of Coquimbo and Concepción, inclusive". +# This was enacted by Decree 3,891, dated 1946-07-13, and took effect +# 1946-07-14 24:00, advancing these central regions to -03. +# https://www.diariooficial.interior.gob.cl/versiones-anteriores/do-h/19460715/#page/1 +# The decree contemplated "[t]hat this advancement of the Official Time, even +# though it has been proposed for the cities of Santiago and Valparaíso only, +# must be agreed with that of other cities, due to the connection of various +# activities that require it, such as, for example, the operation of rail +# services". It was originally set to expire after 30 days but was extended +# through 1946-08-31 by Decree 4,506, dated 1946-08-13. +# https://www.diariooficial.interior.gob.cl/versiones-anteriores/do-h/19460814/#page/1 +# +# Law Number 8,522, promulgated 1946-08-27, reunified Chilean clocks at their +# new "Summer Time" of -04, reckoned as that of "the meridian of the +# Astronomical Observatory of Lo Espejo, advanced by 42 minutes and 45 +# seconds". +# https://www.diariooficial.interior.gob.cl/versiones-anteriores/do-h/19460828/#page/1 +# After a brief "Winter Time" stint at -05 beginning 1947-04-01, Law Number +# 8,777, promulgated 1947-05-17, established year-round -04 "from 23:00 on the +# second day after it is published in the 'Diario Oficial'." It was published +# on Monday 1947-05-19 and so took effect from Wednesday 1947-05-21 23:00. +# https://www.diariooficial.interior.gob.cl/versiones-anteriores/do-h/19470519/#page/1 + # From Eduardo Krell (1995-10-19): # The law says to switch to DST at midnight [24:00] on the second SATURDAY # of October.... The law is the same for March and October. @@ -1321,12 +1348,12 @@ # IATA SSIM anomalies: (1992-02) says 1992-03-14; # (1996-09) says 1998-03-08. Ignore these. # Zone NAME STDOFF RULES FORMAT [UNTIL] -Zone America/Santiago -4:42:46 - LMT 1890 - -4:42:46 - SMT 1910 Jan 10 # Santiago Mean Time +Zone America/Santiago -4:42:45 - LMT 1890 + -4:42:45 - SMT 1910 Jan 10 # Santiago Mean Time -5:00 - -05 1916 Jul 1 - -4:42:46 - SMT 1918 Sep 10 + -4:42:45 - SMT 1918 Sep 10 -4:00 - -04 1919 Jul 1 - -4:42:46 - SMT 1927 Sep 1 + -4:42:45 - SMT 1927 Sep 1 -5:00 Chile -05/-04 1932 Sep 1 -4:00 - -04 1942 Jun 1 -5:00 - -05 1942 Aug 1 @@ -1336,11 +1363,11 @@ -5:00 - -05 1947 May 21 23:00 -4:00 Chile -04/-03 Zone America/Punta_Arenas -4:43:40 - LMT 1890 - -4:42:46 - SMT 1910 Jan 10 + -4:42:45 - SMT 1910 Jan 10 -5:00 - -05 1916 Jul 1 - -4:42:46 - SMT 1918 Sep 10 + -4:42:45 - SMT 1918 Sep 10 -4:00 - -04 1919 Jul 1 - -4:42:46 - SMT 1927 Sep 1 + -4:42:45 - SMT 1927 Sep 1 -5:00 Chile -05/-04 1932 Sep 1 -4:00 - -04 1942 Jun 1 -5:00 - -05 1942 Aug 1 diff -Nru openjdk-11-11.0.14+9/make/hotspot/gensrc/GensrcAdlc.gmk openjdk-11-11.0.16+8/make/hotspot/gensrc/GensrcAdlc.gmk --- openjdk-11-11.0.14+9/make/hotspot/gensrc/GensrcAdlc.gmk 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/hotspot/gensrc/GensrcAdlc.gmk 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ # -# Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2013, 2021, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -99,6 +99,9 @@ ADLCFLAGS += -DAIX=1 else ifeq ($(OPENJDK_TARGET_OS), macosx) ADLCFLAGS += -D_ALLBSD_SOURCE=1 -D_GNU_SOURCE=1 + ifeq ($(HOTSPOT_TARGET_CPU_ARCH), aarch64) + ADLCFLAGS += -DR18_RESERVED + endif else ifeq ($(OPENJDK_TARGET_OS), windows) ifeq ($(call isTargetCpuBits, 64), true) ADLCFLAGS += -D_WIN64=1 diff -Nru openjdk-11-11.0.14+9/make/hotspot/lib/CompileGtest.gmk openjdk-11-11.0.16+8/make/hotspot/lib/CompileGtest.gmk --- openjdk-11-11.0.14+9/make/hotspot/lib/CompileGtest.gmk 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/hotspot/lib/CompileGtest.gmk 2022-07-16 20:06:34.000000000 +0000 @@ -55,6 +55,9 @@ # Disabling undef, switch, format-nonliteral and tautological-undefined-compare # warnings for clang because of test source. +# Disable MSVC warning C4146 "unary minus operator applied to unsigned type, +# result still unsigned". This operation is well-defined. + # Solaris: Disable inlining (+d) to workaround Assertion: (../lnk/vardescr.h, line 109) $(eval $(call SetupNativeCompilation, BUILD_GTEST_LIBJVM, \ NAME := jvm, \ @@ -78,6 +81,7 @@ DISABLED_WARNINGS_clang := undef switch format-nonliteral \ tautological-undefined-compare $(BUILD_LIBJVM_DISABLED_WARNINGS_clang), \ DISABLED_WARNINGS_solstudio := identexpected, \ + DISABLED_WARNINGS_microsoft := 4146, \ LDFLAGS := $(JVM_LDFLAGS), \ LDFLAGS_solaris := -library=stlport4 $(call SET_SHARED_LIBRARY_ORIGIN), \ LIBS := $(JVM_LIBS), \ diff -Nru openjdk-11-11.0.14+9/make/hotspot/lib/CompileJvm.gmk openjdk-11-11.0.16+8/make/hotspot/lib/CompileJvm.gmk --- openjdk-11-11.0.14+9/make/hotspot/lib/CompileJvm.gmk 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/hotspot/lib/CompileJvm.gmk 2022-07-16 20:06:34.000000000 +0000 @@ -148,6 +148,8 @@ ################################################################################ # Now set up the actual compilation of the main hotspot native library +# Disable MSVC warning C4146 "unary minus operator applied to unsigned type, +# result still unsigned". This operation is well-defined. $(eval $(call SetupNativeCompilation, BUILD_LIBJVM, \ NAME := jvm, \ TOOLCHAIN := TOOLCHAIN_LINK_CXX, \ @@ -164,6 +166,7 @@ DISABLED_WARNINGS_solstudio := $(DISABLED_WARNINGS_solstudio), \ DISABLED_WARNINGS_xlc := 1540-0216 1540-0198 1540-1090 1540-1639 \ 1540-1088 1500-010, \ + DISABLED_WARNINGS_microsoft := 4146, \ ASFLAGS := $(JVM_ASFLAGS), \ LDFLAGS := $(JVM_LDFLAGS), \ LIBS := $(JVM_LIBS), \ diff -Nru openjdk-11-11.0.14+9/make/lib/Awt2dLibraries.gmk openjdk-11-11.0.16+8/make/lib/Awt2dLibraries.gmk --- openjdk-11-11.0.14+9/make/lib/Awt2dLibraries.gmk 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/lib/Awt2dLibraries.gmk 2022-07-16 20:06:34.000000000 +0000 @@ -433,7 +433,7 @@ OPTIMIZATION := HIGHEST, \ CFLAGS := $(CFLAGS_JDKLIB), \ HEADERS_FROM_SRC := $(LIBJPEG_HEADERS_FROM_SRC), \ - DISABLED_WARNINGS_gcc := clobbered implicit-fallthrough shift-negative-value, \ + DISABLED_WARNINGS_gcc := clobbered implicit-fallthrough shift-negative-value array-bounds, \ LDFLAGS := $(LDFLAGS_JDKLIB) \ $(call SET_SHARED_LIBRARY_ORIGIN), \ LIBS := $(LIBJPEG_LIBS) $(JDKLIB_LIBS), \ @@ -542,8 +542,9 @@ else LIBFONTMANAGER_EXTRA_SRC = libharfbuzz HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN -DHAVE_ROUND - + # Modern HarfBuzz requires c++11; but VS does not have the flag ifneq ($(OPENJDK_TARGET_OS), windows) + HARFBUZZ_CXXFLAGS := -std=c++11 HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \ -DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \ -DHB_NO_PRAGMA_GCC_DIAGNOSTIC @@ -559,10 +560,10 @@ HARFBUZZ_DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing HARFBUZZ_DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \ - maybe-uninitialized class-memaccess + maybe-uninitialized class-memaccess unused-result extra HARFBUZZ_DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \ tautological-constant-out-of-range-compare int-to-pointer-cast \ - undef missing-field-initializers + undef missing-field-initializers deprecated-declarations c++11-narrowing range-loop-analysis HARFBUZZ_DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138 HARFBUZZ_DISABLED_WARNINGS_C_solstudio := \ E_INTEGER_OVERFLOW_DETECTED \ @@ -576,7 +577,6 @@ endif - LIBFONTMANAGER_EXTRA_HEADER_DIRS := \ libharfbuzz \ libharfbuzz/hb-ucdn \ @@ -592,6 +592,14 @@ LIBFONTMANAGER_OPTIMIZATION := HIGHEST +ifneq ($(filter $(TOOLCHAIN_TYPE), gcc clang), ) + # gcc (and to an extent clang) is particularly bad at optimizing these files, + # causing a massive spike in compile time. We don't care about these + # particular files anyway, so lower optimization level. + BUILD_LIBFONTMANAGER_hb-subset.cc_OPTIMIZATION := SIZE + BUILD_LIBFONTMANAGER_hb-subset-plan.cc_OPTIMIZATION := SIZE +endif + ifeq ($(OPENJDK_TARGET_OS), windows) LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \ X11TextRenderer.c @@ -624,7 +632,7 @@ AccelGlyphCache.c, \ TOOLCHAIN := TOOLCHAIN_LINK_CXX, \ CFLAGS := $(CFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \ - CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \ + CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS) $(HARFBUZZ_CXXFLAGS), \ OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \ CFLAGS_windows = -DCC_NOEX, \ EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \ @@ -861,7 +869,7 @@ EXTRA_HEADER_DIRS := $(LIBSPLASHSCREEN_HEADER_DIRS), \ DISABLED_WARNINGS_gcc := sign-compare type-limits unused-result \ maybe-uninitialized shift-negative-value implicit-fallthrough, \ - DISABLED_WARNINGS_clang := incompatible-pointer-types, \ + DISABLED_WARNINGS_clang := incompatible-pointer-types deprecated-declarations, \ DISABLED_WARNINGS_solstudio := E_NEWLINE_NOT_LAST E_DECLARATION_IN_CODE \ E_STATEMENT_NOT_REACHED, \ DISABLED_WARNINGS_microsoft := 4018 4244 4267, \ diff -Nru openjdk-11-11.0.14+9/make/lib/Lib-jdk.hotspot.agent.gmk openjdk-11-11.0.16+8/make/lib/Lib-jdk.hotspot.agent.gmk --- openjdk-11-11.0.14+9/make/lib/Lib-jdk.hotspot.agent.gmk 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/lib/Lib-jdk.hotspot.agent.gmk 2022-07-16 20:06:34.000000000 +0000 @@ -36,7 +36,7 @@ SA_LDFLAGS := -mt else ifeq ($(OPENJDK_TARGET_OS), macosx) - SA_CFLAGS := -Damd64 -D_GNU_SOURCE -mno-omit-leaf-frame-pointer \ + SA_CFLAGS := -D_GNU_SOURCE -mno-omit-leaf-frame-pointer \ -mstack-alignment=16 -fPIC LIBSA_EXTRA_SRC := $(SUPPORT_OUTPUTDIR)/gensrc/jdk.hotspot.agent else ifeq ($(OPENJDK_TARGET_OS), windows) diff -Nru openjdk-11-11.0.14+9/make/scripts/compare.sh openjdk-11-11.0.16+8/make/scripts/compare.sh --- openjdk-11-11.0.14+9/make/scripts/compare.sh 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/scripts/compare.sh 2022-07-16 20:06:34.000000000 +0000 @@ -34,6 +34,9 @@ exit 1 fi +# Make sure all shell commands are executed with the C locale +export LC_ALL=C + if [ "$OPENJDK_TARGET_OS" = "macosx" ]; then FULLDUMP_CMD="$OTOOL -v -V -h -X -d" LDD_CMD="$OTOOL -L" @@ -81,7 +84,7 @@ if [[ "$THIS_FILE" = *"META-INF/MANIFEST.MF" ]]; then # Filter out date string, ant version and java version differences. - TMP=$(LC_ALL=C $DIFF $OTHER_FILE $THIS_FILE | \ + TMP=$($DIFF $OTHER_FILE $THIS_FILE | \ $GREP '^[<>]' | \ $SED -e '/[<>] Ant-Version: Apache Ant .*/d' \ -e '/[<>] Created-By: .* (Oracle [Corpatin)]*/d' \ @@ -89,7 +92,7 @@ -e '/[<>].*[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}.*/d') fi if test "x$SUFFIX" = "xjava"; then - TMP=$(LC_ALL=C $DIFF $OTHER_FILE $THIS_FILE | \ + TMP=$($DIFF $OTHER_FILE $THIS_FILE | \ $GREP '^[<>]' | \ $SED -e '/[<>] \* from.*\.idl/d' \ -e '/[<>] .*[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}.*/d' \ @@ -144,7 +147,7 @@ fi if test "x$SUFFIX" = "xproperties"; then # Filter out date string differences. - TMP=$(LC_ALL=C $DIFF $OTHER_FILE $THIS_FILE | \ + TMP=$($DIFF $OTHER_FILE $THIS_FILE | \ $GREP '^[<>]' | \ $SED -e '/[<>].*[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}-[0-9]\{6\}.*/d') fi @@ -154,7 +157,7 @@ -e 's///g'" $CAT $THIS_FILE | eval "$HTML_FILTER" > $THIS_FILE.filtered $CAT $OTHER_FILE | eval "$HTML_FILTER" > $OTHER_FILE.filtered - TMP=$(LC_ALL=C $DIFF $OTHER_FILE.filtered $THIS_FILE.filtered | \ + TMP=$($DIFF $OTHER_FILE.filtered $THIS_FILE.filtered | \ $GREP '^[<>]' | \ $SED -e '/[<>] /d' \ -e '/[<>] /d' ) @@ -481,11 +484,11 @@ CONTENTS_DIFF_FILE=$WORK_DIR/$ZIP_FILE.diff # On solaris, there is no -q option. if [ "$OPENJDK_TARGET_OS" = "solaris" ]; then - LC_ALL=C $DIFF -r $OTHER_UNZIPDIR $THIS_UNZIPDIR \ + $DIFF -r $OTHER_UNZIPDIR $THIS_UNZIPDIR \ | $GREP -v -e "^<" -e "^>" -e "^Common subdirectories:" \ > $CONTENTS_DIFF_FILE else - LC_ALL=C $DIFF -rq $OTHER_UNZIPDIR $THIS_UNZIPDIR > $CONTENTS_DIFF_FILE + $DIFF -rq $OTHER_UNZIPDIR $THIS_UNZIPDIR > $CONTENTS_DIFF_FILE fi ONLY_OTHER=$($GREP "^Only in $OTHER_UNZIPDIR" $CONTENTS_DIFF_FILE) @@ -532,11 +535,11 @@ if [ -n "$SHOW_DIFFS" ]; then for i in $(cat $WORK_DIR/$ZIP_FILE.difflist) ; do if [ -f "${OTHER_UNZIPDIR}/$i.javap" ]; then - LC_ALL=C $DIFF ${OTHER_UNZIPDIR}/$i.javap ${THIS_UNZIPDIR}/$i.javap + $DIFF ${OTHER_UNZIPDIR}/$i.javap ${THIS_UNZIPDIR}/$i.javap elif [ -f "${OTHER_UNZIPDIR}/$i.cleaned" ]; then - LC_ALL=C $DIFF ${OTHER_UNZIPDIR}/$i.cleaned ${THIS_UNZIPDIR}/$i + $DIFF ${OTHER_UNZIPDIR}/$i.cleaned ${THIS_UNZIPDIR}/$i else - LC_ALL=C $DIFF ${OTHER_UNZIPDIR}/$i ${THIS_UNZIPDIR}/$i + $DIFF ${OTHER_UNZIPDIR}/$i ${THIS_UNZIPDIR}/$i fi done fi @@ -776,7 +779,7 @@ > $WORK_FILE_BASE.symbols.this fi - LC_ALL=C $DIFF $WORK_FILE_BASE.symbols.other $WORK_FILE_BASE.symbols.this > $WORK_FILE_BASE.symbols.diff + $DIFF $WORK_FILE_BASE.symbols.other $WORK_FILE_BASE.symbols.this > $WORK_FILE_BASE.symbols.diff if [ -s $WORK_FILE_BASE.symbols.diff ]; then SYM_MSG=" diff " if [[ "$ACCEPTED_SYM_DIFF" != *"$BIN_FILE"* ]]; then @@ -816,9 +819,9 @@ | $UNIQ > $WORK_FILE_BASE.deps.this.uniq) (cd $FILE_WORK_DIR && $RM -f $NAME) - LC_ALL=C $DIFF $WORK_FILE_BASE.deps.other $WORK_FILE_BASE.deps.this \ + $DIFF $WORK_FILE_BASE.deps.other $WORK_FILE_BASE.deps.this \ > $WORK_FILE_BASE.deps.diff - LC_ALL=C $DIFF $WORK_FILE_BASE.deps.other.uniq $WORK_FILE_BASE.deps.this.uniq \ + $DIFF $WORK_FILE_BASE.deps.other.uniq $WORK_FILE_BASE.deps.this.uniq \ > $WORK_FILE_BASE.deps.diff.uniq if [ -s $WORK_FILE_BASE.deps.diff ]; then @@ -868,7 +871,7 @@ > $WORK_FILE_BASE.fulldump.this 2>&1 & wait - LC_ALL=C $DIFF $WORK_FILE_BASE.fulldump.other $WORK_FILE_BASE.fulldump.this \ + $DIFF $WORK_FILE_BASE.fulldump.other $WORK_FILE_BASE.fulldump.this \ > $WORK_FILE_BASE.fulldump.diff if [ -s $WORK_FILE_BASE.fulldump.diff ]; then @@ -915,7 +918,7 @@ | eval "$this_DIS_DIFF_FILTER" > $WORK_FILE_BASE.dis.this 2>&1 & wait - LC_ALL=C $DIFF $WORK_FILE_BASE.dis.other $WORK_FILE_BASE.dis.this > $WORK_FILE_BASE.dis.diff + $DIFF $WORK_FILE_BASE.dis.other $WORK_FILE_BASE.dis.this > $WORK_FILE_BASE.dis.diff if [ -s $WORK_FILE_BASE.dis.diff ]; then DIS_DIFF_SIZE=$(ls -n $WORK_FILE_BASE.dis.diff | awk '{print $5}') diff -Nru openjdk-11-11.0.14+9/make/test/JtregNativeJdk.gmk openjdk-11-11.0.16+8/make/test/JtregNativeJdk.gmk --- openjdk-11-11.0.14+9/make/test/JtregNativeJdk.gmk 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/make/test/JtregNativeJdk.gmk 2022-07-16 20:06:34.000000000 +0000 @@ -83,6 +83,7 @@ else BUILD_JDK_JTREG_EXCLUDE += libTestMainKeyWindow.m BUILD_JDK_JTREG_EXCLUDE += libTestDynamicStore.m + BUILD_JDK_JTREG_EXCLUDE += exeLibraryCache.c endif $(eval $(call SetupTestFilesCompilation, BUILD_JDK_JTREG_LIBRARIES, \ diff -Nru openjdk-11-11.0.14+9/src/demo/share/java2d/J2DBench/options/default.opt openjdk-11-11.0.16+8/src/demo/share/java2d/J2DBench/options/default.opt --- openjdk-11-11.0.14+9/src/demo/share/java2d/J2DBench/options/default.opt 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/demo/share/java2d/J2DBench/options/default.opt 2022-07-16 20:06:34.000000000 +0000 @@ -8,8 +8,11 @@ global.results.workunits=units global.results.timeunits=sec global.results.ratio=unitspersec -global.dest.screen=disabled global.dest.offscreen=disabled +global.dest.frame.defaultframe=disabled +global.dest.frame.transframe=disabled +global.dest.frame.shapedframe=disabled +global.dest.frame.shapedtransframe=disabled global.dest.compatimg.compatimg=disabled global.dest.compatimg.opqcompatimg=disabled global.dest.compatimg.bmcompatimg=disabled diff -Nru openjdk-11-11.0.14+9/src/demo/share/java2d/J2DBench/src/j2dbench/Destinations.java openjdk-11-11.0.16+8/src/demo/share/java2d/J2DBench/src/j2dbench/Destinations.java --- openjdk-11-11.0.14+9/src/demo/share/java2d/J2DBench/src/j2dbench/Destinations.java 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/demo/share/java2d/J2DBench/src/j2dbench/Destinations.java 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2020, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -40,9 +40,11 @@ package j2dbench; -import java.awt.Image; import java.awt.Component; +import java.awt.Frame; import java.awt.GraphicsConfiguration; +import java.awt.Image; +import java.awt.Polygon; import java.awt.Transparency; import java.awt.color.ColorSpace; import java.awt.image.BufferedImage; @@ -50,11 +52,14 @@ import java.awt.image.DataBuffer; import java.awt.image.WritableRaster; +import javax.swing.SwingUtilities; + import j2dbench.tests.GraphicsTests; import j2dbench.tests.ImageTests; public abstract class Destinations extends Option.Enable { public static Group.EnableSet destroot; + public static Group frameroot; public static Group bufimgdestroot; public static Group compatimgdestroot; public static Group volimgdestroot; @@ -63,9 +68,22 @@ destroot = new Group.EnableSet(TestEnvironment.globaloptroot, "dest", "Output Destination Options"); - new Screen(); new OffScreen(); + frameroot = new Group.EnableSet(destroot, "frame", "Output to Frame"); + frameroot.setHorizontal(); + + new Screen(false, false); + if (ImageTests.hasOpacityWindow) { + new Screen(true, false); + } + if (ImageTests.hasShapedWindow) { + new Screen(false, true); + } + if (ImageTests.hasShapedWindow && ImageTests.hasOpacityWindow) { + new Screen(true, true); + } + if (GraphicsTests.hasGraphics2D) { if (ImageTests.hasCompatImage) { compatimgdestroot = @@ -129,17 +147,95 @@ public abstract void setDestination(TestEnvironment env); public static class Screen extends Destinations { - public Screen() { - super(destroot, "screen", "Output to Screen", false); + + private boolean opacity; + private boolean shaped; + + public Screen(boolean opacity, boolean shaped) { + super(frameroot, getDescription(opacity,shaped), + getLongDescription(opacity,shaped), false); + this.opacity = opacity; + this.shaped = shaped; + } + + private static String getDescription(boolean opacity, boolean shaped){ + if (opacity && shaped) { + return "shapedtransframe"; + } + if (shaped) { + return "shapedframe"; + } + if (opacity) { + return "transframe"; + } + return "defaultframe"; + } + + private static String getLongDescription(boolean opacity, boolean shaped){ + if (opacity && shaped) { + return "Translucent and Shaped"; + } + if (shaped) { + return "Shaped"; + } + if (opacity) { + return "Translucent"; + } + return "Default"; } public String getModifierValueName(Object val) { - return "Screen"; + if (opacity && shaped) { + return "Translucent and Shaped Frame"; + } + if (shaped) { + return "Shaped Frame"; + } + if (opacity) { + return "Translucent Frame"; + } + return "Default Frame"; } public void setDestination(TestEnvironment env) { env.setTestImage(null); } + + public void modifyTest(TestEnvironment env) { + setDestination(env); + Frame frame = (Frame) SwingUtilities.getWindowAncestor(env.comp); + if (frame != null && (opacity || shaped)) { + frame.dispose(); + frame.setUndecorated(true); + int w = frame.getWidth(); + int h = frame.getHeight(); + if (shaped) { + Polygon p = new Polygon(); + p.addPoint(0, 0); + p.addPoint(w, 0); + p.addPoint(0, h); + p.addPoint(w, h); + p.addPoint(0, 0); + frame.setShape(p); + } + if (opacity) { + frame.setOpacity(0.5f); + } + frame.setVisible(true); + } + } + + public void restoreTest(TestEnvironment env) { + env.setTestImage(null); + Frame frame = (Frame) SwingUtilities.getWindowAncestor(env.comp); + if (frame != null && (opacity || shaped)) { + frame.dispose(); + frame.setShape(null); + frame.setOpacity(1); + frame.setUndecorated(false); + frame.setVisible(true); + } + } } public static class OffScreen extends Destinations { diff -Nru openjdk-11-11.0.14+9/src/demo/share/java2d/J2DBench/src/j2dbench/J2DBench.java openjdk-11-11.0.16+8/src/demo/share/java2d/J2DBench/src/j2dbench/J2DBench.java --- openjdk-11-11.0.14+9/src/demo/share/java2d/J2DBench/src/j2dbench/J2DBench.java 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/demo/share/java2d/J2DBench/src/j2dbench/J2DBench.java 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2020, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -40,6 +40,8 @@ package j2dbench; +import java.awt.GraphicsEnvironment; +import java.awt.Rectangle; import java.io.PrintWriter; import java.io.FileReader; import java.io.FileWriter; @@ -780,7 +782,10 @@ f.getContentPane().add(p, BorderLayout.SOUTH); f.pack(); f.setLocationRelativeTo(null); - f.show(); + Rectangle usable = GraphicsEnvironment.getLocalGraphicsEnvironment() + .getMaximumWindowBounds().intersection(f.getBounds()); + f.setBounds(usable); + f.setVisible(true); } public static void runTests(boolean showresults) { diff -Nru openjdk-11-11.0.14+9/src/demo/share/java2d/J2DBench/src/j2dbench/tests/ImageTests.java openjdk-11-11.0.16+8/src/demo/share/java2d/J2DBench/src/j2dbench/tests/ImageTests.java --- openjdk-11-11.0.14+9/src/demo/share/java2d/J2DBench/src/j2dbench/tests/ImageTests.java 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/demo/share/java2d/J2DBench/src/j2dbench/tests/ImageTests.java 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2020, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -53,7 +53,9 @@ import java.awt.AlphaComposite; import java.awt.Dimension; import java.awt.GraphicsConfiguration; +import java.awt.Rectangle; import java.awt.RenderingHints; +import java.awt.Window; import java.awt.image.BufferedImage; import java.awt.image.BufferedImageOp; import java.awt.image.ByteLookupTable; @@ -79,6 +81,8 @@ public abstract class ImageTests extends GraphicsTests { public static boolean hasVolatileImage; public static boolean hasTransparentVolatileImage; + public static boolean hasShapedWindow; + public static boolean hasOpacityWindow; public static boolean hasCompatImage; static { @@ -96,6 +100,16 @@ hasTransparentVolatileImage = true; } catch (NoSuchMethodError e) { } + try { + new Window(null).setShape(new Rectangle()); + hasShapedWindow = true; + } catch (Exception e) { + } + try { + new Window(null).setOpacity(0.5f); + hasOpacityWindow = true; + } catch (Exception e) { + } } static Group imageroot; diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/aarch64.ad openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/aarch64.ad --- openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/aarch64.ad 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/aarch64.ad 2022-07-16 20:06:34.000000000 +0000 @@ -1,6 +1,6 @@ // -// Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved. -// Copyright (c) 2014, 2019, Red Hat, Inc. All rights reserved. +// Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. +// Copyright (c) 2014, 2022, Red Hat, Inc. All rights reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it @@ -2055,11 +2055,6 @@ const bool Matcher::match_rule_supported(int opcode) { - switch (opcode) { - default: - break; - } - if (!has_match_rule(opcode)) { return false; } @@ -2421,6 +2416,40 @@ } } + static void loadStore(MacroAssembler masm, mem_insn insn, + Register reg, int opcode, + Register base, int index, int size, int disp, + int size_in_memory) + { + Address::extend scale; + + // Hooboy, this is fugly. We need a way to communicate to the + // encoder that the index needs to be sign extended, so we have to + // enumerate all the cases. + switch (opcode) { + case INDINDEXSCALEDI2L: + case INDINDEXSCALEDI2LN: + case INDINDEXI2L: + case INDINDEXI2LN: + scale = Address::sxtw(size); + break; + default: + scale = Address::lsl(size); + } + + if (index == -1) { + Address addr(base, disp); + /* Fix up any out-of-range offsets. */ + assert_different_registers(rscratch1, base); + assert_different_registers(rscratch1, reg); + addr = masm.legitimize_address(addr, size_in_memory, rscratch1); + (masm.*insn)(reg, addr); + } else { + assert(disp == 0, "unsupported address mode: disp = %d", disp); + (masm.*insn)(reg, Address(base, as_Register(index), scale)); + } + } + static void loadStore(MacroAssembler masm, mem_float_insn insn, FloatRegister reg, int opcode, Register base, int index, int size, int disp) @@ -2503,120 +2532,160 @@ // BEGIN Non-volatile memory access + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_ldrsbw(iRegI dst, memory mem) %{ Register dst_reg = as_Register($dst$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::ldrsbw, dst_reg, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_ldrsb(iRegI dst, memory mem) %{ Register dst_reg = as_Register($dst$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::ldrsb, dst_reg, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_ldrb(iRegI dst, memory mem) %{ Register dst_reg = as_Register($dst$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::ldrb, dst_reg, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_ldrb(iRegL dst, memory mem) %{ Register dst_reg = as_Register($dst$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::ldrb, dst_reg, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_ldrshw(iRegI dst, memory mem) %{ Register dst_reg = as_Register($dst$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::ldrshw, dst_reg, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_ldrsh(iRegI dst, memory mem) %{ Register dst_reg = as_Register($dst$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::ldrsh, dst_reg, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_ldrh(iRegI dst, memory mem) %{ Register dst_reg = as_Register($dst$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::ldrh, dst_reg, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_ldrh(iRegL dst, memory mem) %{ Register dst_reg = as_Register($dst$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::ldrh, dst_reg, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_ldrw(iRegI dst, memory mem) %{ Register dst_reg = as_Register($dst$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::ldrw, dst_reg, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_ldrw(iRegL dst, memory mem) %{ Register dst_reg = as_Register($dst$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::ldrw, dst_reg, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_ldrsw(iRegL dst, memory mem) %{ Register dst_reg = as_Register($dst$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::ldrsw, dst_reg, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_ldr(iRegL dst, memory mem) %{ Register dst_reg = as_Register($dst$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::ldr, dst_reg, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_ldrs(vRegF dst, memory mem) %{ FloatRegister dst_reg = as_FloatRegister($dst$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::ldrs, dst_reg, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_ldrd(vRegD dst, memory mem) %{ FloatRegister dst_reg = as_FloatRegister($dst$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::ldrd, dst_reg, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_ldrvS(vecD dst, memory mem) %{ FloatRegister dst_reg = as_FloatRegister($dst$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::ldr, dst_reg, MacroAssembler::S, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_ldrvD(vecD dst, memory mem) %{ FloatRegister dst_reg = as_FloatRegister($dst$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::ldr, dst_reg, MacroAssembler::D, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_ldrvQ(vecX dst, memory mem) %{ FloatRegister dst_reg = as_FloatRegister($dst$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::ldr, dst_reg, MacroAssembler::Q, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_strb(iRegI src, memory mem) %{ Register src_reg = as_Register($src$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::strb, src_reg, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_strb0(memory mem) %{ MacroAssembler _masm(&cbuf); loadStore(_masm, &MacroAssembler::strb, zr, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_strb0_ordered(memory mem) %{ MacroAssembler _masm(&cbuf); __ membar(Assembler::StoreStore); @@ -2624,30 +2693,40 @@ as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_strh(iRegI src, memory mem) %{ Register src_reg = as_Register($src$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::strh, src_reg, $mem->opcode(), - as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); + as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp, 2); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_strh0(memory mem) %{ MacroAssembler _masm(&cbuf); loadStore(_masm, &MacroAssembler::strh, zr, $mem->opcode(), - as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); + as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp, 2); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_strw(iRegI src, memory mem) %{ Register src_reg = as_Register($src$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::strw, src_reg, $mem->opcode(), - as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); + as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp, 4); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_strw0(memory mem) %{ MacroAssembler _masm(&cbuf); loadStore(_masm, &MacroAssembler::strw, zr, $mem->opcode(), - as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); + as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp, 4); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_str(iRegL src, memory mem) %{ Register src_reg = as_Register($src$$reg); // we sometimes get asked to store the stack pointer into the @@ -2659,45 +2738,57 @@ src_reg = rscratch2; } loadStore(MacroAssembler(&cbuf), &MacroAssembler::str, src_reg, $mem->opcode(), - as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); + as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp, 8); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_str0(memory mem) %{ MacroAssembler _masm(&cbuf); loadStore(_masm, &MacroAssembler::str, zr, $mem->opcode(), - as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); + as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp, 8); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_strs(vRegF src, memory mem) %{ FloatRegister src_reg = as_FloatRegister($src$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::strs, src_reg, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_strd(vRegD src, memory mem) %{ FloatRegister src_reg = as_FloatRegister($src$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::strd, src_reg, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_strvS(vecD src, memory mem) %{ FloatRegister src_reg = as_FloatRegister($src$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::str, src_reg, MacroAssembler::S, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_strvD(vecD src, memory mem) %{ FloatRegister src_reg = as_FloatRegister($src$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::str, src_reg, MacroAssembler::D, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_strvQ(vecX src, memory mem) %{ FloatRegister src_reg = as_FloatRegister($src$$reg); loadStore(MacroAssembler(&cbuf), &MacroAssembler::str, src_reg, MacroAssembler::Q, $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %} - + // END Non-volatile memory access // volatile loads and stores diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/ad_encode.m4 openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/ad_encode.m4 --- openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/ad_encode.m4 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/ad_encode.m4 2022-07-16 20:06:34.000000000 +0000 @@ -1,4 +1,4 @@ -dnl Copyright (c) 2014, Red Hat Inc. All rights reserved. +dnl Copyright (c) 2014, 2022 Red Hat Inc. All rights reserved. dnl DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. dnl dnl This code is free software; you can redistribute it and/or modify it @@ -23,46 +23,119 @@ dnl Process this file with m4 ad_encode.m4 to generate the load/store dnl patterns used in aarch64.ad. dnl -define(choose, `loadStore($1, &MacroAssembler::$3, $2, $4, - $5, $6, $7, $8);dnl - +dnl +dnl +define(LOAD,` + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE + enc_class aarch64_enc_$2($1 dst, memory mem) %{ + $3Register dst_reg = as_$3Register($dst$$reg); + loadStore(MacroAssembler(&cbuf), &MacroAssembler::$2, dst_reg, $mem->opcode(), + as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); + %}')dnl +dnl +dnl +dnl +define(LOADV,` + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE + enc_class aarch64_enc_$2($1 dst, memory mem) %{ + FloatRegister dst_reg = as_FloatRegister($dst$$reg); + loadStore(MacroAssembler(&cbuf), &MacroAssembler::ldr, dst_reg, MacroAssembler::$3, + $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); %}')dnl -define(access, ` - $3Register $1_reg = as_$3Register($$1$$reg); - $4choose(MacroAssembler(&cbuf), $1_reg,$2,$mem->opcode(), - as_Register($mem$$base),$mem$$index,$mem$$scale,$mem$$disp)')dnl -define(load,` - enc_class aarch64_enc_$2($1 dst, memory mem) %{dnl -access(dst,$2,$3)')dnl -load(iRegI,ldrsbw) -load(iRegI,ldrsb) -load(iRegI,ldrb) -load(iRegL,ldrb) -load(iRegI,ldrshw) -load(iRegI,ldrsh) -load(iRegI,ldrh) -load(iRegL,ldrh) -load(iRegI,ldrw) -load(iRegL,ldrw) -load(iRegL,ldrsw) -load(iRegL,ldr) -load(vRegF,ldrs,Float) -load(vRegD,ldrd,Float) +dnl +dnl +dnl define(STORE,` - enc_class aarch64_enc_$2($1 src, memory mem) %{dnl -access(src,$2,$3,$4)')dnl + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE + enc_class aarch64_enc_$2($1 src, memory mem) %{ + $3Register src_reg = as_$3Register($src$$reg); + $4loadStore(MacroAssembler(&cbuf), &MacroAssembler::$2, src_reg, $mem->opcode(), + as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); + %}')dnl +dnl +dnl +dnl define(STORE0,` + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE + enc_class aarch64_enc_$2`'0(memory mem) %{ + MacroAssembler _masm(&cbuf); + $4loadStore(_masm, &MacroAssembler::$2, zr, $mem->opcode(), + as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); + %}')dnl +dnl +dnl +dnl +define(STOREL,` + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE + enc_class aarch64_enc_$2($1 src, memory mem) %{ + $3Register src_reg = as_$3Register($src$$reg); + $4loadStore(MacroAssembler(&cbuf), &MacroAssembler::$2, src_reg, $mem->opcode(), + as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp, $5); + %}')dnl +dnl +dnl +dnl +define(STOREL0,` + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE enc_class aarch64_enc_$2`'0(memory mem) %{ MacroAssembler _masm(&cbuf); - choose(_masm,zr,$2,$mem->opcode(), - as_$3Register($mem$$base),$mem$$index,$mem$$scale,$mem$$disp)')dnl + $4loadStore(_masm, &MacroAssembler::$2, zr, $mem->opcode(), + as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp, $5); + %}')dnl +dnl +dnl +dnl +define(STOREV,` + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE + enc_class aarch64_enc_$2($1 src, memory mem) %{ + FloatRegister src_reg = as_FloatRegister($src$$reg); + loadStore(MacroAssembler(&cbuf), &MacroAssembler::str, src_reg, MacroAssembler::$3, + $mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); + %}')dnl +dnl +dnl +dnl +LOAD(iRegI,ldrsbw) +LOAD(iRegI,ldrsb) +LOAD(iRegI,ldrb) +LOAD(iRegL,ldrb) +LOAD(iRegI,ldrshw) +LOAD(iRegI,ldrsh) +LOAD(iRegI,ldrh) +LOAD(iRegL,ldrh) +LOAD(iRegI,ldrw) +LOAD(iRegL,ldrw) +LOAD(iRegL,ldrsw) +LOAD(iRegL,ldr) +LOAD(vRegF,ldrs,Float) +LOAD(vRegD,ldrd,Float) +LOADV(vecD,ldrvS,S) +LOADV(vecD,ldrvD,D) +LOADV(vecX,ldrvQ,Q) STORE(iRegI,strb) STORE0(iRegI,strb) -STORE(iRegI,strh) -STORE0(iRegI,strh) -STORE(iRegI,strw) -STORE0(iRegI,strw) -STORE(iRegL,str,, + + // This encoding class is generated automatically from ad_encode.m4. + // DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE + enc_class aarch64_enc_strb0_ordered(memory mem) %{ + MacroAssembler _masm(&cbuf); + __ membar(Assembler::StoreStore); + loadStore(_masm, &MacroAssembler::strb, zr, $mem->opcode(), + as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); + %}dnl + +STOREL(iRegI,strh,,,2) +STOREL0(iRegI,strh,,,2) +STOREL(iRegI,strw,,,4) +STOREL0(iRegI,strw,,,4) +STOREL(iRegL,str,, `// we sometimes get asked to store the stack pointer into the // current thread -- we cannot do that directly on AArch64 if (src_reg == r31_sp) { @@ -71,28 +144,10 @@ __ mov(rscratch2, sp); src_reg = rscratch2; } - ') -STORE0(iRegL,str) + ',8) +STOREL0(iRegL,str,,,8) STORE(vRegF,strs,Float) STORE(vRegD,strd,Float) - - enc_class aarch64_enc_strw_immn(immN src, memory mem) %{ - MacroAssembler _masm(&cbuf); - address con = (address)$src$$constant; - // need to do this the hard way until we can manage relocs - // for 32 bit constants - __ movoop(rscratch2, (jobject)con); - if (con) __ encode_heap_oop_not_null(rscratch2); - choose(_masm,rscratch2,strw,$mem->opcode(), - as_Register($mem$$base),$mem$$index,$mem$$scale,$mem$$disp) - - enc_class aarch64_enc_strw_immnk(immN src, memory mem) %{ - MacroAssembler _masm(&cbuf); - address con = (address)$src$$constant; - // need to do this the hard way until we can manage relocs - // for 32 bit constants - __ movoop(rscratch2, (jobject)con); - __ encode_klass_not_null(rscratch2); - choose(_masm,rscratch2,strw,$mem->opcode(), - as_Register($mem$$base),$mem$$index,$mem$$scale,$mem$$disp) - +STOREV(vecD,strvS,S) +STOREV(vecD,strvD,D) +STOREV(vecX,strvQ,Q) diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/assembler_aarch64.hpp openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/assembler_aarch64.hpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/assembler_aarch64.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/assembler_aarch64.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -214,7 +214,7 @@ static void patch(address a, int msb, int lsb, uint64_t val) { int nbits = msb - lsb + 1; - guarantee(val < (1U << nbits), "Field too big for insn"); + guarantee(val < (1ULL << nbits), "Field too big for insn"); assert_cond(msb >= lsb); unsigned mask = checked_cast(right_n_bits(nbits)); val <<= lsb; @@ -436,8 +436,8 @@ } Register base() const { - guarantee((_mode == base_plus_offset | _mode == base_plus_offset_reg - | _mode == post | _mode == post_reg), + guarantee((_mode == base_plus_offset || _mode == base_plus_offset_reg + || _mode == post || _mode == post_reg), "wrong mode"); return _base; } diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1732,6 +1732,7 @@ default: ShouldNotReachHere(); } break; + default: ShouldNotReachHere(); } } else { diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/c1_LIRGenerator_aarch64.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/c1_LIRGenerator_aarch64.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/c1_LIRGenerator_aarch64.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/c1_LIRGenerator_aarch64.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -584,8 +584,8 @@ case doubleTag: do_ArithmeticOp_FPU(x); return; case longTag: do_ArithmeticOp_Long(x); return; case intTag: do_ArithmeticOp_Int(x); return; + default: ShouldNotReachHere(); return; } - ShouldNotReachHere(); } // _ishl, _lshl, _ishr, _lshr, _iushr, _lushr @@ -792,9 +792,13 @@ __ abs(value.result(), dst, LIR_OprFact::illegalOpr); break; } + default: + ShouldNotReachHere(); } break; } + default: + ShouldNotReachHere(); } } diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/frame_aarch64.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/frame_aarch64.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/frame_aarch64.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/frame_aarch64.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -676,11 +676,12 @@ #undef DESCRIBE_FP_OFFSET -#define DESCRIBE_FP_OFFSET(name) \ - { \ - uintptr_t *p = (uintptr_t *)fp; \ - printf("0x%016lx 0x%016lx %s\n", (uintptr_t)(p + frame::name##_offset), \ - p[frame::name##_offset], #name); \ +#define DESCRIBE_FP_OFFSET(name) \ + { \ + uintptr_t *p = (uintptr_t *)fp; \ + printf(INTPTR_FORMAT " " INTPTR_FORMAT " %s\n", \ + (uintptr_t)(p + frame::name##_offset), \ + p[frame::name##_offset], #name); \ } static THREAD_LOCAL_DECL uintptr_t nextfp; diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/globalDefinitions_aarch64.hpp openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/globalDefinitions_aarch64.hpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/globalDefinitions_aarch64.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/globalDefinitions_aarch64.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2021, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -53,7 +53,7 @@ #define THREAD_LOCAL_POLL -#if defined(_WIN64) +#if defined(__APPLE__) || defined(_WIN64) #define R18_RESERVED #define R18_RESERVED_ONLY(code) code #define NOT_R18_RESERVED(code) diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/immediate_aarch64.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/immediate_aarch64.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/immediate_aarch64.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/immediate_aarch64.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -129,8 +129,17 @@ uint64_t replicate(uint64_t bits, int nbits, int count) { + assert(count > 0, "must be"); + assert(nbits > 0, "must be"); + assert(count * nbits <= 64, "must be"); + + // Special case nbits == 64 since the shift below with that nbits value + // would result in undefined behavior. + if (nbits == 64) { + return bits; + } + uint64_t result = 0; - // nbits may be 64 in which case we want mask to be -1 uint64_t mask = ones(nbits); for (int i = 0; i < count ; i++) { result <<= nbits; diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/interpreterRT_aarch64.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/interpreterRT_aarch64.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/interpreterRT_aarch64.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/interpreterRT_aarch64.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,6 +1,7 @@ /* - * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014, 2020, Red Hat Inc. All rights reserved. + * Copyright (c) 2021, Azul Systems, Inc. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -58,9 +59,14 @@ return fnoreg; } -int InterpreterRuntime::SignatureHandlerGenerator::next_stack_offset() { +// On macos/aarch64 native stack is packed, int/float are using only 4 bytes +// on stack. Natural alignment for types are still in place, +// for example double/long should be 8 bytes aligned. + +int InterpreterRuntime::SignatureHandlerGenerator::next_stack_offset(unsigned elem_size) { + MACOS_ONLY(_stack_offset = align_up(_stack_offset, elem_size)); int ret = _stack_offset; - _stack_offset += wordSize; + _stack_offset += NOT_MACOS(wordSize) MACOS_ONLY(elem_size); return ret; } @@ -72,6 +78,30 @@ _stack_offset = 0; } +void InterpreterRuntime::SignatureHandlerGenerator::pass_byte() { + const Address src(from(), Interpreter::local_offset_in_bytes(offset())); + + Register reg = next_gpr(); + if (reg != noreg) { + __ ldr(reg, src); + } else { + __ ldrb(r0, src); + __ strb(r0, Address(to(), next_stack_offset(sizeof(jbyte)))); + } +} + +void InterpreterRuntime::SignatureHandlerGenerator::pass_short() { + const Address src(from(), Interpreter::local_offset_in_bytes(offset())); + + Register reg = next_gpr(); + if (reg != noreg) { + __ ldr(reg, src); + } else { + __ ldrh(r0, src); + __ strh(r0, Address(to(), next_stack_offset(sizeof(jshort)))); + } +} + void InterpreterRuntime::SignatureHandlerGenerator::pass_int() { const Address src(from(), Interpreter::local_offset_in_bytes(offset())); @@ -80,7 +110,7 @@ __ ldr(reg, src); } else { __ ldrw(r0, src); - __ strw(r0, Address(to(), next_stack_offset())); + __ strw(r0, Address(to(), next_stack_offset(sizeof(jint)))); } } @@ -92,7 +122,7 @@ __ ldr(reg, src); } else { __ ldr(r0, src); - __ str(r0, Address(to(), next_stack_offset())); + __ str(r0, Address(to(), next_stack_offset(sizeof(jlong)))); } } @@ -104,7 +134,7 @@ __ ldrs(reg, src); } else { __ ldrw(r0, src); - __ strw(r0, Address(to(), next_stack_offset())); + __ strw(r0, Address(to(), next_stack_offset(sizeof(jfloat)))); } } @@ -116,7 +146,7 @@ __ ldrd(reg, src); } else { __ ldr(r0, src); - __ str(r0, Address(to(), next_stack_offset())); + __ str(r0, Address(to(), next_stack_offset(sizeof(jdouble)))); } } @@ -140,7 +170,8 @@ __ cbnz(temp(), L); __ mov(r0, zr); __ bind(L); - __ str(r0, Address(to(), next_stack_offset())); + STATIC_ASSERT(sizeof(jobject) == wordSize); + __ str(r0, Address(to(), next_stack_offset(sizeof(jobject)))); } } @@ -165,7 +196,7 @@ : public NativeSignatureIterator { private: address _from; - intptr_t* _to; + char* _to; intptr_t* _int_args; intptr_t* _fp_args; intptr_t* _fp_identifiers; @@ -200,21 +231,38 @@ return -1; } - void pass_stack(intptr_t value) { - *_to++ = value; + template + void pass_stack(T value) { + MACOS_ONLY(_to = align_up(_to, sizeof(value))); + *(T *)_to = value; + _to += NOT_MACOS(wordSize) MACOS_ONLY(sizeof(value)); + } + + virtual void pass_byte() { + jbyte value = *(jbyte*)single_slot_addr(); + if (pass_gpr(value) < 0) { + pass_stack<>(value); + } + } + + virtual void pass_short() { + jshort value = *(jshort*)single_slot_addr(); + if (pass_gpr(value) < 0) { + pass_stack<>(value); + } } virtual void pass_int() { jint value = *(jint*)single_slot_addr(); if (pass_gpr(value) < 0) { - pass_stack(value); + pass_stack<>(value); } } virtual void pass_long() { intptr_t value = *double_slot_addr(); if (pass_gpr(value) < 0) { - pass_stack(value); + pass_stack<>(value); } } @@ -222,14 +270,14 @@ intptr_t* addr = single_slot_addr(); intptr_t value = *addr == 0 ? NULL : (intptr_t)addr; if (pass_gpr(value) < 0) { - pass_stack(value); + pass_stack<>(value); } } virtual void pass_float() { jint value = *(jint*)single_slot_addr(); if (pass_fpr(value) < 0) { - pass_stack(value); + pass_stack<>(value); } } @@ -239,7 +287,7 @@ if (0 <= arg) { *_fp_identifiers |= (1ull << arg); // mark as double } else { - pass_stack(value); + pass_stack<>(value); } } @@ -248,7 +296,7 @@ : NativeSignatureIterator(method) { _from = from; - _to = to; + _to = (char *)to; _int_args = to - (method->is_static() ? 16 : 17); _fp_args = to - 8; diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/interpreterRT_aarch64.hpp openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/interpreterRT_aarch64.hpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/interpreterRT_aarch64.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/interpreterRT_aarch64.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,6 +1,7 @@ /* - * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2021, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014, Red Hat Inc. All rights reserved. + * Copyright (c) 2021, Azul Systems, Inc. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,6 +39,8 @@ unsigned int _num_reg_int_args; int _stack_offset; + void pass_byte(); + void pass_short(); void pass_int(); void pass_long(); void pass_float(); @@ -46,7 +49,7 @@ Register next_gpr(); FloatRegister next_fpr(); - int next_stack_offset(); + int next_stack_offset(unsigned elem_size); public: // Creation diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/jniFastGetField_aarch64.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/jniFastGetField_aarch64.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/jniFastGetField_aarch64.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/jniFastGetField_aarch64.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -31,6 +31,7 @@ #include "prims/jniFastGetField.hpp" #include "prims/jvm_misc.hpp" #include "runtime/safepoint.hpp" +#include "runtime/threadWXSetters.inline.hpp" #define __ masm-> @@ -51,6 +52,48 @@ static const Register rcounter_addr = r6; static const Register result = r7; +// On macos/aarch64 we need to ensure WXExec mode when running generated +// FastGetXXXField, as these functions can be called from WXWrite context +// (8262896). So each FastGetXXXField is wrapped into a C++ statically +// compiled template function that optionally switches to WXExec if necessary. + +#ifdef __APPLE__ + +static address generated_fast_get_field[T_LONG + 1 - T_BOOLEAN]; + +template struct BasicTypeToJni {}; +template<> struct BasicTypeToJni { static const jboolean jni_type; }; +template<> struct BasicTypeToJni { static const jbyte jni_type; }; +template<> struct BasicTypeToJni { static const jchar jni_type; }; +template<> struct BasicTypeToJni { static const jshort jni_type; }; +template<> struct BasicTypeToJni { static const jint jni_type; }; +template<> struct BasicTypeToJni { static const jlong jni_type; }; +template<> struct BasicTypeToJni { static const jfloat jni_type; }; +template<> struct BasicTypeToJni { static const jdouble jni_type; }; + +template +decltype(BasicTypeToJni::jni_type) static_fast_get_field_wrapper(JNIEnv *env, jobject obj, jfieldID fieldID) { + JavaThread* thread = JavaThread::thread_from_jni_environment(env); + ThreadWXEnable wx(WXExec, thread); + address get_field_addr = generated_fast_get_field[BType - T_BOOLEAN]; + return ((decltype(BasicTypeToJni::jni_type)(*)(JNIEnv *env, jobject obj, jfieldID fieldID))get_field_addr)(env, obj, fieldID); +} + +template +address JNI_FastGetField::generate_fast_get_int_field1() { + generated_fast_get_field[BType - T_BOOLEAN] = generate_fast_get_int_field0((BasicType)BType); + return (address)static_fast_get_field_wrapper; +} + +#else // __APPLE__ + +template +address JNI_FastGetField::generate_fast_get_int_field1() { + return generate_fast_get_int_field0((BasicType)BType); +} + +#endif // __APPLE__ + address JNI_FastGetField::generate_fast_get_int_field0(BasicType type) { const char *name; switch (type) { @@ -147,33 +190,33 @@ } address JNI_FastGetField::generate_fast_get_boolean_field() { - return generate_fast_get_int_field0(T_BOOLEAN); + return generate_fast_get_int_field1(); } address JNI_FastGetField::generate_fast_get_byte_field() { - return generate_fast_get_int_field0(T_BYTE); + return generate_fast_get_int_field1(); } address JNI_FastGetField::generate_fast_get_char_field() { - return generate_fast_get_int_field0(T_CHAR); + return generate_fast_get_int_field1(); } address JNI_FastGetField::generate_fast_get_short_field() { - return generate_fast_get_int_field0(T_SHORT); + return generate_fast_get_int_field1(); } address JNI_FastGetField::generate_fast_get_int_field() { - return generate_fast_get_int_field0(T_INT); + return generate_fast_get_int_field1(); } address JNI_FastGetField::generate_fast_get_long_field() { - return generate_fast_get_int_field0(T_LONG); + return generate_fast_get_int_field1(); } address JNI_FastGetField::generate_fast_get_float_field() { - return generate_fast_get_int_field0(T_FLOAT); + return generate_fast_get_int_field1(); } address JNI_FastGetField::generate_fast_get_double_field() { - return generate_fast_get_int_field0(T_DOUBLE); + return generate_fast_get_int_field1(); } diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/jvmciCodeInstaller_aarch64.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/jvmciCodeInstaller_aarch64.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/jvmciCodeInstaller_aarch64.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/jvmciCodeInstaller_aarch64.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -21,6 +21,7 @@ * questions. */ +#include "precompiled.hpp" #include "asm/macroAssembler.hpp" #include "jvmci/jvmciCodeInstaller.hpp" #include "jvmci/jvmciRuntime.hpp" diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1492,7 +1492,7 @@ #ifndef PRODUCT { char buffer[64]; - snprintf(buffer, sizeof(buffer), PTR64_FORMAT, imm64); + snprintf(buffer, sizeof(buffer), "0x%" PRIX64, (uint64_t)imm64); block_comment(buffer); } #endif @@ -1555,7 +1555,7 @@ #ifndef PRODUCT { char buffer[64]; - snprintf(buffer, sizeof(buffer), PTR64_FORMAT, imm64); + snprintf(buffer, sizeof(buffer), "0x%" PRIX64, imm64); block_comment(buffer); } #endif @@ -1668,7 +1668,7 @@ #ifndef PRODUCT { char buffer[64]; - snprintf(buffer, sizeof(buffer), PTR32_FORMAT, imm32); + snprintf(buffer, sizeof(buffer), "0x%" PRIX32, imm32); block_comment(buffer); } #endif @@ -1832,7 +1832,7 @@ return true; } else { assert(size_in_bytes == 8 || size_in_bytes == 4, "only 8 bytes or 4 bytes load/store is supported."); - const unsigned mask = size_in_bytes - 1; + const uint64_t mask = size_in_bytes - 1; if (adr.getMode() == Address::base_plus_offset && (adr.offset() & mask) == 0) { // only supports base_plus_offset. code()->set_last_insn(pc()); @@ -2040,11 +2040,17 @@ void MacroAssembler::pusha() { - push(0x7fffffff, sp); + push(RegSet::range(r0, r30), sp); } void MacroAssembler::popa() { - pop(0x7fffffff, sp); + pop(RegSet::range(r0, r17), sp); +#ifdef R18_RESERVED + ldp(zr, r19, Address(post(sp, 2 * wordSize))); + pop(RegSet::range(r20, r30), sp); +#else + pop(RegSet::range(r18_tls, r30), sp); +#endif } // Push lots of registers in the bit set supplied. Don't push sp. @@ -2579,7 +2585,7 @@ void MacroAssembler::push_CPU_state(bool save_vectors) { int step = (save_vectors ? 8 : 4) * wordSize; - push(0x3fffffff, sp); // integer registers except lr & sp + push(RegSet::range(r0, r29), sp); // integer registers except lr & sp mov(rscratch1, -step); sub(sp, sp, step); for (int i = 28; i >= 4; i -= 4) { @@ -2594,7 +2600,15 @@ for (int i = 0; i <= 28; i += 4) ld1(as_FloatRegister(i), as_FloatRegister(i+1), as_FloatRegister(i+2), as_FloatRegister(i+3), restore_vectors ? T2D : T1D, Address(post(sp, step))); - pop(0x3fffffff, sp); // integer registers except lr & sp + + // integer registers except lr & sp + pop(RegSet::range(r0, r17), sp); +#ifdef R18_RESERVED + ldp(zr, r19, Address(post(sp, 2 * wordSize))); + pop(RegSet::range(r20, r29), sp); +#else + pop(RegSet::range(r18_tls, r29), sp); +#endif } /** @@ -2760,7 +2774,7 @@ // Overwrite previous generated binary. code_section()->set_end(prev); - const int sz = prev_ldst->size_in_bytes(); + const size_t sz = prev_ldst->size_in_bytes(); assert(sz == 8 || sz == 4, "only supports 64/32bit merging."); if (!is_store) { BLOCK_COMMENT("merged ldr pair"); diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -27,6 +27,7 @@ #define CPU_AARCH64_VM_MACROASSEMBLER_AARCH64_HPP #include "asm/assembler.inline.hpp" +#include "runtime/vm_version.hpp" // MacroAssembler extends Assembler by frequently used macros. // @@ -88,7 +89,7 @@ = (operand_valid_for_logical_immediate(false /*is32*/, (uint64_t)Universe::narrow_klass_base()) && ((uint64_t)Universe::narrow_klass_base() - > (1UL << log2_intptr(Universe::narrow_klass_range())))); + > (1ULL << log2_intptr(checked_cast(Universe::narrow_klass_range()))))); } // These routines should emit JVMTI PopFrame and ForceEarlyReturn handling code. diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/nativeInst_aarch64.hpp openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/nativeInst_aarch64.hpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/nativeInst_aarch64.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/nativeInst_aarch64.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -681,7 +681,7 @@ return 0; } } - size_t size_in_bytes() { return 1 << size(); } + size_t size_in_bytes() { return 1ULL << size(); } bool is_not_pre_post_index() { return (is_ldst_ur() || is_ldst_unsigned_offset()); } bool is_load() { assert(Instruction_aarch64::extract(uint_at(0), 23, 22) == 0b01 || diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,6 +1,7 @@ /* * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014, 2019, Red Hat Inc. All rights reserved. + * Copyright (c) 2021, Azul Systems, Inc. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -715,7 +716,7 @@ return AdapterHandlerLibrary::new_entry(fingerprint, i2c_entry, c2i_entry, c2i_unverified_entry); } -int SharedRuntime::c_calling_convention(const BasicType *sig_bt, +static int c_calling_convention_priv(const BasicType *sig_bt, VMRegPair *regs, VMRegPair *regs2, int total_args_passed) { @@ -746,6 +747,11 @@ if (int_args < Argument::n_int_register_parameters_c) { regs[i].set1(INT_ArgReg[int_args++]->as_VMReg()); } else { +#ifdef __APPLE__ + // Less-than word types are stored one after another. + // The code is unable to handle this so bailout. + return -1; +#endif regs[i].set1(VMRegImpl::stack2reg(stk_args)); stk_args += 2; } @@ -768,6 +774,11 @@ if (fp_args < Argument::n_float_register_parameters_c) { regs[i].set1(FP_ArgReg[fp_args++]->as_VMReg()); } else { +#ifdef __APPLE__ + // Less-than word types are stored one after another. + // The code is unable to handle this so bailout. + return -1; +#endif regs[i].set1(VMRegImpl::stack2reg(stk_args)); stk_args += 2; } @@ -794,6 +805,16 @@ return stk_args; } +int SharedRuntime::c_calling_convention(const BasicType *sig_bt, + VMRegPair *regs, + VMRegPair *regs2, + int total_args_passed) +{ + int result = c_calling_convention_priv(sig_bt, regs, regs2, total_args_passed); + guarantee(result >= 0, "Unsupported arguments configuration"); + return result; +} + // On 64 bit we will store integer like items to the stack as // 64 bits items (sparc abi) even though java would only store // 32bits for a parameter. On 32bit it will simply be 32 bits @@ -1340,7 +1361,11 @@ // Now figure out where the args must be stored and how much stack space // they require. int out_arg_slots; - out_arg_slots = c_calling_convention(out_sig_bt, out_regs, NULL, total_c_args); + out_arg_slots = c_calling_convention_priv(out_sig_bt, out_regs, NULL, total_c_args); + + if (out_arg_slots < 0) { + return NULL; + } // Compute framesize for the wrapper. We need to handlize all oops in // incoming registers @@ -1473,7 +1498,7 @@ // Generate stack overflow check if (UseStackBanging) { - __ bang_stack_with_offset(JavaThread::stack_shadow_zone_size()); + __ bang_stack_with_offset(checked_cast(JavaThread::stack_shadow_zone_size())); } else { Unimplemented(); } @@ -2421,7 +2446,7 @@ __ sub(sp, sp, r19); // Push interpreter frames in a loop - __ mov(rscratch1, (address)0xDEADDEAD); // Make a recognizable pattern + __ mov(rscratch1, (uint64_t)0xDEADDEAD); // Make a recognizable pattern __ mov(rscratch2, rscratch1); Label loop; __ bind(loop); diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1299,14 +1299,14 @@ // Scan over array at a for count oops, verifying each one. // Preserves a and count, clobbers rscratch1 and rscratch2. - void verify_oop_array (size_t size, Register a, Register count, Register temp) { + void verify_oop_array (int size, Register a, Register count, Register temp) { Label loop, end; __ mov(rscratch1, a); __ mov(rscratch2, zr); __ bind(loop); __ cmp(rscratch2, count); __ br(Assembler::HS, end); - if (size == (size_t)wordSize) { + if (size == wordSize) { __ ldr(temp, Address(a, rscratch2, Address::lsl(exact_log2(size)))); __ verify_oop(temp); } else { @@ -1338,7 +1338,7 @@ // used by generate_conjoint_int_oop_copy(). // address generate_disjoint_copy(size_t size, bool aligned, bool is_oop, address *entry, - const char *name, bool dest_uninitialized = false) { + const char *name, bool dest_uninitialized = false) { Register s = c_rarg0, d = c_rarg1, count = c_rarg2; RegSet saved_reg = RegSet::of(s, d, count); __ align(CodeEntryAlignment); @@ -1367,12 +1367,12 @@ // save regs before copy_memory __ push(RegSet::of(d, count), sp); } - copy_memory(aligned, s, d, count, rscratch1, size); + copy_memory(aligned, s, d, count, rscratch1, checked_cast(size)); if (is_oop) { __ pop(RegSet::of(d, count), sp); if (VerifyOops) - verify_oop_array(size, d, count, r16); + verify_oop_array(checked_cast(size), d, count, r16); } bs->arraycopy_epilogue(_masm, decorators, is_oop, d, count, rscratch1, RegSet()); @@ -1398,7 +1398,7 @@ // the hardware handle it. The two dwords within qwords that span // cache line boundaries will still be loaded and stored atomically. // - address generate_conjoint_copy(size_t size, bool aligned, bool is_oop, address nooverlap_target, + address generate_conjoint_copy(int size, bool aligned, bool is_oop, address nooverlap_target, address *entry, const char *name, bool dest_uninitialized = false) { Register s = c_rarg0, d = c_rarg1, count = c_rarg2; @@ -1644,7 +1644,7 @@ address generate_disjoint_oop_copy(bool aligned, address *entry, const char *name, bool dest_uninitialized) { const bool is_oop = true; - const size_t size = UseCompressedOops ? sizeof (jint) : sizeof (jlong); + const int size = UseCompressedOops ? sizeof (jint) : sizeof (jlong); return generate_disjoint_copy(size, aligned, is_oop, entry, name, dest_uninitialized); } @@ -1662,7 +1662,7 @@ address nooverlap_target, address *entry, const char *name, bool dest_uninitialized) { const bool is_oop = true; - const size_t size = UseCompressedOops ? sizeof (jint) : sizeof (jlong); + const int size = UseCompressedOops ? sizeof (jint) : sizeof (jlong); return generate_conjoint_copy(size, aligned, is_oop, nooverlap_target, entry, name, dest_uninitialized); } diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1125,7 +1125,7 @@ // an interpreter frame with greater than a page of locals, so each page // needs to be checked. Only true for non-native. if (UseStackBanging) { - const int n_shadow_pages = JavaThread::stack_shadow_zone_size() / os::vm_page_size(); + const int n_shadow_pages = checked_cast(JavaThread::stack_shadow_zone_size() / os::vm_page_size()); const int start_page = native_call ? n_shadow_pages : 1; const int page_size = os::vm_page_size(); for (int pages = start_page; pages <= n_shadow_pages ; pages++) { @@ -1458,11 +1458,12 @@ __ cmp(rscratch1, JavaThread::stack_guard_yellow_reserved_disabled); __ br(Assembler::NE, no_reguard); - __ pusha(); // XXX only save smashed registers + __ push_call_clobbered_registers(); __ mov(c_rarg0, rthread); __ mov(rscratch2, CAST_FROM_FN_PTR(address, SharedRuntime::reguard_yellow_pages)); __ blr(rscratch2); - __ popa(); // XXX only restore smashed registers + __ pop_call_clobbered_registers(); + __ bind(no_reguard); } diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/templateTable_aarch64.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/templateTable_aarch64.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/templateTable_aarch64.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/templateTable_aarch64.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -94,10 +94,6 @@ return iaddress(r); } -static inline Address at_rsp() { - return Address(esp, 0); -} - // At top of Java expression stack which may be different than esp(). It // isn't for category 1 objects. static inline Address at_tos () { @@ -2323,6 +2319,7 @@ switch (code) { case Bytecodes::_nofast_getfield: code = Bytecodes::_getfield; break; case Bytecodes::_nofast_putfield: code = Bytecodes::_putfield; break; + default: break; } assert(byte_no == f1_byte || byte_no == f2_byte, "byte_no out of range"); @@ -2947,6 +2944,7 @@ case Bytecodes::_fast_dputfield: __ pop_d(); break; case Bytecodes::_fast_fputfield: __ pop_f(); break; case Bytecodes::_fast_lputfield: __ pop_l(r0); break; + default: break; } __ bind(L2); } diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/vm_version_aarch64.hpp openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/vm_version_aarch64.hpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/aarch64/vm_version_aarch64.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/aarch64/vm_version_aarch64.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -67,6 +67,9 @@ return false; } + // Arm can assign codes that are not published in the manual. + // Apple's code is defined in + // https://github.com/apple/darwin-xnu/blob/33eb983/osfmk/arm/cpuid.h#L62 enum Family { CPU_ARM = 'A', CPU_BROADCOM = 'B', @@ -79,6 +82,7 @@ CPU_QUALCOM = 'Q', CPU_MARVELL = 'V', CPU_INTEL = 'i', + CPU_APPLE = 'a', }; enum Feature_Flag { @@ -111,6 +115,11 @@ static int icache_line_size() { return _icache_line_size; } static int dcache_line_size() { return _dcache_line_size; } + +#ifdef __APPLE__ + // Is the CPU running emulated (for example macOS Rosetta running x86_64 code on M1 ARM (aarch64) + static bool is_cpu_emulated(); +#endif }; #endif // CPU_AARCH64_VM_VM_VERSION_AARCH64_HPP diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/arm/arm.ad openjdk-11-11.0.16+8/src/hotspot/cpu/arm/arm.ad --- openjdk-11-11.0.14+9/src/hotspot/cpu/arm/arm.ad 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/arm/arm.ad 2022-07-16 20:06:34.000000000 +0000 @@ -5317,7 +5317,7 @@ // Must be safe to execute with invalid address (cannot fault). instruct prefetchAlloc_mp( memoryP mem ) %{ - predicate(os::is_MP()); + predicate(VM_Version::has_multiprocessing_extensions()); match( PrefetchAllocation mem ); ins_cost(MEMORY_REF_COST); size(4); @@ -5334,7 +5334,7 @@ %} instruct prefetchAlloc_sp( memoryP mem ) %{ - predicate(!os::is_MP()); + predicate(!VM_Version::has_multiprocessing_extensions()); match( PrefetchAllocation mem ); ins_cost(MEMORY_REF_COST); size(4); diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/arm/assembler_arm_32.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/arm/assembler_arm_32.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/arm/assembler_arm_32.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/arm/assembler_arm_32.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -47,7 +47,7 @@ // Convert the raw encoding form into the form expected by the // constructor for Address. Address Address::make_raw(int base, int index, int scale, int disp, relocInfo::relocType disp_reloc) { - RelocationHolder rspec; + RelocationHolder rspec = RelocationHolder::none; if (disp_reloc != relocInfo::none) { rspec = Relocation::spec_simple(disp_reloc); } diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/arm/assembler_arm_32.hpp openjdk-11-11.0.16+8/src/hotspot/cpu/arm/assembler_arm_32.hpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/arm/assembler_arm_32.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/arm/assembler_arm_32.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -434,7 +434,9 @@ } void pldw(Address addr) { - assert(VM_Version::arm_arch() >= 7 && os::is_MP(), "no pldw on this processor"); + assert(!VM_Version::is_initialized() || + (VM_Version::arm_arch() >= 7 && VM_Version::has_multiprocessing_extensions()), + "PLDW is available on ARMv7 with Multiprocessing Extensions only"); emit_int32(0xf510f000 | addr.encoding2()); } diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -2201,6 +2201,9 @@ } else { assert(right->is_constant(), "must be"); const uint c = (uint)right->as_constant_ptr()->as_jint(); + if (!Assembler::is_arith_imm_in_range(c)) { + BAILOUT("illegal arithmetic operand"); + } switch (code) { case lir_logic_and: __ and_32(res, lreg, c); break; case lir_logic_or: __ orr_32(res, lreg, c); break; @@ -2396,8 +2399,8 @@ __ teq(xhi, yhi); __ teq(xlo, ylo, eq); } else { - __ subs(xlo, xlo, ylo); - __ sbcs(xhi, xhi, yhi); + __ subs(Rtemp, xlo, ylo); + __ sbcs(Rtemp, xhi, yhi); } } else { ShouldNotReachHere(); diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/arm/vm_version_arm.hpp openjdk-11-11.0.16+8/src/hotspot/cpu/arm/vm_version_arm.hpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/arm/vm_version_arm.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/arm/vm_version_arm.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -54,6 +54,7 @@ static bool has_simd() { return _has_simd; } static bool has_vfp() { return has_simd(); } static bool simd_math_is_compliant() { return true; } + static bool has_multiprocessing_extensions() { return true; } static bool prefer_moves_over_load_literal() { return true; } @@ -64,6 +65,7 @@ vfp = 0, vfp3_32 = 1, simd = 2, + mp_ext = 3 }; enum Feature_Flag_Set { @@ -73,6 +75,7 @@ vfp_m = 1 << vfp, vfp3_32_m = 1 << vfp3_32, simd_m = 1 << simd, + mp_ext_m = 1 << mp_ext }; // The value stored by "STR PC, [addr]" instruction can be either @@ -115,6 +118,7 @@ static bool has_vfp() { return (_features & vfp_m) != 0; } static bool has_vfp3_32() { return (_features & vfp3_32_m) != 0; } static bool has_simd() { return (_features & simd_m) != 0; } + static bool has_multiprocessing_extensions() { return (_features & mp_ext_m) != 0; } static bool simd_math_is_compliant() { return false; } diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/arm/vm_version_arm_32.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/arm/vm_version_arm_32.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/arm/vm_version_arm_32.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/arm/vm_version_arm_32.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -40,6 +40,7 @@ typedef int (*get_cpu_info_t)(); typedef bool (*check_vfp_t)(double *d); typedef bool (*check_simd_t)(); + typedef bool (*check_mp_ext_t)(int *addr); } #define __ _masm-> @@ -95,6 +96,20 @@ return start; }; + + address generate_check_mp_ext() { + StubCodeMark mark(this, "VM_Version", "check_mp_ext"); + address start = __ pc(); + + // PLDW is available with Multiprocessing Extensions only + __ pldw(Address(R0)); + // Return true if instruction caused no signals + __ mov(R0, 1); + // JVM_handle_linux_signal moves PC here if SIGILL happens + __ bx(LR); + + return start; + }; }; #undef __ @@ -103,6 +118,7 @@ extern "C" address check_vfp3_32_fault_instr; extern "C" address check_vfp_fault_instr; extern "C" address check_simd_fault_instr; +extern "C" address check_mp_ext_fault_instr; void VM_Version::early_initialize() { @@ -165,6 +181,13 @@ #endif #endif + address check_mp_ext_pc = g.generate_check_mp_ext(); + check_mp_ext_t check_mp_ext = CAST_TO_FN_PTR(check_mp_ext_t, check_mp_ext_pc); + check_mp_ext_fault_instr = (address)check_mp_ext; + int dummy_local_variable; + if (check_mp_ext(&dummy_local_variable)) { + _features |= mp_ext_m; + } if (UseAESIntrinsics && !FLAG_IS_DEFAULT(UseAESIntrinsics)) { warning("AES intrinsics are not available on this CPU"); @@ -247,11 +270,12 @@ && _supports_atomic_getset8 && _supports_atomic_getadd8, "C2: atomic operations must be supported"); #endif char buf[512]; - jio_snprintf(buf, sizeof(buf), "(ARMv%d)%s%s%s", + jio_snprintf(buf, sizeof(buf), "(ARMv%d)%s%s%s%s", _arm_arch, (has_vfp() ? ", vfp" : ""), (has_vfp3_32() ? ", vfp3-32" : ""), - (has_simd() ? ", simd" : "")); + (has_simd() ? ", simd" : ""), + (has_multiprocessing_extensions() ? ", mp_ext" : "")); // buf is started with ", " or is empty _features_string = os::strdup(buf); diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/ppc/c1_CodeStubs_ppc.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/ppc/c1_CodeStubs_ppc.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/ppc/c1_CodeStubs_ppc.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/ppc/c1_CodeStubs_ppc.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -55,8 +55,6 @@ if (_info->deoptimize_on_exception()) { address a = Runtime1::entry_for(Runtime1::predicate_failed_trap_id); - // May be used by optimizations like LoopInvariantCodeMotion or RangeCheckEliminator. - DEBUG_ONLY( __ untested("RangeCheckStub: predicate_failed_trap_id"); ) //__ load_const_optimized(R0, a); __ add_const_optimized(R0, R29_TOC, MacroAssembler::offset_to_global_toc(a)); __ mtctr(R0); diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/ppc/frame_ppc.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/ppc/frame_ppc.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/ppc/frame_ppc.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/ppc/frame_ppc.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2012, 2017 SAP SE. All rights reserved. + * Copyright (c) 2000, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2022 SAP SE. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -280,8 +280,60 @@ } bool frame::is_interpreted_frame_valid(JavaThread* thread) const { - // Is there anything to do? assert(is_interpreted_frame(), "Not an interpreted frame"); + // These are reasonable sanity checks + if (fp() == 0 || (intptr_t(fp()) & (wordSize-1)) != 0) { + return false; + } + if (sp() == 0 || (intptr_t(sp()) & (wordSize-1)) != 0) { + return false; + } + int min_frame_slots = (abi_minframe_size + ijava_state_size) / sizeof(intptr_t); + if (fp() - min_frame_slots < sp()) { + return false; + } + // These are hacks to keep us out of trouble. + // The problem with these is that they mask other problems + if (fp() <= sp()) { // this attempts to deal with unsigned comparison above + return false; + } + + // do some validation of frame elements + + // first the method + + Method* m = *interpreter_frame_method_addr(); + + // validate the method we'd find in this potential sender + if (!Method::is_valid_method(m)) return false; + + // stack frames shouldn't be much larger than max_stack elements + // this test requires the use of unextended_sp which is the sp as seen by + // the current frame, and not sp which is the "raw" pc which could point + // further because of local variables of the callee method inserted after + // method arguments + if (fp() - unextended_sp() > 1024 + m->max_stack()*Interpreter::stackElementSize) { + return false; + } + + // validate bci/bcx + + address bcp = interpreter_frame_bcp(); + if (m->validate_bci_from_bcp(bcp) < 0) { + return false; + } + + // validate constantPoolCache* + ConstantPoolCache* cp = *interpreter_frame_cache_addr(); + if (MetaspaceObj::is_valid(cp) == false) return false; + + // validate locals + + address locals = (address) *interpreter_frame_locals_addr(); + + if (locals > thread->stack_base() || locals < (address) fp()) return false; + + // We'd have to be pretty unlucky to be mislead at this point return true; } diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/s390/frame_s390.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/s390/frame_s390.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/s390/frame_s390.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/s390/frame_s390.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2016, 2019, SAP SE. All rights reserved. + * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2022 SAP SE. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -124,8 +124,8 @@ return false; } - z_abi_160* sender_abi = (z_abi_160*) fp; - intptr_t* sender_sp = (intptr_t*) sender_abi->callers_sp; + z_abi_16* sender_abi = (z_abi_16*) fp; + intptr_t* sender_sp = (intptr_t*) fp; address sender_pc = (address) sender_abi->return_pc; // We must always be able to find a recognizable pc. @@ -149,7 +149,7 @@ // sender_fp must be within the stack and above (but not // equal) current frame's fp. if (sender_fp > thread->stack_base() || sender_fp <= fp) { - return false; + return false; } // If the potential sender is the interpreter then we can do some more checking. @@ -295,8 +295,58 @@ } bool frame::is_interpreted_frame_valid(JavaThread* thread) const { - // Is there anything to do? assert(is_interpreted_frame(), "Not an interpreted frame"); + // These are reasonable sanity checks + if (fp() == 0 || (intptr_t(fp()) & (wordSize-1)) != 0) { + return false; + } + if (sp() == 0 || (intptr_t(sp()) & (wordSize-1)) != 0) { + return false; + } + int min_frame_slots = (z_abi_16_size + z_ijava_state_size) / sizeof(intptr_t); + if (fp() - min_frame_slots < sp()) { + return false; + } + // These are hacks to keep us out of trouble. + // The problem with these is that they mask other problems + if (fp() <= sp()) { // this attempts to deal with unsigned comparison above + return false; + } + + // do some validation of frame elements + + // first the method + // Need to use "unchecked" versions to avoid "z_istate_magic_number" assertion. + Method* m = (Method*)(ijava_state_unchecked()->method); + + // validate the method we'd find in this potential sender + if (!Method::is_valid_method(m)) return false; + + // stack frames shouldn't be much larger than max_stack elements + // this test requires the use of unextended_sp which is the sp as seen by + // the current frame, and not sp which is the "raw" pc which could point + // further because of local variables of the callee method inserted after + // method arguments + if (fp() - unextended_sp() > 1024 + m->max_stack()*Interpreter::stackElementSize) { + return false; + } + + // validate bci/bcx + address bcp = (address)(ijava_state_unchecked()->bcp); + if (m->validate_bci_from_bcp(bcp) < 0) { + return false; + } + + // validate constantPoolCache* + ConstantPoolCache* cp = (ConstantPoolCache*)(ijava_state_unchecked()->cpoolCache); + if (MetaspaceObj::is_valid(cp) == false) return false; + + // validate locals + address locals = (address)(ijava_state_unchecked()->locals); + + if (locals > thread->stack_base() || locals < (address) fp()) return false; + + // We'd have to be pretty unlucky to be mislead at this point return true; } diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/x86/assembler_x86.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/x86/assembler_x86.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/x86/assembler_x86.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/x86/assembler_x86.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -186,7 +186,7 @@ // Address. An index of 4 (rsp) corresponds to having no index, so convert // that to noreg for the Address constructor. Address Address::make_raw(int base, int index, int scale, int disp, relocInfo::relocType disp_reloc) { - RelocationHolder rspec; + RelocationHolder rspec = RelocationHolder::none; if (disp_reloc != relocInfo::none) { rspec = Relocation::spec_simple(disp_reloc); } @@ -6539,6 +6539,9 @@ void Assembler::vpxor(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { assert(UseAVX > 0, "requires some form of AVX"); + assert(vector_len == AVX_128bit ? VM_Version::supports_avx() : + vector_len == AVX_256bit ? VM_Version::supports_avx2() : + vector_len == AVX_512bit ? VM_Version::supports_evex() : 0, ""); InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); emit_int8((unsigned char)0xEF); @@ -6547,6 +6550,9 @@ void Assembler::vpxor(XMMRegister dst, XMMRegister nds, Address src, int vector_len) { assert(UseAVX > 0, "requires some form of AVX"); + assert(vector_len == AVX_128bit ? VM_Version::supports_avx() : + vector_len == AVX_256bit ? VM_Version::supports_avx2() : + vector_len == AVX_512bit ? VM_Version::supports_evex() : 0, ""); InstructionMark im(this); InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_32bit); @@ -7061,12 +7067,12 @@ void Assembler::evbroadcasti32x4(XMMRegister dst, Address src, int vector_len) { assert(vector_len != Assembler::AVX_128bit, ""); - assert(VM_Version::supports_avx512dq(), ""); + assert(VM_Version::supports_evex(), ""); assert(dst != xnoreg, "sanity"); InstructionMark im(this); InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); attributes.set_rex_vex_w_reverted(); - attributes.set_address_attributes(/* tuple_type */ EVEX_T2, /* input_size_in_bits */ EVEX_64bit); + attributes.set_address_attributes(/* tuple_type */ EVEX_T4, /* input_size_in_bits */ EVEX_32bit); // swap src<->dst for encoding vex_prefix(src, 0, dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); emit_int8(0x5A); diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -23,10 +23,12 @@ #include "precompiled.hpp" #include "asm/macroAssembler.inline.hpp" +#include "code/codeBlob.hpp" #include "gc/z/zBarrier.inline.hpp" #include "gc/z/zBarrierSet.hpp" #include "gc/z/zBarrierSetAssembler.hpp" #include "gc/z/zBarrierSetRuntime.hpp" +#include "memory/resourceArea.hpp" #include "runtime/stubCodeGenerator.hpp" #include "utilities/macros.hpp" #ifdef COMPILER1 diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/x86/jvmciCodeInstaller_x86.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/x86/jvmciCodeInstaller_x86.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/x86/jvmciCodeInstaller_x86.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/x86/jvmciCodeInstaller_x86.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -153,14 +153,15 @@ method = getMethodFromHotSpotMethod(hotspot_method()); } #endif + NativeCall* call = NULL; switch (_next_call_type) { case INLINE_INVOKE: - break; + return; case INVOKEVIRTUAL: case INVOKEINTERFACE: { assert(method == NULL || !method->is_static(), "cannot call static method with invokeinterface"); - NativeCall* call = nativeCall_at(_instructions->start() + pc_offset); + call = nativeCall_at(_instructions->start() + pc_offset); call->set_destination(SharedRuntime::get_resolve_virtual_call_stub()); _instructions->relocate(call->instruction_address(), virtual_call_Relocation::spec(_invoke_mark_pc), @@ -170,7 +171,7 @@ case INVOKESTATIC: { assert(method == NULL || method->is_static(), "cannot call non-static method with invokestatic"); - NativeCall* call = nativeCall_at(_instructions->start() + pc_offset); + call = nativeCall_at(_instructions->start() + pc_offset); call->set_destination(SharedRuntime::get_resolve_static_call_stub()); _instructions->relocate(call->instruction_address(), relocInfo::static_call_type, Assembler::call32_operand); @@ -178,15 +179,18 @@ } case INVOKESPECIAL: { assert(method == NULL || !method->is_static(), "cannot call static method with invokespecial"); - NativeCall* call = nativeCall_at(_instructions->start() + pc_offset); + call = nativeCall_at(_instructions->start() + pc_offset); call->set_destination(SharedRuntime::get_resolve_opt_virtual_call_stub()); _instructions->relocate(call->instruction_address(), relocInfo::opt_virtual_call_type, Assembler::call32_operand); break; } default: - JVMCI_ERROR("invalid _next_call_type value"); - break; + JVMCI_ERROR("invalid _next_call_type value: %d", _next_call_type); + return; + } + if (!call->is_displacement_aligned()) { + JVMCI_ERROR("unaligned displacement for call at offset %d", pc_offset); } } diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/x86/macroAssembler_x86.hpp openjdk-11-11.0.16+8/src/hotspot/cpu/x86/macroAssembler_x86.hpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/x86/macroAssembler_x86.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/x86/macroAssembler_x86.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -1340,8 +1340,14 @@ void vpxor(XMMRegister dst, XMMRegister nds, AddressLiteral src, int vector_len, Register scratch_reg = rscratch1); // Simple version for AVX2 256bit vectors - void vpxor(XMMRegister dst, XMMRegister src) { Assembler::vpxor(dst, dst, src, true); } - void vpxor(XMMRegister dst, Address src) { Assembler::vpxor(dst, dst, src, true); } + void vpxor(XMMRegister dst, XMMRegister src) { + assert(UseAVX >= 2, "Should be at least AVX2"); + Assembler::vpxor(dst, dst, src, AVX_256bit); + } + void vpxor(XMMRegister dst, Address src) { + assert(UseAVX >= 2, "Should be at least AVX2"); + Assembler::vpxor(dst, dst, src, AVX_256bit); + } void vinserti128(XMMRegister dst, XMMRegister nds, XMMRegister src, uint8_t imm8) { if (UseAVX > 2 && VM_Version::supports_avx512novl()) { diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/x86/nativeInst_x86.cpp openjdk-11-11.0.16+8/src/hotspot/cpu/x86/nativeInst_x86.cpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/x86/nativeInst_x86.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/x86/nativeInst_x86.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -241,6 +241,9 @@ } +bool NativeCall::is_displacement_aligned() { + return (uintptr_t) displacement_address() % 4 == 0; +} // Similar to replace_mt_safe, but just changes the destination. The // important thing is that free-running threads are able to execute this @@ -264,16 +267,15 @@ // Both C1 and C2 should now be generating code which aligns the patched address // to be within a single cache line except that C1 does not do the alignment on // uniprocessor systems. - bool is_aligned = ((uintptr_t)displacement_address() + 0) / cache_line_size == - ((uintptr_t)displacement_address() + 3) / cache_line_size; + bool is_aligned = is_displacement_aligned(); guarantee(!os::is_MP() || is_aligned, "destination must be aligned"); if (is_aligned) { // Simple case: The destination lies within a single cache line. set_destination(dest); - } else if ((uintptr_t)instruction_address() / cache_line_size == - ((uintptr_t)instruction_address()+1) / cache_line_size) { + } else if ((uintptr_t)instruction_address() / 4 == + ((uintptr_t)instruction_address()+1) / 4) { // Tricky case: The instruction prefix lies within a single cache line. intptr_t disp = dest - return_address(); #ifdef AMD64 diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/x86/nativeInst_x86.hpp openjdk-11-11.0.16+8/src/hotspot/cpu/x86/nativeInst_x86.hpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/x86/nativeInst_x86.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/x86/nativeInst_x86.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -163,8 +163,6 @@ return_address_offset = 5 }; - enum { cache_line_size = BytesPerWord }; // conservative estimate! - address instruction_address() const { return addr_at(instruction_offset); } address next_instruction_address() const { return addr_at(return_address_offset); } int displacement() const { return (jint) int_at(displacement_offset); } @@ -178,9 +176,11 @@ #endif // AMD64 set_int_at(displacement_offset, dest - return_address()); } + // Returns whether the 4-byte displacement operand is 4-byte aligned. + bool is_displacement_aligned(); void set_destination_mt_safe(address dest); - void verify_alignment() { assert((intptr_t)addr_at(displacement_offset) % BytesPerInt == 0, "must be aligned"); } + void verify_alignment() { assert(is_displacement_aligned(), "displacement of call is not aligned"); } void verify(); void print(); diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/x86/vm_version_x86.hpp openjdk-11-11.0.16+8/src/hotspot/cpu/x86/vm_version_x86.hpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/x86/vm_version_x86.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/x86/vm_version_x86.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -147,12 +147,11 @@ uint32_t LahfSahf : 1, CmpLegacy : 1, : 3, - lzcnt_intel : 1, lzcnt : 1, sse4a : 1, misalignsse : 1, prefetchw : 1, - : 22; + : 23; } bits; }; @@ -588,21 +587,21 @@ result |= CPU_SSE4A; } // Intel features. - if(is_intel()) { - if(_cpuid_info.ext_cpuid1_ecx.bits.lzcnt_intel != 0) + if (is_intel()) { + if (_cpuid_info.ext_cpuid1_ecx.bits.lzcnt != 0) { result |= CPU_LZCNT; - // for Intel, ecx.bits.misalignsse bit (bit 8) indicates support for prefetchw - if (_cpuid_info.ext_cpuid1_ecx.bits.misalignsse != 0) { + } + if (_cpuid_info.ext_cpuid1_ecx.bits.prefetchw != 0) { result |= CPU_3DNOW_PREFETCH; } } // ZX features. if (is_zx()) { - if (_cpuid_info.ext_cpuid1_ecx.bits.lzcnt_intel != 0) + if (_cpuid_info.ext_cpuid1_ecx.bits.lzcnt != 0) { result |= CPU_LZCNT; - // for ZX, ecx.bits.misalignsse bit (bit 8) indicates support for prefetchw - if (_cpuid_info.ext_cpuid1_ecx.bits.misalignsse != 0) { + } + if (_cpuid_info.ext_cpuid1_ecx.bits.prefetchw != 0) { result |= CPU_3DNOW_PREFETCH; } } diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/x86/x86.ad openjdk-11-11.0.16+8/src/hotspot/cpu/x86/x86.ad --- openjdk-11-11.0.14+9/src/hotspot/cpu/x86/x86.ad 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/x86/x86.ad 2022-07-16 20:06:34.000000000 +0000 @@ -1491,6 +1491,21 @@ if (UseSSE < 4) ret_value = false; break; + case Op_SqrtF: + if (UseSSE < 1) { + return false; + } + break; + case Op_SqrtD: +#ifdef _LP64 + if (UseSSE < 2) { + return false; + } +#else + // x86_32.ad has a special match rule for SqrtD. + // Together with common x86 rules, this handles all UseSSE cases. +#endif + break; } return ret_value; // Per default match rules are supported. diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/x86/x86_32.ad openjdk-11-11.0.16+8/src/hotspot/cpu/x86/x86_32.ad --- openjdk-11-11.0.14+9/src/hotspot/cpu/x86/x86_32.ad 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/x86/x86_32.ad 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ // -// Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved. +// Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it @@ -7900,9 +7900,9 @@ %} // Divide Register Long -instruct divL_eReg( eADXRegL dst, eRegL src1, eRegL src2, eFlagsReg cr, eCXRegI cx, eBXRegI bx ) %{ +instruct divL_eReg(eADXRegL dst, eRegL src1, eRegL src2) %{ match(Set dst (DivL src1 src2)); - effect( KILL cr, KILL cx, KILL bx ); + effect(CALL); ins_cost(10000); format %{ "PUSH $src1.hi\n\t" "PUSH $src1.lo\n\t" @@ -7948,9 +7948,9 @@ %} // Remainder Register Long -instruct modL_eReg( eADXRegL dst, eRegL src1, eRegL src2, eFlagsReg cr, eCXRegI cx, eBXRegI bx ) %{ +instruct modL_eReg(eADXRegL dst, eRegL src1, eRegL src2) %{ match(Set dst (ModL src1 src2)); - effect( KILL cr, KILL cx, KILL bx ); + effect(CALL); ins_cost(10000); format %{ "PUSH $src1.hi\n\t" "PUSH $src1.lo\n\t" diff -Nru openjdk-11-11.0.14+9/src/hotspot/cpu/zero/globals_zero.hpp openjdk-11-11.0.16+8/src/hotspot/cpu/zero/globals_zero.hpp --- openjdk-11-11.0.14+9/src/hotspot/cpu/zero/globals_zero.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/cpu/zero/globals_zero.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -77,8 +77,7 @@ define_pd_global(bool, PreserveFramePointer, false); -// No performance work done here yet. -define_pd_global(bool, CompactStrings, false); +define_pd_global(bool, CompactStrings, true); define_pd_global(bool, ThreadLocalHandshakes, false); diff -Nru openjdk-11-11.0.14+9/src/hotspot/os/aix/os_aix.cpp openjdk-11-11.0.16+8/src/hotspot/os/aix/os_aix.cpp --- openjdk-11-11.0.14+9/src/hotspot/os/aix/os_aix.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os/aix/os_aix.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -899,19 +899,24 @@ ret = pthread_attr_setguardsize(&attr, 0); } + ResourceMark rm; pthread_t tid = 0; + if (ret == 0) { - ret = pthread_create(&tid, &attr, (void* (*)(void*)) thread_native_entry, thread); + int limit = 3; + do { + ret = pthread_create(&tid, &attr, (void* (*)(void*)) thread_native_entry, thread); + } while (ret == EAGAIN && limit-- > 0); } if (ret == 0) { char buf[64]; - log_info(os, thread)("Thread started (pthread id: " UINTX_FORMAT ", attributes: %s). ", - (uintx) tid, os::Posix::describe_pthread_attr(buf, sizeof(buf), &attr)); + log_info(os, thread)("Thread \"%s\" started (pthread id: " UINTX_FORMAT ", attributes: %s). ", + thread->name(), (uintx) tid, os::Posix::describe_pthread_attr(buf, sizeof(buf), &attr)); } else { char buf[64]; - log_warning(os, thread)("Failed to start thread - pthread_create failed (%d=%s) for attributes: %s.", - ret, os::errno_name(ret), os::Posix::describe_pthread_attr(buf, sizeof(buf), &attr)); + log_warning(os, thread)("Failed to start thread \"%s\" - pthread_create failed (%d=%s) for attributes: %s.", + thread->name(), ret, os::errno_name(ret), os::Posix::describe_pthread_attr(buf, sizeof(buf), &attr)); // Log some OS information which might explain why creating the thread failed. log_info(os, thread)("Number of threads approx. running in the VM: %d", Threads::number_of_threads()); LogStream st(Log(os, thread)::info()); diff -Nru openjdk-11-11.0.14+9/src/hotspot/os/aix/porting_aix.cpp openjdk-11-11.0.16+8/src/hotspot/os/aix/porting_aix.cpp --- openjdk-11-11.0.14+9/src/hotspot/os/aix/porting_aix.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os/aix/porting_aix.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2013 SAP SE. All rights reserved. + * Copyright (c) 2012, 2019 SAP SE. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -34,7 +34,15 @@ #include "utilities/align.hpp" #include "utilities/debug.hpp" +// distinguish old xlc and xlclang++, where +// is suggested but not found in GA release (might come with a fix) +#if defined(__clang__) +#define DISABLE_DEMANGLE +// #include +#else #include +#endif + #include #include #include @@ -237,6 +245,7 @@ p_name[i] = '\0'; // If it is a C++ name, try and demangle it using the Demangle interface (see demangle.h). +#ifndef DISABLE_DEMANGLE if (demangle) { char* rest; Name* const name = Demangle(p_name, rest); @@ -249,6 +258,7 @@ delete name; } } +#endif } else { strncpy(p_name, "", namelen-1); p_name[namelen-1] = '\0'; diff -Nru openjdk-11-11.0.14+9/src/hotspot/os/bsd/os_bsd.cpp openjdk-11-11.0.16+8/src/hotspot/os/bsd/os_bsd.cpp --- openjdk-11-11.0.14+9/src/hotspot/os/bsd/os_bsd.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os/bsd/os_bsd.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -22,6 +22,16 @@ * */ +/* + * On macOS MAP_JIT cannot be used in conjunction with MAP_FIXED when mapping + * a page for codecache. Therefore our traditional technique of doing commit + * and uncommit - replacing a mapping with another one at the same address + * range but swapped MAP_NORESERVE - does not work. + * The "exec" flag basically means "its code cache" and it should be used + * consistently for the same mapping (reserve-commit-uncommit etc) + * This affects pd_reserve_memory, pd_commit_memory, pd_uncommit_memory functions + */ + // no precompiled headers #include "jvm.h" #include "classfile/classLoader.hpp" @@ -229,6 +239,8 @@ static char cpu_arch[] = "amd64"; #elif defined(ARM) static char cpu_arch[] = "arm"; +#elif defined(AARCH64) +static char cpu_arch[] = "aarch64"; #elif defined(PPC32) static char cpu_arch[] = "ppc"; #elif defined(SPARC) @@ -468,7 +480,9 @@ } } Arguments::set_java_home(buf); - set_boot_path('/', ':'); + if (!set_boot_path('/', ':')) { + vm_exit_during_initialization("Failed setting boot class path.", NULL); + } } // Where to look for native libraries. @@ -661,16 +675,6 @@ static void *thread_native_entry(Thread *thread) { thread->record_stack_base_and_size(); - - // Try to randomize the cache line index of hot stack frames. - // This helps when threads of the same stack traces evict each other's - // cache lines. The threads can be either from the same JVM instance, or - // from different JVM instances. The benefit is especially true for - // processors with hyperthreading technology. - static int counter = 0; - int pid = os::current_process_id(); - alloca(((pid ^ counter++) & 7) * 128); - thread->initialize_thread_current(); OSThread* osthread = thread->osthread(); @@ -757,16 +761,22 @@ ThreadState state; { + + ResourceMark rm; pthread_t tid; - int ret = pthread_create(&tid, &attr, (void* (*)(void*)) thread_native_entry, thread); + int ret = 0; + int limit = 3; + do { + ret = pthread_create(&tid, &attr, (void* (*)(void*)) thread_native_entry, thread); + } while (ret == EAGAIN && limit-- > 0); char buf[64]; if (ret == 0) { - log_info(os, thread)("Thread started (pthread id: " UINTX_FORMAT ", attributes: %s). ", - (uintx) tid, os::Posix::describe_pthread_attr(buf, sizeof(buf), &attr)); + log_info(os, thread)("Thread \"%s\" started (pthread id: " UINTX_FORMAT ", attributes: %s). ", + thread->name(), (uintx) tid, os::Posix::describe_pthread_attr(buf, sizeof(buf), &attr)); } else { - log_warning(os, thread)("Failed to start thread - pthread_create failed (%s) for attributes: %s.", - os::errno_name(ret), os::Posix::describe_pthread_attr(buf, sizeof(buf), &attr)); + log_warning(os, thread)("Failed to start thread \"%s\" - pthread_create failed (%s) for attributes: %s.", + thread->name(), os::errno_name(ret), os::Posix::describe_pthread_attr(buf, sizeof(buf), &attr)); // Log some OS information which might explain why creating the thread failed. log_info(os, thread)("Number of threads approx. running in the VM: %d", Threads::number_of_threads()); LogStream st(Log(os, thread)::info()); @@ -2005,12 +2015,25 @@ // problem. bool os::pd_commit_memory(char* addr, size_t size, bool exec) { int prot = exec ? PROT_READ|PROT_WRITE|PROT_EXEC : PROT_READ|PROT_WRITE; -#ifdef __OpenBSD__ +#if defined(__OpenBSD__) // XXX: Work-around mmap/MAP_FIXED bug temporarily on OpenBSD Events::log(NULL, "Protecting memory [" INTPTR_FORMAT "," INTPTR_FORMAT "] with protection modes %x", p2i(addr), p2i(addr+size), prot); if (::mprotect(addr, size, prot) == 0) { return true; } +#elif defined(__APPLE__) + if (exec) { + // Do not replace MAP_JIT mappings, see JDK-8234930 + if (::mprotect(addr, size, prot) == 0) { + return true; + } + } else { + uintptr_t res = (uintptr_t) ::mmap(addr, size, prot, + MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0); + if (res != (uintptr_t) MAP_FAILED) { + return true; + } + } #else uintptr_t res = (uintptr_t) ::mmap(addr, size, prot, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0); @@ -2089,11 +2112,23 @@ } -bool os::pd_uncommit_memory(char* addr, size_t size) { -#ifdef __OpenBSD__ +MACOS_ONLY(bool os::pd_uncommit_memory(char* addr, size_t size, bool executable)) +NOT_MACOS(bool os::pd_uncommit_memory(char* addr, size_t size)) { +#if defined(__OpenBSD__) // XXX: Work-around mmap/MAP_FIXED bug temporarily on OpenBSD Events::log(NULL, "Protecting memory [" INTPTR_FORMAT "," INTPTR_FORMAT "] with PROT_NONE", p2i(addr), p2i(addr+size)); return ::mprotect(addr, size, PROT_NONE) == 0; +#elif defined(__APPLE__) + if (executable) { + if (::madvise(addr, size, MADV_FREE) != 0) { + return false; + } + return ::mprotect(addr, size, PROT_NONE) == 0; + } else { + uintptr_t res = (uintptr_t) ::mmap(addr, size, PROT_NONE, + MAP_PRIVATE|MAP_FIXED|MAP_NORESERVE|MAP_ANONYMOUS, -1, 0); + return res != (uintptr_t) MAP_FAILED; + } #else uintptr_t res = (uintptr_t) ::mmap(addr, size, PROT_NONE, MAP_PRIVATE|MAP_FIXED|MAP_NORESERVE|MAP_ANONYMOUS, -1, 0); @@ -2117,11 +2152,17 @@ // 'requested_addr' is only treated as a hint, the return value may or // may not start from the requested address. Unlike Bsd mmap(), this // function returns NULL to indicate failure. -static char* anon_mmap(char* requested_addr, size_t bytes, bool fixed) { +static char* anon_mmap(char* requested_addr, size_t bytes, bool fixed, bool executable = false) { char * addr; int flags; flags = MAP_PRIVATE | MAP_NORESERVE | MAP_ANONYMOUS; +#ifdef __APPLE__ + if (executable) { + guarantee(!fixed, "MAP_JIT (for execute) is incompatible with MAP_FIXED"); + flags |= MAP_JIT; + } +#endif if (fixed) { assert((uintptr_t)requested_addr % os::Bsd::page_size() == 0, "unaligned address"); flags |= MAP_FIXED; @@ -2140,10 +2181,18 @@ return ::munmap(addr, size) == 0; } +#if defined(__APPLE__) +char* os::pd_reserve_memory(size_t bytes, char* requested_addr, + size_t alignment_hint, + bool executable) { + return anon_mmap(requested_addr, bytes, (requested_addr != NULL), executable); +} +#else char* os::pd_reserve_memory(size_t bytes, char* requested_addr, size_t alignment_hint) { return anon_mmap(requested_addr, bytes, (requested_addr != NULL)); } +#endif bool os::pd_release_memory(char* addr, size_t size) { return anon_munmap(addr, size); @@ -3018,20 +3067,17 @@ set_signal_handler(SIGXFSZ, true); #if defined(__APPLE__) - // In Mac OS X 10.4, CrashReporter will write a crash log for all 'fatal' signals, including - // signals caught and handled by the JVM. To work around this, we reset the mach task - // signal handler that's placed on our process by CrashReporter. This disables - // CrashReporter-based reporting. - // - // This work-around is not necessary for 10.5+, as CrashReporter no longer intercedes - // on caught fatal signals. - // - // Additionally, gdb installs both standard BSD signal handlers, and mach exception - // handlers. By replacing the existing task exception handler, we disable gdb's mach + // lldb (gdb) installs both standard BSD signal handlers, and mach exception + // handlers. By replacing the existing task exception handler, we disable lldb's mach // exception handling, while leaving the standard BSD signal handlers functional. + // + // EXC_MASK_BAD_ACCESS needed by all architectures for NULL ptr checking + // EXC_MASK_ARITHMETIC needed by all architectures for div by 0 checking + // EXC_MASK_BAD_INSTRUCTION needed by aarch64 to initiate deoptimization kern_return_t kr; kr = task_set_exception_ports(mach_task_self(), - EXC_MASK_BAD_ACCESS | EXC_MASK_ARITHMETIC, + EXC_MASK_BAD_ACCESS | EXC_MASK_ARITHMETIC + AARCH64_ONLY(| EXC_MASK_BAD_INSTRUCTION), MACH_PORT_NULL, EXCEPTION_STATE_IDENTITY, MACHINE_THREAD_STATE); diff -Nru openjdk-11-11.0.14+9/src/hotspot/os/linux/cgroupSubsystem_linux.cpp openjdk-11-11.0.16+8/src/hotspot/os/linux/cgroupSubsystem_linux.cpp --- openjdk-11-11.0.14+9/src/hotspot/os/linux/cgroupSubsystem_linux.cpp 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os/linux/cgroupSubsystem_linux.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,516 @@ +/* + * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#include +#include +#include +#include "cgroupSubsystem_linux.hpp" +#include "cgroupV1Subsystem_linux.hpp" +#include "cgroupV2Subsystem_linux.hpp" +#include "logging/log.hpp" +#include "memory/allocation.hpp" +#include "runtime/globals.hpp" +#include "runtime/os.hpp" +#include "utilities/globalDefinitions.hpp" + +CgroupSubsystem* CgroupSubsystemFactory::create() { + CgroupV1MemoryController* memory = NULL; + CgroupV1Controller* cpuset = NULL; + CgroupV1Controller* cpu = NULL; + CgroupV1Controller* cpuacct = NULL; + CgroupInfo cg_infos[CG_INFO_LENGTH]; + u1 cg_type_flags = INVALID_CGROUPS_GENERIC; + const char* proc_cgroups = "/proc/cgroups"; + const char* proc_self_cgroup = "/proc/self/cgroup"; + const char* proc_self_mountinfo = "/proc/self/mountinfo"; + + bool valid_cgroup = determine_type(cg_infos, proc_cgroups, proc_self_cgroup, proc_self_mountinfo, &cg_type_flags); + + if (!valid_cgroup) { + // Could not detect cgroup type + return NULL; + } + assert(is_valid_cgroup(&cg_type_flags), "Expected valid cgroup type"); + + if (is_cgroup_v2(&cg_type_flags)) { + // Cgroups v2 case, we have all the info we need. + // Construct the subsystem, free resources and return + // Note: any index in cg_infos will do as the path is the same for + // all controllers. + CgroupController* unified = new CgroupV2Controller(cg_infos[MEMORY_IDX]._mount_path, cg_infos[MEMORY_IDX]._cgroup_path); + log_debug(os, container)("Detected cgroups v2 unified hierarchy"); + cleanup(cg_infos); + return new CgroupV2Subsystem(unified); + } + + /* + * Cgroup v1 case: + * + * Use info gathered previously from /proc/self/cgroup + * and map host mount point to + * local one via /proc/self/mountinfo content above + * + * Docker example: + * 5:memory:/docker/6558aed8fc662b194323ceab5b964f69cf36b3e8af877a14b80256e93aecb044 + * + * Host example: + * 5:memory:/user.slice + * + * Construct a path to the process specific memory and cpuset + * cgroup directory. + * + * For a container running under Docker from memory example above + * the paths would be: + * + * /sys/fs/cgroup/memory + * + * For a Host from memory example above the path would be: + * + * /sys/fs/cgroup/memory/user.slice + * + */ + assert(is_cgroup_v1(&cg_type_flags), "Cgroup v1 expected"); + for (int i = 0; i < CG_INFO_LENGTH; i++) { + CgroupInfo info = cg_infos[i]; + if (strcmp(info._name, "memory") == 0) { + memory = new CgroupV1MemoryController(info._root_mount_path, info._mount_path); + memory->set_subsystem_path(info._cgroup_path); + } else if (strcmp(info._name, "cpuset") == 0) { + cpuset = new CgroupV1Controller(info._root_mount_path, info._mount_path); + cpuset->set_subsystem_path(info._cgroup_path); + } else if (strcmp(info._name, "cpu") == 0) { + cpu = new CgroupV1Controller(info._root_mount_path, info._mount_path); + cpu->set_subsystem_path(info._cgroup_path); + } else if (strcmp(info._name, "cpuacct") == 0) { + cpuacct = new CgroupV1Controller(info._root_mount_path, info._mount_path); + cpuacct->set_subsystem_path(info._cgroup_path); + } + } + cleanup(cg_infos); + return new CgroupV1Subsystem(cpuset, cpu, cpuacct, memory); +} + +bool CgroupSubsystemFactory::determine_type(CgroupInfo* cg_infos, + const char* proc_cgroups, + const char* proc_self_cgroup, + const char* proc_self_mountinfo, + u1* flags) { + FILE *mntinfo = NULL; + FILE *cgroups = NULL; + FILE *cgroup = NULL; + char buf[MAXPATHLEN+1]; + char *p; + bool is_cgroupsV2; + // true iff all controllers, memory, cpu, cpuset, cpuacct are enabled + // at the kernel level. + bool all_controllers_enabled; + + /* + * Read /proc/cgroups so as to be able to distinguish cgroups v2 vs cgroups v1. + * + * For cgroups v1 hierarchy (hybrid or legacy), cpu, cpuacct, cpuset, memory controllers + * must have non-zero for the hierarchy ID field and relevant controllers mounted. + * Conversely, for cgroups v2 (unified hierarchy), cpu, cpuacct, cpuset, memory + * controllers must have hierarchy ID 0 and the unified controller mounted. + */ + cgroups = fopen(proc_cgroups, "r"); + if (cgroups == NULL) { + log_debug(os, container)("Can't open %s, %s", + proc_cgroups, os::strerror(errno)); + *flags = INVALID_CGROUPS_GENERIC; + return false; + } + + while ((p = fgets(buf, MAXPATHLEN, cgroups)) != NULL) { + char name[MAXPATHLEN+1]; + int hierarchy_id; + int enabled; + + // Format of /proc/cgroups documented via man 7 cgroups + if (sscanf(p, "%s %d %*d %d", name, &hierarchy_id, &enabled) != 3) { + continue; + } + if (strcmp(name, "memory") == 0) { + cg_infos[MEMORY_IDX]._name = os::strdup(name); + cg_infos[MEMORY_IDX]._hierarchy_id = hierarchy_id; + cg_infos[MEMORY_IDX]._enabled = (enabled == 1); + } else if (strcmp(name, "cpuset") == 0) { + cg_infos[CPUSET_IDX]._name = os::strdup(name); + cg_infos[CPUSET_IDX]._hierarchy_id = hierarchy_id; + cg_infos[CPUSET_IDX]._enabled = (enabled == 1); + } else if (strcmp(name, "cpu") == 0) { + cg_infos[CPU_IDX]._name = os::strdup(name); + cg_infos[CPU_IDX]._hierarchy_id = hierarchy_id; + cg_infos[CPU_IDX]._enabled = (enabled == 1); + } else if (strcmp(name, "cpuacct") == 0) { + cg_infos[CPUACCT_IDX]._name = os::strdup(name); + cg_infos[CPUACCT_IDX]._hierarchy_id = hierarchy_id; + cg_infos[CPUACCT_IDX]._enabled = (enabled == 1); + } + } + fclose(cgroups); + + is_cgroupsV2 = true; + all_controllers_enabled = true; + for (int i = 0; i < CG_INFO_LENGTH; i++) { + is_cgroupsV2 = is_cgroupsV2 && cg_infos[i]._hierarchy_id == 0; + all_controllers_enabled = all_controllers_enabled && cg_infos[i]._enabled; + } + + if (!all_controllers_enabled) { + // one or more controllers disabled, disable container support + log_debug(os, container)("One or more required controllers disabled at kernel level."); + cleanup(cg_infos); + *flags = INVALID_CGROUPS_GENERIC; + return false; + } + + /* + * Read /proc/self/cgroup and determine: + * - the cgroup path for cgroups v2 or + * - on a cgroups v1 system, collect info for mapping + * the host mount point to the local one via /proc/self/mountinfo below. + */ + cgroup = fopen(proc_self_cgroup, "r"); + if (cgroup == NULL) { + log_debug(os, container)("Can't open %s, %s", + proc_self_cgroup, os::strerror(errno)); + cleanup(cg_infos); + *flags = INVALID_CGROUPS_GENERIC; + return false; + } + + while ((p = fgets(buf, MAXPATHLEN, cgroup)) != NULL) { + char *controllers; + char *token; + char *hierarchy_id_str; + int hierarchy_id; + char *cgroup_path; + + hierarchy_id_str = strsep(&p, ":"); + hierarchy_id = atoi(hierarchy_id_str); + /* Get controllers and base */ + controllers = strsep(&p, ":"); + cgroup_path = strsep(&p, "\n"); + + if (controllers == NULL) { + continue; + } + + while (!is_cgroupsV2 && (token = strsep(&controllers, ",")) != NULL) { + if (strcmp(token, "memory") == 0) { + assert(hierarchy_id == cg_infos[MEMORY_IDX]._hierarchy_id, "/proc/cgroups and /proc/self/cgroup hierarchy mismatch"); + cg_infos[MEMORY_IDX]._cgroup_path = os::strdup(cgroup_path); + } else if (strcmp(token, "cpuset") == 0) { + assert(hierarchy_id == cg_infos[CPUSET_IDX]._hierarchy_id, "/proc/cgroups and /proc/self/cgroup hierarchy mismatch"); + cg_infos[CPUSET_IDX]._cgroup_path = os::strdup(cgroup_path); + } else if (strcmp(token, "cpu") == 0) { + assert(hierarchy_id == cg_infos[CPU_IDX]._hierarchy_id, "/proc/cgroups and /proc/self/cgroup hierarchy mismatch"); + cg_infos[CPU_IDX]._cgroup_path = os::strdup(cgroup_path); + } else if (strcmp(token, "cpuacct") == 0) { + assert(hierarchy_id == cg_infos[CPUACCT_IDX]._hierarchy_id, "/proc/cgroups and /proc/self/cgroup hierarchy mismatch"); + cg_infos[CPUACCT_IDX]._cgroup_path = os::strdup(cgroup_path); + } + } + if (is_cgroupsV2) { + for (int i = 0; i < CG_INFO_LENGTH; i++) { + cg_infos[i]._cgroup_path = os::strdup(cgroup_path); + } + } + } + fclose(cgroup); + + // Find various mount points by reading /proc/self/mountinfo + // mountinfo format is documented at https://www.kernel.org/doc/Documentation/filesystems/proc.txt + mntinfo = fopen(proc_self_mountinfo, "r"); + if (mntinfo == NULL) { + log_debug(os, container)("Can't open %s, %s", + proc_self_mountinfo, os::strerror(errno)); + cleanup(cg_infos); + *flags = INVALID_CGROUPS_GENERIC; + return false; + } + + bool cgroupv2_mount_point_found = false; + bool any_cgroup_mounts_found = false; + while ((p = fgets(buf, MAXPATHLEN, mntinfo)) != NULL) { + char tmp_mount_point[MAXPATHLEN+1]; + char tmp_fs_type[MAXPATHLEN+1]; + char tmproot[MAXPATHLEN+1]; + char tmpmount[MAXPATHLEN+1]; + char tmpcgroups[MAXPATHLEN+1]; + char *cptr = tmpcgroups; + char *token; + + // Cgroup v2 relevant info. We only look for the _mount_path iff is_cgroupsV2 so + // as to avoid memory stomping of the _mount_path pointer later on in the cgroup v1 + // block in the hybrid case. + // + if (is_cgroupsV2 && sscanf(p, "%*d %*d %*d:%*d %*s %s %*[^-]- %s %*s %*s", tmp_mount_point, tmp_fs_type) == 2) { + // we likely have an early match return (e.g. cgroup fs match), be sure we have cgroup2 as fstype + if (!cgroupv2_mount_point_found && strcmp("cgroup2", tmp_fs_type) == 0) { + cgroupv2_mount_point_found = true; + any_cgroup_mounts_found = true; + for (int i = 0; i < CG_INFO_LENGTH; i++) { + assert(cg_infos[i]._mount_path == NULL, "_mount_path memory stomping"); + cg_infos[i]._mount_path = os::strdup(tmp_mount_point); + } + } + } + + /* Cgroup v1 relevant info + * + * Find the cgroup mount point for memory, cpuset, cpu, cpuacct + * + * Example for docker: + * 219 214 0:29 /docker/7208cebd00fa5f2e342b1094f7bed87fa25661471a4637118e65f1c995be8a34 /sys/fs/cgroup/memory ro,nosuid,nodev,noexec,relatime - cgroup cgroup rw,memory + * + * Example for host: + * 34 28 0:29 / /sys/fs/cgroup/memory rw,nosuid,nodev,noexec,relatime shared:16 - cgroup cgroup rw,memory + */ + if (sscanf(p, "%*d %*d %*d:%*d %s %s %*[^-]- %s %*s %s", tmproot, tmpmount, tmp_fs_type, tmpcgroups) == 4) { + if (strcmp("cgroup", tmp_fs_type) != 0) { + // Skip cgroup2 fs lines on hybrid or unified hierarchy. + continue; + } + while ((token = strsep(&cptr, ",")) != NULL) { + if (strcmp(token, "memory") == 0) { + any_cgroup_mounts_found = true; + assert(cg_infos[MEMORY_IDX]._mount_path == NULL, "stomping of _mount_path"); + cg_infos[MEMORY_IDX]._mount_path = os::strdup(tmpmount); + cg_infos[MEMORY_IDX]._root_mount_path = os::strdup(tmproot); + cg_infos[MEMORY_IDX]._data_complete = true; + } else if (strcmp(token, "cpuset") == 0) { + any_cgroup_mounts_found = true; + if (cg_infos[CPUSET_IDX]._mount_path != NULL) { + // On some systems duplicate cpuset controllers get mounted in addition to + // the main cgroup controllers most likely under /sys/fs/cgroup. In that + // case pick the one under /sys/fs/cgroup and discard others. + if (strstr(cg_infos[CPUSET_IDX]._mount_path, "/sys/fs/cgroup") != cg_infos[CPUSET_IDX]._mount_path) { + log_warning(os, container)("Duplicate cpuset controllers detected. Picking %s, skipping %s.", + tmpmount, cg_infos[CPUSET_IDX]._mount_path); + os::free(cg_infos[CPUSET_IDX]._mount_path); + cg_infos[CPUSET_IDX]._mount_path = os::strdup(tmpmount); + } else { + log_warning(os, container)("Duplicate cpuset controllers detected. Picking %s, skipping %s.", + cg_infos[CPUSET_IDX]._mount_path, tmpmount); + } + } else { + cg_infos[CPUSET_IDX]._mount_path = os::strdup(tmpmount); + } + cg_infos[CPUSET_IDX]._root_mount_path = os::strdup(tmproot); + cg_infos[CPUSET_IDX]._data_complete = true; + } else if (strcmp(token, "cpu") == 0) { + any_cgroup_mounts_found = true; + assert(cg_infos[CPU_IDX]._mount_path == NULL, "stomping of _mount_path"); + cg_infos[CPU_IDX]._mount_path = os::strdup(tmpmount); + cg_infos[CPU_IDX]._root_mount_path = os::strdup(tmproot); + cg_infos[CPU_IDX]._data_complete = true; + } else if (strcmp(token, "cpuacct") == 0) { + any_cgroup_mounts_found = true; + assert(cg_infos[CPUACCT_IDX]._mount_path == NULL, "stomping of _mount_path"); + cg_infos[CPUACCT_IDX]._mount_path = os::strdup(tmpmount); + cg_infos[CPUACCT_IDX]._root_mount_path = os::strdup(tmproot); + cg_infos[CPUACCT_IDX]._data_complete = true; + } + } + } + } + fclose(mntinfo); + + // Neither cgroup2 nor cgroup filesystems mounted via /proc/self/mountinfo + // No point in continuing. + if (!any_cgroup_mounts_found) { + log_trace(os, container)("No relevant cgroup controllers mounted."); + cleanup(cg_infos); + *flags = INVALID_CGROUPS_NO_MOUNT; + return false; + } + + if (is_cgroupsV2) { + if (!cgroupv2_mount_point_found) { + log_trace(os, container)("Mount point for cgroupv2 not found in /proc/self/mountinfo"); + cleanup(cg_infos); + *flags = INVALID_CGROUPS_V2; + return false; + } + // Cgroups v2 case, we have all the info we need. + *flags = CGROUPS_V2; + return true; + } + + // What follows is cgroups v1 + log_debug(os, container)("Detected cgroups hybrid or legacy hierarchy, using cgroups v1 controllers"); + + if (!cg_infos[MEMORY_IDX]._data_complete) { + log_debug(os, container)("Required cgroup v1 memory subsystem not found"); + cleanup(cg_infos); + *flags = INVALID_CGROUPS_V1; + return false; + } + if (!cg_infos[CPUSET_IDX]._data_complete) { + log_debug(os, container)("Required cgroup v1 cpuset subsystem not found"); + cleanup(cg_infos); + *flags = INVALID_CGROUPS_V1; + return false; + } + if (!cg_infos[CPU_IDX]._data_complete) { + log_debug(os, container)("Required cgroup v1 cpu subsystem not found"); + cleanup(cg_infos); + *flags = INVALID_CGROUPS_V1; + return false; + } + if (!cg_infos[CPUACCT_IDX]._data_complete) { + log_debug(os, container)("Required cgroup v1 cpuacct subsystem not found"); + cleanup(cg_infos); + *flags = INVALID_CGROUPS_V1; + return false; + } + // Cgroups v1 case, we have all the info we need. + *flags = CGROUPS_V1; + return true; + +}; + +void CgroupSubsystemFactory::cleanup(CgroupInfo* cg_infos) { + assert(cg_infos != NULL, "Invariant"); + for (int i = 0; i < CG_INFO_LENGTH; i++) { + os::free(cg_infos[i]._name); + os::free(cg_infos[i]._cgroup_path); + os::free(cg_infos[i]._root_mount_path); + os::free(cg_infos[i]._mount_path); + } +} + +/* active_processor_count + * + * Calculate an appropriate number of active processors for the + * VM to use based on these three inputs. + * + * cpu affinity + * cgroup cpu quota & cpu period + * cgroup cpu shares + * + * Algorithm: + * + * Determine the number of available CPUs from sched_getaffinity + * + * If user specified a quota (quota != -1), calculate the number of + * required CPUs by dividing quota by period. + * + * If shares are in effect (shares != -1), calculate the number + * of CPUs required for the shares by dividing the share value + * by PER_CPU_SHARES. + * + * All results of division are rounded up to the next whole number. + * + * If neither shares or quotas have been specified, return the + * number of active processors in the system. + * + * If both shares and quotas have been specified, the results are + * based on the flag PreferContainerQuotaForCPUCount. If true, + * return the quota value. If false return the smallest value + * between shares or quotas. + * + * If shares and/or quotas have been specified, the resulting number + * returned will never exceed the number of active processors. + * + * return: + * number of CPUs + */ +int CgroupSubsystem::active_processor_count() { + int quota_count = 0, share_count = 0; + int cpu_count, limit_count; + int result; + + // We use a cache with a timeout to avoid performing expensive + // computations in the event this function is called frequently. + // [See 8227006]. + CachingCgroupController* contrl = cpu_controller(); + CachedMetric* cpu_limit = contrl->metrics_cache(); + if (!cpu_limit->should_check_metric()) { + int val = (int)cpu_limit->value(); + log_trace(os, container)("CgroupSubsystem::active_processor_count (cached): %d", val); + return val; + } + + cpu_count = limit_count = os::Linux::active_processor_count(); + int quota = cpu_quota(); + int period = cpu_period(); + int share = cpu_shares(); + + if (quota > -1 && period > 0) { + quota_count = ceilf((float)quota / (float)period); + log_trace(os, container)("CPU Quota count based on quota/period: %d", quota_count); + } + if (share > -1) { + share_count = ceilf((float)share / (float)PER_CPU_SHARES); + log_trace(os, container)("CPU Share count based on shares: %d", share_count); + } + + // If both shares and quotas are setup results depend + // on flag PreferContainerQuotaForCPUCount. + // If true, limit CPU count to quota + // If false, use minimum of shares and quotas + if (quota_count !=0 && share_count != 0) { + if (PreferContainerQuotaForCPUCount) { + limit_count = quota_count; + } else { + limit_count = MIN2(quota_count, share_count); + } + } else if (quota_count != 0) { + limit_count = quota_count; + } else if (share_count != 0) { + limit_count = share_count; + } + + result = MIN2(cpu_count, limit_count); + log_trace(os, container)("OSContainer::active_processor_count: %d", result); + + // Update cached metric to avoid re-reading container settings too often + cpu_limit->set_value(result, OSCONTAINER_CACHE_TIMEOUT); + + return result; +} + +/* memory_limit_in_bytes + * + * Return the limit of available memory for this process. + * + * return: + * memory limit in bytes or + * -1 for unlimited + * OSCONTAINER_ERROR for not supported + */ +jlong CgroupSubsystem::memory_limit_in_bytes() { + CachingCgroupController* contrl = memory_controller(); + CachedMetric* memory_limit = contrl->metrics_cache(); + if (!memory_limit->should_check_metric()) { + return memory_limit->value(); + } + jlong mem_limit = read_memory_limit_in_bytes(); + // Update cached metric to avoid re-reading container settings too often + memory_limit->set_value(mem_limit, OSCONTAINER_CACHE_TIMEOUT); + return mem_limit; +} diff -Nru openjdk-11-11.0.14+9/src/hotspot/os/linux/cgroupSubsystem_linux.hpp openjdk-11-11.0.16+8/src/hotspot/os/linux/cgroupSubsystem_linux.hpp --- openjdk-11-11.0.14+9/src/hotspot/os/linux/cgroupSubsystem_linux.hpp 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os/linux/cgroupSubsystem_linux.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,317 @@ +/* + * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef CGROUP_SUBSYSTEM_LINUX_HPP +#define CGROUP_SUBSYSTEM_LINUX_HPP + +#include "memory/allocation.hpp" +#include "runtime/os.hpp" +#include "logging/log.hpp" +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" +#include "osContainer_linux.hpp" + +// Shared cgroups code (used by cgroup version 1 and version 2) + +/* + * PER_CPU_SHARES has been set to 1024 because CPU shares' quota + * is commonly used in cloud frameworks like Kubernetes[1], + * AWS[2] and Mesos[3] in a similar way. They spawn containers with + * --cpu-shares option values scaled by PER_CPU_SHARES. Thus, we do + * the inverse for determining the number of possible available + * CPUs to the JVM inside a container. See JDK-8216366. + * + * [1] https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#meaning-of-cpu + * In particular: + * When using Docker: + * The spec.containers[].resources.requests.cpu is converted to its core value, which is potentially + * fractional, and multiplied by 1024. The greater of this number or 2 is used as the value of the + * --cpu-shares flag in the docker run command. + * [2] https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html + * [3] https://github.com/apache/mesos/blob/3478e344fb77d931f6122980c6e94cd3913c441d/src/docker/docker.cpp#L648 + * https://github.com/apache/mesos/blob/3478e344fb77d931f6122980c6e94cd3913c441d/src/slave/containerizer/mesos/isolators/cgroups/constants.hpp#L30 + */ +#define PER_CPU_SHARES 1024 + +#define CGROUPS_V1 1 +#define CGROUPS_V2 2 +#define INVALID_CGROUPS_V2 3 +#define INVALID_CGROUPS_V1 4 +#define INVALID_CGROUPS_NO_MOUNT 5 +#define INVALID_CGROUPS_GENERIC 6 + +// Four controllers: cpu, cpuset, cpuacct, memory +#define CG_INFO_LENGTH 4 +#define CPUSET_IDX 0 +#define CPU_IDX 1 +#define CPUACCT_IDX 2 +#define MEMORY_IDX 3 + +typedef char * cptr; + +class CgroupController: public CHeapObj { + public: + virtual char *subsystem_path() = 0; +}; + +PRAGMA_DIAG_PUSH +PRAGMA_FORMAT_NONLITERAL_IGNORED +template int subsystem_file_line_contents(CgroupController* c, + const char *filename, + const char *matchline, + const char *scan_fmt, + T returnval) { + FILE *fp = NULL; + char *p; + char file[MAXPATHLEN+1]; + char buf[MAXPATHLEN+1]; + char discard[MAXPATHLEN+1]; + bool found_match = false; + + if (c == NULL) { + log_debug(os, container)("subsystem_file_line_contents: CgroupController* is NULL"); + return OSCONTAINER_ERROR; + } + if (c->subsystem_path() == NULL) { + log_debug(os, container)("subsystem_file_line_contents: subsystem path is NULL"); + return OSCONTAINER_ERROR; + } + + strncpy(file, c->subsystem_path(), MAXPATHLEN); + file[MAXPATHLEN-1] = '\0'; + int filelen = strlen(file); + if ((filelen + strlen(filename)) > (MAXPATHLEN-1)) { + log_debug(os, container)("File path too long %s, %s", file, filename); + return OSCONTAINER_ERROR; + } + strncat(file, filename, MAXPATHLEN-filelen); + log_trace(os, container)("Path to %s is %s", filename, file); + fp = fopen(file, "r"); + if (fp != NULL) { + int err = 0; + while ((p = fgets(buf, MAXPATHLEN, fp)) != NULL) { + found_match = false; + if (matchline == NULL) { + // single-line file case + int matched = sscanf(p, scan_fmt, returnval); + found_match = (matched == 1); + } else { + // multi-line file case + if (strstr(p, matchline) != NULL) { + // discard matchline string prefix + int matched = sscanf(p, scan_fmt, discard, returnval); + found_match = (matched == 2); + } else { + continue; // substring not found + } + } + if (found_match) { + fclose(fp); + return 0; + } else { + err = 1; + log_debug(os, container)("Type %s not found in file %s", scan_fmt, file); + } + } + if (err == 0) { + log_debug(os, container)("Empty file %s", file); + } + } else { + log_debug(os, container)("Open of file %s failed, %s", file, os::strerror(errno)); + } + if (fp != NULL) + fclose(fp); + return OSCONTAINER_ERROR; +} +PRAGMA_DIAG_POP + +#define GET_CONTAINER_INFO(return_type, subsystem, filename, \ + logstring, scan_fmt, variable) \ + return_type variable; \ +{ \ + int err; \ + err = subsystem_file_line_contents(subsystem, \ + filename, \ + NULL, \ + scan_fmt, \ + &variable); \ + if (err != 0) { \ + log_trace(os, container)(logstring, (return_type) OSCONTAINER_ERROR); \ + return (return_type) OSCONTAINER_ERROR; \ + } \ + \ + log_trace(os, container)(logstring, variable); \ +} + +#define GET_CONTAINER_INFO_CPTR(return_type, subsystem, filename, \ + logstring, scan_fmt, variable, bufsize) \ + char variable[bufsize]; \ +{ \ + int err; \ + err = subsystem_file_line_contents(subsystem, \ + filename, \ + NULL, \ + scan_fmt, \ + variable); \ + if (err != 0) \ + return (return_type) NULL; \ + \ + log_trace(os, container)(logstring, variable); \ +} + +#define GET_CONTAINER_INFO_LINE(return_type, controller, filename, \ + matchline, logstring, scan_fmt, variable) \ + return_type variable; \ +{ \ + int err; \ + err = subsystem_file_line_contents(controller, \ + filename, \ + matchline, \ + scan_fmt, \ + &variable); \ + if (err != 0) \ + return (return_type) OSCONTAINER_ERROR; \ + \ + log_trace(os, container)(logstring, variable); \ +} + + +class CachedMetric : public CHeapObj{ + private: + volatile jlong _metric; + volatile jlong _next_check_counter; + public: + CachedMetric() { + _metric = -1; + _next_check_counter = min_jlong; + } + bool should_check_metric() { + return os::elapsed_counter() > _next_check_counter; + } + jlong value() { return _metric; } + void set_value(jlong value, jlong timeout) { + _metric = value; + // Metric is unlikely to change, but we want to remain + // responsive to configuration changes. A very short grace time + // between re-read avoids excessive overhead during startup without + // significantly reducing the VMs ability to promptly react to changed + // metric config + _next_check_counter = os::elapsed_counter() + timeout; + } +}; + +class CachingCgroupController : public CHeapObj { + private: + CgroupController* _controller; + CachedMetric* _metrics_cache; + + public: + CachingCgroupController(CgroupController* cont) { + _controller = cont; + _metrics_cache = new CachedMetric(); + } + + CachedMetric* metrics_cache() { return _metrics_cache; } + CgroupController* controller() { return _controller; } +}; + +class CgroupSubsystem: public CHeapObj { + public: + jlong memory_limit_in_bytes(); + int active_processor_count(); + + virtual int cpu_quota() = 0; + virtual int cpu_period() = 0; + virtual int cpu_shares() = 0; + virtual jlong memory_usage_in_bytes() = 0; + virtual jlong memory_and_swap_limit_in_bytes() = 0; + virtual jlong memory_soft_limit_in_bytes() = 0; + virtual jlong memory_max_usage_in_bytes() = 0; + virtual char * cpu_cpuset_cpus() = 0; + virtual char * cpu_cpuset_memory_nodes() = 0; + virtual jlong read_memory_limit_in_bytes() = 0; + virtual const char * container_type() = 0; + virtual CachingCgroupController* memory_controller() = 0; + virtual CachingCgroupController* cpu_controller() = 0; +}; + +// Utility class for storing info retrieved from /proc/cgroups, +// /proc/self/cgroup and /proc/self/mountinfo +// For reference see man 7 cgroups and CgroupSubsystemFactory +class CgroupInfo : public StackObj { + friend class CgroupSubsystemFactory; + friend class WhiteBox; + + private: + char* _name; + int _hierarchy_id; + bool _enabled; + bool _data_complete; // indicating cgroup v1 data is complete for this controller + char* _cgroup_path; // cgroup controller path from /proc/self/cgroup + char* _root_mount_path; // root mount path from /proc/self/mountinfo. Unused for cgroup v2 + char* _mount_path; // mount path from /proc/self/mountinfo. + + public: + CgroupInfo() { + _name = NULL; + _hierarchy_id = -1; + _enabled = false; + _data_complete = false; + _cgroup_path = NULL; + _root_mount_path = NULL; + _mount_path = NULL; + } + +}; + +class CgroupSubsystemFactory: AllStatic { + friend class WhiteBox; + + public: + static CgroupSubsystem* create(); + private: + static inline bool is_cgroup_v2(u1* flags) { + return *flags == CGROUPS_V2; + } + +#ifdef ASSERT + static inline bool is_valid_cgroup(u1* flags) { + return *flags == CGROUPS_V1 || *flags == CGROUPS_V2; + } + static inline bool is_cgroup_v1(u1* flags) { + return *flags == CGROUPS_V1; + } +#endif + + // Determine the cgroup type (version 1 or version 2), given + // relevant paths to files. Sets 'flags' accordingly. + static bool determine_type(CgroupInfo* cg_infos, + const char* proc_cgroups, + const char* proc_self_cgroup, + const char* proc_self_mountinfo, + u1* flags); + static void cleanup(CgroupInfo* cg_infos); +}; + +#endif // CGROUP_SUBSYSTEM_LINUX_HPP diff -Nru openjdk-11-11.0.14+9/src/hotspot/os/linux/cgroupV1Subsystem_linux.cpp openjdk-11-11.0.16+8/src/hotspot/os/linux/cgroupV1Subsystem_linux.cpp --- openjdk-11-11.0.14+9/src/hotspot/os/linux/cgroupV1Subsystem_linux.cpp 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os/linux/cgroupV1Subsystem_linux.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,243 @@ +/* + * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#include +#include +#include +#include "cgroupV1Subsystem_linux.hpp" +#include "logging/log.hpp" +#include "memory/allocation.hpp" +#include "runtime/globals.hpp" +#include "runtime/os.hpp" +#include "utilities/globalDefinitions.hpp" + +/* + * Set directory to subsystem specific files based + * on the contents of the mountinfo and cgroup files. + */ +void CgroupV1Controller::set_subsystem_path(char *cgroup_path) { + char buf[MAXPATHLEN+1]; + if (_root != NULL && cgroup_path != NULL) { + if (strcmp(_root, "/") == 0) { + int buflen; + strncpy(buf, _mount_point, MAXPATHLEN); + buf[MAXPATHLEN-1] = '\0'; + if (strcmp(cgroup_path,"/") != 0) { + buflen = strlen(buf); + if ((buflen + strlen(cgroup_path)) > (MAXPATHLEN-1)) { + return; + } + strncat(buf, cgroup_path, MAXPATHLEN-buflen); + buf[MAXPATHLEN-1] = '\0'; + } + _path = os::strdup(buf); + } else { + if (strcmp(_root, cgroup_path) == 0) { + strncpy(buf, _mount_point, MAXPATHLEN); + buf[MAXPATHLEN-1] = '\0'; + _path = os::strdup(buf); + } else { + char *p = strstr(cgroup_path, _root); + if (p != NULL && p == _root) { + if (strlen(cgroup_path) > strlen(_root)) { + int buflen; + strncpy(buf, _mount_point, MAXPATHLEN); + buf[MAXPATHLEN-1] = '\0'; + buflen = strlen(buf); + if ((buflen + strlen(cgroup_path) - strlen(_root)) > (MAXPATHLEN-1)) { + return; + } + strncat(buf, cgroup_path + strlen(_root), MAXPATHLEN-buflen); + buf[MAXPATHLEN-1] = '\0'; + _path = os::strdup(buf); + } + } + } + } + } +} + +/* uses_mem_hierarchy + * + * Return whether or not hierarchical cgroup accounting is being + * done. + * + * return: + * A number > 0 if true, or + * OSCONTAINER_ERROR for not supported + */ +jlong CgroupV1MemoryController::uses_mem_hierarchy() { + GET_CONTAINER_INFO(jlong, this, "/memory.use_hierarchy", + "Use Hierarchy is: " JLONG_FORMAT, JLONG_FORMAT, use_hierarchy); + return use_hierarchy; +} + +void CgroupV1MemoryController::set_subsystem_path(char *cgroup_path) { + CgroupV1Controller::set_subsystem_path(cgroup_path); + jlong hierarchy = uses_mem_hierarchy(); + if (hierarchy > 0) { + set_hierarchical(true); + } +} + +jlong CgroupV1Subsystem::read_memory_limit_in_bytes() { + GET_CONTAINER_INFO(julong, _memory->controller(), "/memory.limit_in_bytes", + "Memory Limit is: " JULONG_FORMAT, JULONG_FORMAT, memlimit); + + if (memlimit >= _unlimited_memory) { + log_trace(os, container)("Non-Hierarchical Memory Limit is: Unlimited"); + CgroupV1MemoryController* mem_controller = reinterpret_cast(_memory->controller()); + if (mem_controller->is_hierarchical()) { + const char* matchline = "hierarchical_memory_limit"; + const char* format = "%s " JULONG_FORMAT; + GET_CONTAINER_INFO_LINE(julong, _memory->controller(), "/memory.stat", matchline, + "Hierarchical Memory Limit is: " JULONG_FORMAT, format, hier_memlimit) + if (hier_memlimit >= _unlimited_memory) { + log_trace(os, container)("Hierarchical Memory Limit is: Unlimited"); + } else { + return (jlong)hier_memlimit; + } + } + return (jlong)-1; + } + else { + return (jlong)memlimit; + } +} + +jlong CgroupV1Subsystem::memory_and_swap_limit_in_bytes() { + GET_CONTAINER_INFO(julong, _memory->controller(), "/memory.memsw.limit_in_bytes", + "Memory and Swap Limit is: " JULONG_FORMAT, JULONG_FORMAT, memswlimit); + if (memswlimit >= _unlimited_memory) { + log_trace(os, container)("Non-Hierarchical Memory and Swap Limit is: Unlimited"); + CgroupV1MemoryController* mem_controller = reinterpret_cast(_memory->controller()); + if (mem_controller->is_hierarchical()) { + const char* matchline = "hierarchical_memsw_limit"; + const char* format = "%s " JULONG_FORMAT; + GET_CONTAINER_INFO_LINE(julong, _memory->controller(), "/memory.stat", matchline, + "Hierarchical Memory and Swap Limit is : " JULONG_FORMAT, format, hier_memlimit) + if (hier_memlimit >= _unlimited_memory) { + log_trace(os, container)("Hierarchical Memory and Swap Limit is: Unlimited"); + } else { + return (jlong)hier_memlimit; + } + } + return (jlong)-1; + } else { + return (jlong)memswlimit; + } +} + +jlong CgroupV1Subsystem::memory_soft_limit_in_bytes() { + GET_CONTAINER_INFO(julong, _memory->controller(), "/memory.soft_limit_in_bytes", + "Memory Soft Limit is: " JULONG_FORMAT, JULONG_FORMAT, memsoftlimit); + if (memsoftlimit >= _unlimited_memory) { + log_trace(os, container)("Memory Soft Limit is: Unlimited"); + return (jlong)-1; + } else { + return (jlong)memsoftlimit; + } +} + +/* memory_usage_in_bytes + * + * Return the amount of used memory for this process. + * + * return: + * memory usage in bytes or + * -1 for unlimited + * OSCONTAINER_ERROR for not supported + */ +jlong CgroupV1Subsystem::memory_usage_in_bytes() { + GET_CONTAINER_INFO(jlong, _memory->controller(), "/memory.usage_in_bytes", + "Memory Usage is: " JLONG_FORMAT, JLONG_FORMAT, memusage); + return memusage; +} + +/* memory_max_usage_in_bytes + * + * Return the maximum amount of used memory for this process. + * + * return: + * max memory usage in bytes or + * OSCONTAINER_ERROR for not supported + */ +jlong CgroupV1Subsystem::memory_max_usage_in_bytes() { + GET_CONTAINER_INFO(jlong, _memory->controller(), "/memory.max_usage_in_bytes", + "Maximum Memory Usage is: " JLONG_FORMAT, JLONG_FORMAT, memmaxusage); + return memmaxusage; +} + +char * CgroupV1Subsystem::cpu_cpuset_cpus() { + GET_CONTAINER_INFO_CPTR(cptr, _cpuset, "/cpuset.cpus", + "cpuset.cpus is: %s", "%1023s", cpus, 1024); + return os::strdup(cpus); +} + +char * CgroupV1Subsystem::cpu_cpuset_memory_nodes() { + GET_CONTAINER_INFO_CPTR(cptr, _cpuset, "/cpuset.mems", + "cpuset.mems is: %s", "%1023s", mems, 1024); + return os::strdup(mems); +} + +/* cpu_quota + * + * Return the number of microseconds per period + * process is guaranteed to run. + * + * return: + * quota time in microseconds + * -1 for no quota + * OSCONTAINER_ERROR for not supported + */ +int CgroupV1Subsystem::cpu_quota() { + GET_CONTAINER_INFO(int, _cpu->controller(), "/cpu.cfs_quota_us", + "CPU Quota is: %d", "%d", quota); + return quota; +} + +int CgroupV1Subsystem::cpu_period() { + GET_CONTAINER_INFO(int, _cpu->controller(), "/cpu.cfs_period_us", + "CPU Period is: %d", "%d", period); + return period; +} + +/* cpu_shares + * + * Return the amount of cpu shares available to the process + * + * return: + * Share number (typically a number relative to 1024) + * (2048 typically expresses 2 CPUs worth of processing) + * -1 for no share setup + * OSCONTAINER_ERROR for not supported + */ +int CgroupV1Subsystem::cpu_shares() { + GET_CONTAINER_INFO(int, _cpu->controller(), "/cpu.shares", + "CPU Shares is: %d", "%d", shares); + // Convert 1024 to no shares setup + if (shares == 1024) return -1; + + return shares; +} diff -Nru openjdk-11-11.0.14+9/src/hotspot/os/linux/cgroupV1Subsystem_linux.hpp openjdk-11-11.0.16+8/src/hotspot/os/linux/cgroupV1Subsystem_linux.hpp --- openjdk-11-11.0.14+9/src/hotspot/os/linux/cgroupV1Subsystem_linux.hpp 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os/linux/cgroupV1Subsystem_linux.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,118 @@ +/* + * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef CGROUP_V1_SUBSYSTEM_LINUX_HPP +#define CGROUP_V1_SUBSYSTEM_LINUX_HPP + +#include "runtime/os.hpp" +#include "memory/allocation.hpp" +#include "cgroupSubsystem_linux.hpp" + +// Cgroups version 1 specific implementation + +class CgroupV1Controller: public CgroupController { + private: + /* mountinfo contents */ + char *_root; + char *_mount_point; + + /* Constructed subsystem directory */ + char *_path; + + public: + CgroupV1Controller(char *root, char *mountpoint) { + _root = os::strdup(root); + _mount_point = os::strdup(mountpoint); + _path = NULL; + } + + virtual void set_subsystem_path(char *cgroup_path); + char *subsystem_path() { return _path; } +}; + +class CgroupV1MemoryController: public CgroupV1Controller { + + public: + bool is_hierarchical() { return _uses_mem_hierarchy; } + void set_subsystem_path(char *cgroup_path); + private: + /* Some container runtimes set limits via cgroup + * hierarchy. If set to true consider also memory.stat + * file if everything else seems unlimited */ + bool _uses_mem_hierarchy; + jlong uses_mem_hierarchy(); + void set_hierarchical(bool value) { _uses_mem_hierarchy = value; } + + public: + CgroupV1MemoryController(char *root, char *mountpoint) : CgroupV1Controller(root, mountpoint) { + _uses_mem_hierarchy = false; + } + +}; + +class CgroupV1Subsystem: public CgroupSubsystem { + + public: + jlong read_memory_limit_in_bytes(); + jlong memory_and_swap_limit_in_bytes(); + jlong memory_soft_limit_in_bytes(); + jlong memory_usage_in_bytes(); + jlong memory_max_usage_in_bytes(); + char * cpu_cpuset_cpus(); + char * cpu_cpuset_memory_nodes(); + + int cpu_quota(); + int cpu_period(); + + int cpu_shares(); + + const char * container_type() { + return "cgroupv1"; + } + CachingCgroupController * memory_controller() { return _memory; } + CachingCgroupController * cpu_controller() { return _cpu; } + + private: + julong _unlimited_memory; + + /* controllers */ + CachingCgroupController* _memory = NULL; + CgroupV1Controller* _cpuset = NULL; + CachingCgroupController* _cpu = NULL; + CgroupV1Controller* _cpuacct = NULL; + + public: + CgroupV1Subsystem(CgroupV1Controller* cpuset, + CgroupV1Controller* cpu, + CgroupV1Controller* cpuacct, + CgroupV1MemoryController* memory) { + _cpuset = cpuset; + _cpu = new CachingCgroupController(cpu); + _cpuacct = cpuacct; + _memory = new CachingCgroupController(memory); + _unlimited_memory = (LONG_MAX / os::vm_page_size()) * os::vm_page_size(); + } +}; + +#endif // CGROUP_V1_SUBSYSTEM_LINUX_HPP diff -Nru openjdk-11-11.0.14+9/src/hotspot/os/linux/cgroupV2Subsystem_linux.cpp openjdk-11-11.0.16+8/src/hotspot/os/linux/cgroupV2Subsystem_linux.cpp --- openjdk-11-11.0.14+9/src/hotspot/os/linux/cgroupV2Subsystem_linux.cpp 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os/linux/cgroupV2Subsystem_linux.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,246 @@ +/* + * Copyright (c) 2020, 2022, Red Hat Inc. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#include "cgroupV2Subsystem_linux.hpp" + +/* cpu_shares + * + * Return the amount of cpu shares available to the process + * + * return: + * Share number (typically a number relative to 1024) + * (2048 typically expresses 2 CPUs worth of processing) + * -1 for no share setup + * OSCONTAINER_ERROR for not supported + */ +int CgroupV2Subsystem::cpu_shares() { + GET_CONTAINER_INFO(int, _unified, "/cpu.weight", + "Raw value for CPU Shares is: %d", "%d", shares); + // Convert default value of 100 to no shares setup + if (shares == 100) { + log_debug(os, container)("CPU Shares is: %d", -1); + return -1; + } + + // CPU shares (OCI) value needs to get translated into + // a proper Cgroups v2 value. See: + // https://github.com/containers/crun/blob/master/crun.1.md#cpu-controller + // + // Use the inverse of (x == OCI value, y == cgroupsv2 value): + // ((262142 * y - 1)/9999) + 2 = x + // + int x = 262142 * shares - 1; + double frac = x/9999.0; + x = ((int)frac) + 2; + log_trace(os, container)("Scaled CPU shares value is: %d", x); + // Since the scaled value is not precise, return the closest + // multiple of PER_CPU_SHARES for a more conservative mapping + if ( x <= PER_CPU_SHARES ) { + // will always map to 1 CPU + log_debug(os, container)("CPU Shares is: %d", x); + return x; + } + int f = x/PER_CPU_SHARES; + int lower_multiple = f * PER_CPU_SHARES; + int upper_multiple = (f + 1) * PER_CPU_SHARES; + int distance_lower = MAX2(lower_multiple, x) - MIN2(lower_multiple, x); + int distance_upper = MAX2(upper_multiple, x) - MIN2(upper_multiple, x); + x = distance_lower <= distance_upper ? lower_multiple : upper_multiple; + log_trace(os, container)("Closest multiple of %d of the CPU Shares value is: %d", PER_CPU_SHARES, x); + log_debug(os, container)("CPU Shares is: %d", x); + return x; +} + +/* cpu_quota + * + * Return the number of microseconds per period + * process is guaranteed to run. + * + * return: + * quota time in microseconds + * -1 for no quota + * OSCONTAINER_ERROR for not supported + */ +int CgroupV2Subsystem::cpu_quota() { + char * cpu_quota_str = cpu_quota_val(); + int limit = (int)limit_from_str(cpu_quota_str); + log_trace(os, container)("CPU Quota is: %d", limit); + return limit; +} + +char * CgroupV2Subsystem::cpu_cpuset_cpus() { + GET_CONTAINER_INFO_CPTR(cptr, _unified, "/cpuset.cpus", + "cpuset.cpus is: %s", "%1023s", cpus, 1024); + if (cpus == NULL) { + return NULL; + } + return os::strdup(cpus); +} + +char* CgroupV2Subsystem::cpu_quota_val() { + GET_CONTAINER_INFO_CPTR(cptr, _unified, "/cpu.max", + "Raw value for CPU quota is: %s", "%s %*d", quota, 1024); + if (quota == NULL) { + return NULL; + } + return os::strdup(quota); +} + +char * CgroupV2Subsystem::cpu_cpuset_memory_nodes() { + GET_CONTAINER_INFO_CPTR(cptr, _unified, "/cpuset.mems", + "cpuset.mems is: %s", "%1023s", mems, 1024); + if (mems == NULL) { + return NULL; + } + return os::strdup(mems); +} + +int CgroupV2Subsystem::cpu_period() { + GET_CONTAINER_INFO(int, _unified, "/cpu.max", + "CPU Period is: %d", "%*s %d", period); + return period; +} + +/* memory_usage_in_bytes + * + * Return the amount of used memory used by this cgroup and decendents + * + * return: + * memory usage in bytes or + * -1 for unlimited + * OSCONTAINER_ERROR for not supported + */ +jlong CgroupV2Subsystem::memory_usage_in_bytes() { + GET_CONTAINER_INFO(jlong, _unified, "/memory.current", + "Memory Usage is: " JLONG_FORMAT, JLONG_FORMAT, memusage); + return memusage; +} + +jlong CgroupV2Subsystem::memory_soft_limit_in_bytes() { + char* mem_soft_limit_str = mem_soft_limit_val(); + return limit_from_str(mem_soft_limit_str); +} + +jlong CgroupV2Subsystem::memory_max_usage_in_bytes() { + // Log this string at trace level so as to make tests happy. + log_trace(os, container)("Maximum Memory Usage is not supported."); + return OSCONTAINER_ERROR; // not supported +} + +char* CgroupV2Subsystem::mem_soft_limit_val() { + GET_CONTAINER_INFO_CPTR(cptr, _unified, "/memory.low", + "Memory Soft Limit is: %s", "%s", mem_soft_limit_str, 1024); + if (mem_soft_limit_str == NULL) { + return NULL; + } + return os::strdup(mem_soft_limit_str); +} + +// Note that for cgroups v2 the actual limits set for swap and +// memory live in two different files, memory.swap.max and memory.max +// respectively. In order to properly report a cgroup v1 like +// compound value we need to sum the two values. Setting a swap limit +// without also setting a memory limit is not allowed. +jlong CgroupV2Subsystem::memory_and_swap_limit_in_bytes() { + char* mem_swp_limit_str = mem_swp_limit_val(); + jlong swap_limit = limit_from_str(mem_swp_limit_str); + if (swap_limit >= 0) { + jlong memory_limit = read_memory_limit_in_bytes(); + assert(memory_limit >= 0, "swap limit without memory limit?"); + return memory_limit + swap_limit; + } + return swap_limit; +} + +char* CgroupV2Subsystem::mem_swp_limit_val() { + GET_CONTAINER_INFO_CPTR(cptr, _unified, "/memory.swap.max", + "Memory and Swap Limit is: %s", "%s", mem_swp_limit_str, 1024); + if (mem_swp_limit_str == NULL) { + return NULL; + } + return os::strdup(mem_swp_limit_str); +} + +/* memory_limit_in_bytes + * + * Return the limit of available memory for this process. + * + * return: + * memory limit in bytes or + * -1 for unlimited, OSCONTAINER_ERROR for an error + */ +jlong CgroupV2Subsystem::read_memory_limit_in_bytes() { + char * mem_limit_str = mem_limit_val(); + jlong limit = limit_from_str(mem_limit_str); + if (log_is_enabled(Trace, os, container)) { + if (limit == -1) { + log_trace(os, container)("Memory Limit is: Unlimited"); + } else { + log_trace(os, container)("Memory Limit is: " JLONG_FORMAT, limit); + } + } + return limit; +} + +jlong CgroupV2Subsystem::limit_from_str(char* limit_str) { + if (limit_str == NULL) { + return OSCONTAINER_ERROR; + } + // Unlimited memory in Cgroups V2 is the literal string 'max' + if (strcmp("max", limit_str) == 0) { + os::free(limit_str); + return (jlong)-1; + } + julong limit; + if (sscanf(limit_str, JULONG_FORMAT, &limit) != 1) { + os::free(limit_str); + return OSCONTAINER_ERROR; + } + os::free(limit_str); + return (jlong)limit; +} + +char* CgroupV2Subsystem::mem_limit_val() { + GET_CONTAINER_INFO_CPTR(cptr, _unified, "/memory.max", + "Raw value for memory limit is: %s", "%s", mem_limit_str, 1024); + if (mem_limit_str == NULL) { + return NULL; + } + return os::strdup(mem_limit_str); +} + +char* CgroupV2Controller::construct_path(char* mount_path, char *cgroup_path) { + char buf[MAXPATHLEN+1]; + int buflen; + strncpy(buf, mount_path, MAXPATHLEN); + buf[MAXPATHLEN] = '\0'; + buflen = strlen(buf); + if ((buflen + strlen(cgroup_path)) > MAXPATHLEN) { + return NULL; + } + strncat(buf, cgroup_path, MAXPATHLEN-buflen); + buf[MAXPATHLEN] = '\0'; + return os::strdup(buf); +} + diff -Nru openjdk-11-11.0.14+9/src/hotspot/os/linux/cgroupV2Subsystem_linux.hpp openjdk-11-11.0.16+8/src/hotspot/os/linux/cgroupV2Subsystem_linux.hpp --- openjdk-11-11.0.14+9/src/hotspot/os/linux/cgroupV2Subsystem_linux.hpp 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os/linux/cgroupV2Subsystem_linux.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2020, Red Hat Inc. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef CGROUP_V2_SUBSYSTEM_LINUX_HPP +#define CGROUP_V2_SUBSYSTEM_LINUX_HPP + +#include "cgroupSubsystem_linux.hpp" + +class CgroupV2Controller: public CgroupController { + private: + /* the mount path of the cgroup v2 hierarchy */ + char *_mount_path; + /* The cgroup path for the controller */ + char *_cgroup_path; + + /* Constructed full path to the subsystem directory */ + char *_path; + static char* construct_path(char* mount_path, char *cgroup_path); + + public: + CgroupV2Controller(char * mount_path, char *cgroup_path) { + _mount_path = mount_path; + _cgroup_path = os::strdup(cgroup_path); + _path = construct_path(mount_path, cgroup_path); + } + + char *subsystem_path() { return _path; } +}; + +class CgroupV2Subsystem: public CgroupSubsystem { + private: + /* One unified controller */ + CgroupController* _unified = NULL; + /* Caching wrappers for cpu/memory metrics */ + CachingCgroupController* _memory = NULL; + CachingCgroupController* _cpu = NULL; + + char *mem_limit_val(); + char *mem_swp_limit_val(); + char *mem_soft_limit_val(); + char *cpu_quota_val(); + jlong limit_from_str(char* limit_str); + + public: + CgroupV2Subsystem(CgroupController * unified) { + _unified = unified; + _memory = new CachingCgroupController(unified); + _cpu = new CachingCgroupController(unified); + } + + jlong read_memory_limit_in_bytes(); + int cpu_quota(); + int cpu_period(); + int cpu_shares(); + jlong memory_and_swap_limit_in_bytes(); + jlong memory_soft_limit_in_bytes(); + jlong memory_usage_in_bytes(); + jlong memory_max_usage_in_bytes(); + char * cpu_cpuset_cpus(); + char * cpu_cpuset_memory_nodes(); + const char * container_type() { + return "cgroupv2"; + } + CachingCgroupController * memory_controller() { return _memory; } + CachingCgroupController * cpu_controller() { return _cpu; } +}; + +#endif // CGROUP_V2_SUBSYSTEM_LINUX_HPP diff -Nru openjdk-11-11.0.14+9/src/hotspot/os/linux/osContainer_linux.cpp openjdk-11-11.0.16+8/src/hotspot/os/linux/osContainer_linux.cpp --- openjdk-11-11.0.14+9/src/hotspot/os/linux/osContainer_linux.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os/linux/osContainer_linux.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,256 +25,16 @@ #include #include #include -#include "utilities/globalDefinitions.hpp" -#include "memory/allocation.hpp" +#include "runtime/globals.hpp" #include "runtime/os.hpp" #include "logging/log.hpp" #include "osContainer_linux.hpp" +#include "cgroupSubsystem_linux.hpp" -#define PER_CPU_SHARES 1024 bool OSContainer::_is_initialized = false; bool OSContainer::_is_containerized = false; -int OSContainer::_active_processor_count = 1; -julong _unlimited_memory; - -class CgroupSubsystem: CHeapObj { - friend class OSContainer; - - - private: - volatile jlong _next_check_counter; - - /* mountinfo contents */ - char *_root; - char *_mount_point; - - /* Constructed subsystem directory */ - char *_path; - - public: - CgroupSubsystem(char *root, char *mountpoint) { - _root = os::strdup(root); - _mount_point = os::strdup(mountpoint); - _path = NULL; - _next_check_counter = min_jlong; - } - - /* - * Set directory to subsystem specific files based - * on the contents of the mountinfo and cgroup files. - */ - void set_subsystem_path(char *cgroup_path) { - char buf[MAXPATHLEN+1]; - if (_root != NULL && cgroup_path != NULL) { - if (strcmp(_root, "/") == 0) { - int buflen; - strncpy(buf, _mount_point, MAXPATHLEN); - buf[MAXPATHLEN-1] = '\0'; - if (strcmp(cgroup_path,"/") != 0) { - buflen = strlen(buf); - if ((buflen + strlen(cgroup_path)) > (MAXPATHLEN-1)) { - return; - } - strncat(buf, cgroup_path, MAXPATHLEN-buflen); - buf[MAXPATHLEN-1] = '\0'; - } - _path = os::strdup(buf); - } else { - if (strcmp(_root, cgroup_path) == 0) { - strncpy(buf, _mount_point, MAXPATHLEN); - buf[MAXPATHLEN-1] = '\0'; - _path = os::strdup(buf); - } else { - char *p = strstr(cgroup_path, _root); - if (p != NULL && p == _root) { - if (strlen(cgroup_path) > strlen(_root)) { - int buflen; - strncpy(buf, _mount_point, MAXPATHLEN); - buf[MAXPATHLEN-1] = '\0'; - buflen = strlen(buf); - if ((buflen + strlen(cgroup_path) - strlen(_root)) > (MAXPATHLEN-1)) { - return; - } - strncat(buf, cgroup_path + strlen(_root), MAXPATHLEN-buflen); - buf[MAXPATHLEN-1] = '\0'; - _path = os::strdup(buf); - } - } - } - } - } - } - - char *subsystem_path() { return _path; } - - bool cache_has_expired() { - return os::elapsed_counter() > _next_check_counter; - } - - void set_cache_expiry_time(jlong timeout) { - _next_check_counter = os::elapsed_counter() + timeout; - } -}; - -class CgroupMemorySubsystem: CgroupSubsystem { - friend class OSContainer; - - private: - /* Some container runtimes set limits via cgroup - * hierarchy. If set to true consider also memory.stat - * file if everything else seems unlimited */ - bool _uses_mem_hierarchy; - volatile jlong _memory_limit_in_bytes; - - public: - CgroupMemorySubsystem(char *root, char *mountpoint) : CgroupSubsystem::CgroupSubsystem(root, mountpoint) { - _uses_mem_hierarchy = false; - _memory_limit_in_bytes = -1; - - } - - bool is_hierarchical() { return _uses_mem_hierarchy; } - void set_hierarchical(bool value) { _uses_mem_hierarchy = value; } - - jlong memory_limit_in_bytes() { return _memory_limit_in_bytes; } - void set_memory_limit_in_bytes(jlong value) { - _memory_limit_in_bytes = value; - // max memory limit is unlikely to change, but we want to remain - // responsive to configuration changes. A very short grace time - // between re-read avoids excessive overhead during startup without - // significantly reducing the VMs ability to promptly react to reduced - // memory availability - set_cache_expiry_time(OSCONTAINER_CACHE_TIMEOUT); - } - -}; - -CgroupMemorySubsystem* memory = NULL; -CgroupSubsystem* cpuset = NULL; -CgroupSubsystem* cpu = NULL; -CgroupSubsystem* cpuacct = NULL; - -typedef char * cptr; - -PRAGMA_DIAG_PUSH -PRAGMA_FORMAT_NONLITERAL_IGNORED -template int subsystem_file_line_contents(CgroupSubsystem* c, - const char *filename, - const char *matchline, - const char *scan_fmt, - T returnval) { - FILE *fp = NULL; - char *p; - char file[MAXPATHLEN+1]; - char buf[MAXPATHLEN+1]; - char discard[MAXPATHLEN+1]; - bool found_match = false; - - if (c == NULL) { - log_debug(os, container)("subsystem_file_line_contents: CgroupSubsytem* is NULL"); - return OSCONTAINER_ERROR; - } - if (c->subsystem_path() == NULL) { - log_debug(os, container)("subsystem_file_line_contents: subsystem path is NULL"); - return OSCONTAINER_ERROR; - } - - strncpy(file, c->subsystem_path(), MAXPATHLEN); - file[MAXPATHLEN-1] = '\0'; - int filelen = strlen(file); - if ((filelen + strlen(filename)) > (MAXPATHLEN-1)) { - log_debug(os, container)("File path too long %s, %s", file, filename); - return OSCONTAINER_ERROR; - } - strncat(file, filename, MAXPATHLEN-filelen); - log_trace(os, container)("Path to %s is %s", filename, file); - fp = fopen(file, "r"); - if (fp != NULL) { - int err = 0; - while ((p = fgets(buf, MAXPATHLEN, fp)) != NULL) { - found_match = false; - if (matchline == NULL) { - // single-line file case - int matched = sscanf(p, scan_fmt, returnval); - found_match = (matched == 1); - } else { - // multi-line file case - if (strstr(p, matchline) != NULL) { - // discard matchline string prefix - int matched = sscanf(p, scan_fmt, discard, returnval); - found_match = (matched == 2); - } else { - continue; // substring not found - } - } - if (found_match) { - fclose(fp); - return 0; - } else { - err = 1; - log_debug(os, container)("Type %s not found in file %s", scan_fmt, file); - } - } - if (err == 0) { - log_debug(os, container)("Empty file %s", file); - } - } else { - log_debug(os, container)("Open of file %s failed, %s", file, os::strerror(errno)); - } - if (fp != NULL) - fclose(fp); - return OSCONTAINER_ERROR; -} -PRAGMA_DIAG_POP - -#define GET_CONTAINER_INFO(return_type, subsystem, filename, \ - logstring, scan_fmt, variable) \ - return_type variable; \ -{ \ - int err; \ - err = subsystem_file_line_contents(subsystem, \ - filename, \ - NULL, \ - scan_fmt, \ - &variable); \ - if (err != 0) \ - return (return_type) OSCONTAINER_ERROR; \ - \ - log_trace(os, container)(logstring, variable); \ -} - -#define GET_CONTAINER_INFO_CPTR(return_type, subsystem, filename, \ - logstring, scan_fmt, variable, bufsize) \ - char variable[bufsize]; \ -{ \ - int err; \ - err = subsystem_file_line_contents(subsystem, \ - filename, \ - NULL, \ - scan_fmt, \ - variable); \ - if (err != 0) \ - return (return_type) NULL; \ - \ - log_trace(os, container)(logstring, variable); \ -} - -#define GET_CONTAINER_INFO_LINE(return_type, subsystem, filename, \ - matchline, logstring, scan_fmt, variable) \ - return_type variable; \ -{ \ - int err; \ - err = subsystem_file_line_contents(subsystem, \ - filename, \ - matchline, \ - scan_fmt, \ - &variable); \ - if (err != 0) \ - return (return_type) OSCONTAINER_ERROR; \ - \ - log_trace(os, container)(logstring, variable); \ -} +CgroupSubsystem* cgroup_subsystem; /* init * @@ -282,12 +42,6 @@ * we are running under cgroup control. */ void OSContainer::init() { - FILE *mntinfo = NULL; - FILE *cgroup = NULL; - char buf[MAXPATHLEN+1]; - char tmproot[MAXPATHLEN+1]; - char tmpmount[MAXPATHLEN+1]; - char *p; jlong mem_limit; assert(!_is_initialized, "Initializing OSContainer more than once"); @@ -295,139 +49,19 @@ _is_initialized = true; _is_containerized = false; - _unlimited_memory = (LONG_MAX / os::vm_page_size()) * os::vm_page_size(); - log_trace(os, container)("OSContainer::init: Initializing Container Support"); if (!UseContainerSupport) { log_trace(os, container)("Container Support not enabled"); return; } - /* - * Find the cgroup mount point for memory and cpuset - * by reading /proc/self/mountinfo - * - * Example for docker: - * 219 214 0:29 /docker/7208cebd00fa5f2e342b1094f7bed87fa25661471a4637118e65f1c995be8a34 /sys/fs/cgroup/memory ro,nosuid,nodev,noexec,relatime - cgroup cgroup rw,memory - * - * Example for host: - * 34 28 0:29 / /sys/fs/cgroup/memory rw,nosuid,nodev,noexec,relatime shared:16 - cgroup cgroup rw,memory - */ - mntinfo = fopen("/proc/self/mountinfo", "r"); - if (mntinfo == NULL) { - log_debug(os, container)("Can't open /proc/self/mountinfo, %s", - os::strerror(errno)); - return; - } - - while ((p = fgets(buf, MAXPATHLEN, mntinfo)) != NULL) { - char tmpcgroups[MAXPATHLEN+1]; - char *cptr = tmpcgroups; - char *token; - - // mountinfo format is documented at https://www.kernel.org/doc/Documentation/filesystems/proc.txt - if (sscanf(p, "%*d %*d %*d:%*d %s %s %*[^-]- cgroup %*s %s", tmproot, tmpmount, tmpcgroups) != 3) { - continue; - } - while ((token = strsep(&cptr, ",")) != NULL) { - if (strcmp(token, "memory") == 0) { - memory = new CgroupMemorySubsystem(tmproot, tmpmount); - } else if (strcmp(token, "cpuset") == 0) { - cpuset = new CgroupSubsystem(tmproot, tmpmount); - } else if (strcmp(token, "cpu") == 0) { - cpu = new CgroupSubsystem(tmproot, tmpmount); - } else if (strcmp(token, "cpuacct") == 0) { - cpuacct= new CgroupSubsystem(tmproot, tmpmount); - } - } + cgroup_subsystem = CgroupSubsystemFactory::create(); + if (cgroup_subsystem == NULL) { + return; // Required subsystem files not found or other error } - - fclose(mntinfo); - - if (memory == NULL) { - log_debug(os, container)("Required cgroup memory subsystem not found"); - return; - } - if (cpuset == NULL) { - log_debug(os, container)("Required cgroup cpuset subsystem not found"); - return; - } - if (cpu == NULL) { - log_debug(os, container)("Required cgroup cpu subsystem not found"); - return; - } - if (cpuacct == NULL) { - log_debug(os, container)("Required cgroup cpuacct subsystem not found"); - return; - } - - /* - * Read /proc/self/cgroup and map host mount point to - * local one via /proc/self/mountinfo content above - * - * Docker example: - * 5:memory:/docker/6558aed8fc662b194323ceab5b964f69cf36b3e8af877a14b80256e93aecb044 - * - * Host example: - * 5:memory:/user.slice - * - * Construct a path to the process specific memory and cpuset - * cgroup directory. - * - * For a container running under Docker from memory example above - * the paths would be: - * - * /sys/fs/cgroup/memory - * - * For a Host from memory example above the path would be: - * - * /sys/fs/cgroup/memory/user.slice - * - */ - cgroup = fopen("/proc/self/cgroup", "r"); - if (cgroup == NULL) { - log_debug(os, container)("Can't open /proc/self/cgroup, %s", - os::strerror(errno)); - return; - } - - while ((p = fgets(buf, MAXPATHLEN, cgroup)) != NULL) { - char *controllers; - char *token; - char *base; - - /* Skip cgroup number */ - strsep(&p, ":"); - /* Get controllers and base */ - controllers = strsep(&p, ":"); - base = strsep(&p, "\n"); - - if (controllers == NULL) { - continue; - } - - while ((token = strsep(&controllers, ",")) != NULL) { - if (strcmp(token, "memory") == 0) { - memory->set_subsystem_path(base); - jlong hierarchy = uses_mem_hierarchy(); - if (hierarchy > 0) { - memory->set_hierarchical(true); - } - } else if (strcmp(token, "cpuset") == 0) { - cpuset->set_subsystem_path(base); - } else if (strcmp(token, "cpu") == 0) { - cpu->set_subsystem_path(base); - } else if (strcmp(token, "cpuacct") == 0) { - cpuacct->set_subsystem_path(base); - } - } - } - - fclose(cgroup); - // We need to update the amount of physical memory now that - // command line arguments have been processed. - if ((mem_limit = memory_limit_in_bytes()) > 0) { + // cgroup subsystem files have been processed. + if ((mem_limit = cgroup_subsystem->memory_limit_in_bytes()) > 0) { os::Linux::set_physical_memory(mem_limit); log_info(os, container)("Memory Limit is: " JLONG_FORMAT, mem_limit); } @@ -437,103 +71,23 @@ } const char * OSContainer::container_type() { - if (is_containerized()) { - return "cgroupv1"; - } else { - return NULL; - } + assert(cgroup_subsystem != NULL, "cgroup subsystem not available"); + return cgroup_subsystem->container_type(); } -/* uses_mem_hierarchy - * - * Return whether or not hierarchical cgroup accounting is being - * done. - * - * return: - * A number > 0 if true, or - * OSCONTAINER_ERROR for not supported - */ -jlong OSContainer::uses_mem_hierarchy() { - GET_CONTAINER_INFO(jlong, memory, "/memory.use_hierarchy", - "Use Hierarchy is: " JLONG_FORMAT, JLONG_FORMAT, use_hierarchy); - return use_hierarchy; -} - - -/* memory_limit_in_bytes - * - * Return the limit of available memory for this process. - * - * return: - * memory limit in bytes or - * -1 for unlimited - * OSCONTAINER_ERROR for not supported - */ jlong OSContainer::memory_limit_in_bytes() { - if (!memory->cache_has_expired()) { - return memory->memory_limit_in_bytes(); - } - jlong memory_limit = read_memory_limit_in_bytes(); - // Update CgroupMemorySubsystem to avoid re-reading container settings too often - memory->set_memory_limit_in_bytes(memory_limit); - return memory_limit; -} - -jlong OSContainer::read_memory_limit_in_bytes() { - GET_CONTAINER_INFO(julong, memory, "/memory.limit_in_bytes", - "Memory Limit is: " JULONG_FORMAT, JULONG_FORMAT, memlimit); - - if (memlimit >= _unlimited_memory) { - log_trace(os, container)("Non-Hierarchical Memory Limit is: Unlimited"); - if (memory->is_hierarchical()) { - const char* matchline = "hierarchical_memory_limit"; - const char* format = "%s " JULONG_FORMAT; - GET_CONTAINER_INFO_LINE(julong, memory, "/memory.stat", matchline, - "Hierarchical Memory Limit is: " JULONG_FORMAT, format, hier_memlimit) - if (hier_memlimit >= _unlimited_memory) { - log_trace(os, container)("Hierarchical Memory Limit is: Unlimited"); - } else { - return (jlong)hier_memlimit; - } - } - return (jlong)-1; - } - else { - return (jlong)memlimit; - } + assert(cgroup_subsystem != NULL, "cgroup subsystem not available"); + return cgroup_subsystem->memory_limit_in_bytes(); } jlong OSContainer::memory_and_swap_limit_in_bytes() { - GET_CONTAINER_INFO(julong, memory, "/memory.memsw.limit_in_bytes", - "Memory and Swap Limit is: " JULONG_FORMAT, JULONG_FORMAT, memswlimit); - if (memswlimit >= _unlimited_memory) { - log_trace(os, container)("Non-Hierarchical Memory and Swap Limit is: Unlimited"); - if (memory->is_hierarchical()) { - const char* matchline = "hierarchical_memsw_limit"; - const char* format = "%s " JULONG_FORMAT; - GET_CONTAINER_INFO_LINE(julong, memory, "/memory.stat", matchline, - "Hierarchical Memory and Swap Limit is : " JULONG_FORMAT, format, hier_memlimit) - if (hier_memlimit >= _unlimited_memory) { - log_trace(os, container)("Hierarchical Memory and Swap Limit is: Unlimited"); - } else { - return (jlong)hier_memlimit; - } - } - return (jlong)-1; - } else { - return (jlong)memswlimit; - } + assert(cgroup_subsystem != NULL, "cgroup subsystem not available"); + return cgroup_subsystem->memory_and_swap_limit_in_bytes(); } jlong OSContainer::memory_soft_limit_in_bytes() { - GET_CONTAINER_INFO(julong, memory, "/memory.soft_limit_in_bytes", - "Memory Soft Limit is: " JULONG_FORMAT, JULONG_FORMAT, memsoftlimit); - if (memsoftlimit >= _unlimited_memory) { - log_trace(os, container)("Memory Soft Limit is: Unlimited"); - return (jlong)-1; - } else { - return (jlong)memsoftlimit; - } + assert(cgroup_subsystem != NULL, "cgroup subsystem not available"); + return cgroup_subsystem->memory_soft_limit_in_bytes(); } /* memory_usage_in_bytes @@ -546,164 +100,41 @@ * OSCONTAINER_ERROR for not supported */ jlong OSContainer::memory_usage_in_bytes() { - GET_CONTAINER_INFO(jlong, memory, "/memory.usage_in_bytes", - "Memory Usage is: " JLONG_FORMAT, JLONG_FORMAT, memusage); - return memusage; + assert(cgroup_subsystem != NULL, "cgroup subsystem not available"); + return cgroup_subsystem->memory_usage_in_bytes(); } -/* memory_max_usage_in_bytes - * - * Return the maximum amount of used memory for this process. - * - * return: - * max memory usage in bytes or - * OSCONTAINER_ERROR for not supported - */ jlong OSContainer::memory_max_usage_in_bytes() { - GET_CONTAINER_INFO(jlong, memory, "/memory.max_usage_in_bytes", - "Maximum Memory Usage is: " JLONG_FORMAT, JLONG_FORMAT, memmaxusage); - return memmaxusage; -} - -/* active_processor_count - * - * Calculate an appropriate number of active processors for the - * VM to use based on these three inputs. - * - * cpu affinity - * cgroup cpu quota & cpu period - * cgroup cpu shares - * - * Algorithm: - * - * Determine the number of available CPUs from sched_getaffinity - * - * If user specified a quota (quota != -1), calculate the number of - * required CPUs by dividing quota by period. - * - * If shares are in effect (shares != -1), calculate the number - * of CPUs required for the shares by dividing the share value - * by PER_CPU_SHARES. - * - * All results of division are rounded up to the next whole number. - * - * If neither shares or quotas have been specified, return the - * number of active processors in the system. - * - * If both shares and quotas have been specified, the results are - * based on the flag PreferContainerQuotaForCPUCount. If true, - * return the quota value. If false return the smallest value - * between shares or quotas. - * - * If shares and/or quotas have been specified, the resulting number - * returned will never exceed the number of active processors. - * - * return: - * number of CPUs - */ -int OSContainer::active_processor_count() { - int quota_count = 0, share_count = 0; - int cpu_count, limit_count; - int result; - - // We use a cache with a timeout to avoid performing expensive - // computations in the event this function is called frequently. - // [See 8227006]. - if (!cpu->cache_has_expired()) { - log_trace(os, container)("OSContainer::active_processor_count (cached): %d", OSContainer::_active_processor_count); - return OSContainer::_active_processor_count; - } - - cpu_count = limit_count = os::Linux::active_processor_count(); - int quota = cpu_quota(); - int period = cpu_period(); - int share = cpu_shares(); - - if (quota > -1 && period > 0) { - quota_count = ceilf((float)quota / (float)period); - log_trace(os, container)("CPU Quota count based on quota/period: %d", quota_count); - } - if (share > -1) { - share_count = ceilf((float)share / (float)PER_CPU_SHARES); - log_trace(os, container)("CPU Share count based on shares: %d", share_count); - } - - // If both shares and quotas are setup results depend - // on flag PreferContainerQuotaForCPUCount. - // If true, limit CPU count to quota - // If false, use minimum of shares and quotas - if (quota_count !=0 && share_count != 0) { - if (PreferContainerQuotaForCPUCount) { - limit_count = quota_count; - } else { - limit_count = MIN2(quota_count, share_count); - } - } else if (quota_count != 0) { - limit_count = quota_count; - } else if (share_count != 0) { - limit_count = share_count; - } - - result = MIN2(cpu_count, limit_count); - log_trace(os, container)("OSContainer::active_processor_count: %d", result); - - // Update the value and reset the cache timeout - OSContainer::_active_processor_count = result; - cpu->set_cache_expiry_time(OSCONTAINER_CACHE_TIMEOUT); - - return result; + assert(cgroup_subsystem != NULL, "cgroup subsystem not available"); + return cgroup_subsystem->memory_max_usage_in_bytes(); } char * OSContainer::cpu_cpuset_cpus() { - GET_CONTAINER_INFO_CPTR(cptr, cpuset, "/cpuset.cpus", - "cpuset.cpus is: %s", "%1023s", cpus, 1024); - return os::strdup(cpus); + assert(cgroup_subsystem != NULL, "cgroup subsystem not available"); + return cgroup_subsystem->cpu_cpuset_cpus(); } char * OSContainer::cpu_cpuset_memory_nodes() { - GET_CONTAINER_INFO_CPTR(cptr, cpuset, "/cpuset.mems", - "cpuset.mems is: %s", "%1023s", mems, 1024); - return os::strdup(mems); + assert(cgroup_subsystem != NULL, "cgroup subsystem not available"); + return cgroup_subsystem->cpu_cpuset_memory_nodes(); +} + +int OSContainer::active_processor_count() { + assert(cgroup_subsystem != NULL, "cgroup subsystem not available"); + return cgroup_subsystem->active_processor_count(); } -/* cpu_quota - * - * Return the number of milliseconds per period - * process is guaranteed to run. - * - * return: - * quota time in milliseconds - * -1 for no quota - * OSCONTAINER_ERROR for not supported - */ int OSContainer::cpu_quota() { - GET_CONTAINER_INFO(int, cpu, "/cpu.cfs_quota_us", - "CPU Quota is: %d", "%d", quota); - return quota; + assert(cgroup_subsystem != NULL, "cgroup subsystem not available"); + return cgroup_subsystem->cpu_quota(); } int OSContainer::cpu_period() { - GET_CONTAINER_INFO(int, cpu, "/cpu.cfs_period_us", - "CPU Period is: %d", "%d", period); - return period; + assert(cgroup_subsystem != NULL, "cgroup subsystem not available"); + return cgroup_subsystem->cpu_period(); } -/* cpu_shares - * - * Return the amount of cpu shares available to the process - * - * return: - * Share number (typically a number relative to 1024) - * (2048 typically expresses 2 CPUs worth of processing) - * -1 for no share setup - * OSCONTAINER_ERROR for not supported - */ int OSContainer::cpu_shares() { - GET_CONTAINER_INFO(int, cpu, "/cpu.shares", - "CPU Shares is: %d", "%d", shares); - // Convert 1024 to no shares setup - if (shares == 1024) return -1; - - return shares; + assert(cgroup_subsystem != NULL, "cgroup subsystem not available"); + return cgroup_subsystem->cpu_shares(); } - diff -Nru openjdk-11-11.0.14+9/src/hotspot/os/linux/osContainer_linux.hpp openjdk-11-11.0.16+8/src/hotspot/os/linux/osContainer_linux.hpp --- openjdk-11-11.0.14+9/src/hotspot/os/linux/osContainer_linux.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os/linux/osContainer_linux.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,14 +41,11 @@ static bool _is_containerized; static int _active_processor_count; - static jlong read_memory_limit_in_bytes(); - public: static void init(); static inline bool is_containerized(); static const char * container_type(); - static jlong uses_mem_hierarchy(); static jlong memory_limit_in_bytes(); static jlong memory_and_swap_limit_in_bytes(); static jlong memory_soft_limit_in_bytes(); @@ -68,8 +65,7 @@ }; inline bool OSContainer::is_containerized() { - assert(_is_initialized, "OSContainer not initialized"); return _is_containerized; } -#endif // OS_LINUX_VM_OSCONTAINER_LINUX_HPP +#endif // OS_LINUX_OSCONTAINER_LINUX_HPP diff -Nru openjdk-11-11.0.14+9/src/hotspot/os/linux/os_linux.cpp openjdk-11-11.0.16+8/src/hotspot/os/linux/os_linux.cpp --- openjdk-11-11.0.14+9/src/hotspot/os/linux/os_linux.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os/linux/os_linux.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,6 @@ /* - * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2022 SAP SE. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -101,7 +102,6 @@ # include # include # include -# include # include # include # include @@ -133,6 +133,17 @@ // for timer info max values which include all bits #define ALL_64_BITS CONST64(0xFFFFFFFFFFFFFFFF) +#ifdef MUSL_LIBC +// dlvsym is not a part of POSIX +// and musl libc doesn't implement it. +static void *dlvsym(void *handle, + const char *symbol, + const char *version) { + // load the latest version of symbol + return dlsym(handle, symbol); +} +#endif + enum CoredumpFilterBit { FILE_BACKED_PVT_BIT = 1 << 2, FILE_BACKED_SHARED_BIT = 1 << 3, @@ -155,9 +166,14 @@ int os::Linux::_page_size = -1; bool os::Linux::_supports_fast_thread_cpu_time = false; uint32_t os::Linux::_os_version = 0; -const char * os::Linux::_glibc_version = NULL; +const char * os::Linux::_libc_version = NULL; const char * os::Linux::_libpthread_version = NULL; +#ifdef __GLIBC__ +os::Linux::mallinfo_func_t os::Linux::_mallinfo = NULL; +os::Linux::mallinfo2_func_t os::Linux::_mallinfo2 = NULL; +#endif // __GLIBC__ + static jlong initial_time_count=0; static int clock_tics_per_sec = 100; @@ -610,17 +626,24 @@ #error "glibc too old (< 2.3.2)" #endif +#ifdef MUSL_LIBC + // confstr() from musl libc returns EINVAL for + // _CS_GNU_LIBC_VERSION and _CS_GNU_LIBPTHREAD_VERSION + os::Linux::set_libc_version("musl - unknown"); + os::Linux::set_libpthread_version("musl - unknown"); +#else size_t n = confstr(_CS_GNU_LIBC_VERSION, NULL, 0); assert(n > 0, "cannot retrieve glibc version"); char *str = (char *)malloc(n, mtInternal); confstr(_CS_GNU_LIBC_VERSION, str, n); - os::Linux::set_glibc_version(str); + os::Linux::set_libc_version(str); n = confstr(_CS_GNU_LIBPTHREAD_VERSION, NULL, 0); assert(n > 0, "cannot retrieve pthread version"); str = (char *)malloc(n, mtInternal); confstr(_CS_GNU_LIBPTHREAD_VERSION, str, n); os::Linux::set_libpthread_version(str); +#endif } ///////////////////////////////////////////////////////////////////////////// @@ -745,14 +768,20 @@ thread->record_stack_base_and_size(); +#ifndef __GLIBC__ // Try to randomize the cache line index of hot stack frames. // This helps when threads of the same stack traces evict each other's // cache lines. The threads can be either from the same JVM instance, or // from different JVM instances. The benefit is especially true for // processors with hyperthreading technology. + // This code is not needed anymore in glibc because it has MULTI_PAGE_ALIASING + // and we did not see any degradation in performance without `alloca()`. static int counter = 0; int pid = os::current_process_id(); - alloca(((pid ^ counter++) & 7) * 128); + void *stackmem = alloca(((pid ^ counter++) & 7) * 128); + // Ensure the alloca result is used in a way that prevents the compiler from eliding it. + *(char *)stackmem = 1; +#endif thread->initialize_thread_current(); @@ -850,16 +879,21 @@ ThreadState state; { + ResourceMark rm; pthread_t tid; - int ret = pthread_create(&tid, &attr, (void* (*)(void*)) thread_native_entry, thread); + int ret = 0; + int limit = 3; + do { + ret = pthread_create(&tid, &attr, (void* (*)(void*)) thread_native_entry, thread); + } while (ret == EAGAIN && limit-- > 0); char buf[64]; if (ret == 0) { - log_info(os, thread)("Thread started (pthread id: " UINTX_FORMAT ", attributes: %s). ", - (uintx) tid, os::Posix::describe_pthread_attr(buf, sizeof(buf), &attr)); + log_info(os, thread)("Thread \"%s\" started (pthread id: " UINTX_FORMAT ", attributes: %s). ", + thread->name(), (uintx) tid, os::Posix::describe_pthread_attr(buf, sizeof(buf), &attr)); } else { - log_warning(os, thread)("Failed to start thread - pthread_create failed (%s) for attributes: %s.", - os::errno_name(ret), os::Posix::describe_pthread_attr(buf, sizeof(buf), &attr)); + log_warning(os, thread)("Failed to start thread \"%s\" - pthread_create failed (%s) for attributes: %s.", + thread->name(), os::errno_name(ret), os::Posix::describe_pthread_attr(buf, sizeof(buf), &attr)); // Log some OS information which might explain why creating the thread failed. log_info(os, thread)("Number of threads approx. running in the VM: %d", Threads::number_of_threads()); LogStream st(Log(os, thread)::info()); @@ -2272,7 +2306,7 @@ void os::Linux::print_libversion_info(outputStream* st) { // libc, pthread st->print("libc:"); - st->print("%s ", os::Linux::glibc_version()); + st->print("%s ", os::Linux::libc_version()); st->print("%s ", os::Linux::libpthread_version()); st->cr(); } @@ -2299,6 +2333,34 @@ "/sys/kernel/mm/transparent_hugepage/defrag", st); } +#ifdef __GLIBC__ +// For Glibc, print a one-liner with the malloc tunables. +// Most important and popular is MALLOC_ARENA_MAX, but we are +// thorough and print them all. +static void print_glibc_malloc_tunables(outputStream* st) { + static const char* var[] = { + // the new variant + "GLIBC_TUNABLES", + // legacy variants + "MALLOC_CHECK_", "MALLOC_TOP_PAD_", "MALLOC_PERTURB_", + "MALLOC_MMAP_THRESHOLD_", "MALLOC_TRIM_THRESHOLD_", + "MALLOC_MMAP_MAX_", "MALLOC_ARENA_TEST", "MALLOC_ARENA_MAX", + NULL}; + st->print("glibc malloc tunables: "); + bool printed = false; + for (int i = 0; var[i] != NULL; i ++) { + const char* const val = ::getenv(var[i]); + if (val != NULL) { + st->print("%s%s=%s", (printed ? ", " : ""), var[i], val); + printed = true; + } + } + if (!printed) { + st->print("(default)"); + } +} +#endif // __GLIBC__ + void os::Linux::print_process_memory_info(outputStream* st) { st->print_cr("Process Memory:"); @@ -2342,24 +2404,37 @@ st->print_cr("Could not open /proc/self/status to get process memory related information"); } - // Print glibc outstanding allocations. - // (note: there is no implementation of mallinfo for muslc) + // glibc only: + // - Print outstanding allocations using mallinfo + // - Print glibc tunables #ifdef __GLIBC__ - struct mallinfo mi = ::mallinfo(); - - // mallinfo is an old API. Member names mean next to nothing and, beyond that, are int. - // So values may have wrapped around. Still useful enough to see how much glibc thinks - // we allocated. - const size_t total_allocated = (size_t)(unsigned)mi.uordblks; - st->print("C-Heap outstanding allocations: " SIZE_FORMAT "K", total_allocated / K); - // Since mallinfo members are int, glibc values may have wrapped. Warn about this. - if ((vmrss * K) > UINT_MAX && (vmrss * K) > (total_allocated + UINT_MAX)) { - st->print(" (may have wrapped)"); + size_t total_allocated = 0; + size_t free_retained = 0; + bool might_have_wrapped = false; + if (_mallinfo2 != NULL) { + struct glibc_mallinfo2 mi = _mallinfo2(); + total_allocated = mi.uordblks + mi.hblkhd; + free_retained = mi.fordblks; + } else if (_mallinfo != NULL) { + // mallinfo is an old API. Member names mean next to nothing and, beyond that, are 32-bit signed. + // So for larger footprints the values may have wrapped around. We try to detect this here: if the + // process whole resident set size is smaller than 4G, malloc footprint has to be less than that + // and the numbers are reliable. + struct glibc_mallinfo mi = _mallinfo(); + total_allocated = (size_t)(unsigned)mi.uordblks + (size_t)(unsigned)mi.hblkhd; + free_retained = (size_t)(unsigned)mi.fordblks; + // Since mallinfo members are int, glibc values may have wrapped. Warn about this. + might_have_wrapped = (vmrss * K) > UINT_MAX && (vmrss * K) > (total_allocated + UINT_MAX); + } + if (_mallinfo2 != NULL || _mallinfo != NULL) { + st->print_cr("C-Heap outstanding allocations: " SIZE_FORMAT "K, retained: " SIZE_FORMAT "K%s", + total_allocated / K, free_retained / K, + might_have_wrapped ? " (may have wrapped)" : ""); } + // Tunables + print_glibc_malloc_tunables(st); st->cr(); - -#endif // __GLIBC__ - +#endif } void os::Linux::print_ld_preload_file(outputStream* st) { @@ -2384,46 +2459,91 @@ st->print("container (cgroup) information:\n"); const char *p_ct = OSContainer::container_type(); - st->print("container_type: %s\n", p_ct != NULL ? p_ct : "failed"); + st->print("container_type: %s\n", p_ct != NULL ? p_ct : "not supported"); char *p = OSContainer::cpu_cpuset_cpus(); - st->print("cpu_cpuset_cpus: %s\n", p != NULL ? p : "failed"); + st->print("cpu_cpuset_cpus: %s\n", p != NULL ? p : "not supported"); free(p); p = OSContainer::cpu_cpuset_memory_nodes(); - st->print("cpu_memory_nodes: %s\n", p != NULL ? p : "failed"); + st->print("cpu_memory_nodes: %s\n", p != NULL ? p : "not supported"); free(p); int i = OSContainer::active_processor_count(); + st->print("active_processor_count: "); if (i > 0) { - st->print("active_processor_count: %d\n", i); + if (ActiveProcessorCount > 0) { + st->print_cr("%d, but overridden by -XX:ActiveProcessorCount %d", i, ActiveProcessorCount); + } else { + st->print_cr("%d", i); + } } else { - st->print("active_processor_count: failed\n"); + st->print("not supported\n"); } i = OSContainer::cpu_quota(); - st->print("cpu_quota: %d\n", i); + st->print("cpu_quota: "); + if (i > 0) { + st->print("%d\n", i); + } else { + st->print("%s\n", i == OSCONTAINER_ERROR ? "not supported" : "no quota"); + } i = OSContainer::cpu_period(); - st->print("cpu_period: %d\n", i); + st->print("cpu_period: "); + if (i > 0) { + st->print("%d\n", i); + } else { + st->print("%s\n", i == OSCONTAINER_ERROR ? "not supported" : "no period"); + } i = OSContainer::cpu_shares(); - st->print("cpu_shares: %d\n", i); + st->print("cpu_shares: "); + if (i > 0) { + st->print("%d\n", i); + } else { + st->print("%s\n", i == OSCONTAINER_ERROR ? "not supported" : "no shares"); + } jlong j = OSContainer::memory_limit_in_bytes(); - st->print("memory_limit_in_bytes: " JLONG_FORMAT "\n", j); + st->print("memory_limit_in_bytes: "); + if (j > 0) { + st->print(JLONG_FORMAT "\n", j); + } else { + st->print("%s\n", j == OSCONTAINER_ERROR ? "not supported" : "unlimited"); + } j = OSContainer::memory_and_swap_limit_in_bytes(); - st->print("memory_and_swap_limit_in_bytes: " JLONG_FORMAT "\n", j); + st->print("memory_and_swap_limit_in_bytes: "); + if (j > 0) { + st->print(JLONG_FORMAT "\n", j); + } else { + st->print("%s\n", j == OSCONTAINER_ERROR ? "not supported" : "unlimited"); + } j = OSContainer::memory_soft_limit_in_bytes(); - st->print("memory_soft_limit_in_bytes: " JLONG_FORMAT "\n", j); + st->print("memory_soft_limit_in_bytes: "); + if (j > 0) { + st->print(JLONG_FORMAT "\n", j); + } else { + st->print("%s\n", j == OSCONTAINER_ERROR ? "not supported" : "unlimited"); + } j = OSContainer::OSContainer::memory_usage_in_bytes(); - st->print("memory_usage_in_bytes: " JLONG_FORMAT "\n", j); + st->print("memory_usage_in_bytes: "); + if (j > 0) { + st->print(JLONG_FORMAT "\n", j); + } else { + st->print("%s\n", j == OSCONTAINER_ERROR ? "not supported" : "unlimited"); + } j = OSContainer::OSContainer::memory_max_usage_in_bytes(); - st->print("memory_max_usage_in_bytes: " JLONG_FORMAT "\n", j); + st->print("memory_max_usage_in_bytes: "); + if (j > 0) { + st->print(JLONG_FORMAT "\n", j); + } else { + st->print("%s\n", j == OSCONTAINER_ERROR ? "not supported" : "unlimited"); + } st->cr(); } @@ -3214,12 +3334,32 @@ return dlvsym(handle, name, "libnuma_1.2"); } +// Check numa dependent syscalls +static bool numa_syscall_check() { + // NUMA APIs depend on several syscalls. E.g., get_mempolicy is required for numa_get_membind and + // numa_get_interleave_mask. But these dependent syscalls can be unsupported for various reasons. + // Especially in dockers, get_mempolicy is not allowed with the default configuration. So it's necessary + // to check whether the syscalls are available. Currently, only get_mempolicy is checked since checking + // others like mbind would cause unexpected side effects. +#ifdef SYS_get_mempolicy + int dummy = 0; + if (syscall(SYS_get_mempolicy, &dummy, NULL, 0, (void*)&dummy, 3) == -1) { + return false; + } +#endif + + return true; +} + bool os::Linux::libnuma_init() { - if (sched_getcpu() != -1) { // Requires sched_getcpu() support + // Requires sched_getcpu() and numa dependent syscalls support + if ((sched_getcpu() != -1) && numa_syscall_check()) { void *handle = dlopen("libnuma.so.1", RTLD_LAZY); if (handle != NULL) { set_numa_node_to_cpus(CAST_TO_FN_PTR(numa_node_to_cpus_func_t, libnuma_dlsym(handle, "numa_node_to_cpus"))); + set_numa_node_to_cpus_v2(CAST_TO_FN_PTR(numa_node_to_cpus_v2_func_t, + libnuma_v2_dlsym(handle, "numa_node_to_cpus"))); set_numa_max_node(CAST_TO_FN_PTR(numa_max_node_func_t, libnuma_dlsym(handle, "numa_max_node"))); set_numa_num_configured_nodes(CAST_TO_FN_PTR(numa_num_configured_nodes_func_t, @@ -3350,6 +3490,26 @@ FREE_C_HEAP_ARRAY(unsigned long, cpu_map); } +int os::Linux::numa_node_to_cpus(int node, unsigned long *buffer, int bufferlen) { + // use the latest version of numa_node_to_cpus if available + if (_numa_node_to_cpus_v2 != NULL) { + + // libnuma bitmask struct + struct bitmask { + unsigned long size; /* number of bits in the map */ + unsigned long *maskp; + }; + + struct bitmask mask; + mask.maskp = (unsigned long *)buffer; + mask.size = bufferlen * 8; + return _numa_node_to_cpus_v2(node, &mask); + } else if (_numa_node_to_cpus != NULL) { + return _numa_node_to_cpus(node, buffer, bufferlen); + } + return -1; +} + int os::Linux::get_node_by_cpu(int cpu_id) { if (cpu_to_node() != NULL && cpu_id >= 0 && cpu_id < cpu_to_node()->length()) { return cpu_to_node()->at(cpu_id); @@ -3361,6 +3521,7 @@ GrowableArray* os::Linux::_nindex_to_node; os::Linux::sched_getcpu_func_t os::Linux::_sched_getcpu; os::Linux::numa_node_to_cpus_func_t os::Linux::_numa_node_to_cpus; +os::Linux::numa_node_to_cpus_v2_func_t os::Linux::_numa_node_to_cpus_v2; os::Linux::numa_max_node_func_t os::Linux::_numa_max_node; os::Linux::numa_num_configured_nodes_func_t os::Linux::_numa_num_configured_nodes; os::Linux::numa_available_func_t os::Linux::_numa_available; @@ -5225,6 +5386,40 @@ extern void report_error(char* file_name, int line_no, char* title, char* format, ...); +// Some linux distributions (notably: Alpine Linux) include the +// grsecurity in the kernel. Of particular interest from a JVM perspective +// is PaX (https://pax.grsecurity.net/), which adds some security features +// related to page attributes. Specifically, the MPROTECT PaX functionality +// (https://pax.grsecurity.net/docs/mprotect.txt) prevents dynamic +// code generation by disallowing a (previously) writable page to be +// marked as executable. This is, of course, exactly what HotSpot does +// for both JIT compiled method, as well as for stubs, adapters, etc. +// +// Instead of crashing "lazily" when trying to make a page executable, +// this code probes for the presence of PaX and reports the failure +// eagerly. +static void check_pax(void) { + // Zero doesn't generate code dynamically, so no need to perform the PaX check +#ifndef ZERO + size_t size = os::Linux::page_size(); + + void* p = ::mmap(NULL, size, PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); + if (p == MAP_FAILED) { + log_debug(os)("os_linux.cpp: check_pax: mmap failed (%s)" , os::strerror(errno)); + vm_exit_out_of_memory(size, OOM_MMAP_ERROR, "failed to allocate memory for PaX check."); + } + + int res = ::mprotect(p, size, PROT_WRITE|PROT_EXEC); + if (res == -1) { + log_debug(os)("os_linux.cpp: check_pax: mprotect failed (%s)" , os::strerror(errno)); + vm_exit_during_initialization( + "Failed to mark memory page as executable - check if grsecurity/PaX is enabled"); + } + + ::munmap(p, size); +#endif +} + // this is called _before_ most of the global arguments have been parsed void os::init(void) { char dummy; // used to get a guess on initial stack address @@ -5244,6 +5439,11 @@ Linux::initialize_os_info(); +#ifdef __GLIBC__ + Linux::_mallinfo = CAST_TO_FN_PTR(Linux::mallinfo_func_t, dlsym(RTLD_DEFAULT, "mallinfo")); + Linux::_mallinfo2 = CAST_TO_FN_PTR(Linux::mallinfo2_func_t, dlsym(RTLD_DEFAULT, "mallinfo2")); +#endif // __GLIBC__ + os::Linux::CPUPerfTicks pticks; bool res = os::Linux::get_tick_information(&pticks, -1); @@ -5263,6 +5463,8 @@ Linux::_pthread_setname_np = (int(*)(pthread_t, const char*))dlsym(RTLD_DEFAULT, "pthread_setname_np"); + check_pax(); + os::Posix::init(); } @@ -5317,7 +5519,7 @@ Linux::libpthread_init(); Linux::sched_getcpu_init(); log_info(os)("HotSpot is running with %s, %s", - Linux::glibc_version(), Linux::libpthread_version()); + Linux::libc_version(), Linux::libpthread_version()); if (UseNUMA) { if (!Linux::libnuma_init()) { diff -Nru openjdk-11-11.0.14+9/src/hotspot/os/linux/os_linux.hpp openjdk-11-11.0.16+8/src/hotspot/os/linux/os_linux.hpp --- openjdk-11-11.0.14+9/src/hotspot/os/linux/os_linux.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os/linux/os_linux.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,6 +31,7 @@ static bool zero_page_read_protected() { return true; } class Linux { + friend class CgroupSubsystem; friend class os; friend class OSContainer; friend class TestReserveMemorySpecial; @@ -48,7 +49,7 @@ static address _initial_thread_stack_bottom; static uintptr_t _initial_thread_stack_size; - static const char *_glibc_version; + static const char *_libc_version; static const char *_libpthread_version; static bool _supports_fast_thread_cpu_time; @@ -83,7 +84,7 @@ static int commit_memory_impl(char* addr, size_t bytes, size_t alignment_hint, bool exec); - static void set_glibc_version(const char *s) { _glibc_version = s; } + static void set_libc_version(const char *s) { _libc_version = s; } static void set_libpthread_version(const char *s) { _libpthread_version = s; } static void rebuild_cpu_to_node_map(); @@ -182,7 +183,7 @@ static bool chained_handler(int sig, siginfo_t* siginfo, void* context); // GNU libc and libpthread version strings - static const char *glibc_version() { return _glibc_version; } + static const char *libc_version() { return _libc_version; } static const char *libpthread_version() { return _libpthread_version; } static void libpthread_init(); @@ -234,6 +235,7 @@ typedef int (*sched_getcpu_func_t)(void); typedef int (*numa_node_to_cpus_func_t)(int node, unsigned long *buffer, int bufferlen); + typedef int (*numa_node_to_cpus_v2_func_t)(int node, void *mask); typedef int (*numa_max_node_func_t)(void); typedef int (*numa_num_configured_nodes_func_t)(void); typedef int (*numa_available_func_t)(void); @@ -248,6 +250,7 @@ static sched_getcpu_func_t _sched_getcpu; static numa_node_to_cpus_func_t _numa_node_to_cpus; + static numa_node_to_cpus_v2_func_t _numa_node_to_cpus_v2; static numa_max_node_func_t _numa_max_node; static numa_num_configured_nodes_func_t _numa_num_configured_nodes; static numa_available_func_t _numa_available; @@ -264,6 +267,7 @@ static void set_sched_getcpu(sched_getcpu_func_t func) { _sched_getcpu = func; } static void set_numa_node_to_cpus(numa_node_to_cpus_func_t func) { _numa_node_to_cpus = func; } + static void set_numa_node_to_cpus_v2(numa_node_to_cpus_v2_func_t func) { _numa_node_to_cpus_v2 = func; } static void set_numa_max_node(numa_max_node_func_t func) { _numa_max_node = func; } static void set_numa_num_configured_nodes(numa_num_configured_nodes_func_t func) { _numa_num_configured_nodes = func; } static void set_numa_available(numa_available_func_t func) { _numa_available = func; } @@ -278,11 +282,44 @@ static void set_numa_all_nodes_ptr(struct bitmask **ptr) { _numa_all_nodes_ptr = (ptr == NULL ? NULL : *ptr); } static void set_numa_nodes_ptr(struct bitmask **ptr) { _numa_nodes_ptr = (ptr == NULL ? NULL : *ptr); } static int sched_getcpu_syscall(void); + +#ifdef __GLIBC__ + struct glibc_mallinfo { + int arena; + int ordblks; + int smblks; + int hblks; + int hblkhd; + int usmblks; + int fsmblks; + int uordblks; + int fordblks; + int keepcost; + }; + + struct glibc_mallinfo2 { + size_t arena; + size_t ordblks; + size_t smblks; + size_t hblks; + size_t hblkhd; + size_t usmblks; + size_t fsmblks; + size_t uordblks; + size_t fordblks; + size_t keepcost; + }; + + typedef struct glibc_mallinfo (*mallinfo_func_t)(void); + typedef struct glibc_mallinfo2 (*mallinfo2_func_t)(void); + + static mallinfo_func_t _mallinfo; + static mallinfo2_func_t _mallinfo2; +#endif + public: static int sched_getcpu() { return _sched_getcpu != NULL ? _sched_getcpu() : -1; } - static int numa_node_to_cpus(int node, unsigned long *buffer, int bufferlen) { - return _numa_node_to_cpus != NULL ? _numa_node_to_cpus(node, buffer, bufferlen) : -1; - } + static int numa_node_to_cpus(int node, unsigned long *buffer, int bufferlen); static int numa_max_node() { return _numa_max_node != NULL ? _numa_max_node() : -1; } static int numa_num_configured_nodes() { return _numa_num_configured_nodes != NULL ? _numa_num_configured_nodes() : -1; diff -Nru openjdk-11-11.0.14+9/src/hotspot/os/windows/os_windows.cpp openjdk-11-11.0.16+8/src/hotspot/os/windows/os_windows.cpp --- openjdk-11-11.0.14+9/src/hotspot/os/windows/os_windows.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os/windows/os_windows.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -438,16 +438,6 @@ static unsigned __stdcall thread_native_entry(Thread* thread) { thread->record_stack_base_and_size(); - - // Try to randomize the cache line index of hot stack frames. - // This helps when threads of the same stack traces evict each other's - // cache lines. The threads can be either from the same JVM instance, or - // from different JVM instances. The benefit is especially true for - // processors with hyperthreading technology. - static int counter = 0; - int pid = os::current_process_id(); - _alloca(((pid ^ counter++) & 7) * 128); - thread->initialize_thread_current(); OSThread* osthr = thread->osthread(); @@ -610,6 +600,9 @@ return false; } + // Initial state is ALLOCATED but not INITIALIZED + osthread->set_state(ALLOCATED); + // Initialize support for Java interrupts HANDLE interrupt_event = CreateEvent(NULL, true, false, NULL); if (interrupt_event == NULL) { @@ -666,21 +659,27 @@ // flag appears to work with _beginthredex() as well. const unsigned initflag = CREATE_SUSPENDED | STACK_SIZE_PARAM_IS_A_RESERVATION; - HANDLE thread_handle = - (HANDLE)_beginthreadex(NULL, - (unsigned)stack_size, - (unsigned (__stdcall *)(void*)) thread_native_entry, - thread, - initflag, - &thread_id); + HANDLE thread_handle; + int limit = 3; + do { + thread_handle = + (HANDLE)_beginthreadex(NULL, + (unsigned)stack_size, + (unsigned (__stdcall *)(void*)) thread_native_entry, + thread, + initflag, + &thread_id); + } while (thread_handle == NULL && errno == EAGAIN && limit-- > 0); + ResourceMark rm; char buf[64]; if (thread_handle != NULL) { - log_info(os, thread)("Thread started (tid: %u, attributes: %s)", - thread_id, describe_beginthreadex_attributes(buf, sizeof(buf), stack_size, initflag)); + log_info(os, thread)("Thread \"%s\" started (tid: %u, attributes: %s)", + thread->name(), thread_id, + describe_beginthreadex_attributes(buf, sizeof(buf), stack_size, initflag)); } else { - log_warning(os, thread)("Failed to start thread - _beginthreadex failed (%s) for attributes: %s.", - os::errno_name(errno), describe_beginthreadex_attributes(buf, sizeof(buf), stack_size, initflag)); + log_warning(os, thread)("Failed to start thread \"%s\" - _beginthreadex failed (%s) for attributes: %s.", + thread->name(), os::errno_name(errno), describe_beginthreadex_attributes(buf, sizeof(buf), stack_size, initflag)); // Log some OS information which might explain why creating the thread failed. log_info(os, thread)("Number of threads approx. running in the VM: %d", Threads::number_of_threads()); LogStream st(Log(os, thread)::info()); @@ -701,7 +700,7 @@ osthread->set_thread_handle(thread_handle); osthread->set_thread_id(thread_id); - // Initial thread state is INITIALIZED, not SUSPENDED + // Thread state now is INITIALIZED, not SUSPENDED osthread->set_state(INITIALIZED); // The thread is returned suspended (in state INITIALIZED), and is started higher up in the call chain diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/aix_ppc/orderAccess_aix_ppc.hpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/aix_ppc/orderAccess_aix_ppc.hpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/aix_ppc/orderAccess_aix_ppc.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/aix_ppc/orderAccess_aix_ppc.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -82,7 +82,7 @@ struct OrderAccess::PlatformOrderedLoad { template - T operator()(const volatile T* p) const { register T t = Atomic::load(p); inlasm_acquire_reg(t); return t; } + T operator()(const volatile T* p) const { T t = Atomic::load(p); inlasm_acquire_reg(t); return t; } }; #undef inlasm_sync diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/aix_ppc/os_aix_ppc.cpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/aix_ppc/os_aix_ppc.cpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/aix_ppc/os_aix_ppc.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/aix_ppc/os_aix_ppc.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -152,7 +152,9 @@ // method returns the Java sender of the current frame. *fr = os::fetch_frame_from_context(uc); if (!fr->is_first_java_frame()) { - assert(fr->safe_for_sender(thread), "Safety check"); + // get_frame_at_stack_banging_point() is only called when we + // have well defined stacks so java_sender() calls do not need + // to assert safe_for_sender() first. *fr = fr->java_sender(); } } else { @@ -169,7 +171,7 @@ address lr = ucontext_get_lr(uc); *fr = frame(sp, lr); if (!fr->is_java_frame()) { - assert(fr->safe_for_sender(thread), "Safety check"); + // See java_sender() comment above. assert(!fr->is_first_frame(), "Safety check"); *fr = fr->java_sender(); } diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/aix_ppc/prefetch_aix_ppc.inline.hpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/aix_ppc/prefetch_aix_ppc.inline.hpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/aix_ppc/prefetch_aix_ppc.inline.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/aix_ppc/prefetch_aix_ppc.inline.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -43,7 +43,7 @@ } inline void Prefetch::write(void *loc, intx interval) { -#if !defined(USE_XLC_PREFETCH_WRITE_BUILTIN) +#if !defined(USE_XLC_BUILTINS) __asm__ __volatile__ ( " dcbtst 0, %0 \n" : diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/atomic_bsd_aarch64.hpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/atomic_bsd_aarch64.hpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/atomic_bsd_aarch64.hpp 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/atomic_bsd_aarch64.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,82 @@ +/* + * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2019, Red Hat Inc. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef OS_CPU_BSD_AARCH64_VM_ATOMIC_BSD_AARCH64_HPP +#define OS_CPU_BSD_AARCH64_VM_ATOMIC_BSD_AARCH64_HPP + +// Implementation of class atomic +// Note that memory_order_conservative requires a full barrier after atomic stores. +// See https://patchwork.kernel.org/patch/3575821/ + +#define FULL_MEM_BARRIER __sync_synchronize() +#define READ_MEM_BARRIER __atomic_thread_fence(__ATOMIC_ACQUIRE); +#define WRITE_MEM_BARRIER __atomic_thread_fence(__ATOMIC_RELEASE); + +template +struct Atomic::PlatformAdd + : Atomic::AddAndFetch > +{ + template + D add_and_fetch(I add_value, D volatile* dest, atomic_memory_order order) const { + D res = __atomic_add_fetch(dest, add_value, __ATOMIC_RELEASE); + FULL_MEM_BARRIER; + return res; + } +}; + +template +template +inline T Atomic::PlatformXchg::operator()(T exchange_value, + T volatile* dest, + atomic_memory_order order) const { + STATIC_ASSERT(byte_size == sizeof(T)); + T res = __atomic_exchange_n(dest, exchange_value, __ATOMIC_RELEASE); + FULL_MEM_BARRIER; + return res; +} + +template +template +inline T Atomic::PlatformCmpxchg::operator()(T exchange_value, + T volatile* dest, + T compare_value, + atomic_memory_order order) const { + STATIC_ASSERT(byte_size == sizeof(T)); + if (order == memory_order_relaxed) { + T value = compare_value; + __atomic_compare_exchange(dest, &value, &exchange_value, /*weak*/false, + __ATOMIC_RELAXED, __ATOMIC_RELAXED); + return value; + } else { + T value = compare_value; + FULL_MEM_BARRIER; + __atomic_compare_exchange(dest, &value, &exchange_value, /*weak*/false, + __ATOMIC_RELAXED, __ATOMIC_RELAXED); + FULL_MEM_BARRIER; + return value; + } +} + +#endif // OS_CPU_BSD_AARCH64_VM_ATOMIC_BSD_AARCH64_HPP diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/bytes_bsd_aarch64.inline.hpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/bytes_bsd_aarch64.inline.hpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/bytes_bsd_aarch64.inline.hpp 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/bytes_bsd_aarch64.inline.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,55 @@ +/* + * Copyright (c) 1999, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, Red Hat Inc. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef OS_CPU_BSD_AARCH64_VM_BYTES_BSD_AARCH64_INLINE_HPP +#define OS_CPU_BSD_AARCH64_VM_BYTES_BSD_AARCH64_INLINE_HPP + +#ifdef __APPLE__ +#include +#endif + +#if defined(__APPLE__) +# define bswap_16(x) OSSwapInt16(x) +# define bswap_32(x) OSSwapInt32(x) +# define bswap_64(x) OSSwapInt64(x) +#else +# error "Unimplemented" +#endif + +// Efficient swapping of data bytes from Java byte +// ordering to native byte ordering and vice versa. +inline u2 Bytes::swap_u2(u2 x) { + return bswap_16(x); +} + +inline u4 Bytes::swap_u4(u4 x) { + return bswap_32(x); +} + +inline u8 Bytes::swap_u8(u8 x) { + return bswap_64(x); +} + +#endif // OS_CPU_BSD_AARCH64_VM_BYTES_BSD_AARCH64_INLINE_HPP diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/copy_bsd_aarch64.inline.hpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/copy_bsd_aarch64.inline.hpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/copy_bsd_aarch64.inline.hpp 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/copy_bsd_aarch64.inline.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,188 @@ +/* + * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, Red Hat Inc. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef OS_CPU_BSD_AARCH64_VM_COPY_BSD_AARCH64_INLINE_HPP +#define OS_CPU_BSD_AARCH64_VM_COPY_BSD_AARCH64_INLINE_HPP + +#define COPY_SMALL(from, to, count) \ +{ \ + long tmp0, tmp1, tmp2, tmp3; \ + long tmp4, tmp5, tmp6, tmp7; \ + __asm volatile( \ +" adr %[t0], 0f;\n" \ +" add %[t0], %[t0], %[cnt], lsl #5;\n" \ +" br %[t0];\n" \ +" .align 5;\n" \ +"0:" \ +" b 1f;\n" \ +" .align 5;\n" \ +" ldr %[t0], [%[s], #0];\n" \ +" str %[t0], [%[d], #0];\n" \ +" b 1f;\n" \ +" .align 5;\n" \ +" ldp %[t0], %[t1], [%[s], #0];\n" \ +" stp %[t0], %[t1], [%[d], #0];\n" \ +" b 1f;\n" \ +" .align 5;\n" \ +" ldp %[t0], %[t1], [%[s], #0];\n" \ +" ldr %[t2], [%[s], #16];\n" \ +" stp %[t0], %[t1], [%[d], #0];\n" \ +" str %[t2], [%[d], #16];\n" \ +" b 1f;\n" \ +" .align 5;\n" \ +" ldp %[t0], %[t1], [%[s], #0];\n" \ +" ldp %[t2], %[t3], [%[s], #16];\n" \ +" stp %[t0], %[t1], [%[d], #0];\n" \ +" stp %[t2], %[t3], [%[d], #16];\n" \ +" b 1f;\n" \ +" .align 5;\n" \ +" ldp %[t0], %[t1], [%[s], #0];\n" \ +" ldp %[t2], %[t3], [%[s], #16];\n" \ +" ldr %[t4], [%[s], #32];\n" \ +" stp %[t0], %[t1], [%[d], #0];\n" \ +" stp %[t2], %[t3], [%[d], #16];\n" \ +" str %[t4], [%[d], #32];\n" \ +" b 1f;\n" \ +" .align 5;\n" \ +" ldp %[t0], %[t1], [%[s], #0];\n" \ +" ldp %[t2], %[t3], [%[s], #16];\n" \ +" ldp %[t4], %[t5], [%[s], #32];\n" \ +"2:" \ +" stp %[t0], %[t1], [%[d], #0];\n" \ +" stp %[t2], %[t3], [%[d], #16];\n" \ +" stp %[t4], %[t5], [%[d], #32];\n" \ +" b 1f;\n" \ +" .align 5;\n" \ +" ldr %[t6], [%[s], #0];\n" \ +" ldp %[t0], %[t1], [%[s], #8];\n" \ +" ldp %[t2], %[t3], [%[s], #24];\n" \ +" ldp %[t4], %[t5], [%[s], #40];\n" \ +" str %[t6], [%[d]], #8;\n" \ +" b 2b;\n" \ +" .align 5;\n" \ +" ldp %[t0], %[t1], [%[s], #0];\n" \ +" ldp %[t2], %[t3], [%[s], #16];\n" \ +" ldp %[t4], %[t5], [%[s], #32];\n" \ +" ldp %[t6], %[t7], [%[s], #48];\n" \ +" stp %[t0], %[t1], [%[d], #0];\n" \ +" stp %[t2], %[t3], [%[d], #16];\n" \ +" stp %[t4], %[t5], [%[d], #32];\n" \ +" stp %[t6], %[t7], [%[d], #48];\n" \ +"1:" \ + \ + : [s]"+r"(from), [d]"+r"(to), [cnt]"+r"(count), \ + [t0]"=&r"(tmp0), [t1]"=&r"(tmp1), [t2]"=&r"(tmp2), [t3]"=&r"(tmp3), \ + [t4]"=&r"(tmp4), [t5]"=&r"(tmp5), [t6]"=&r"(tmp6), [t7]"=&r"(tmp7) \ + : \ + : "memory", "cc"); \ +} + +static void pd_conjoint_words(const HeapWord* from, HeapWord* to, size_t count) { + __asm volatile( "prfm pldl1strm, [%[s], #0];" :: [s]"r"(from) : "memory"); + if (__builtin_expect(count <= 8, 1)) { + COPY_SMALL(from, to, count); + return; + } + _Copy_conjoint_words(from, to, count); +} + +static void pd_disjoint_words(const HeapWord* from, HeapWord* to, size_t count) { + if (__builtin_constant_p(count)) { + memcpy(to, from, count * sizeof(HeapWord)); + return; + } + __asm volatile( "prfm pldl1strm, [%[s], #0];" :: [s]"r"(from) : "memory"); + if (__builtin_expect(count <= 8, 1)) { + COPY_SMALL(from, to, count); + return; + } + _Copy_disjoint_words(from, to, count); +} + +static void pd_disjoint_words_atomic(const HeapWord* from, HeapWord* to, size_t count) { + __asm volatile( "prfm pldl1strm, [%[s], #0];" :: [s]"r"(from) : "memory"); + if (__builtin_expect(count <= 8, 1)) { + COPY_SMALL(from, to, count); + return; + } + _Copy_disjoint_words(from, to, count); +} + +static void pd_aligned_conjoint_words(const HeapWord* from, HeapWord* to, size_t count) { + pd_conjoint_words(from, to, count); +} + +static void pd_aligned_disjoint_words(const HeapWord* from, HeapWord* to, size_t count) { + pd_disjoint_words(from, to, count); +} + +static void pd_conjoint_bytes(const void* from, void* to, size_t count) { + (void)memmove(to, from, count); +} + +static void pd_conjoint_bytes_atomic(const void* from, void* to, size_t count) { + pd_conjoint_bytes(from, to, count); +} + +static void pd_conjoint_jshorts_atomic(const jshort* from, jshort* to, size_t count) { + _Copy_conjoint_jshorts_atomic(from, to, count); +} + +static void pd_conjoint_jints_atomic(const jint* from, jint* to, size_t count) { + _Copy_conjoint_jints_atomic(from, to, count); +} + +static void pd_conjoint_jlongs_atomic(const jlong* from, jlong* to, size_t count) { + _Copy_conjoint_jlongs_atomic(from, to, count); +} + +static void pd_conjoint_oops_atomic(const oop* from, oop* to, size_t count) { + assert(BytesPerLong == BytesPerOop, "jlongs and oops must be the same size"); + _Copy_conjoint_jlongs_atomic((const jlong*)from, (jlong*)to, count); +} + +static void pd_arrayof_conjoint_bytes(const HeapWord* from, HeapWord* to, size_t count) { + _Copy_arrayof_conjoint_bytes(from, to, count); +} + +static void pd_arrayof_conjoint_jshorts(const HeapWord* from, HeapWord* to, size_t count) { + _Copy_arrayof_conjoint_jshorts(from, to, count); +} + +static void pd_arrayof_conjoint_jints(const HeapWord* from, HeapWord* to, size_t count) { + _Copy_arrayof_conjoint_jints(from, to, count); +} + +static void pd_arrayof_conjoint_jlongs(const HeapWord* from, HeapWord* to, size_t count) { + _Copy_arrayof_conjoint_jlongs(from, to, count); +} + +static void pd_arrayof_conjoint_oops(const HeapWord* from, HeapWord* to, size_t count) { + assert(!UseCompressedOops, "foo!"); + assert(BytesPerLong == BytesPerOop, "jlongs and oops must be the same size"); + _Copy_arrayof_conjoint_jlongs(from, to, count); +} + +#endif // OS_CPU_BSD_AARCH64_VM_COPY_BSD_AARCH64_INLINE_HPP diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/copy_bsd_aarch64.s openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/copy_bsd_aarch64.s --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/copy_bsd_aarch64.s 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/copy_bsd_aarch64.s 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,239 @@ +/* + * Copyright (c) 2016, Linaro Ltd. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#define CFUNC(x) _##x + + .global CFUNC(_Copy_conjoint_words) + .global CFUNC(_Copy_disjoint_words) + +s .req x0 +d .req x1 +count .req x2 +t0 .req x3 +t1 .req x4 +t2 .req x5 +t3 .req x6 +t4 .req x7 +t5 .req x8 +t6 .req x9 +t7 .req x10 + + .align 6 +CFUNC(_Copy_disjoint_words): + // Ensure 2 word aligned + tbz s, #3, fwd_copy_aligned + ldr t0, [s], #8 + str t0, [d], #8 + sub count, count, #1 + +fwd_copy_aligned: + // Bias s & d so we only pre index on the last copy + sub s, s, #16 + sub d, d, #16 + + ldp t0, t1, [s, #16] + ldp t2, t3, [s, #32] + ldp t4, t5, [s, #48] + ldp t6, t7, [s, #64]! + + subs count, count, #16 + blo fwd_copy_drain + +fwd_copy_again: + prfm pldl1keep, [s, #256] + stp t0, t1, [d, #16] + ldp t0, t1, [s, #16] + stp t2, t3, [d, #32] + ldp t2, t3, [s, #32] + stp t4, t5, [d, #48] + ldp t4, t5, [s, #48] + stp t6, t7, [d, #64]! + ldp t6, t7, [s, #64]! + subs count, count, #8 + bhs fwd_copy_again + +fwd_copy_drain: + stp t0, t1, [d, #16] + stp t2, t3, [d, #32] + stp t4, t5, [d, #48] + stp t6, t7, [d, #64]! + + // count is now -8..-1 for 0..7 words to copy + adr t0, 0f + add t0, t0, count, lsl #5 + br t0 + + .align 5 + ret // -8 == 0 words + .align 5 + ldr t0, [s, #16] // -7 == 1 word + str t0, [d, #16] + ret + .align 5 + ldp t0, t1, [s, #16] // -6 = 2 words + stp t0, t1, [d, #16] + ret + .align 5 + ldp t0, t1, [s, #16] // -5 = 3 words + ldr t2, [s, #32] + stp t0, t1, [d, #16] + str t2, [d, #32] + ret + .align 5 + ldp t0, t1, [s, #16] // -4 = 4 words + ldp t2, t3, [s, #32] + stp t0, t1, [d, #16] + stp t2, t3, [d, #32] + ret + .align 5 + ldp t0, t1, [s, #16] // -3 = 5 words + ldp t2, t3, [s, #32] + ldr t4, [s, #48] + stp t0, t1, [d, #16] + stp t2, t3, [d, #32] + str t4, [d, #48] + ret + .align 5 + ldp t0, t1, [s, #16] // -2 = 6 words + ldp t2, t3, [s, #32] + ldp t4, t5, [s, #48] + stp t0, t1, [d, #16] + stp t2, t3, [d, #32] + stp t4, t5, [d, #48] + ret + .align 5 + ldp t0, t1, [s, #16] // -1 = 7 words + ldp t2, t3, [s, #32] + ldp t4, t5, [s, #48] + ldr t6, [s, #64] + stp t0, t1, [d, #16] + stp t2, t3, [d, #32] + stp t4, t5, [d, #48] + str t6, [d, #64] + // Is always aligned here, code for 7 words is one instruction + // too large so it just falls through. + .align 5 +0: + ret + + .align 6 +CFUNC(_Copy_conjoint_words): + sub t0, d, s + cmp t0, count, lsl #3 + bhs CFUNC(_Copy_disjoint_words) + + add s, s, count, lsl #3 + add d, d, count, lsl #3 + + // Ensure 2 word aligned + tbz s, #3, bwd_copy_aligned + ldr t0, [s, #-8]! + str t0, [d, #-8]! + sub count, count, #1 + +bwd_copy_aligned: + ldp t0, t1, [s, #-16] + ldp t2, t3, [s, #-32] + ldp t4, t5, [s, #-48] + ldp t6, t7, [s, #-64]! + + subs count, count, #16 + blo bwd_copy_drain + +bwd_copy_again: + prfum pldl1keep, [s, #-256] + stp t0, t1, [d, #-16] + ldp t0, t1, [s, #-16] + stp t2, t3, [d, #-32] + ldp t2, t3, [s, #-32] + stp t4, t5, [d, #-48] + ldp t4, t5, [s, #-48] + stp t6, t7, [d, #-64]! + ldp t6, t7, [s, #-64]! + subs count, count, #8 + bhs bwd_copy_again + +bwd_copy_drain: + stp t0, t1, [d, #-16] + stp t2, t3, [d, #-32] + stp t4, t5, [d, #-48] + stp t6, t7, [d, #-64]! + + // count is now -8..-1 for 0..7 words to copy + adr t0, 0f + add t0, t0, count, lsl #5 + br t0 + + .align 5 + ret // -8 == 0 words + .align 5 + ldr t0, [s, #-8] // -7 == 1 word + str t0, [d, #-8] + ret + .align 5 + ldp t0, t1, [s, #-16] // -6 = 2 words + stp t0, t1, [d, #-16] + ret + .align 5 + ldp t0, t1, [s, #-16] // -5 = 3 words + ldr t2, [s, #-24] + stp t0, t1, [d, #-16] + str t2, [d, #-24] + ret + .align 5 + ldp t0, t1, [s, #-16] // -4 = 4 words + ldp t2, t3, [s, #-32] + stp t0, t1, [d, #-16] + stp t2, t3, [d, #-32] + ret + .align 5 + ldp t0, t1, [s, #-16] // -3 = 5 words + ldp t2, t3, [s, #-32] + ldr t4, [s, #-40] + stp t0, t1, [d, #-16] + stp t2, t3, [d, #-32] + str t4, [d, #-40] + ret + .align 5 + ldp t0, t1, [s, #-16] // -2 = 6 words + ldp t2, t3, [s, #-32] + ldp t4, t5, [s, #-48] + stp t0, t1, [d, #-16] + stp t2, t3, [d, #-32] + stp t4, t5, [d, #-48] + ret + .align 5 + ldp t0, t1, [s, #-16] // -1 = 7 words + ldp t2, t3, [s, #-32] + ldp t4, t5, [s, #-48] + ldr t6, [s, #-56] + stp t0, t1, [d, #-16] + stp t2, t3, [d, #-32] + stp t4, t5, [d, #-48] + str t6, [d, #-56] + // Is always aligned here, code for 7 words is one instruction + // too large so it just falls through. + .align 5 +0: + ret diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/globals_bsd_aarch64.hpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/globals_bsd_aarch64.hpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/globals_bsd_aarch64.hpp 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/globals_bsd_aarch64.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, Red Hat Inc. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef OS_CPU_BSD_AARCH64_VM_GLOBALS_BSD_AARCH64_HPP +#define OS_CPU_BSD_AARCH64_VM_GLOBALS_BSD_AARCH64_HPP + +// Sets the default values for platform dependent flags used by the runtime system. +// (see globals.hpp) + +define_pd_global(bool, DontYieldALot, false); +define_pd_global(intx, ThreadStackSize, 2048); // 0 => use system default +define_pd_global(intx, VMThreadStackSize, 2048); + +define_pd_global(intx, CompilerThreadStackSize, 2048); + +define_pd_global(uintx,JVMInvokeMethodSlack, 8192); + +// Used on 64 bit platforms for UseCompressedOops base address +define_pd_global(uintx,HeapBaseMinAddress, 2*G); + +#endif // OS_CPU_BSD_AARCH64_VM_GLOBALS_BSD_AARCH64_HPP diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/icache_bsd_aarch64.hpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/icache_bsd_aarch64.hpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/icache_bsd_aarch64.hpp 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/icache_bsd_aarch64.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,45 @@ +/* + * Copyright (c) 1999, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, Red Hat Inc. All rights reserved. + * Copyright (c) 2021, Azul Systems, Inc. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef OS_CPU_BSD_AARCH64_ICACHE_AARCH64_HPP +#define OS_CPU_BSD_AARCH64_ICACHE_AARCH64_HPP + +// Interface for updating the instruction cache. Whenever the VM +// modifies code, part of the processor instruction cache potentially +// has to be flushed. + +class ICache : public AbstractICache { + public: + static void initialize(); + static void invalidate_word(address addr) { + __clear_cache((char *)addr, (char *)(addr + 4)); + } + static void invalidate_range(address start, int nbytes) { + __clear_cache((char *)start, (char *)(start + nbytes)); + } +}; + +#endif // OS_CPU_BSD_AARCH64_ICACHE_AARCH64_HPP \ No newline at end of file diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/orderAccess_bsd_aarch64.hpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/orderAccess_bsd_aarch64.hpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/orderAccess_bsd_aarch64.hpp 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/orderAccess_bsd_aarch64.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2019, Red Hat Inc. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef OS_CPU_BSD_AARCH64_VM_ORDERACCESS_BSD_AARCH64_HPP +#define OS_CPU_BSD_AARCH64_VM_ORDERACCESS_BSD_AARCH64_HPP + +// Included in orderAccess.hpp header file. + +// Implementation of class OrderAccess. + +inline void OrderAccess::loadload() { acquire(); } +inline void OrderAccess::storestore() { release(); } +inline void OrderAccess::loadstore() { acquire(); } +inline void OrderAccess::storeload() { fence(); } + +#define FULL_MEM_BARRIER __sync_synchronize() +#define READ_MEM_BARRIER __atomic_thread_fence(__ATOMIC_ACQUIRE); +#define WRITE_MEM_BARRIER __atomic_thread_fence(__ATOMIC_RELEASE); + +inline void OrderAccess::acquire() { + READ_MEM_BARRIER; +} + +inline void OrderAccess::release() { + WRITE_MEM_BARRIER; +} + +inline void OrderAccess::fence() { + FULL_MEM_BARRIER; +} + +#endif // OS_CPU_BSD_AARCH64_VM_ORDERACCESS_BSD_AARCH64_HPP diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/os_bsd_aarch64.cpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/os_bsd_aarch64.cpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/os_bsd_aarch64.cpp 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/os_bsd_aarch64.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,753 @@ +/* + * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, Red Hat Inc. All rights reserved. + * Copyright (c) 2021, Azul Systems, Inc. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +// no precompiled headers +#include "jvm.h" +#include "asm/macroAssembler.hpp" +#include "classfile/classLoader.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/codeCache.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "logging/log.hpp" +#include "memory/allocation.inline.hpp" +#include "os_share_bsd.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/extendedPC.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/interfaceSupport.inline.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/osThread.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/thread.inline.hpp" +#include "runtime/timer.hpp" +#include "utilities/align.hpp" +#include "utilities/events.hpp" +#include "utilities/vmError.hpp" + +// put OS-includes here +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +#ifndef __OpenBSD__ + # include +#endif + +#if !defined(__APPLE__) && !defined(__NetBSD__) +# include +#endif + +#define SPELL_REG_SP "sp" +#define SPELL_REG_FP "fp" + +#ifdef __APPLE__ +// see darwin-xnu/osfmk/mach/arm/_structs.h + +// 10.5 UNIX03 member name prefixes +#define DU3_PREFIX(s, m) __ ## s.__ ## m +#endif + +#define context_x uc_mcontext->DU3_PREFIX(ss,x) +#define context_fp uc_mcontext->DU3_PREFIX(ss,fp) +#define context_lr uc_mcontext->DU3_PREFIX(ss,lr) +#define context_sp uc_mcontext->DU3_PREFIX(ss,sp) +#define context_pc uc_mcontext->DU3_PREFIX(ss,pc) +#define context_cpsr uc_mcontext->DU3_PREFIX(ss,cpsr) +#define context_esr uc_mcontext->DU3_PREFIX(es,esr) + +address os::current_stack_pointer() { +#if defined(__clang__) || defined(__llvm__) + void *sp; + __asm__("mov %0, " SPELL_REG_SP : "=r"(sp)); + return (address) sp; +#else + register void *sp __asm__ (SPELL_REG_SP); + return (address) sp; +#endif +} + +char* os::non_memory_address_word() { + // Must never look like an address returned by reserve_memory, + // even in its subfields (as defined by the CPU immediate fields, + // if the CPU splits constants across multiple instructions). + + // the return value used in computation of Universe::non_oop_word(), which + // is loaded by cpu/aarch64 by MacroAssembler::movptr(Register, uintptr_t) + return (char*) 0xffffffffffff; +} + +address os::Bsd::ucontext_get_pc(const ucontext_t * uc) { + return (address)uc->context_pc; +} + +void os::Bsd::ucontext_set_pc(ucontext_t * uc, address pc) { + uc->context_pc = (intptr_t)pc; +} + +intptr_t* os::Bsd::ucontext_get_sp(const ucontext_t * uc) { + return (intptr_t*)uc->context_sp; +} + +intptr_t* os::Bsd::ucontext_get_fp(const ucontext_t * uc) { + return (intptr_t*)uc->context_fp; +} + +// For Forte Analyzer AsyncGetCallTrace profiling support - thread +// is currently interrupted by SIGPROF. +// os::Solaris::fetch_frame_from_ucontext() tries to skip nested signal +// frames. Currently we don't do that on Linux, so it's the same as +// os::fetch_frame_from_context(). +ExtendedPC os::Bsd::fetch_frame_from_ucontext(Thread* thread, + const ucontext_t* uc, intptr_t** ret_sp, intptr_t** ret_fp) { + + assert(thread != NULL, "just checking"); + assert(ret_sp != NULL, "just checking"); + assert(ret_fp != NULL, "just checking"); + + return os::fetch_frame_from_context(uc, ret_sp, ret_fp); +} + +ExtendedPC os::fetch_frame_from_context(const void* ucVoid, + intptr_t** ret_sp, intptr_t** ret_fp) { + + ExtendedPC epc; + const ucontext_t* uc = (const ucontext_t*)ucVoid; + + if (uc != NULL) { + epc = ExtendedPC(os::Bsd::ucontext_get_pc(uc)); + if (ret_sp) *ret_sp = os::Bsd::ucontext_get_sp(uc); + if (ret_fp) *ret_fp = os::Bsd::ucontext_get_fp(uc); + } else { + // construct empty ExtendedPC for return value checking + epc = ExtendedPC(NULL); + if (ret_sp) *ret_sp = (intptr_t *)NULL; + if (ret_fp) *ret_fp = (intptr_t *)NULL; + } + + return epc; +} + +frame os::fetch_frame_from_context(const void* ucVoid) { + intptr_t* sp; + intptr_t* fp; + ExtendedPC epc = fetch_frame_from_context(ucVoid, &sp, &fp); + return frame(sp, fp, epc.pc()); +} + +bool os::Bsd::get_frame_at_stack_banging_point(JavaThread* thread, ucontext_t* uc, frame* fr) { + address pc = (address) os::Bsd::ucontext_get_pc(uc); + if (Interpreter::contains(pc)) { + // interpreter performs stack banging after the fixed frame header has + // been generated while the compilers perform it before. To maintain + // semantic consistency between interpreted and compiled frames, the + // method returns the Java sender of the current frame. + *fr = os::fetch_frame_from_context(uc); + if (!fr->is_first_java_frame()) { + assert(fr->safe_for_sender(thread), "Safety check"); + *fr = fr->java_sender(); + } + } else { + // more complex code with compiled code + assert(!Interpreter::contains(pc), "Interpreted methods should have been handled above"); + CodeBlob* cb = CodeCache::find_blob(pc); + if (cb == NULL || !cb->is_nmethod() || cb->is_frame_complete_at(pc)) { + // Not sure where the pc points to, fallback to default + // stack overflow handling + return false; + } else { + // In compiled code, the stack banging is performed before LR + // has been saved in the frame. LR is live, and SP and FP + // belong to the caller. + intptr_t* fp = os::Bsd::ucontext_get_fp(uc); + intptr_t* sp = os::Bsd::ucontext_get_sp(uc); + address pc = (address)(uc->context_lr + - NativeInstruction::instruction_size); + *fr = frame(sp, fp, pc); + if (!fr->is_java_frame()) { + assert(fr->safe_for_sender(thread), "Safety check"); + assert(!fr->is_first_frame(), "Safety check"); + *fr = fr->java_sender(); + } + } + } + assert(fr->is_java_frame(), "Safety check"); + return true; +} + +// JVM compiled with -fno-omit-frame-pointer, so RFP is saved on the stack. +frame os::get_sender_for_C_frame(frame* fr) { + return frame(fr->link(), fr->link(), fr->sender_pc()); +} + +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)); + if (os::is_first_C_frame(&myframe)) { + // stack is not walkable + return frame(); + } else { + return os::get_sender_for_C_frame(&myframe); + } +} + +// Utility functions +extern "C" JNIEXPORT int +JVM_handle_bsd_signal(int sig, + siginfo_t* info, + void* ucVoid, + int abort_if_unrecognized) { + ucontext_t* uc = (ucontext_t*) ucVoid; + + Thread* t = Thread::current_or_null_safe(); + + // Must do this before SignalHandlerMark, if crash protection installed we will longjmp away + // (no destructors can be run) + os::ThreadCrashProtection::check_crash_protection(sig, t); + + SignalHandlerMark shm(t); + + // Note: it's not uncommon that JNI code uses signal/sigset to install + // then restore certain signal handler (e.g. to temporarily block SIGPIPE, + // or have a SIGILL handler when detecting CPU type). When that happens, + // JVM_handle_bsd_signal() might be invoked with junk info/ucVoid. To + // avoid unnecessary crash when libjsig is not preloaded, try handle signals + // that do not require siginfo/ucontext first. + + if (sig == SIGPIPE || sig == SIGXFSZ) { + // allow chained handler to go first + if (os::Bsd::chained_handler(sig, info, ucVoid)) { + return true; + } else { + // Ignoring SIGPIPE/SIGXFSZ - see bugs 4229104 or 6499219 + return true; + } + } + +#ifdef CAN_SHOW_REGISTERS_ON_ASSERT + if ((sig == SIGSEGV || sig == SIGBUS) && info != NULL && info->si_addr == g_assert_poison) { + if (handle_assert_poison_fault(ucVoid, info->si_addr)) { + return 1; + } + } +#endif + + JavaThread* thread = NULL; + VMThread* vmthread = NULL; + if (os::Bsd::signal_handlers_are_installed) { + if (t != NULL ){ + if(t->is_Java_thread()) { + thread = (JavaThread*)t; + } + else if(t->is_VM_thread()){ + vmthread = (VMThread *)t; + } + } + } + + // Handle SafeFetch faults: + if (uc != NULL) { + address const pc = (address) os::Bsd::ucontext_get_pc(uc); + if (pc && StubRoutines::is_safefetch_fault(pc)) { + os::Bsd::ucontext_set_pc(uc, StubRoutines::continuation_for_safefetch_fault(pc)); + return 1; + } + } + + // decide if this trap can be handled by a stub + address stub = NULL; + + address pc = NULL; + + //%note os_trap_1 + if (info != NULL && uc != NULL && thread != NULL) { + pc = (address) os::Bsd::ucontext_get_pc(uc); + + // Handle ALL stack overflow variations here + if (sig == SIGSEGV || sig == SIGBUS) { + address addr = (address) info->si_addr; + + // check if fault address is within thread stack + if (thread->on_local_stack(addr)) { + ThreadWXEnable wx(WXWrite, thread); + // stack overflow + if (thread->in_stack_yellow_reserved_zone(addr)) { + if (thread->thread_state() == _thread_in_Java) { + if (thread->in_stack_reserved_zone(addr)) { + frame fr; + if (os::Bsd::get_frame_at_stack_banging_point(thread, uc, &fr)) { + assert(fr.is_java_frame(), "Must be a Java frame"); + frame activation = + SharedRuntime::look_for_reserved_stack_annotated_method(thread, fr); + if (activation.sp() != NULL) { + thread->disable_stack_reserved_zone(); + if (activation.is_interpreted_frame()) { + thread->set_reserved_stack_activation((address)( + activation.fp() + frame::interpreter_frame_initial_sp_offset)); + } else { + thread->set_reserved_stack_activation((address)activation.unextended_sp()); + } + return 1; + } + } + } + // Throw a stack overflow exception. Guard pages will be reenabled + // while unwinding the stack. + thread->disable_stack_yellow_reserved_zone(); + stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::STACK_OVERFLOW); + } else { + // Thread was in the vm or native code. Return and try to finish. + thread->disable_stack_yellow_reserved_zone(); + return 1; + } + } else if (thread->in_stack_red_zone(addr)) { + // Fatal red zone violation. Disable the guard pages and fall through + // to handle_unexpected_exception way down below. + thread->disable_stack_red_zone(); + tty->print_raw_cr("An irrecoverable stack overflow has occurred."); + } + } + } + + // We test if stub is already set (by the stack overflow code + // above) so it is not overwritten by the code that follows. This + // check is not required on other platforms, because on other + // platforms we check for SIGSEGV only or SIGBUS only, where here + // we have to check for both SIGSEGV and SIGBUS. + if (thread->thread_state() == _thread_in_Java && stub == NULL) { + // Java thread running in Java code => find exception handler if any + // a fault inside compiled code, the interpreter, or a stub + ThreadWXEnable wx(WXWrite, thread); + // Handle signal from NativeJump::patch_verified_entry(). + if ((sig == SIGILL) + && nativeInstruction_at(pc)->is_sigill_zombie_not_entrant()) { + if (TraceTraps) { + tty->print_cr("trap: zombie_not_entrant"); + } + stub = SharedRuntime::get_handle_wrong_method_stub(); + } else if ((sig == SIGSEGV || sig == SIGBUS) && os::is_poll_address((address)info->si_addr)) { + stub = SharedRuntime::get_poll_stub(pc); +#if defined(__APPLE__) + // 32-bit Darwin reports a SIGBUS for nearly all memory access exceptions. + // 64-bit Darwin may also use a SIGBUS (seen with compressed oops). + // Catching SIGBUS here prevents the implicit SIGBUS NULL check below from + // being called, so only do so if the implicit NULL check is not necessary. + } else if (sig == SIGBUS && MacroAssembler::needs_explicit_null_check((intptr_t)info->si_addr)) { +#else + } else if (sig == SIGBUS /* && info->si_code == BUS_OBJERR */) { +#endif + // BugId 4454115: A read from a MappedByteBuffer can fault + // here if the underlying file has been truncated. + // Do not crash the VM in such a case. + CodeBlob* cb = CodeCache::find_blob_unsafe(pc); + CompiledMethod* nm = (cb != NULL) ? cb->as_compiled_method_or_null() : NULL; + if ((nm != NULL && nm->has_unsafe_access())) { + address next_pc = pc + NativeCall::instruction_size; + stub = SharedRuntime::handle_unsafe_access(thread, next_pc); + } + } + else + + if (sig == SIGFPE && + (info->si_code == FPE_INTDIV || info->si_code == FPE_FLTDIV)) { + stub = + SharedRuntime:: + continuation_for_implicit_exception(thread, + pc, + SharedRuntime:: + IMPLICIT_DIVIDE_BY_ZERO); +#ifdef __APPLE__ + } else if (sig == SIGFPE && info->si_code == FPE_NOOP) { + Unimplemented(); +#endif /* __APPLE__ */ + + } else if ((sig == SIGSEGV || sig == SIGBUS) && + !MacroAssembler::needs_explicit_null_check((intptr_t)info->si_addr)) { + // Determination of interpreter/vtable stub/compiled code null exception + stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_NULL); + } + } else if ((thread->thread_state() == _thread_in_vm || + thread->thread_state() == _thread_in_native) && + sig == SIGBUS && /* info->si_code == BUS_OBJERR && */ + thread->doing_unsafe_access()) { + address next_pc = pc + NativeCall::instruction_size; + stub = SharedRuntime::handle_unsafe_access(thread, next_pc); + } + + // jni_fast_GetField can trap at certain pc's if a GC kicks in + // and the heap gets shrunk before the field access. + if ((sig == SIGSEGV) || (sig == SIGBUS)) { + address addr = JNI_FastGetField::find_slowcase_pc(pc); + if (addr != (address)-1) { + stub = addr; + } + } + + // Check to see if we caught the safepoint code in the + // process of write protecting the memory serialization page. + // It write enables the page immediately after protecting it + // so we can just return to retry the write. + if ((sig == SIGSEGV) && + os::is_memory_serialize_page(thread, (address) info->si_addr)) { + // Block current thread until the memory serialize page permission restored. + os::block_on_serialize_page_trap(); + return true; + } + } + + if (stub != NULL) { + // save all thread context in case we need to restore it + if (thread != NULL) thread->set_saved_exception_pc(pc); + + os::Bsd::ucontext_set_pc(uc, stub); + return true; + } + + // signal-chaining + if (os::Bsd::chained_handler(sig, info, ucVoid)) { + return true; + } + + if (!abort_if_unrecognized) { + // caller wants another chance, so give it to him + return false; + } + + if (pc == NULL && uc != NULL) { + pc = os::Bsd::ucontext_get_pc(uc); + } + + // unmask current signal + sigset_t newset; + sigemptyset(&newset); + sigaddset(&newset, sig); + sigprocmask(SIG_UNBLOCK, &newset, NULL); + + VMError::report_and_die(t, sig, pc, info, ucVoid); + + ShouldNotReachHere(); + return true; // Mute compiler +} + +void os::Bsd::init_thread_fpu_state(void) { +} + +bool os::is_allocatable(size_t bytes) { + return true; +} + +//////////////////////////////////////////////////////////////////////////////// +// thread stack + +// Minimum usable stack sizes required to get to user code. Space for +// HotSpot guard pages is added later. +size_t os::Posix::_compiler_thread_min_stack_allowed = 72 * K; +size_t os::Posix::_java_thread_min_stack_allowed = 72 * K; +size_t os::Posix::_vm_internal_thread_min_stack_allowed = 72 * K; + +// return default stack size for thr_type +size_t os::Posix::default_stack_size(os::ThreadType thr_type) { + // default stack size (compiler thread needs larger stack) + size_t s = (thr_type == os::compiler_thread ? 4 * M : 1 * M); + return s; +} + +static void current_stack_region(address * bottom, size_t * size) { +#ifdef __APPLE__ + pthread_t self = pthread_self(); + void *stacktop = pthread_get_stackaddr_np(self); + *size = pthread_get_stacksize_np(self); + *bottom = (address) stacktop - *size; +#elif defined(__OpenBSD__) + stack_t ss; + int rslt = pthread_stackseg_np(pthread_self(), &ss); + + if (rslt != 0) + fatal("pthread_stackseg_np failed with error = %d", rslt); + + *bottom = (address)((char *)ss.ss_sp - ss.ss_size); + *size = ss.ss_size; +#else + pthread_attr_t attr; + + int rslt = pthread_attr_init(&attr); + + // JVM needs to know exact stack location, abort if it fails + if (rslt != 0) + fatal("pthread_attr_init failed with error = %d", rslt); + + rslt = pthread_attr_get_np(pthread_self(), &attr); + + if (rslt != 0) + fatal("pthread_attr_get_np failed with error = %d", rslt); + + if (pthread_attr_getstackaddr(&attr, (void **)bottom) != 0 || + pthread_attr_getstacksize(&attr, size) != 0) { + fatal("Can not locate current stack attributes!"); + } + + pthread_attr_destroy(&attr); +#endif + assert(os::current_stack_pointer() >= *bottom && + os::current_stack_pointer() < *bottom + *size, "just checking"); +} + +address os::current_stack_base() { + address bottom; + size_t size; + current_stack_region(&bottom, &size); + return (bottom + size); +} + +size_t os::current_stack_size() { + // stack size includes normal stack and HotSpot guard pages + address bottom; + size_t size; + current_stack_region(&bottom, &size); + return size; +} + +///////////////////////////////////////////////////////////////////////////// +// helper functions for fatal error handler + +void os::print_context(outputStream *st, const void *context) { + if (context == NULL) return; + + const ucontext_t *uc = (const ucontext_t*)context; + st->print_cr("Registers:"); + st->print( " x0=" INTPTR_FORMAT, (intptr_t)uc->context_x[ 0]); + st->print(" x1=" INTPTR_FORMAT, (intptr_t)uc->context_x[ 1]); + st->print(" x2=" INTPTR_FORMAT, (intptr_t)uc->context_x[ 2]); + st->print(" x3=" INTPTR_FORMAT, (intptr_t)uc->context_x[ 3]); + st->cr(); + st->print( " x4=" INTPTR_FORMAT, (intptr_t)uc->context_x[ 4]); + st->print(" x5=" INTPTR_FORMAT, (intptr_t)uc->context_x[ 5]); + st->print(" x6=" INTPTR_FORMAT, (intptr_t)uc->context_x[ 6]); + st->print(" x7=" INTPTR_FORMAT, (intptr_t)uc->context_x[ 7]); + st->cr(); + st->print( " x8=" INTPTR_FORMAT, (intptr_t)uc->context_x[ 8]); + st->print(" x9=" INTPTR_FORMAT, (intptr_t)uc->context_x[ 9]); + st->print(" x10=" INTPTR_FORMAT, (intptr_t)uc->context_x[10]); + st->print(" x11=" INTPTR_FORMAT, (intptr_t)uc->context_x[11]); + st->cr(); + st->print( "x12=" INTPTR_FORMAT, (intptr_t)uc->context_x[12]); + st->print(" x13=" INTPTR_FORMAT, (intptr_t)uc->context_x[13]); + st->print(" x14=" INTPTR_FORMAT, (intptr_t)uc->context_x[14]); + st->print(" x15=" INTPTR_FORMAT, (intptr_t)uc->context_x[15]); + st->cr(); + st->print( "x16=" INTPTR_FORMAT, (intptr_t)uc->context_x[16]); + st->print(" x17=" INTPTR_FORMAT, (intptr_t)uc->context_x[17]); + st->print(" x18=" INTPTR_FORMAT, (intptr_t)uc->context_x[18]); + st->print(" x19=" INTPTR_FORMAT, (intptr_t)uc->context_x[19]); + st->cr(); + st->print( "x20=" INTPTR_FORMAT, (intptr_t)uc->context_x[20]); + st->print(" x21=" INTPTR_FORMAT, (intptr_t)uc->context_x[21]); + st->print(" x22=" INTPTR_FORMAT, (intptr_t)uc->context_x[22]); + st->print(" x23=" INTPTR_FORMAT, (intptr_t)uc->context_x[23]); + st->cr(); + st->print( "x24=" INTPTR_FORMAT, (intptr_t)uc->context_x[24]); + st->print(" x25=" INTPTR_FORMAT, (intptr_t)uc->context_x[25]); + st->print(" x26=" INTPTR_FORMAT, (intptr_t)uc->context_x[26]); + st->print(" x27=" INTPTR_FORMAT, (intptr_t)uc->context_x[27]); + st->cr(); + st->print( "x28=" INTPTR_FORMAT, (intptr_t)uc->context_x[28]); + st->print(" fp=" INTPTR_FORMAT, (intptr_t)uc->context_fp); + st->print(" lr=" INTPTR_FORMAT, (intptr_t)uc->context_lr); + st->print(" sp=" INTPTR_FORMAT, (intptr_t)uc->context_sp); + st->cr(); + st->print( "pc=" INTPTR_FORMAT, (intptr_t)uc->context_pc); + st->print(" cpsr=" INTPTR_FORMAT, (intptr_t)uc->context_cpsr); + st->cr(); + + intptr_t *sp = (intptr_t *)os::Bsd::ucontext_get_sp(uc); + st->print_cr("Top of Stack: (sp=" INTPTR_FORMAT ")", (intptr_t)sp); + print_hex_dump(st, (address)sp, (address)(sp + 8*sizeof(intptr_t)), sizeof(intptr_t)); + st->cr(); + + // Note: it may be unsafe to inspect memory near pc. For example, pc may + // point to garbage if entry point in an nmethod is corrupted. Leave + // this at the end, and hope for the best. + address pc = os::Bsd::ucontext_get_pc(uc); + print_instructions(st, pc, sizeof(char)); + st->cr(); +} + +void os::print_register_info(outputStream *st, const void *context) { + if (context == NULL) return; + + const ucontext_t *uc = (const ucontext_t*)context; + + st->print_cr("Register to memory mapping:"); + st->cr(); + + // this is horrendously verbose but the layout of the registers in the + // context does not match how we defined our abstract Register set, so + // we can't just iterate through the gregs area + + // this is only for the "general purpose" registers + + st->print(" x0="); print_location(st, uc->context_x[ 0]); + st->print(" x1="); print_location(st, uc->context_x[ 1]); + st->print(" x2="); print_location(st, uc->context_x[ 2]); + st->print(" x3="); print_location(st, uc->context_x[ 3]); + st->print(" x4="); print_location(st, uc->context_x[ 4]); + st->print(" x5="); print_location(st, uc->context_x[ 5]); + st->print(" x6="); print_location(st, uc->context_x[ 6]); + st->print(" x7="); print_location(st, uc->context_x[ 7]); + st->print(" x8="); print_location(st, uc->context_x[ 8]); + st->print(" x9="); print_location(st, uc->context_x[ 9]); + st->print("x10="); print_location(st, uc->context_x[10]); + st->print("x11="); print_location(st, uc->context_x[11]); + st->print("x12="); print_location(st, uc->context_x[12]); + st->print("x13="); print_location(st, uc->context_x[13]); + st->print("x14="); print_location(st, uc->context_x[14]); + st->print("x15="); print_location(st, uc->context_x[15]); + st->print("x16="); print_location(st, uc->context_x[16]); + st->print("x17="); print_location(st, uc->context_x[17]); + st->print("x18="); print_location(st, uc->context_x[18]); + st->print("x19="); print_location(st, uc->context_x[19]); + st->print("x20="); print_location(st, uc->context_x[20]); + st->print("x21="); print_location(st, uc->context_x[21]); + st->print("x22="); print_location(st, uc->context_x[22]); + st->print("x23="); print_location(st, uc->context_x[23]); + st->print("x24="); print_location(st, uc->context_x[24]); + st->print("x25="); print_location(st, uc->context_x[25]); + st->print("x26="); print_location(st, uc->context_x[26]); + st->print("x27="); print_location(st, uc->context_x[27]); + st->print("x28="); print_location(st, uc->context_x[28]); + + st->cr(); +} + +void os::setup_fpu() { +} + +#ifndef PRODUCT +void os::verify_stack_alignment() { + assert(((intptr_t)os::current_stack_pointer() & (StackAlignmentInBytes-1)) == 0, "incorrect stack alignment"); +} +#endif + +int os::extra_bang_size_in_bytes() { + // AArch64 does not require the additional stack bang. + return 0; +} + +void os::current_thread_enable_wx(WXMode mode) { + pthread_jit_write_protect_np(mode == WXExec); +} + +extern "C" { + int SpinPause() { + return 0; + } + + void _Copy_conjoint_jshorts_atomic(const jshort* from, jshort* to, size_t count) { + if (from > to) { + const jshort *end = from + count; + while (from < end) + *(to++) = *(from++); + } + else if (from < to) { + const jshort *end = from; + from += count - 1; + to += count - 1; + while (from >= end) + *(to--) = *(from--); + } + } + void _Copy_conjoint_jints_atomic(const jint* from, jint* to, size_t count) { + if (from > to) { + const jint *end = from + count; + while (from < end) + *(to++) = *(from++); + } + else if (from < to) { + const jint *end = from; + from += count - 1; + to += count - 1; + while (from >= end) + *(to--) = *(from--); + } + } + void _Copy_conjoint_jlongs_atomic(const jlong* from, jlong* to, size_t count) { + if (from > to) { + const jlong *end = from + count; + while (from < end) + os::atomic_copy64(from++, to++); + } + else if (from < to) { + const jlong *end = from; + from += count - 1; + to += count - 1; + while (from >= end) + os::atomic_copy64(from--, to--); + } + } + + void _Copy_arrayof_conjoint_bytes(const HeapWord* from, + HeapWord* to, + size_t count) { + memmove(to, from, count); + } + void _Copy_arrayof_conjoint_jshorts(const HeapWord* from, + HeapWord* to, + size_t count) { + memmove(to, from, count * 2); + } + void _Copy_arrayof_conjoint_jints(const HeapWord* from, + HeapWord* to, + size_t count) { + memmove(to, from, count * 4); + } + void _Copy_arrayof_conjoint_jlongs(const HeapWord* from, + HeapWord* to, + size_t count) { + memmove(to, from, count * 8); + } +}; diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/os_bsd_aarch64.hpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/os_bsd_aarch64.hpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/os_bsd_aarch64.hpp 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/os_bsd_aarch64.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,42 @@ +/* + * Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, Red Hat Inc. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef OS_CPU_BSD_AARCH64_VM_OS_BSD_AARCH64_HPP +#define OS_CPU_BSD_AARCH64_VM_OS_BSD_AARCH64_HPP + + static void setup_fpu(); + + static bool is_allocatable(size_t bytes); + + // Used to register dynamic code cache area with the OS + // Note: Currently only used in 64 bit Windows implementations + static bool register_code_area(char *low, char *high) { return true; } + + // Atomically copy 64 bits of data + static void atomic_copy64(const volatile void *src, volatile void *dst) { + *(jlong *) dst = *(const jlong *) src; + } + +#endif // OS_CPU_BSD_AARCH64_VM_OS_BSD_AARCH64_HPP diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/pauth_bsd_aarch64.inline.hpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/pauth_bsd_aarch64.inline.hpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/pauth_bsd_aarch64.inline.hpp 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/pauth_bsd_aarch64.inline.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2021, Arm Limited. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef OS_CPU_BSD_AARCH64_VM_PAUTH_BSD_AARCH64_INLINE_HPP +#define OS_CPU_BSD_AARCH64_VM_PAUTH_BSD_AARCH64_INLINE_HPP + +#ifdef __APPLE__ +#include +#endif + +// Only the PAC instructions in the NOP space can be used. This ensures the +// binaries work on systems without PAC. Write these instructions using their +// alternate "hint" instructions to ensure older compilers can still be used. +// For Apple, use the provided interface as this may provide additional +// optimization. + +#define XPACLRI "hint #0x7;" + +inline address pauth_strip_pointer(address ptr) { +#ifdef __APPLE__ + return ptrauth_strip(ptr, ptrauth_key_asib); +#else + register address result __asm__("x30") = ptr; + asm (XPACLRI : "+r"(result)); + return result; +#endif +} + +#undef XPACLRI + +#endif // OS_CPU_BSD_AARCH64_VM_PAUTH_BSD_AARCH64_INLINE_HPP + diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/prefetch_bsd_aarch64.inline.hpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/prefetch_bsd_aarch64.inline.hpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/prefetch_bsd_aarch64.inline.hpp 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/prefetch_bsd_aarch64.inline.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, Red Hat Inc. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef OS_CPU_BSD_AARCH64_VM_PREFETCH_BSD_AARCH64_INLINE_HPP +#define OS_CPU_BSD_AARCH64_VM_PREFETCH_BSD_AARCH64_INLINE_HPP + +#include "runtime/prefetch.hpp" + + +inline void Prefetch::read (void *loc, intx interval) { + if (interval >= 0) + asm("prfm PLDL1KEEP, [%0, %1]" : : "r"(loc), "r"(interval)); +} + +inline void Prefetch::write(void *loc, intx interval) { + if (interval >= 0) + asm("prfm PSTL1KEEP, [%0, %1]" : : "r"(loc), "r"(interval)); +} + +#endif // OS_CPU_BSD_AARCH64_VM_PREFETCH_BSD_AARCH64_INLINE_HPP diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/thread_bsd_aarch64.cpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/thread_bsd_aarch64.cpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/thread_bsd_aarch64.cpp 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/thread_bsd_aarch64.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, Red Hat Inc. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#include "precompiled.hpp" +#include "memory/metaspaceShared.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/thread.inline.hpp" + +frame JavaThread::pd_last_frame() { + assert(has_last_Java_frame(), "must have last_Java_sp() when suspended"); + vmassert(_anchor.last_Java_pc() != NULL, "not walkable"); + return frame(_anchor.last_Java_sp(), _anchor.last_Java_fp(), _anchor.last_Java_pc()); +} + +// For Forte Analyzer AsyncGetCallTrace profiling support - thread is +// currently interrupted by SIGPROF +bool JavaThread::pd_get_top_frame_for_signal_handler(frame* fr_addr, + void* ucontext, bool isInJava) { + + assert(Thread::current() == this, "caller must be current thread"); + return pd_get_top_frame(fr_addr, ucontext, isInJava); +} + +bool JavaThread::pd_get_top_frame_for_profiling(frame* fr_addr, void* ucontext, bool isInJava) { + return pd_get_top_frame(fr_addr, ucontext, isInJava); +} + +bool JavaThread::pd_get_top_frame(frame* fr_addr, void* ucontext, bool isInJava) { + assert(this->is_Java_thread(), "must be JavaThread"); + JavaThread* jt = (JavaThread *)this; + + // If we have a last_Java_frame, then we should use it even if + // isInJava == true. It should be more reliable than ucontext info. + if (jt->has_last_Java_frame() && jt->frame_anchor()->walkable()) { + *fr_addr = jt->pd_last_frame(); + return true; + } + + // At this point, we don't have a last_Java_frame, so + // we try to glean some information out of the ucontext + // if we were running Java code when SIGPROF came in. + if (isInJava) { + ucontext_t* uc = (ucontext_t*) ucontext; + + intptr_t* ret_fp; + intptr_t* ret_sp; + ExtendedPC addr = os::fetch_frame_from_context(uc, &ret_sp, &ret_fp); + if (addr.pc() == NULL || ret_sp == NULL ) { + // ucontext wasn't useful + return false; + } + + if (MetaspaceShared::is_in_trampoline_frame(addr.pc())) { + // In the middle of a trampoline call. Bail out for safety. + // This happens rarely so shouldn't affect profiling. + return false; + } + + frame ret_frame(ret_sp, ret_fp, addr.pc()); + if (!ret_frame.safe_for_sender(jt)) { +#ifdef COMPILER2 + frame ret_frame2(ret_sp, NULL, addr.pc()); + if (!ret_frame2.safe_for_sender(jt)) { + // nothing else to try if the frame isn't good + return false; + } + ret_frame = ret_frame2; +#else + // nothing else to try if the frame isn't good + return false; +#endif /* COMPILER2 */ + } + *fr_addr = ret_frame; + return true; + } + + // nothing else to try + return false; +} + +void JavaThread::cache_global_variables() { } + diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/thread_bsd_aarch64.hpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/thread_bsd_aarch64.hpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/thread_bsd_aarch64.hpp 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/thread_bsd_aarch64.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, Red Hat Inc. All rights reserved. + * Copyright (c) 2021, Azul Systems, Inc. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef OS_CPU_BSD_AARCH64_VM_THREAD_BSD_AARCH64_HPP +#define OS_CPU_BSD_AARCH64_VM_THREAD_BSD_AARCH64_HPP + + private: + + void pd_initialize() { + _anchor.clear(); + } + + frame pd_last_frame(); + + public: + // Mutators are highly dangerous.... + intptr_t* last_Java_fp() { return _anchor.last_Java_fp(); } + void set_last_Java_fp(intptr_t* fp) { _anchor.set_last_Java_fp(fp); } + + void set_base_of_stack_pointer(intptr_t* base_sp) { + } + + static ByteSize last_Java_fp_offset() { + return byte_offset_of(JavaThread, _anchor) + JavaFrameAnchor::last_Java_fp_offset(); + } + + intptr_t* base_of_stack_pointer() { + return NULL; + } + void record_base_of_stack_pointer() { + } + + bool pd_get_top_frame_for_signal_handler(frame* fr_addr, void* ucontext, + bool isInJava); + + bool pd_get_top_frame_for_profiling(frame* fr_addr, void* ucontext, bool isInJava); +private: + bool pd_get_top_frame(frame* fr_addr, void* ucontext, bool isInJava); +public: + + static Thread *aarch64_get_thread_helper() { + return Thread::current(); + } + + // These routines are only used on cpu architectures that + // have separate register stacks (Itanium). + static bool register_stack_overflow() { return false; } + static void enable_register_stack_guard() {} + static void disable_register_stack_guard() {} + +#endif // OS_CPU_BSD_AARCH64_VM_THREAD_BSD_AARCH64_HPP diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/vmStructs_bsd_aarch64.hpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/vmStructs_bsd_aarch64.hpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/vmStructs_bsd_aarch64.hpp 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/vmStructs_bsd_aarch64.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, Red Hat Inc. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef OS_CPU_BSD_AARCH64_VM_VMSTRUCTS_BSD_AARCH64_HPP +#define OS_CPU_BSD_AARCH64_VM_VMSTRUCTS_BSD_AARCH64_HPP + +// These are the OS and CPU-specific fields, types and integer +// constants required by the Serviceability Agent. This file is +// referenced by vmStructs.cpp. + +#define VM_STRUCTS_OS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field) \ + \ + /******************************/ \ + /* Threads (NOTE: incomplete) */ \ + /******************************/ \ + nonstatic_field(OSThread, _thread_id, OSThread::thread_id_t) \ + nonstatic_field(OSThread, _unique_thread_id, uint64_t) + + +#define VM_TYPES_OS_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type) \ + \ + /**********************/ \ + /* Thread IDs */ \ + /**********************/ \ + \ + declare_unsigned_integer_type(OSThread::thread_id_t) + +#define VM_INT_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) + +#define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) + +#endif // OS_CPU_BSD_AARCH64_VM_VMSTRUCTS_BSD_AARCH64_HPP diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/vm_version_bsd_aarch64.cpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/vm_version_bsd_aarch64.cpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_aarch64/vm_version_bsd_aarch64.cpp 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_aarch64/vm_version_bsd_aarch64.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2006, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2019, Red Hat Inc. All rights reserved. + * Copyright (c) 2021, Azul Systems, Inc. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#include "precompiled.hpp" +#include "runtime/java.hpp" +#include "runtime/os.hpp" +#include "runtime/vm_version.hpp" +#include + +static bool cpu_has(const char* optional) { + uint32_t val; + size_t len = sizeof(val); + if (sysctlbyname(optional, &val, &len, NULL, 0)) { + return false; + } + return val; +} + +void VM_Version::get_os_cpu_info() { + size_t sysctllen; + + // hw.optional.floatingpoint always returns 1, see + // https://github.com/apple/darwin-xnu/blob/master/bsd/kern/kern_mib.c#L416. + // ID_AA64PFR0_EL1 describes AdvSIMD always equals to FP field. + assert(cpu_has("hw.optional.floatingpoint"), "should be"); + assert(cpu_has("hw.optional.neon"), "should be"); + _features = CPU_FP | CPU_ASIMD; + + // Only few features are available via sysctl, see line 614 + // https://opensource.apple.com/source/xnu/xnu-6153.141.1/bsd/kern/kern_mib.c.auto.html + if (cpu_has("hw.optional.armv8_crc32")) _features |= CPU_CRC32; + if (cpu_has("hw.optional.armv8_1_atomics")) _features |= CPU_LSE; + + int cache_line_size; + int hw_conf_cache_line[] = { CTL_HW, HW_CACHELINE }; + sysctllen = sizeof(cache_line_size); + if (sysctl(hw_conf_cache_line, 2, &cache_line_size, &sysctllen, NULL, 0)) { + cache_line_size = 16; + } + _icache_line_size = 16; // minimal line lenght CCSIDR_EL1 can hold + _dcache_line_size = cache_line_size; + + uint64_t dczid_el0; + __asm__ ( + "mrs %0, DCZID_EL0\n" + : "=r"(dczid_el0) + ); + if (!(dczid_el0 & 0x10)) { + _zva_length = 4 << (dczid_el0 & 0xf); + } + int family; + sysctllen = sizeof(family); + if (sysctlbyname("hw.cpufamily", &family, &sysctllen, NULL, 0)) { + family = 0; + } + _model = family; + _cpu = CPU_APPLE; +} + +#ifdef __APPLE__ + +bool VM_Version::is_cpu_emulated() { + return false; +} + +#endif \ No newline at end of file diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_x86/os_bsd_x86.cpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_x86/os_bsd_x86.cpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/bsd_x86/os_bsd_x86.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/bsd_x86/os_bsd_x86.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -278,11 +278,11 @@ address os::current_stack_pointer() { #if defined(__clang__) || defined(__llvm__) - register void *esp; + void *esp; __asm__("mov %%" SPELL_REG_SP ", %0":"=r"(esp)); return (address) esp; #elif defined(SPARC_WORKS) - register void *esp; + void *esp; __asm__("mov %%" SPELL_REG_SP ", %0":"=r"(esp)); return (address) ((char*)esp + sizeof(long)*2); #else @@ -410,7 +410,7 @@ intptr_t* _get_previous_fp() { #if defined(SPARC_WORKS) || defined(__clang__) || defined(__llvm__) - register intptr_t **ebp; + intptr_t **ebp; __asm__("mov %%" SPELL_REG_FP ", %0":"=r"(ebp)); #else register intptr_t **ebp __asm__ (SPELL_REG_FP); diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -74,7 +74,6 @@ # include # include # include -# include #define REG_FP 29 #define REG_LR 30 diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/linux_aarch64/thread_linux_aarch64.hpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_aarch64/thread_linux_aarch64.hpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/linux_aarch64/thread_linux_aarch64.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_aarch64/thread_linux_aarch64.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -27,15 +27,6 @@ #define OS_CPU_LINUX_AARCH64_VM_THREAD_LINUX_AARCH64_HPP private: -#ifdef ASSERT - // spill stack holds N callee-save registers at each Java call and - // grows downwards towards limit - // we need limit to check we have space for a spill and base so we - // can identify all live spill frames at GC (eventually) - address _spill_stack; - address _spill_stack_base; - address _spill_stack_limit; -#endif // ASSERT void pd_initialize() { _anchor.clear(); diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/linux_arm/os_linux_arm.cpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_arm/os_linux_arm.cpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/linux_arm/os_linux_arm.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_arm/os_linux_arm.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -259,9 +259,11 @@ #ifndef AARCH64 extern "C" address check_vfp_fault_instr; extern "C" address check_vfp3_32_fault_instr; +extern "C" address check_mp_ext_fault_instr; address check_vfp_fault_instr = NULL; address check_vfp3_32_fault_instr = NULL; +address check_mp_ext_fault_instr = NULL; #endif // !AARCH64 extern "C" address check_simd_fault_instr; address check_simd_fault_instr = NULL; @@ -283,7 +285,8 @@ if (sig == SIGILL && ((info->si_addr == (caddr_t)check_simd_fault_instr) NOT_AARCH64(|| info->si_addr == (caddr_t)check_vfp_fault_instr) - NOT_AARCH64(|| info->si_addr == (caddr_t)check_vfp3_32_fault_instr))) { + NOT_AARCH64(|| info->si_addr == (caddr_t)check_vfp3_32_fault_instr) + NOT_AARCH64(|| info->si_addr == (caddr_t)check_mp_ext_fault_instr))) { // skip faulty instruction + instruction that sets return value to // success and set return value to failure. os::Linux::ucontext_set_pc(uc, (address)info->si_addr + 8); diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/linux_ppc/orderAccess_linux_ppc.hpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_ppc/orderAccess_linux_ppc.hpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/linux_ppc/orderAccess_linux_ppc.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_ppc/orderAccess_linux_ppc.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -85,7 +85,7 @@ struct OrderAccess::PlatformOrderedLoad { template - T operator()(const volatile T* p) const { register T t = Atomic::load(p); inlasm_acquire_reg(t); return t; } + T operator()(const volatile T* p) const { T t = Atomic::load(p); inlasm_acquire_reg(t); return t; } }; #undef inlasm_sync diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -172,7 +172,9 @@ // method returns the Java sender of the current frame. *fr = os::fetch_frame_from_context(uc); if (!fr->is_first_java_frame()) { - assert(fr->safe_for_sender(thread), "Safety check"); + // get_frame_at_stack_banging_point() is only called when we + // have well defined stacks so java_sender() calls do not need + // to assert safe_for_sender() first. *fr = fr->java_sender(); } } else { @@ -189,7 +191,7 @@ address lr = ucontext_get_lr(uc); *fr = frame(sp, lr); if (!fr->is_java_frame()) { - assert(fr->safe_for_sender(thread), "Safety check"); + // See java_sender() comment above. assert(!fr->is_first_frame(), "Safety check"); *fr = fr->java_sender(); } @@ -229,6 +231,10 @@ Thread* t = Thread::current_or_null_safe(); + // Must do this before SignalHandlerMark, if crash protection installed we will longjmp away + // (no destructors can be run) + os::ThreadCrashProtection::check_crash_protection(sig, t); + SignalHandlerMark shm(t); // Note: it's not uncommon that JNI code uses signal/sigset to install diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/linux_ppc/thread_linux_ppc.cpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_ppc/thread_linux_ppc.cpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/linux_ppc/thread_linux_ppc.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_ppc/thread_linux_ppc.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2012, 2019 SAP SE. All rights reserved. + * Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2022 SAP SE. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -58,14 +58,15 @@ // if we were running Java code when SIGPROF came in. if (isInJava) { ucontext_t* uc = (ucontext_t*) ucontext; - frame ret_frame((intptr_t*)uc->uc_mcontext.regs->gpr[1/*REG_SP*/], - (address)uc->uc_mcontext.regs->nip); + address pc = (address)uc->uc_mcontext.regs->nip; - if (ret_frame.pc() == NULL) { + if (pc == NULL) { // ucontext wasn't useful return false; } + frame ret_frame((intptr_t*)uc->uc_mcontext.regs->gpr[1/*REG_SP*/], pc); + if (ret_frame.fp() == NULL) { // The found frame does not have a valid frame pointer. // Bail out because this will create big trouble later on, either diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/linux_s390/orderAccess_linux_s390.hpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_s390/orderAccess_linux_s390.hpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/linux_s390/orderAccess_linux_s390.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_s390/orderAccess_linux_s390.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -79,7 +79,7 @@ struct OrderAccess::PlatformOrderedLoad { template - T operator()(const volatile T* p) const { register T t = *p; inlasm_zarch_acquire(); return t; } + T operator()(const volatile T* p) const { T t = *p; inlasm_zarch_acquire(); return t; } }; #undef inlasm_compiler_barrier diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -154,7 +154,9 @@ // method returns the Java sender of the current frame. *fr = os::fetch_frame_from_context(uc); if (!fr->is_first_java_frame()) { - assert(fr->safe_for_sender(thread), "Safety check"); + // get_frame_at_stack_banging_point() is only called when we + // have well defined stacks so java_sender() calls do not need + // to assert safe_for_sender() first. *fr = fr->java_sender(); } } else { @@ -171,7 +173,7 @@ address lr = ucontext_get_lr(uc); *fr = frame(sp, lr); if (!fr->is_java_frame()) { - assert(fr->safe_for_sender(thread), "Safety check"); + // See java_sender() comment above. assert(!fr->is_first_frame(), "Safety check"); *fr = fr->java_sender(); } diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/linux_s390/thread_linux_s390.cpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_s390/thread_linux_s390.cpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/linux_s390/thread_linux_s390.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_s390/thread_linux_s390.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2016, 2019 SAP SE. All rights reserved. + * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2022 SAP SE. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -58,14 +58,15 @@ // if we were running Java code when SIGPROF came in. if (isInJava) { ucontext_t* uc = (ucontext_t*) ucontext; - frame ret_frame((intptr_t*)uc->uc_mcontext.gregs[15/*Z_SP*/], - (address)uc->uc_mcontext.psw.addr); + address pc = (address)uc->uc_mcontext.psw.addr; - if (ret_frame.pc() == NULL) { + if (pc == NULL) { // ucontext wasn't useful return false; } + frame ret_frame((intptr_t*)uc->uc_mcontext.gregs[15/*Z_SP*/], pc); + if (ret_frame.fp() == NULL) { // The found frame does not have a valid frame pointer. // Bail out because this will create big trouble later on, either @@ -100,7 +101,7 @@ if (ret_frame.is_interpreted_frame()) { frame::z_ijava_state* istate = ret_frame.ijava_state_unchecked(); - if (stack_base() >= (address)istate && (address)istate > stack_end()) { + if (!(stack_base() >= (address)istate && (address)istate > stack_end())) { return false; } const Method *m = (const Method*)(istate->method); diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -95,16 +95,11 @@ address os::current_stack_pointer() { #ifdef SPARC_WORKS - register void *esp; + void *esp; __asm__("mov %%" SPELL_REG_SP ", %0":"=r"(esp)); return (address) ((char*)esp + sizeof(long)*2); -#elif defined(__clang__) - intptr_t* esp; - __asm__ __volatile__ ("mov %%" SPELL_REG_SP ", %0":"=r"(esp):); - return (address) esp; #else - register void *esp __asm__ (SPELL_REG_SP); - return (address) esp; + return (address)__builtin_frame_address(0); #endif } @@ -229,7 +224,7 @@ intptr_t* _get_previous_fp() { #ifdef SPARC_WORKS - register intptr_t **ebp; + intptr_t **ebp; __asm__("mov %%" SPELL_REG_FP ", %0":"=r"(ebp)); #elif defined(__clang__) intptr_t **ebp; diff -Nru openjdk-11-11.0.14+9/src/hotspot/os_cpu/windows_aarch64/thread_windows_aarch64.hpp openjdk-11-11.0.16+8/src/hotspot/os_cpu/windows_aarch64/thread_windows_aarch64.hpp --- openjdk-11-11.0.14+9/src/hotspot/os_cpu/windows_aarch64/thread_windows_aarch64.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/os_cpu/windows_aarch64/thread_windows_aarch64.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -27,16 +27,6 @@ private: -#ifdef ASSERT - // spill stack holds N callee-save registers at each Java call and - // grows downwards towards limit - // we need limit to check we have space for a spill and base so we - // can identify all live spill frames at GC (eventually) - address _spill_stack; - address _spill_stack_base; - address _spill_stack_limit; -#endif // ASSERT - void pd_initialize() { _anchor.clear(); } diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/adlc/adlparse.cpp openjdk-11-11.0.16+8/src/hotspot/share/adlc/adlparse.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/adlc/adlparse.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/adlc/adlparse.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -4566,7 +4566,7 @@ // string(still inside the file buffer). Returns a pointer to the string or // NULL if some other token is found instead. char *ADLParser::get_ident_common(bool do_preproc) { - register char c; + char c; char *start; // Pointer to start of token char *end; // Pointer to end of token @@ -4764,7 +4764,7 @@ // invokes a parse_err if the next token is not an integer. // This routine does not leave the integer null-terminated. int ADLParser::get_int(void) { - register char c; + char c; char *start; // Pointer to start of token char *end; // Pointer to end of token int result; // Storage for integer result diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/adlc/arena.cpp openjdk-11-11.0.16+8/src/hotspot/share/adlc/arena.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/adlc/arena.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/adlc/arena.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -79,7 +79,7 @@ // Total of all Chunks in arena size_t Arena::used() const { size_t sum = _chunk->_len - (_max-_hwm); // Size leftover in this Chunk - register Chunk *k = _first; + Chunk *k = _first; while( k != _chunk) { // Whilst have Chunks in a row sum += k->_len; // Total size of this Chunk k = k->_next; // Bump along to next Chunk @@ -93,7 +93,7 @@ // Get minimal required size. Either real big, or even bigger for giant objs size_t len = max(x, Chunk::size); - register Chunk *k = _chunk; // Get filled-up chunk address + Chunk *k = _chunk; // Get filled-up chunk address _chunk = new (len) Chunk(len); if( k ) k->_next = _chunk; // Append new chunk to end of linked list diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/adlc/dict2.cpp openjdk-11-11.0.16+8/src/hotspot/share/adlc/dict2.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/adlc/dict2.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/adlc/dict2.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -283,9 +283,9 @@ // limited to MAXID characters in length. Experimental evidence on 150K of // C text shows excellent spreading of values for any size hash table. int hashstr(const void *t) { - register char c, k = 0; - register int sum = 0; - register const char *s = (const char *)t; + char c, k = 0; + int sum = 0; + const char *s = (const char *)t; while (((c = s[k]) != '\0') && (k < MAXID-1)) { // Get characters till nul c = (char) ((c << 1) + 1); // Characters are always odd! diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/adlc/main.cpp openjdk-11-11.0.16+8/src/hotspot/share/adlc/main.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/adlc/main.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/adlc/main.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -58,7 +58,7 @@ // Read command line arguments and file names for( int i = 1; i < argc; i++ ) { // For all arguments - register char *s = argv[i]; // Get option/filename + char *s = argv[i]; // Get option/filename if( *s++ == '-' ) { // It's a flag? (not a filename) if( !*s ) { // Stand-alone `-' means stdin diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/asm/codeBuffer.cpp openjdk-11-11.0.16+8/src/hotspot/share/asm/codeBuffer.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/asm/codeBuffer.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/asm/codeBuffer.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -130,11 +130,10 @@ // Previous incarnations of this buffer are held live, so that internal // addresses constructed before expansions will not be confused. cb->free_blob(); + // free any overflow storage + delete cb->_overflow_arena; } - // free any overflow storage - delete _overflow_arena; - // Claim is that stack allocation ensures resources are cleaned up. // This is resource clean up, let's hope that all were properly copied out. free_strings(); @@ -979,6 +978,7 @@ this_sect->take_over_code_from(cb_sect); } _overflow_arena = cb->_overflow_arena; + cb->_overflow_arena = NULL; // Make sure the old cb won't try to use it or free it. DEBUG_ONLY(cb->_blob = (BufferBlob*)badAddress); } diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/c1/c1_IR.cpp openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_IR.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/c1/c1_IR.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_IR.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -190,7 +190,8 @@ , _stack(stack) , _exception_handlers(exception_handlers) , _is_method_handle_invoke(false) - , _deoptimize_on_exception(deoptimize_on_exception) { + , _deoptimize_on_exception(deoptimize_on_exception) + , _force_reexecute(false) { assert(_stack != NULL, "must be non null"); } @@ -202,7 +203,8 @@ , _oop_map(NULL) , _stack(stack == NULL ? info->_stack : stack) , _is_method_handle_invoke(info->_is_method_handle_invoke) - , _deoptimize_on_exception(info->_deoptimize_on_exception) { + , _deoptimize_on_exception(info->_deoptimize_on_exception) + , _force_reexecute(info->_force_reexecute) { // deep copy of exception handlers if (info->_exception_handlers != NULL) { @@ -214,7 +216,8 @@ void CodeEmitInfo::record_debug_info(DebugInformationRecorder* recorder, int pc_offset) { // record the safepoint before recording the debug info for enclosing scopes recorder->add_safepoint(pc_offset, _oop_map->deep_copy()); - _scope_debug_info->record_debug_info(recorder, pc_offset, true/*topmost*/, _is_method_handle_invoke); + bool reexecute = _force_reexecute || _scope_debug_info->should_reexecute(); + _scope_debug_info->record_debug_info(recorder, pc_offset, reexecute, _is_method_handle_invoke); recorder->end_safepoint(pc_offset); } diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/c1/c1_IR.hpp openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_IR.hpp --- openjdk-11-11.0.14+9/src/hotspot/share/c1/c1_IR.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_IR.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -232,16 +232,15 @@ //Whether we should reexecute this bytecode for deopt bool should_reexecute(); - void record_debug_info(DebugInformationRecorder* recorder, int pc_offset, bool topmost, bool is_method_handle_invoke = false) { + void record_debug_info(DebugInformationRecorder* recorder, int pc_offset, bool reexecute, bool is_method_handle_invoke = false) { if (caller() != NULL) { // Order is significant: Must record caller first. - caller()->record_debug_info(recorder, pc_offset, false/*topmost*/); + caller()->record_debug_info(recorder, pc_offset, false/*reexecute*/); } DebugToken* locvals = recorder->create_scope_values(locals()); DebugToken* expvals = recorder->create_scope_values(expressions()); DebugToken* monvals = recorder->create_monitor_values(monitors()); // reexecute allowed only for the topmost frame - bool reexecute = topmost ? should_reexecute() : false; bool return_oop = false; // This flag will be ignored since it used only for C2 with escape analysis. bool rethrow_exception = false; recorder->describe_scope(pc_offset, methodHandle(), scope()->method(), bci(), reexecute, rethrow_exception, is_method_handle_invoke, return_oop, locvals, expvals, monvals); @@ -259,6 +258,7 @@ ValueStack* _stack; // used by deoptimization (contains also monitors bool _is_method_handle_invoke; // true if the associated call site is a MethodHandle call site. bool _deoptimize_on_exception; + bool _force_reexecute; // force the reexecute flag on, used for patching stub FrameMap* frame_map() const { return scope()->compilation()->frame_map(); } Compilation* compilation() const { return scope()->compilation(); } @@ -285,7 +285,11 @@ bool is_method_handle_invoke() const { return _is_method_handle_invoke; } void set_is_method_handle_invoke(bool x) { _is_method_handle_invoke = x; } + bool force_reexecute() const { return _force_reexecute; } + void set_force_reexecute() { _force_reexecute = true; } + int interpreter_frame_size() const; + }; diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/c1/c1_Instruction.cpp openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_Instruction.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/c1/c1_Instruction.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_Instruction.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -838,6 +838,11 @@ existing_state->invalidate_local(index); TRACE_PHI(tty->print_cr("invalidating local %d because of type mismatch", index)); } + + if (existing_value != new_state->local_at(index) && existing_value->as_Phi() == NULL) { + TRACE_PHI(tty->print_cr("required phi for local %d is missing, irreducible loop?", index)); + return false; // BAILOUT in caller + } } #ifdef ASSERT diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/c1/c1_LIRAssembler.cpp openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_LIRAssembler.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/c1/c1_LIRAssembler.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_LIRAssembler.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -41,6 +41,7 @@ while ((intx) _masm->pc() - (intx) patch->pc_start() < NativeGeneralJump::instruction_size) { _masm->nop(); } + info->set_force_reexecute(); patch->install(_masm, patch_code, obj, info); append_code_stub(patch); diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/c1/c1_LIRGenerator.cpp openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_LIRGenerator.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/c1/c1_LIRGenerator.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_LIRGenerator.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -993,6 +993,14 @@ Phi* phi = sux_val->as_Phi(); // cur_val can be null without phi being null in conjunction with inlining if (phi != NULL && cur_val != NULL && cur_val != phi && !phi->is_illegal()) { + if (phi->is_local()) { + for (int i = 0; i < phi->operand_count(); i++) { + Value op = phi->operand_at(i); + if (op != NULL && op->type()->is_illegal()) { + bailout("illegal phi operand"); + } + } + } Phi* cur_phi = cur_val->as_Phi(); if (cur_phi != NULL && cur_phi->is_illegal()) { // Phi and local would need to get invalidated diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/c1/c1_RangeCheckElimination.cpp openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_RangeCheckElimination.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/c1/c1_RangeCheckElimination.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_RangeCheckElimination.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -344,7 +344,12 @@ bool RangeCheckEliminator::loop_invariant(BlockBegin *loop_header, Instruction *instruction) { assert(loop_header, "Loop header must not be null!"); if (!instruction) return true; - return instruction->dominator_depth() < loop_header->dominator_depth(); + for (BlockBegin *d = loop_header->dominator(); d != NULL; d = d->dominator()) { + if (d == instruction->block()) { + return true; + } + } + return false; } // Update bound. Pushes a new bound onto the stack. Tries to do a conjunction with the current bound. diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/c1/c1_Runtime1.cpp openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_Runtime1.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/c1/c1_Runtime1.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/c1/c1_Runtime1.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -834,6 +834,10 @@ JRT_ENTRY(void, Runtime1::patch_code(JavaThread* thread, Runtime1::StubID stub_id )) NOT_PRODUCT(_patch_code_slowcase_cnt++;) + // Enable WXWrite: the function is called by c1 stub as a runtime function + // (see another implementation above). + MACOS_AARCH64_ONLY(ThreadWXEnable wx(WXWrite, thread)); + ResourceMark rm(thread); RegisterMap reg_map(thread, false); frame runtime_frame = thread->last_frame(); diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/ci/ciEnv.cpp openjdk-11-11.0.16+8/src/hotspot/share/ci/ciEnv.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/ci/ciEnv.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/ci/ciEnv.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -586,7 +586,6 @@ ciConstant ciEnv::get_constant_by_index_impl(const constantPoolHandle& cpool, int pool_index, int cache_index, ciInstanceKlass* accessor) { - bool ignore_will_link; EXCEPTION_CONTEXT; int index = pool_index; if (cache_index >= 0) { @@ -658,8 +657,8 @@ return ciConstant(T_OBJECT, constant); } } else if (tag.is_klass() || tag.is_unresolved_klass()) { - // 4881222: allow ldc to take a class type - ciKlass* klass = get_klass_by_index_impl(cpool, index, ignore_will_link, accessor); + bool will_link; + ciKlass* klass = get_klass_by_index_impl(cpool, index, will_link, accessor); if (HAS_PENDING_EXCEPTION) { CLEAR_PENDING_EXCEPTION; record_out_of_memory_failure(); @@ -667,7 +666,8 @@ } assert (klass->is_instance_klass() || klass->is_array_klass(), "must be an instance or array klass "); - return ciConstant(T_OBJECT, klass->java_mirror()); + ciInstance* mirror = (will_link ? klass->java_mirror() : get_unloaded_klass_mirror(klass)); + return ciConstant(T_OBJECT, mirror); } else if (tag.is_method_type()) { // must execute Java code to link this CP entry into cache[i].f1 ciSymbol* signature = get_symbol(cpool->method_type_signature_at(index)); @@ -675,6 +675,7 @@ return ciConstant(T_OBJECT, ciobj); } else if (tag.is_method_handle()) { // must execute Java code to link this CP entry into cache[i].f1 + bool ignore_will_link; int ref_kind = cpool->method_handle_ref_kind_at(index); int callee_index = cpool->method_handle_klass_index_at(index); ciKlass* callee = get_klass_by_index_impl(cpool, callee_index, ignore_will_link, accessor); diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/ci/ciMethodData.cpp openjdk-11-11.0.16+8/src/hotspot/share/ci/ciMethodData.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/ci/ciMethodData.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/ci/ciMethodData.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -266,8 +266,13 @@ for (uint row = 0; row < row_limit(); row++) { Klass* k = data->as_ReceiverTypeData()->receiver(row); if (k != NULL) { - ciKlass* klass = CURRENT_ENV->get_klass(k); - set_receiver(row, klass); + if (k->is_loader_alive()) { + ciKlass* klass = CURRENT_ENV->get_klass(k); + set_receiver(row, klass); + } else { + // With concurrent class unloading, the MDO could have stale metadata; override it + clear_row(row); + } } else { set_receiver(row, NULL); } diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/classfile/altHashing.cpp openjdk-11-11.0.16+8/src/hotspot/share/classfile/altHashing.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/classfile/altHashing.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/classfile/altHashing.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -26,18 +26,23 @@ * halfsiphash code adapted from reference implementation * (https://github.com/veorq/SipHash/blob/master/halfsiphash.c) * which is distributed with the following copyright: - * - * SipHash reference C implementation - * - * Copyright (c) 2016 Jean-Philippe Aumasson - * - * To the extent possible under law, the author(s) have dedicated all copyright - * and related and neighboring rights to this software to the public domain - * worldwide. This software is distributed without any warranty. - * - * You should have received a copy of the CC0 Public Domain Dedication along - * with this software. If not, see - * . + */ + +/* + SipHash reference C implementation + + Copyright (c) 2012-2021 Jean-Philippe Aumasson + + Copyright (c) 2012-2014 Daniel J. Bernstein + + To the extent possible under law, the author(s) have dedicated all copyright + and related and neighboring rights to this software to the public domain + worldwide. This software is distributed without any warranty. + + You should have received a copy of the CC0 Public Domain Dedication along + with + this software. If not, see + . */ #include "precompiled.hpp" @@ -134,7 +139,9 @@ } // HalfSipHash-2-4 (32-bit output) for Symbols -uint32_t AltHashing::halfsiphash_32(uint64_t seed, const uint8_t* data, int len) { +uint32_t AltHashing::halfsiphash_32(uint64_t seed, const void* in, int len) { + + const unsigned char* data = (const unsigned char*)in; uint32_t v[4]; uint32_t newdata; int off = 0; diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/classfile/altHashing.hpp openjdk-11-11.0.16+8/src/hotspot/share/classfile/altHashing.hpp --- openjdk-11-11.0.14+9/src/hotspot/share/classfile/altHashing.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/classfile/altHashing.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,7 +43,7 @@ static uint64_t compute_seed(); // For Symbols - static uint32_t halfsiphash_32(uint64_t seed, const uint8_t* data, int len); + static uint32_t halfsiphash_32(uint64_t seed, const void* in, int len); // For Strings static uint32_t halfsiphash_32(uint64_t seed, const uint16_t* data, int len); }; diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/classfile/classLoader.hpp openjdk-11-11.0.16+8/src/hotspot/share/classfile/classLoader.hpp --- openjdk-11-11.0.14+9/src/hotspot/share/classfile/classLoader.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/classfile/classLoader.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -267,12 +267,12 @@ static void load_zip_library(); static void load_jimage_library(); + + public: static ClassPathEntry* create_class_path_entry(const char *path, const struct stat* st, bool throw_exception, bool is_boot_append, TRAPS); - public: - // If the package for the fully qualified class name is in the boot // loader's package entry table then add_package() sets the classpath_index // field so that get_system_package() will know to return a non-null value diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/classfile/dictionary.cpp openjdk-11-11.0.16+8/src/hotspot/share/classfile/dictionary.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/classfile/dictionary.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/classfile/dictionary.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -613,9 +613,9 @@ ClassLoaderData* cld = loader_data(); // class loader must be present; a null class loader is the // boostrap loader - guarantee(cld != NULL || DumpSharedSpaces || - cld->class_loader() == NULL || - cld->class_loader()->is_instance(), + guarantee(DumpSharedSpaces || + (cld != NULL && + (cld->the_null_class_loader_data() || cld->class_loader()->is_instance())), "checking type of class_loader"); ResourceMark rm; diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/classfile/klassFactory.cpp openjdk-11-11.0.16+8/src/hotspot/share/classfile/klassFactory.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/classfile/klassFactory.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/classfile/klassFactory.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. +* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -46,22 +46,22 @@ InstanceKlass* ik, Symbol* class_name, Handle class_loader, - Handle protection_domain, TRAPS) { + Handle protection_domain, + const ClassFileStream *cfs, + TRAPS) { #if INCLUDE_CDS && INCLUDE_JVMTI assert(ik != NULL, "sanity"); assert(ik->is_shared(), "expecting a shared class"); - if (JvmtiExport::should_post_class_file_load_hook()) { assert(THREAD->is_Java_thread(), "must be JavaThread"); // Post the CFLH JvmtiCachedClassFileData* cached_class_file = NULL; - JvmtiCachedClassFileData* archived_class_data = ik->get_archived_class_data(); - assert(archived_class_data != NULL, "shared class has no archived class data"); - unsigned char* ptr = - VM_RedefineClasses::get_cached_class_file_bytes(archived_class_data); - unsigned char* end_ptr = - ptr + VM_RedefineClasses::get_cached_class_file_len(archived_class_data); + if (cfs == NULL) { + cfs = FileMapInfo::open_stream_for_jvmti(ik, CHECK_NULL); + } + unsigned char* ptr = (unsigned char*)cfs->buffer(); + unsigned char* end_ptr = ptr + cfs->length(); unsigned char* old_ptr = ptr; JvmtiExport::post_class_file_load_hook(class_name, class_loader, @@ -75,25 +75,9 @@ ClassLoaderData* loader_data = ClassLoaderData::class_loader_data(class_loader()); int path_index = ik->shared_classpath_index(); - const char* pathname; - if (path_index < 0) { - // shared classes loaded by user defined class loader - // do not have shared_classpath_index - ModuleEntry* mod_entry = ik->module(); - if (mod_entry != NULL && (mod_entry->location() != NULL)) { - ResourceMark rm; - pathname = (const char*)(mod_entry->location()->as_C_string()); - } else { - pathname = ""; - } - } else { - SharedClassPathEntry* ent = - (SharedClassPathEntry*)FileMapInfo::shared_path(path_index); - pathname = ent == NULL ? NULL : ent->name(); - } ClassFileStream* stream = new ClassFileStream(ptr, end_ptr - ptr, - pathname, + cfs->source(), ClassFileStream::verify); ClassFileParser parser(stream, class_name, @@ -240,24 +224,6 @@ #if INCLUDE_CDS if (DumpSharedSpaces) { ClassLoader::record_result(result, stream, THREAD); -#if INCLUDE_JVMTI - assert(cached_class_file == NULL, "Sanity"); - // Archive the class stream data into the optional data section - JvmtiCachedClassFileData *p; - int len; - const unsigned char *bytes; - // event based tracing might set cached_class_file - if ((bytes = result->get_cached_class_file_bytes()) != NULL) { - len = result->get_cached_class_file_len(); - } else { - len = stream->length(); - bytes = stream->buffer(); - } - p = (JvmtiCachedClassFileData*)os::malloc(offset_of(JvmtiCachedClassFileData, data) + len, mtInternal); - p->length = len; - memcpy(p->data, bytes, len); - result->set_archived_class_data(p); -#endif // INCLUDE_JVMTI } #endif // INCLUDE_CDS diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/classfile/klassFactory.hpp openjdk-11-11.0.16+8/src/hotspot/share/classfile/klassFactory.hpp --- openjdk-11-11.0.14+9/src/hotspot/share/classfile/klassFactory.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/classfile/klassFactory.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -80,7 +80,9 @@ InstanceKlass* ik, Symbol* class_name, Handle class_loader, - Handle protection_domain, TRAPS); + Handle protection_domain, + const ClassFileStream *cfs, + TRAPS); }; #endif // SHARE_VM_CLASSFILE_KLASSFACTORY_HPP diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/classfile/systemDictionary.cpp openjdk-11-11.0.16+8/src/hotspot/share/classfile/systemDictionary.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/classfile/systemDictionary.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/classfile/systemDictionary.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1171,7 +1171,7 @@ if (ik != NULL && ik->is_shared_boot_class() && class_loader.is_null()) { Handle protection_domain; - return load_shared_class(ik, class_loader, protection_domain, THREAD); + return load_shared_class(ik, class_loader, protection_domain, NULL, THREAD); } return NULL; } @@ -1271,7 +1271,9 @@ InstanceKlass* SystemDictionary::load_shared_class(InstanceKlass* ik, Handle class_loader, - Handle protection_domain, TRAPS) { + Handle protection_domain, + const ClassFileStream *cfs, + TRAPS) { if (ik != NULL) { Symbol* class_name = ik->name(); @@ -1318,7 +1320,7 @@ } InstanceKlass* new_ik = KlassFactory::check_shared_class_file_load_hook( - ik, class_name, class_loader, protection_domain, CHECK_NULL); + ik, class_name, class_loader, protection_domain, cfs, CHECK_NULL); if (new_ik != NULL) { // The class is changed by CFLH. Return the new class. The shared class is // not used. diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/classfile/systemDictionary.hpp openjdk-11-11.0.16+8/src/hotspot/share/classfile/systemDictionary.hpp --- openjdk-11-11.0.14+9/src/hotspot/share/classfile/systemDictionary.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/classfile/systemDictionary.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -655,6 +655,7 @@ static InstanceKlass* load_shared_class(InstanceKlass* ik, Handle class_loader, Handle protection_domain, + const ClassFileStream *cfs, TRAPS); static InstanceKlass* load_instance_class(Symbol* class_name, Handle class_loader, TRAPS); static Handle compute_loader_lock_object(Handle class_loader, TRAPS); diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/classfile/systemDictionaryShared.cpp openjdk-11-11.0.16+8/src/hotspot/share/classfile/systemDictionaryShared.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/classfile/systemDictionaryShared.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/classfile/systemDictionaryShared.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -541,7 +541,7 @@ SystemDictionary::is_platform_class_loader(class_loader()))) { Handle protection_domain = SystemDictionaryShared::init_security_info(class_loader, ik, CHECK_NULL); - return load_shared_class(ik, class_loader, protection_domain, THREAD); + return load_shared_class(ik, class_loader, protection_domain, NULL, THREAD); } } @@ -621,13 +621,15 @@ } return acquire_class_for_current_thread(InstanceKlass::cast(k), class_loader, - protection_domain, THREAD); + protection_domain, cfs, + THREAD); } InstanceKlass* SystemDictionaryShared::acquire_class_for_current_thread( InstanceKlass *ik, Handle class_loader, Handle protection_domain, + const ClassFileStream *cfs, TRAPS) { ClassLoaderData* loader_data = ClassLoaderData::class_loader_data(class_loader()); @@ -648,7 +650,8 @@ loader_data->add_class(ik); // Load and check super/interfaces, restore unsharable info - InstanceKlass* shared_klass = load_shared_class(ik, class_loader, protection_domain, THREAD); + InstanceKlass* shared_klass = load_shared_class(ik, class_loader, protection_domain, + cfs, THREAD); if (shared_klass == NULL || HAS_PENDING_EXCEPTION) { // TODO: clean up so it can be used again return NULL; diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/classfile/systemDictionaryShared.hpp openjdk-11-11.0.16+8/src/hotspot/share/classfile/systemDictionaryShared.hpp --- openjdk-11-11.0.14+9/src/hotspot/share/classfile/systemDictionaryShared.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/classfile/systemDictionaryShared.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -281,6 +281,7 @@ InstanceKlass *ik, Handle class_loader, Handle protection_domain, + const ClassFileStream* cfs, TRAPS); static void finalize_verification_constraints_for(InstanceKlass* k); public: diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/classfile/verifier.cpp openjdk-11-11.0.16+8/src/hotspot/share/classfile/verifier.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/classfile/verifier.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/classfile/verifier.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1734,7 +1734,7 @@ no_control_flow = true; break; default: // We only need to check the valid bytecodes in class file. - // And jsr and ret are not in the new class file format in JDK1.5. + // And jsr and ret are not in the new class file format in JDK1.6. verify_error(ErrorContext::bad_code(bci), "Bad instruction: %02x", opcode); no_control_flow = false; @@ -2356,7 +2356,8 @@ verify_error(ErrorContext::bad_type(bci, current_frame->stack_top_ctx(), TypeOrigin::implicit(current_type())), - "Bad access to protected data in getfield"); + "Bad access to protected data in %s", + is_getfield ? "getfield" : "putfield"); return; } } diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/code/codeBlob.cpp openjdk-11-11.0.16+8/src/hotspot/share/code/codeBlob.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/code/codeBlob.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/code/codeBlob.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -31,6 +31,7 @@ #include "code/vtableStubs.hpp" #include "compiler/disassembler.hpp" #include "interpreter/bytecode.hpp" +#include "interpreter/interpreter.hpp" #include "memory/allocation.inline.hpp" #include "memory/heap.hpp" #include "memory/resourceArea.hpp" diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/code/codeHeapState.cpp openjdk-11-11.0.16+8/src/hotspot/share/code/codeHeapState.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/code/codeHeapState.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/code/codeHeapState.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2022, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2019 SAP SE. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -757,18 +757,17 @@ CodeBlob* cb = (CodeBlob*)heap->find_start(h); cbType = get_cbType(cb); // Will check for cb == NULL and other safety things. if (cbType != noType) { - const char* blob_name = os::strdup(cb->name()); + const char* blob_name = NULL; unsigned int nm_size = 0; int temperature = 0; nmethod* nm = cb->as_nmethod_or_null(); if (nm != NULL) { // no is_readable check required, nm = (nmethod*)cb. ResourceMark rm; Method* method = nm->method(); - if (nm->is_in_use()) { - blob_name = os::strdup(method->name_and_sig_as_C_string()); - } - if (nm->is_not_entrant()) { + if (nm->is_in_use() || nm->is_not_entrant()) { blob_name = os::strdup(method->name_and_sig_as_C_string()); + } else { + blob_name = os::strdup(cb->name()); } nm_size = nm->total_size(); @@ -816,6 +815,8 @@ default: break; } + } else { + blob_name = os::strdup(cb->name()); } //------------------------------------------ diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/compiler/compileBroker.cpp openjdk-11-11.0.16+8/src/hotspot/share/compiler/compileBroker.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/compiler/compileBroker.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/compiler/compileBroker.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -220,11 +220,13 @@ } void log_metaspace_failure(const char* reason) { + // Note: This method can be called from non-Java/compiler threads to + // log the global metaspace failure that might affect profiling. ResourceMark rm; StringLogMessage lm; lm.print("%4d COMPILE PROFILING SKIPPED: %s", -1, reason); lm.print("\n"); - log(JavaThread::current(), "%s", (const char*)lm); + log(Thread::current(), "%s", (const char*)lm); } }; @@ -411,6 +413,7 @@ CompileTask::free(current); } _first = NULL; + _last = NULL; // Wake up all threads that block on the queue. MethodCompileQueue_lock->notify_all(); diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/compiler/compilerDefinitions.cpp openjdk-11-11.0.16+8/src/hotspot/share/compiler/compilerDefinitions.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/compiler/compilerDefinitions.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/compiler/compilerDefinitions.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -76,10 +76,17 @@ // Returns threshold scaled with the value of scale. // If scale < 0.0, threshold is returned without scaling. intx CompilerConfig::scaled_compile_threshold(intx threshold, double scale) { + assert(threshold >= 0, "must be"); if (scale == 1.0 || scale < 0.0) { return threshold; } else { - return (intx)(threshold * scale); + double v = threshold * scale; + assert(v >= 0, "must be"); + if (v > max_intx) { + return max_intx; + } else { + return (intx)(v); + } } } @@ -432,8 +439,8 @@ if (!IncrementalInline) { AlwaysIncrementalInline = false; } - if (PrintIdealGraphLevel > 0) { - FLAG_SET_ERGO(bool, PrintIdealGraph, true); + if (FLAG_IS_CMDLINE(PrintIdealGraph) && !PrintIdealGraph) { + FLAG_SET_ERGO(intx, PrintIdealGraphLevel, -1); } #endif if (!UseTypeSpeculation && FLAG_IS_DEFAULT(TypeProfileLevel)) { diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.cpp openjdk-11-11.0.16+8/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -263,7 +263,7 @@ if (pretouch_gang != NULL) { size_t num_chunks = MAX2((size_t)1, size_in_pages * _page_size / MAX2(G1PretouchTask::chunk_size(), _page_size)); - uint num_workers = MIN2((uint)num_chunks, pretouch_gang->active_workers()); + uint num_workers = MIN2((uint)num_chunks, pretouch_gang->total_workers()); log_debug(gc, heap)("Running %s with %u workers for " SIZE_FORMAT " work units pre-touching " SIZE_FORMAT "B.", cl.name(), num_workers, num_chunks, size_in_pages * _page_size); pretouch_gang->run_task(&cl, num_workers); diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp openjdk-11-11.0.16+8/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -2038,6 +2038,9 @@ head->as_Loop()->verify_strip_mined(0); } move_gc_state_test_out_of_loop(iff, phase); + + AutoNodeBudget node_budget(phase); + if (loop->policy_unswitching(phase)) { if (head->as_Loop()->is_strip_mined()) { OuterStripMinedLoopNode* outer = head->as_CountedLoop()->outer_loop(); diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/gc/z/zBarrierSet.cpp openjdk-11-11.0.16+8/src/hotspot/share/gc/z/zBarrierSet.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/gc/z/zBarrierSet.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/gc/z/zBarrierSet.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,6 +28,7 @@ #include "gc/z/zHeap.inline.hpp" #include "gc/z/zThreadLocalData.hpp" #include "runtime/thread.hpp" +#include "utilities/macros.hpp" #ifdef COMPILER1 #include "gc/z/c1/zBarrierSetC1.hpp" #endif @@ -40,8 +41,8 @@ ZBarrierSet::ZBarrierSet() : BarrierSet(make_barrier_set_assembler(), - COMPILER1_PRESENT( make_barrier_set_c1() ) NOT_COMPILER1(NULL), - COMPILER2_PRESENT( make_barrier_set_c2() ) NOT_COMPILER2(NULL), + make_barrier_set_c1(), + make_barrier_set_c2(), BarrierSet::FakeRtti(BarrierSet::ZBarrierSet)) {} ZBarrierSetAssembler* ZBarrierSet::assembler() { diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/include/jvm.h openjdk-11-11.0.16+8/src/hotspot/share/include/jvm.h --- openjdk-11-11.0.14+9/src/hotspot/share/include/jvm.h 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/include/jvm.h 2022-07-16 20:06:34.000000000 +0000 @@ -160,7 +160,7 @@ JVM_IsUseContainerSupport(void); JNIEXPORT void * JNICALL -JVM_LoadLibrary(const char *name); +JVM_LoadLibrary(const char *name, jboolean throwException); JNIEXPORT void JNICALL JVM_UnloadLibrary(void * handle); diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/interpreter/bytecodeInterpreter.cpp openjdk-11-11.0.16+8/src/hotspot/share/interpreter/bytecodeInterpreter.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/interpreter/bytecodeInterpreter.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/interpreter/bytecodeInterpreter.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -481,7 +481,6 @@ #ifdef ASSERT if (istate->_msg != initialize) { assert(labs(istate->_stack_base - istate->_stack_limit) == (istate->_method->max_stack() + 1), "bad stack limit"); - IA32_ONLY(assert(istate->_stack_limit == istate->_thread->last_Java_sp() + 1, "wrong")); } // Verify linkages. interpreterState l = istate; @@ -494,13 +493,13 @@ interpreterState orig = istate; #endif - register intptr_t* topOfStack = (intptr_t *)istate->stack(); /* access with STACK macros */ - register address pc = istate->bcp(); - register jubyte opcode; - register intptr_t* locals = istate->locals(); - register ConstantPoolCache* cp = istate->constants(); // method()->constants()->cache() + intptr_t* topOfStack = (intptr_t *)istate->stack(); /* access with STACK macros */ + address pc = istate->bcp(); + jubyte opcode; + intptr_t* locals = istate->locals(); + ConstantPoolCache* cp = istate->constants(); // method()->constants()->cache() #ifdef LOTS_OF_REGS - register JavaThread* THREAD = istate->thread(); + JavaThread* THREAD = istate->thread(); #else #undef THREAD #define THREAD istate->thread() @@ -589,7 +588,7 @@ /* 0xF8 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, /* 0xFC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default }; - register uintptr_t *dispatch_table = (uintptr_t*)&opclabels_data[0]; + uintptr_t *dispatch_table = (uintptr_t*)&opclabels_data[0]; #endif /* USELABELS */ #ifdef ASSERT diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/interpreter/bytecodes.cpp openjdk-11-11.0.16+8/src/hotspot/share/interpreter/bytecodes.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/interpreter/bytecodes.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/interpreter/bytecodes.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -471,7 +471,7 @@ def(_new , "new" , "bkk" , NULL , T_OBJECT , 1, true ); def(_newarray , "newarray" , "bc" , NULL , T_OBJECT , 0, true ); def(_anewarray , "anewarray" , "bkk" , NULL , T_OBJECT , 0, true ); - def(_arraylength , "arraylength" , "b" , NULL , T_VOID , 0, true ); + def(_arraylength , "arraylength" , "b" , NULL , T_INT , 0, true ); def(_athrow , "athrow" , "b" , NULL , T_VOID , -1, true ); def(_checkcast , "checkcast" , "bkk" , NULL , T_OBJECT , 0, true ); def(_instanceof , "instanceof" , "bkk" , NULL , T_INT , 0, true ); diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/interpreter/interpreterRuntime.cpp openjdk-11-11.0.16+8/src/hotspot/share/interpreter/interpreterRuntime.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/interpreter/interpreterRuntime.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/interpreter/interpreterRuntime.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1015,6 +1015,9 @@ nmethod* InterpreterRuntime::frequency_counter_overflow(JavaThread* thread, address branch_bcp) { + // Enable WXWrite: the function is called directly by interpreter. + MACOS_AARCH64_ONLY(ThreadWXEnable wx(WXWrite, thread)); + nmethod* nm = frequency_counter_overflow_inner(thread, branch_bcp); assert(branch_bcp != NULL || nm == NULL, "always returns null for non OSR requests"); if (branch_bcp != NULL && nm != NULL) { diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/interpreter/linkResolver.cpp openjdk-11-11.0.16+8/src/hotspot/share/interpreter/linkResolver.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/interpreter/linkResolver.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/interpreter/linkResolver.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1698,10 +1698,32 @@ assert(resolved_klass == SystemDictionary::MethodHandle_klass() || resolved_klass == SystemDictionary::VarHandle_klass(), ""); assert(MethodHandles::is_signature_polymorphic_name(link_info.name()), ""); - Handle resolved_appendix; - Handle resolved_method_type; + Handle resolved_appendix; + Handle resolved_method_type; methodHandle resolved_method = lookup_polymorphic_method(link_info, - &resolved_appendix, &resolved_method_type, CHECK); + &resolved_appendix, &resolved_method_type, CHECK); + + if (link_info.check_access()) { + Symbol* name = link_info.name(); + vmIntrinsics::ID iid = MethodHandles::signature_polymorphic_name_id(name); + if (MethodHandles::is_signature_polymorphic_intrinsic(iid)) { + // Check if method can be accessed by the referring class. + // MH.linkTo* invocations are not rewritten to invokehandle. + assert(iid == vmIntrinsics::_invokeBasic, "%s", vmIntrinsics::name_at(iid)); + + Klass* current_klass = link_info.current_klass(); + assert(current_klass != NULL , "current_klass should not be null"); + check_method_accessability(current_klass, + resolved_klass, + resolved_method->method_holder(), + resolved_method, + CHECK); + } else { + // Java code is free to arbitrarily link signature-polymorphic invokers. + assert(iid == vmIntrinsics::_invokeGeneric, "not an invoker: %s", vmIntrinsics::name_at(iid)); + assert(MethodHandles::is_signature_polymorphic_public_name(resolved_klass, name), "not public"); + } + } result.set_handle(resolved_klass, resolved_method, resolved_appendix, resolved_method_type, CHECK); } diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/interpreter/oopMapCache.cpp openjdk-11-11.0.16+8/src/hotspot/share/interpreter/oopMapCache.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/interpreter/oopMapCache.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/interpreter/oopMapCache.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -241,6 +241,8 @@ } public: + void pass_byte() { /* ignore */ } + void pass_short() { /* ignore */ } void pass_int() { /* ignore */ } void pass_long() { /* ignore */ } void pass_float() { /* ignore */ } diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/jfr/jni/jfrJavaSupport.cpp openjdk-11-11.0.16+8/src/hotspot/share/jfr/jni/jfrJavaSupport.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/jfr/jni/jfrJavaSupport.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/jfr/jni/jfrJavaSupport.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -523,14 +523,16 @@ void JfrJavaSupport::abort(jstring errorMsg, Thread* t) { DEBUG_ONLY(check_java_thread_in_vm(t)); - ResourceMark rm(t); - const char* const error_msg = c_str(errorMsg, t); + abort(c_str(errorMsg, t)); +} + +void JfrJavaSupport::abort(const char* error_msg, bool dump_core /* true */) { if (error_msg != NULL) { - log_error(jfr, system)("%s",error_msg); + log_error(jfr, system)("%s", error_msg); } log_error(jfr, system)("%s", "An irrecoverable error in Jfr. Shutting down VM..."); - vm_abort(); + vm_abort(dump_core); } JfrJavaSupport::CAUSE JfrJavaSupport::_cause = JfrJavaSupport::VM_ERROR; diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/jfr/jni/jfrJavaSupport.hpp openjdk-11-11.0.16+8/src/hotspot/share/jfr/jni/jfrJavaSupport.hpp --- openjdk-11-11.0.14+9/src/hotspot/share/jfr/jni/jfrJavaSupport.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/jfr/jni/jfrJavaSupport.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -90,6 +90,7 @@ // critical static void abort(jstring errorMsg, TRAPS); + static void abort(const char* error_msg, bool dump_core = true); static void uncaught_exception(jthrowable throwable, Thread* t); // asserts diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleWriter.cpp openjdk-11-11.0.16+8/src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleWriter.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleWriter.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleWriter.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -617,11 +617,11 @@ assert(store != NULL, "invariant"); assert(!store->is_empty(), "invariant"); register_serializers(); - sample_infos = NULL; - ref_infos = NULL; - array_infos = NULL; - field_infos = NULL; - root_infos = NULL; + assert(field_infos == NULL, "Invariant"); + assert(sample_infos == NULL, "Invariant"); + assert(ref_infos == NULL, "Invariant"); + assert(array_infos == NULL, "Invariant"); + assert(root_infos == NULL, "Invariant"); } ObjectSampleWriter::~ObjectSampleWriter() { @@ -630,6 +630,16 @@ write_array_infos(_writer); write_field_infos(_writer); write_root_descriptors(_writer); + + // Followings are RA allocated, memory will be released automatically. + if (field_infos != NULL) { + field_infos->~FieldTable(); + field_infos = NULL; + } + sample_infos = NULL; + ref_infos = NULL; + array_infos = NULL; + root_infos = NULL; } bool ObjectSampleWriter::operator()(StoredEdge& e) { diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp openjdk-11-11.0.16+8/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp --- openjdk-11-11.0.14+9/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp 2022-07-16 20:06:34.000000000 +0000 @@ -385,7 +385,7 @@ _subsystem_callback = &callback; do_klasses(); } else { - LeakKlassWriter lkw(_leakp_writer, _artifacts, _class_unload); + LeakKlassWriter lkw(_leakp_writer, _class_unload); CompositeKlassWriter ckw(&lkw, &kw); CompositeKlassWriterRegistration ckwr(&ckw, ®); CompositeKlassCallback callback(&ckwr); diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/jfr/writers/jfrStreamWriterHost.inline.hpp openjdk-11-11.0.16+8/src/hotspot/share/jfr/writers/jfrStreamWriterHost.inline.hpp --- openjdk-11-11.0.14+9/src/hotspot/share/jfr/writers/jfrStreamWriterHost.inline.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/jfr/writers/jfrStreamWriterHost.inline.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -25,6 +25,7 @@ #ifndef SHARE_VM_JFR_WRITERS_JFRSTREAMWRITERHOST_INLINE_HPP #define SHARE_VM_JFR_WRITERS_JFRSTREAMWRITERHOST_INLINE_HPP +#include "jfr/jni/jfrJavaSupport.hpp" #include "jfr/writers/jfrStreamWriterHost.hpp" #include "runtime/os.hpp" @@ -76,6 +77,9 @@ while (len > 0) { const unsigned int nBytes = len > INT_MAX ? INT_MAX : (unsigned int)len; const ssize_t num_written = (ssize_t)os::write(_fd, buf, nBytes); + if (errno == ENOSPC) { + JfrJavaSupport::abort("Failed to write to jfr stream because no space left on device", false); + } guarantee(num_written > 0, "Nothing got written, or os::write() failed"); _stream_pos += num_written; len -= num_written; diff -Nru openjdk-11-11.0.14+9/src/hotspot/share/jvmci/jvmciEnv.hpp openjdk-11-11.0.16+8/src/hotspot/share/jvmci/jvmciEnv.hpp --- openjdk-11-11.0.14+9/src/hotspot/share/jvmci/jvmciEnv.hpp 2022-01-13 21:56:25.000000000 +0000 +++ openjdk-11-11.0.16+8/src/hotspot/share/jvmci/jvmciEnv.hpp 2022-07-16 20:06:34.000000000 +0000 @@ -37,6 +37,7 @@ // Bring the JVMCI compiler thread into the VM state. #define JVMCI_VM_ENTRY_MARK \ JavaThread* thread = JavaThread::current(); \ + MACOS_AARCH64_ONLY(ThreadWXEnable __wx(WXWrite, thread)); \ ThreadInVMfromNat