Примечания к релизу Axiom JDK 21.0.1+12

Данный релиз соответствует OpenJDK 21.0.1+12, номер версии Axiom JDK - 21

Axiom JDK 21.0.1+12

Axiom является сертифицированным Java SE 21-совместимым дистрибутивом OpenJDK 21, который работает на серверах (Linux x86_64, Linux ARM64, Windows 64), настольных компьютерах (Windows 64, Windows 32, Mac, Linux x86_64) и встроенных устройствах (Linux ARM64, Linux ARMv7, включая Raspberry Pi 2 & 3 (ARMv6 hardfloat). Axiom JDK имеет следующие дополнения:

  • Версия для Linux x86_64 содержит экспериментальную поддержку ZGC.
  • В версии для Linux x86_64, ARMv8 и ARMv7 можно выбрать клиентскую виртуальную машину (Client VM), серверную виртуальную машину (Server VM) и минимальную виртуальную машину (Minimal VM).
  • Версия для Alpine Linux x86_64 построена с поддержкой musl.
  • Версии для Windows x86_64, Windows x86, Windows ARMv8, Mac, Linux x86_64, Linux x86 и Linux ARMv7 содержат OpenJFX 21.
  • Версия для Linux ARMv7 содержит Device IO API, скомпилированный для Raspberry Pi.

Пожалуйста, прочитайте примечания к релизу Oracle JDK 21.0.1 для получения дополнительной информации о функционале JDK 21. В этом документе описываются особенности дистрибутива Axiom по сравнению с дистрибутивом Oracle JDK 21.

Поддерживаемые серверные и десктопные конфигурации

Axiom поддерживается в следующих ОС:

  • Ubuntu Linux 16.04, 18.04 (x86, x86_64, ARMv7, ARMv8)
  • Debian Linux 8, 9 (x86, x86_64, ARMv7, ARMv8)
  • Red Hat, Oracle Linux и CentOS 8x, 6.x, 7.x (x86, x86_64, ARMv7, ARMv8)
  • Alpine Linux 3.7+
  • SUSE Linux Enterprise 12, 16, tumbleweed (x86_64, ARMv8)
  • Apple macOS 10.11+ (x86_64, ARMv8)
  • Microsoft Windows 2019, Windows 2016, Windows 2012 R2, Windows 10, Windows 8, Windows 7 (x86, x86_64, ARMv8)

Также известно, Axiom JDK работает с некоторыми другими дистрибутивами Linux и версиями Windows.

Примечание: Минимальная поддерживаемая версия ядра Linux - 2.6.18, версия GLIBC - 2.6. AxiomFX работает на всех поддерживаемых версиях Ubuntu, семействе Red Hat Linux начиная с версии 7.x и SUSE с бэкэндом GTK2.

Поддерживаемые конфигурации для встраиваемых применений

Axiom протестирован и сертифицирован на Raspberry Pi 2, 3 и 4 под управлением следующих ОС:

  • Raspbian OS (armhf)
  • OpenSUSE (armv8)

Также есть успешный опыт запуска и работы на Debian (armhf) и Ubuntu (armhf).

Поставка Axiom JDK 21

Axiom JDK 21 распространяется в виде .msi, .dmg, .deb, .rpm, .zip и .tar.gz. Пожалуйста, выберите формат, который наиболее подходит для ваших целей.

Axiom JDK 21 содержит весь функционал, поддерживаемый OpenJDK 21.

С появлением Jigsaw в JDK 9 и минимальной виртуальной машины (Minimal VM) теперь можно создать среду исполнения, достаточную для запуска приложения и в то же время оптимизированную по размеру. Чтобы создать среду выполнения только с минимальной виртуальной машиной, добавьте опцию - vm=minimal jlink.

Axiom JDK продолжает поддерживать AOT и Graal JIT. Поскольку в сборках OpenJDK 21 эти экспериментальные функции признаны устаревшими, для безошибочной компиляции нативных образов рекомендуется использовать Axiom Native Image Kit.

По умолчанию Axiom использует серверную виртуальную машину (Server VM). Серверная виртуальная машина и клиентская виртуальная машина могут быть включены с помощью параметров командной строки -server и -client соответственно. В случае, если требуется минимальный размер среды исполенения, можно использовать Minimal VM, которая оптимизирована по размеру. Minimal VM имеет только компилятор C1 JIT, Serial GC и не имеет функционала Serviceability. Minimal VM можно включить параметром командной строки -minimal.

AxiomFX для Raspberry Pi

Axiom JDK 21 поставляется в комплекте со сборкой платформы AxiomFX, основанной на OpenJFX. В следующих таблицах перечислены состояния модулей Java FX дистрибутива Axiom.

  • Java FX Graphics - поддерживается.
  • Java FX Controls - поддерживается.
  • Java FX Media - не поддерживается.
  • Java FX Webkit - не поддерживается.

Для armhf работают следующие графические конвейеры: EGL, SW (direct framebuffer) и GTK. По умолчанию Axiom пытается использовать конвейер EGL, который требует наличия библиотек EGL. Если они не найдены, реализация возвращается к программному обеспечению.

Используйте следующие параметры командной строки, чтобы указать конвейер рендеринга:

  • -Dprism.order=sw - программный конвейер рендеринга. *
  • -Dprism.order=es2 - EGL-конвейер и аппаратное ускорение. *
  • -Djavafx.platform=gtk, если вы хотите запустить приложение AxiomFX, используя Axiom из X11.

* Не поддерживается на Raspberry Pi 4.

Дополнительная информация доступна на следующей wiki странице.

Device IO API для Raspberry Pi

Axiom JDK 21 для armhf поставляется со встроенным модулем реализации API ввода-вывода (DIO) устройства OpenJDK. DIO предоставляет Java API для доступа к выводам Raspberry PI GPIO и для связи с периферийными устройствами:

  • Универсальный ввод / вывод (GPIO).
  • Межинтегральная шина (I2C), последовательный интерфейс (SPI).
  • Универсальный асинхронный приемник / передатчик (UART).

Дополнительная информация доступна на следующей wiki странице.

Известные особенности

AxiomFX и EGL на ОС Raspbian

С 2017 года в Raspbian OS изменилось расположение бибилитек libEGL.so и libGLESv2.so для чипа Broadcom. Если вы хотите использовать аппаратное ускорение EGL, доступное в видеодрайверах Broadcom в AxiomFX, при работе в Raspbian OS, выполните следующую команду:

cd /opt/vc/lib
sudo ln -s libbrcmEGL.so libEGL.so
sudo ln -s libbrcmGLESv2.so libGLESv2.so

Безопасность

Axiom JDK содержит исправления уязвимостей Oracle Java SE. Пожалуйста, обратитесь к документации Oracle для получения деталей о проблемах, исправленных в данной версии.

Дефекты, исправленные в этом релизе

Issue Description
8240567 MethodTooLargeException thrown while creating a jlink image
8284772 GHA: Use GCC Major Version Dependencies Only
8286503 Enhance security classes
8293114 JVM should trim the native heap
8296581 Better system proxy support
8297856 Improve handling of Bidi characters
8299658 C1 compilation crashes in LinearScan::resolve_exception_edge
8302017 Allocate BadPaddingException only if it will be thrown
8303815 Improve Metaspace test speed
8304008 Update README.md and CONTRIBUTING.md for jfx update repos
8304954 SegmentedCodeCache fails when using large pages
8307766 Linux: Provide the option to override the timer slack
8308042 [macos] Developer ID Application Certificate not picked up by jpackage if it contains UNICODE characters
8308047 java/util/concurrent/ScheduledThreadPoolExecutor/BasicCancelTest.java timed out and also had jcmd pipe errors
8308184 Launching java with large number of jars in classpath with java.protocol.handler.pkgs system property set can lead to StackOverflowError
8308474 DSA does not reset SecureRandom when initSign is called again
8308609 java/lang/ScopedValue/StressStackOverflow.java fails with “-XX:-VMContinuations”
8309032 jpackage does not work for module projects unless –module-path is specified
8309088 security/infra/java/security/cert/CertPathValidator/certification/AmazonCA.java fails
8309214 sun/security/pkcs11/KeyStore/CertChainRemoval.java fails after 8301154
8309475 Test java/foreign/TestByteBuffer.java fails: a problem with msync (aix)
8309502 RISC-V: String.indexOf intrinsic may produce misaligned memory loads
8309591 Socket.setOption(TCP_QUICKACK) uses wrong level
8309746 Reconfigure check should include make/conf/version-numbers.conf
8309889 [s390] Missing return statement after calling jump_to_native_invoker method in generate_method_handle_dispatch.
8309966 Enhanced TLS connections
8310106 sun.security.ssl.SSLHandshake.getHandshakeProducer() incorrectly checks handshakeConsumers
8310171 Bump version numbers for 21.0.1
8310211 serviceability/jvmti/thread/GetStackTrace/getstacktr03/getstacktr03.java failing
8310233 Fix THP detection on Linux
8310268 RISC-V: misaligned memory access in String.Compare intrinsic
8310321 make JDKOPT_CHECK_CODESIGN_PARAMS more verbose
8310586 ProblemList java/lang/ScopedValue/StressStackOverflow.java#default with virtual threads on linux-all
8310681 Update WebKit to 616.1
8310687 8303215 is incomplete
8310873 Re-enable locked_create_entry symbol check in runtime/NMT/CheckForProperDetailStackTrace.java for RISC-V
8311026 Some G1 specific tests do not set -XX:+UseG1GC
8311033 [macos] PrinterJob does not take into account Sides attribute
8311097 Synchron XMLHttpRequest not receiving data
8311160 [macOS, Accessibility] VoiceOver: No announcements on JRadioButtonMenuItem and JCheckBoxMenuItem
8311249 Remove unused MemAllocator::obj_memory_range
8311285 report some fontconfig related environment variables in hs_err file
8311511 Improve description of NativeLibrary JFR event
8311592 ECKeySizeParameterSpec causes too many exceptions on third party providers
8311682 Change milestone to fcs for all releases
8311862 RISC-V: small improvements to shift immediate instructions
8311917 MAP_FAILED definition seems to be obsolete in src/java.desktop/unix/native/common/awt/fontpath.c
8311921 Inform about MaxExpectedDataSegmentSize in case of pthread_create failures on AIX
8311923 TestIRMatching.java fails on RISC-V
8311926 java/lang/ScopedValue/StressStackOverflow.java takes 9mins in tier1
8311955 c++filt is now ibm-llvm-cxxfilt when using xlc17 / clang on AIX
8311981 Test gc/stringdedup/TestStringDeduplicationAgeThreshold.java#ZGenerational timed out
8312127 FileDescriptor.sync should temporarily increase parallelism
8312128 Change JavaFX release version to 21.0.1 in jfx21u
8312180 (bf) MappedMemoryUtils passes incorrect arguments to msync (aix)
8312182 THPs cause huge RSS due to thread start timing issue
8312248 Enhanced archival support redux
8312394 [linux] SIGSEGV if kernel was built without hugepage support
8312395 Improve assertions in growableArray
8312401 SymbolTable::do_add_if_needed hangs when called in InstanceKlass::add_initialization_error path with requesting length exceeds max_symbol_length
8312489 Increase jdk.jar.maxSignatureFileSize default which is too low for JARs such as WhiteSource/Mend unified agent jar
8312525 New test runtime/os/TestTrimNative.java#trimNative is failing: did not see the expected RSS reduction
8312535 MidiSystem.getSoundbank() throws unexpected SecurityException
8312555 Ideographic characters aren’t stretched by AffineTransform.scale(2, 1)
8312573 Failure during CompileOnly parsing leads to ShouldNotReachHere
8312585 Rename DisableTHPStackMitigation flag to THPStackMitigation
8312591 GCC 6 build failure after JDK-8280982
8312619 Strange error message when switching over long
8312620 WSL Linux build crashes after JDK-8310233
8312625 Test serviceability/dcmd/vm/TrimLibcHeapTest.java failed: RSS use increased
8312909 C1 should not inline through interface calls with non-subtype receiver
8312976 MatchResult produces StringIndexOutOfBoundsException for groups outside match
8312984 javac may crash on a record pattern with too few components
8313081 MonitoringSupport_lock should be unconditionally initialized after 8304074
8313177 Web Workers timeout with Webkit 616.1
8313181 Enabling modern media controls on webkit 616.1 does not load button images on HTML5 video Element
8313248 C2: setScopedValueCache intrinsic exposes nullptr pre-values to store barriers
8313262 C2: Sinking node may cause required cast to be dropped
8313307 java/util/Formatter/Padding.java fails on some Locales
8313312 Add missing classpath exception copyright header
8313323 javac -g on a java file which uses unnamed variable leads to ClassFormatError when launching that class
8313402 C1: Incorrect LoadIndexed value numbering
8313428 GHA: Bump GCC versions for July 2023 updates
8313576 GCC 7 reports compiler warning in bundled freetype 2.13.0
8313602 increase timeout for jdk/classfile/CorpusTest.java
8313626 C2 crash due to unexpected exception control flow
8313657 com.sun.jndi.ldap.Connection.cleanup does not close connections on SocketTimeoutErrors
8313676 Amend TestLoadIndexedMismatch test to target intrinsic directly
8313678 SymbolTable can leak Symbols during cleanup
8313691 use close after failing os::fdopen in vmError and ciEnv
8313701 GHA: RISC-V should use the official repository for bootstrap
8313707 GHA: Bootstrap sysroots with –variant=minbase
8313711 Cherry-pick WebKit 616.1 stabilization fixes
8313752 InstanceKlassFlags::print_on doesn’t print the flag names
8313765 Invalid CEN header (invalid zip64 extra data field size)
8313796 AsyncGetCallTrace crash on unreadable interpreter method pointer
8313856 Replace VLA with malloc in pango
8313874 JNI NewWeakGlobalRef throws exception for null arg
8313900 Possible NULL pointer access in NativeAudioSpectrum and NativeVideoBuffer
8313901 [TESTBUG] test/hotspot/jtreg/compiler/codecache/CodeCacheFullCountTest.java fails with java.lang.VirtualMachineError
8313904 [macos] All signing tests which verifies unsigned app images are failing
8314020 Print instruction blocks in byte units
8314024 SIGSEGV in PhaseIdealLoop::build_loop_late_post_work due to bad immediate dominator info
8314063 The socket is not closed in Connection::createSocket when the handshake failed for LDAP connection
8314117 RISC-V: Incorrect VMReg encoding in RISCV64Frame.java
8314118 Update JMH devkit to 1.37
8314139 TEST_BUG: runtime/os/THPsInThreadStackPreventionTest.java could fail on machine with large number of cores
8314144 gc/g1/ihop/TestIHOPStatic.java fails due to extra concurrent mark with -Xcomp
8314212 Crash when loading cnn.com in WebView
8314216 Case enumConstant, pattern compilation fails
8314262 GHA: Cut down cross-compilation sysroots deeper
8314423 Multiple patterns without unnamed variables
8314426 runtime/os/TestTrimNative.java is failing on slow machines
8314501 Shenandoah: sun/tools/jhsdb/heapconfig/JMapHeapConfigTest.java fails
8314517 some tests fail in case ipv6 is disabled on the machine
8314618 RISC-V: -XX:MaxVectorSize does not work as expected
8314649 Enhanced archival support redux
8314656 GHA: No need for Debian ports keyring installation after JDK-8313701
8314679 SA fails to properly attach to JVM after having just detached from a different JVM
8314730 GHA: Drop libfreetype6-dev transitional package in favor of libfreetype-dev
8314850 SharedRuntime::handle_wrong_method() gets called too often when resolving Continuation.enter
8314960 Add Certigna Root CA - 2
8315020 The macro definition for LoongArch64 zero build is not accurate.
8315051 jdk/jfr/jvm/TestGetEventWriter.java fails with non-JVMCI GCs
8315534 Incorrect warnings about implicit annotation processing
8315657 Application window not activated in macOS 14 Sonoma
8316879 RegionMatches1Tests fails if CompactStrings are disabled after JDK-8302163
8317121 vector_masked_load instruction is moved too early after JDK-8286941
Обратно на страницу загрузки
Команда Axiom JDK roman.karpov@axiomjdk.ru Команда Axiom JDK logo Axiom Committed to Freedom 199 Obvodnogo Kanala Emb. 190020 St. Petersburg RU +7 812-336-35-67 Команда Axiom JDK 199 Obvodnogo Kanala Emb. 190020 St. Petersburg RU +7 812-336-35-67