Portable build
This commit is contained in:
parent
eec579754a
commit
762d772139
2
.gitignore
vendored
2
.gitignore
vendored
@ -41,3 +41,5 @@
|
||||
/openjdk-22.0.2+9.tar.xz
|
||||
/openjdk-23.0.2+7.tar.xz
|
||||
/openjdk-24.0.2+12.tar.xz
|
||||
/openjdk-25+36.tar.xz
|
||||
/openjdk-25.0.1+8.tar.xz
|
||||
|
||||
320
NEWS
320
NEWS
@ -3,7 +3,96 @@ Key:
|
||||
JDK-X - https://bugs.openjdk.java.net/browse/JDK-X
|
||||
CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
|
||||
|
||||
New in release OpenJDK 24.0.0 (2025-03-18):
|
||||
New in release OpenJDK 25.0.1 (2025-10-21):
|
||||
===========================================
|
||||
|
||||
* CVEs
|
||||
- CVE-2025-53057
|
||||
- CVE-2025-53066
|
||||
- CVE-2025-61748
|
||||
* Changes
|
||||
- JDK-8315131: Clarify VarHandle set/get access on 32-bit platforms
|
||||
- JDK-8352637: Enhance bytecode verification
|
||||
- JDK-8356294: Enhance Path Factories
|
||||
- JDK-8356587: Missing object ID X in pool jdk.types.Method
|
||||
- JDK-8357826: Avoid running some jtreg tests when asan is configured
|
||||
- JDK-8358452: JNI exception pending in Java_sun_awt_screencast_ScreencastHelper_remoteDesktopKeyImpl of screencast_pipewire.c:1214 (ID: 51119)
|
||||
- JDK-8358577: Test serviceability/jvmti/thread/GetCurrentContendedMonitor/contmon01/contmon01.java failed: unexpexcted monitor object
|
||||
- JDK-8358819: The first year is not displayed correctly in Japanese Calendar
|
||||
- JDK-8359059: Bump version numbers for 25.0.1
|
||||
- JDK-8359218: RISC-V: Only enable CRC32 intrinsic when AvoidUnalignedAccess == false
|
||||
- JDK-8359270: C2: alignment check should consider base offset when emitting arraycopy runtime call
|
||||
- JDK-8359454: Enhance String handling
|
||||
- JDK-8359596: Behavior change when both -Xlint:options and -Xlint:-options flags are given
|
||||
- JDK-8360179: RISC-V: Only enable BigInteger intrinsics when AvoidUnalignedAccess == false
|
||||
- JDK-8360533: ContainerRuntimeVersionTestUtils fromVersionString fails with some docker versions
|
||||
- JDK-8360647: [XWayland] [OL10] NumPad keys are not triggered
|
||||
- JDK-8360679: Shenandoah: AOT saved adapter calls into broken GC barrier stub
|
||||
- JDK-8360937: Enhance certificate handling
|
||||
- JDK-8361212: Remove AffirmTrust root CAs
|
||||
- JDK-8361532: RISC-V: Several vector tests fail after JDK-8354383
|
||||
- JDK-8361829: [TESTBUG] RISC-V: compiler/vectorization/runner/BasicIntOpTest.java fails with RVV but not Zvbb
|
||||
- JDK-8362109: Change milestone to fcs for all releases
|
||||
- JDK-8362882: Update SubmissionPublisher() specification to reflect use of ForkJoinPool.asyncCommonPool()
|
||||
- JDK-8366223: ZGC: ZPageAllocator::cleanup_failed_commit_multi_partition is broken
|
||||
- JDK-8367031: [backout] Change java.time month/day field types to 'byte'
|
||||
- JDK-8368308: ISO 4217 Amendment 180 Update
|
||||
|
||||
Notes on individual issues:
|
||||
===========================
|
||||
|
||||
core-libs/java.io:serialization:
|
||||
|
||||
JDK-8367031: [backout] Change java.time month/day field types to 'byte'
|
||||
=======================================================================
|
||||
In the initial release of OpenJDK 25, attempting to read serialised
|
||||
Class objects created by earlier versions of OpenJDK for several of
|
||||
the `java.time` classes would fail with a
|
||||
`InvalidClassException`. Similarly, `java.time` Class objects
|
||||
serialised with OpenJDK 25 could not be read by older OpenJDK
|
||||
versions. This was due to the type of the day and month fields in
|
||||
these classes being changed to `byte`. This change has now been
|
||||
reverted and compatibility between OpenJDK 25 and older versions
|
||||
restored.
|
||||
|
||||
Note that this incompatibility occurred with the `Class` object and
|
||||
not an instance of the object i.e. `writeObject(LocalDate.class)`
|
||||
would produce incompatible serialised data, but
|
||||
`writeObject(LocalDate.now())` would not.
|
||||
|
||||
security-libs/java.security:
|
||||
|
||||
JDK-8361212: Remove AffirmTrust root CAs
|
||||
========================================
|
||||
The following root certificates from AffirmTrust, which were
|
||||
deactivated in the 21.0.5 release of October 2024, have been removed
|
||||
from the `cacerts` keystore:
|
||||
|
||||
Alias name: affirmtrustcommercialca [jdk]
|
||||
CN=AffirmTrust Commercial
|
||||
O=AffirmTrust
|
||||
C=US
|
||||
SHA256: 03:76:AB:1D:54:C5:F9:80:3C:E4:B2:E2:01:A0:EE:7E:EF:7B:57:B6:36:E8:A9:3C:9B:8D:48:60:C9:6F:5F:A7
|
||||
|
||||
Alias name: affirmtrustnetworkingca [jdk]
|
||||
CN=AffirmTrust Networking
|
||||
O=AffirmTrust
|
||||
C=US
|
||||
SHA256: 0A:81:EC:5A:92:97:77:F1:45:90:4A:F3:8D:5D:50:9F:66:B5:E2:C5:8F:CD:B5:31:05:8B:0E:17:F3:F0B4:1B
|
||||
|
||||
Alias name: affirmtrustpremiumca [jdk]
|
||||
CN=AffirmTrust Premium
|
||||
O=AffirmTrust
|
||||
C=US
|
||||
SHA256: 70:A7:3F:7F:37:6B:60:07:42:48:90:45:34:B1:14:82:D5:BF:0E:69:8E:CC:49:8D:F5:25:77:EB:F2:E9:3B:9A
|
||||
|
||||
Alias name: affirmtrustpremiumeccca [jdk]
|
||||
CN=AffirmTrust Premium ECC
|
||||
O=AffirmTrust
|
||||
C=US
|
||||
SHA256: BD:71:FD:F6:DA:97:E4:CF:62:D1:64:7A:DD:25:81:B0:7D:79:AD:F8:39:7E:B4:EC:BA:9C:5E:84:88:82:14:23
|
||||
|
||||
New in release OpenJDK 25.0.0 (2025-09-16):
|
||||
===========================================
|
||||
Major changes are listed below. Some changes may have been backported
|
||||
to earlier releases following their first appearance in OpenJDK 22
|
||||
@ -20,6 +109,7 @@ Flexible Constructor Bodies
|
||||
https://openjdk.org/jeps/447
|
||||
https://openjdk.org/jeps/482
|
||||
https://openjdk.org/jeps/492
|
||||
https://openjdk.org/jeps/513
|
||||
|
||||
In constructors in the Java programming language, allow statements to
|
||||
appear before an explicit constructor invocation, i.e., super(..) or
|
||||
@ -28,11 +118,12 @@ construction, but they can initialize its fields. Initializing fields
|
||||
before invoking another constructor makes a class more reliable when
|
||||
methods are overridden.
|
||||
|
||||
This was introduced as a preview language feature
|
||||
This language feature is now finalised (JEP 513). It was first
|
||||
introduced as a preview language feature
|
||||
(http://openjdk.java.net/jeps/12) in OpenJDK 22 (JEP 447) under the
|
||||
name "Statements before super(...)". It reached a second preview in
|
||||
OpenJDK 23 (JEP 482) with the addition of allowing fields to be
|
||||
initialized before invoking another constructor. It reaches a third
|
||||
initialized before invoking another constructor. It reached a third
|
||||
preview in OpenJDK 24 (JEP 492).
|
||||
|
||||
Unnamed Patterns and Variables
|
||||
@ -45,35 +136,37 @@ component without stating the component's name or type, and unnamed
|
||||
variables, which can be initialized but not used. Both are denoted by
|
||||
an underscore character, _.
|
||||
|
||||
This feature is now final. It was a preview feature
|
||||
This feature is now finalised (JEP 456). It was a preview feature
|
||||
(http://openjdk.java.net/jeps/12) in OpenJDK 21 (JEP 443).
|
||||
|
||||
Primitive Types in Patterns, instanceof, and switch
|
||||
===================================================
|
||||
https://openjdk.org/jeps/455
|
||||
https://openjdk.org/jeps/488
|
||||
https://openjdk.org/jeps/507
|
||||
|
||||
Enhance pattern matching by allowing primitive type patterns in all
|
||||
pattern contexts, and extend instanceof and switch to work with all
|
||||
primitive types.
|
||||
|
||||
This is a preview language feature (http://openjdk.java.net/jeps/12)
|
||||
introduced in OpenJDK 23 (JEP 455) and having its second preview in
|
||||
OpenJDK 24 (JEP 488).
|
||||
introduced in OpenJDK 23 (JEP 455) with a second preview in OpenJDK 24
|
||||
(JEP 488) and reaching a third in OpenJDK 25 (JEP 507).
|
||||
|
||||
Module Import Declarations
|
||||
==========================
|
||||
https://openjdk.org/jeps/476
|
||||
https://openjdk.org/jeps/494
|
||||
https://openjdk.org/jeps/511
|
||||
|
||||
Enhance the Java programming language with the ability to succinctly
|
||||
import all of the packages exported by a module. This simplifies the
|
||||
reuse of modular libraries, but does not require the importing code to
|
||||
be in a module itself.
|
||||
|
||||
This is a preview language feature (http://openjdk.java.net/jeps/12)
|
||||
introduced in OpenJDK 23 (JEP 476) and reaching a second preview in
|
||||
OpenJDK 24 (JEP 494).
|
||||
This language feature is now finalised (JEP 511). It was introduced as
|
||||
a preview language feature (http://openjdk.java.net/jeps/12) in
|
||||
OpenJDK 23 (JEP 476) and had a second preview in OpenJDK 24 (JEP 494).
|
||||
|
||||
Library Features
|
||||
================
|
||||
@ -94,10 +187,10 @@ foreign memory (i.e., memory not managed by the JVM), the API enables
|
||||
Java programs to call native libraries and process native data without
|
||||
the brittleness and danger of JNI.
|
||||
|
||||
This API is now finalised. It was first introduced in incubation
|
||||
(https://openjdk.java.net/jeps/11) in OpenJDK 17 (JEP 412), and is an
|
||||
evolution of the Foreign Memory Access API (OpenJDK 14 through 16) and
|
||||
Foreign Linker API (OpenJDK 16) (see release notes for
|
||||
This API is now finalised (JEP 454). It was first introduced in
|
||||
incubation (https://openjdk.java.net/jeps/11) in OpenJDK 17 (JEP 412),
|
||||
and is an evolution of the Foreign Memory Access API (OpenJDK 14
|
||||
through 16) and Foreign Linker API (OpenJDK 16) (see release notes for
|
||||
java-17-openjdk). OpenJDK 18 saw a second round of incubation (JEP
|
||||
419) before its inclusion as a preview feature
|
||||
(http://openjdk.java.net/jeps/12) in OpenJDK 19 (JEP 424). A second
|
||||
@ -126,9 +219,9 @@ https://openjdk.org/jeps/484
|
||||
Provide a standard API for parsing, generating, and transforming Java
|
||||
class files.
|
||||
|
||||
This API is now finalised. It was introduced as a preview library
|
||||
feature (http://openjdk.java.net/jeps/12) in OpenJDK 22 (JEP 457) with
|
||||
a second preview in OpenJDK 23 (JEP 466).
|
||||
This API is now finalised (JEP 484). It was introduced as a preview
|
||||
library feature (http://openjdk.java.net/jeps/12) in OpenJDK 22 (JEP
|
||||
457) with a second preview in OpenJDK 23 (JEP 466).
|
||||
|
||||
Vector API
|
||||
==========
|
||||
@ -141,6 +234,7 @@ https://openjdk.org/jeps/448
|
||||
https://openjdk.org/jeps/460
|
||||
https://openjdk.org/jeps/469
|
||||
https://openjdk.org/jeps/489
|
||||
https://openjdk.org/jeps/508
|
||||
|
||||
Introduce an API to express vector computations that reliably compile
|
||||
at runtime to optimal vector hardware instructions on supported CPU
|
||||
@ -152,7 +246,8 @@ introduced in OpenJDK 16 (JEP 338). A second round of incubation took
|
||||
place in OpenJDK 17 (JEP 414), OpenJDK 18 (JEP 417) saw a third,
|
||||
OpenJDK 19 a fourth (JEP 426), OpenJDK 20 (JEP 438) a fifth, OpenJDK
|
||||
21 a sixth (JEP 448), OpenJDK 22 a seventh (JEP 460), OpenJDK 23 an
|
||||
eighth (JEP 469) and it reaches its ninth in OpenJDK 24 (JEP 489).
|
||||
eighth (JEP 469), OpenJDK 24 a ninth (JEP 489) and it reaches its
|
||||
tenth in OpenJDK 25 (JEP 508).
|
||||
|
||||
Stream Gatherers
|
||||
================
|
||||
@ -164,9 +259,9 @@ Enhance the Stream API to support custom intermediate operations. This
|
||||
will allow stream pipelines to transform data in ways that are not
|
||||
easily achievable with the existing built-in intermediate operations.
|
||||
|
||||
This API is now finalised. It was introduced as a preview library
|
||||
feature (http://openjdk.java.net/jeps/12) in OpenJDK 22 (JEP 461) with
|
||||
a second preview in OpenJDK 23 (JEP 473).
|
||||
This API is now finalised (JEP 485). It was introduced as a preview
|
||||
library feature (http://openjdk.java.net/jeps/12) in OpenJDK 22 (JEP
|
||||
461) with a second preview in OpenJDK 23 (JEP 473).
|
||||
|
||||
Structured Concurrency
|
||||
======================
|
||||
@ -176,6 +271,7 @@ https://openjdk.org/jeps/453
|
||||
https://openjdk.org/jeps/462
|
||||
https://openjdk.org/jeps/480
|
||||
https://openjdk.org/jeps/499
|
||||
https://openjdk.org/jeps/505
|
||||
|
||||
Simplify multithreaded programming by introducing an API for
|
||||
structured concurrency. Structured concurrency treats multiple tasks
|
||||
@ -188,15 +284,16 @@ This API was first introduced in incubation
|
||||
second round of incubation in OpenJDK 20 (JEP 437). It became a
|
||||
preview feature (http://openjdk.java.net/jeps/12) in OpenJDK 21 (JEP
|
||||
453), reached its second preview in OpenJDK 22 (JEP 462), had a third
|
||||
preview in OpenJDK 23 (JEP 480) and reaches its fourth in OpenJDK 24
|
||||
(JEP 499).
|
||||
preview in OpenJDK 23 (JEP 480), a fourth in OpenJDK 24 (JEP 499) and
|
||||
reaches its fifth in OpenJDK 25 (JEP 505).
|
||||
|
||||
Simple Source Files and Instance Main Methods
|
||||
=============================================
|
||||
Compact Source Files and Instance Main Methods
|
||||
==============================================
|
||||
https://openjdk.org/jeps/445
|
||||
https://openjdk.org/jeps/463
|
||||
https://openjdk.org/jeps/477
|
||||
https://openjdk.org/jeps/495
|
||||
https://openjdk.org/jeps/512
|
||||
|
||||
Evolve the Java programming language so that beginners can write their
|
||||
first programs without needing to understand language features
|
||||
@ -207,15 +304,16 @@ more advanced features as their skills grow. Experienced developers
|
||||
can likewise enjoy writing small programs succinctly, without the need
|
||||
for constructs intended for programming in the large.
|
||||
|
||||
This library feature was introduced as a preview
|
||||
This library feature is now finalised (JEP 512) with some minor
|
||||
changes from the last release. It was first introduced as a preview
|
||||
(http://openjdk.java.net/jeps/12) in OpenJDK 21 (JEP 445) under the
|
||||
name "Unnamed Classes and Instance Main Methods". It reached a second
|
||||
preview in OpenJDK 22 (JEP 463) and a third in OpenJDK 23 (JEP 477)
|
||||
under the new name, "Implicitly Declared Classes and Instance Main
|
||||
Methods", due to the move away from unnamed classes to an implicitly
|
||||
declared name chosen by the host system. It has a fourth preview in
|
||||
OpenJDK 24 (JEP 495) with new terminology and a revised title, but
|
||||
otherwise unchanged.
|
||||
declared name chosen by the host system. It had a fourth preview in
|
||||
OpenJDK 24 (JEP 495) with new terminology and a revised title ("Simple
|
||||
Source Files and Instance Main Methods"), but otherwise unchanged.
|
||||
|
||||
Scoped Values
|
||||
=============
|
||||
@ -224,27 +322,30 @@ https://openjdk.org/jeps/446
|
||||
https://openjdk.org/jeps/464
|
||||
https://openjdk.org/jeps/481
|
||||
https://openjdk.org/jeps/487
|
||||
https://openjdk.org/jeps/506
|
||||
|
||||
Introduce scoped values, which enable the sharing of immutable data
|
||||
within and across threads. They are preferred to thread-local
|
||||
variables, especially when using large numbers of virtual threads.
|
||||
|
||||
This API was first introduced in incubation
|
||||
(https://openjdk.java.net/jeps/11) in OpenJDK 20 (JEP 429). It became
|
||||
a preview feature (http://openjdk.java.net/jeps/12) in OpenJDK 21 (JEP
|
||||
446), had a second preview in OpenJDK 22 (JEP 464), a third in OpenJDK
|
||||
23 (JEP 481) and reaches its fourth in OpenJDK 24 (JEP 487).
|
||||
This API is now finalised (JEP 506). This API was first introduced in
|
||||
incubation (https://openjdk.java.net/jeps/11) in OpenJDK 20 (JEP
|
||||
429). It became a preview feature (http://openjdk.java.net/jeps/12) in
|
||||
OpenJDK 21 (JEP 446), had a second preview in OpenJDK 22 (JEP 464), a
|
||||
third in OpenJDK 23 (JEP 481) and a fourth in OpenJDK 24 (JEP 487).
|
||||
|
||||
Key Derivation Function API
|
||||
===========================
|
||||
https://openjdk.org/jeps/478
|
||||
https://openjdk.org/jeps/510
|
||||
|
||||
Introduce an API for Key Derivation Functions (KDFs), which are
|
||||
cryptographic algorithms for deriving additional keys from a secret
|
||||
key and other data.
|
||||
|
||||
This is a preview library feature (http://openjdk.java.net/jeps/12)
|
||||
introduced in OpenJDK 24 (JEP 478).
|
||||
This API is now finalised (JEP 510). It was first introduced as a
|
||||
preview library feature (http://openjdk.java.net/jeps/12) in OpenJDK
|
||||
24 (JEP 478).
|
||||
|
||||
Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism
|
||||
==================================================================
|
||||
@ -275,6 +376,32 @@ National Institute of Standards and Technology (NIST) in FIPS 204 [0].
|
||||
|
||||
[0] https://csrc.nist.gov/pubs/fips/204/final
|
||||
|
||||
PEM Encodings of Cryptographic Objects
|
||||
======================================
|
||||
https://openjdk.org/jeps/470
|
||||
|
||||
Introduce an API for encoding objects that represent cryptographic
|
||||
keys, certificates, and certificate revocation lists into the
|
||||
widely-used Privacy-Enhanced Mail (PEM) transport format, and for
|
||||
decoding from that format back into objects.
|
||||
|
||||
This is a preview library feature (http://openjdk.java.net/jeps/12)
|
||||
introduced in OpenJDK 25 (JEP 470).
|
||||
|
||||
Stable Values
|
||||
=============
|
||||
https://openjdk.org/jeps/502
|
||||
|
||||
Introduce an API for stable values, which are objects that hold
|
||||
immutable data. Stable values are treated as constants by the JVM,
|
||||
enabling the same performance optimizations that are enabled by
|
||||
declaring a field final. Compared to final fields, however, stable
|
||||
values offer greater flexibility as to the timing of their
|
||||
initialization.
|
||||
|
||||
This is a preview library feature (http://openjdk.java.net/jeps/12)
|
||||
introduced in OpenJDK 25 (JEP 502).
|
||||
|
||||
Virtual Machine Enhancements
|
||||
============================
|
||||
|
||||
@ -307,6 +434,7 @@ pipeline to later.
|
||||
Ahead-of-Time Class Loading & Linking
|
||||
=====================================
|
||||
https://openjdk.org/jeps/483
|
||||
https://openjdk.org/jeps/514
|
||||
|
||||
Improve startup time by making the classes of an application instantly
|
||||
available, in a loaded and linked state, when the HotSpot Java Virtual
|
||||
@ -315,7 +443,18 @@ run and storing the loaded and linked forms of all classes in a cache
|
||||
for use in subsequent runs. Lay a foundation for future improvements
|
||||
to both startup and warmup time.
|
||||
|
||||
Using this feature requires a three stage process:
|
||||
Using this feature requires a two stage process:
|
||||
|
||||
1. Create the Ahead-of-Time cache from a training run of the
|
||||
application using the option `--XX:AOTCacheOutput=<cache name>` where
|
||||
`<cache name>` is the cache reference to use in later runs.
|
||||
|
||||
2. When running the application in testing or production, use the
|
||||
option `-XX:AOTCache=<cache name>` to run the application with the
|
||||
cache generated in #2.
|
||||
|
||||
Previously, in OpenJDK 24 (JEP 483), the training run and cache
|
||||
creation were handled by two separate steps:
|
||||
|
||||
1. Populate the Ahead-of-Time configuration data with a training run
|
||||
of the application using the options `-XX:AOTMode=record
|
||||
@ -328,9 +467,22 @@ configuration reference to use in #2.
|
||||
reference from #1 and `<cache name>` is the cache reference to use in
|
||||
later runs.
|
||||
|
||||
3. When running the application in testing or production, use the
|
||||
option `-XX:AOTCache=<cache name>` to run the application with the
|
||||
cache generated in #2.
|
||||
JEP 514 ("Ahead-of-Time Command-Line Ergonomics") in OpenJDK 25 adds
|
||||
the option `--XX:AOTCacheOutput` which performs both the above steps
|
||||
from a single command-line invocation using a temporary configuration
|
||||
file. A new environment variable, `JDK_AOT_VM_OPTIONS`, can be used
|
||||
to pass options to the cache creation step without affecting the
|
||||
training run step.
|
||||
|
||||
Ahead-of-Time Method Profiling
|
||||
==============================
|
||||
https://openjdk.org/jeps/515
|
||||
|
||||
Improve warmup time by making method-execution profiles from a
|
||||
previous run of an application instantly available, when the HotSpot
|
||||
Java Virtual Machine starts. This will enable the JIT compiler to
|
||||
generate native code immediately upon application startup, rather than
|
||||
having to wait for profiles to be collected.
|
||||
|
||||
Synchronize Virtual Threads without Pinning
|
||||
===========================================
|
||||
@ -344,28 +496,60 @@ threads being pinned to platform threads, which severely restricts the
|
||||
number of virtual threads available to handle an application's
|
||||
workload.
|
||||
|
||||
Generational Shenandoah
|
||||
=======================
|
||||
https://openjdk.org/jeps/404
|
||||
|
||||
Enhance the Shenandoah garbage collector with experimental
|
||||
generational collection capabilities to improve sustainable
|
||||
throughput, load-spike resilience, and memory utilization.
|
||||
|
||||
This is an experimental feature that needs to be explicitly enabled
|
||||
with -XX:+UnlockExperimentalVMOptions
|
||||
-XX:ShenandoahGCMode=generational
|
||||
|
||||
Compact Object Headers
|
||||
======================
|
||||
https://openjdk.org/jeps/450
|
||||
https://openjdk.org/jeps/519
|
||||
|
||||
Reduce the size of object headers in the HotSpot JVM from between 96
|
||||
and 128 bits down to 64 bits on 64-bit architectures. This will reduce
|
||||
heap size, improve deployment density, and increase data locality.
|
||||
|
||||
This is an experimental feature that needs to be explicitly enabled
|
||||
with -XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders
|
||||
This is now a production feature in OpenJDK 25 (JEP 519) enabled using
|
||||
`-XX:+UseCompactObjectHeaders`. It was first introduced as an
|
||||
experimental feature (JEP 450) that also required the use of
|
||||
`-XX:+UnlockExperimentalVMOptions`.
|
||||
|
||||
Generational Shenandoah
|
||||
=======================
|
||||
https://openjdk.org/jeps/404
|
||||
https://openjdk.org/jeps/521
|
||||
|
||||
Enhance the Shenandoah garbage collector with experimental
|
||||
generational collection capabilities to improve sustainable
|
||||
throughput, load-spike resilience, and memory utilization.
|
||||
|
||||
This is now a production feature in OpenJDK 25 (JEP 521) enabled using
|
||||
`-XX:ShenandoahGCMode=generational`. It was first introduced as an
|
||||
experimental feature (JEP 404) that also required the use of
|
||||
`-XX:+UnlockExperimentalVMOptions`.
|
||||
|
||||
JFR Cooperative Sampling
|
||||
========================
|
||||
https://openjdk.org/jeps/518
|
||||
|
||||
Improve the stability of the JDK Flight Recorder (JFR) when it
|
||||
asynchronously samples Java thread stacks. Achieve this by walking
|
||||
call stacks only at safepoints, while minimizing safepoint bias.
|
||||
|
||||
JFR Method Timing & Tracing
|
||||
===========================
|
||||
https://openjdk.org/jeps/520
|
||||
|
||||
Extend the JDK Flight Recorder (JFR) with facilities for method timing
|
||||
and tracing via bytecode instrumentation.
|
||||
|
||||
JFR CPU-Time Profiling
|
||||
======================
|
||||
https://openjdk.org/jeps/509
|
||||
|
||||
Enhance the JDK Flight Recorder (JFR) to capture more accurate
|
||||
CPU-time profiling information on Linux.
|
||||
|
||||
This is an experimental feature so its JFR events are tagged with the
|
||||
`@Experimental` annotation. Unlike other experimental virtual machine
|
||||
features, it does not need to be explicitly enabled with
|
||||
`-XX:+UnlockExperimentalVMOptions`.
|
||||
|
||||
Tools
|
||||
=====
|
||||
@ -441,18 +625,6 @@ other Platform classes do not refer to it. This change will have no
|
||||
impact on the vast majority of applications, libraries, and tools. We
|
||||
will remove the Security Manager API in a future release.
|
||||
|
||||
Deprecate the 32-bit x86 Port for Removal
|
||||
=========================================
|
||||
https://openjdk.org/jeps/501
|
||||
|
||||
Deprecate the 32-bit x86 port, with the intent to remove it in a
|
||||
future release. This will thereby deprecate the Linux 32-bit x86 port,
|
||||
which is the only 32-bit x86 port remaining in the JDK. It will also,
|
||||
effectively, deprecate any remaining downstream 32-bit x86
|
||||
ports. After the 32-bit x86 port is removed, the architecture-agnostic
|
||||
Zero port will be the only way to run Java programs on 32-bit x86
|
||||
processors.
|
||||
|
||||
REMOVALS
|
||||
========
|
||||
|
||||
@ -470,14 +642,22 @@ for further explanation.
|
||||
|
||||
[0] https://mail.openjdk.org/pipermail/amber-spec-experts/2024-April/004106.html
|
||||
|
||||
Remove the Windows 32-bit x86 Port
|
||||
==================================
|
||||
Remove the Windows & Linux 32-bit x86 Ports
|
||||
===========================================
|
||||
https://openjdk.org/jeps/449
|
||||
https://openjdk.org/jeps/479
|
||||
https://openjdk.org/jeps/501
|
||||
https://openjdk.org/jeps/503
|
||||
|
||||
Remove the source code and build support for the Windows 32-bit x86
|
||||
port. This port was deprecated for removal in JDK 21 by JEP 449 with
|
||||
the express intent to remove it in a future release.
|
||||
Remove the source code and build support for the Windows (JEP 479) &
|
||||
Linux (JEP 503) 32-bit x86 ports. The Windows port was deprecated for
|
||||
removal in JDK 21 by JEP 449 and the Linux port was deprecated for
|
||||
removal in JDK 24 by JEP 501. Both deprecations took place with the
|
||||
express intent to remove the ports in a future release.
|
||||
|
||||
Following this removal of these 32-bit x86 ports, the
|
||||
architecture-agnostic Zero port is the only way to run Java programs
|
||||
on 32-bit x86 processors.
|
||||
|
||||
ZGC: Remove the Non-Generational Mode
|
||||
=====================================
|
||||
|
||||
@ -334,15 +334,14 @@
|
||||
%endif
|
||||
|
||||
# New Version-String scheme-style defines
|
||||
%global featurever 24
|
||||
%global fakefeaturever 25
|
||||
%global featurever 25
|
||||
%global interimver 0
|
||||
%global updatever 2
|
||||
%global updatever 1
|
||||
%global patchver 0
|
||||
# buildjdkver is usually same as %%{featurever},
|
||||
# but in time of bootstrap of next jdk, it is featurever-1,
|
||||
# and this it is better to change it here, on single place
|
||||
%global buildjdkver %(expr %{featurever} - 1)
|
||||
%global buildjdkver %{featurever}
|
||||
# We don't add any LTS designator for STS packages (Fedora and EPEL).
|
||||
# We need to explicitly exclude EPEL as it would have the %%{rhel} macro defined.
|
||||
%if 0%{?rhel} && !0%{?epel}
|
||||
@ -380,8 +379,7 @@
|
||||
%global fipsver 9203d50836c
|
||||
# Define JDK versions
|
||||
%global newjavaver %{featurever}.%{interimver}.%{updatever}.%{patchver}
|
||||
# Force 25 until we are actually ready to build that JDK version
|
||||
%global javaver %{fakefeaturever}
|
||||
%global javaver %{featurever}
|
||||
# Strip up to 6 trailing zeros in newjavaver, as the JDK does, to get the correct version used in filenames
|
||||
%global filever %(svn=%{newjavaver}; for i in 1 2 3 4 5 6 ; do svn=${svn%%.0} ; done; echo ${svn})
|
||||
# The tag used to create the OpenJDK tarball
|
||||
@ -392,7 +390,7 @@
|
||||
%global origin_nice OpenJDK
|
||||
%global top_level_dir_name %{vcstag}
|
||||
%global top_level_dir_name_backup %{top_level_dir_name}-backup
|
||||
%global buildver 12
|
||||
%global buildver 8
|
||||
%global rpmrelease 1
|
||||
#%%global tagsuffix %%{nil}
|
||||
# Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit
|
||||
@ -428,16 +426,16 @@
|
||||
%endif
|
||||
|
||||
# parametrized macros are order-sensitive
|
||||
%global compatiblename java-%{fakefeaturever}-%{origin}
|
||||
%global compatiblename java-%{featurever}-%{origin}
|
||||
%global fullversion %{compatiblename}-%{version}-%{release}
|
||||
# images directories from upstream build
|
||||
%global jdkimage jdk
|
||||
%global static_libs_image static-libs
|
||||
# output dir stub
|
||||
%define buildoutputdir() %{expand:build/jdk%{fakefeaturever}.build%{?1}}
|
||||
%define installoutputdir() %{expand:install/jdk%{fakefeaturever}.install%{?1}}
|
||||
%define buildoutputdir() %{expand:build/jdk%{featurever}.build%{?1}}
|
||||
%define installoutputdir() %{expand:install/jdk%{featurever}.install%{?1}}
|
||||
%global altjavaoutputdir install/altjava.install
|
||||
%define packageoutputdir() %{expand:packages/jdk%{fakefeaturever}.packages%{?1}}
|
||||
%define packageoutputdir() %{expand:packages/jdk%{featurever}.packages%{?1}}
|
||||
# we can copy the javadoc to not arched dir, or make it not noarch
|
||||
%define uniquejavadocdir() %{expand:%{fullversion}.%{_arch}%{?1}}
|
||||
# main id and dir of this jdk
|
||||
@ -461,7 +459,7 @@
|
||||
%define miscportablearchive() %{miscportablename}.tar.xz
|
||||
|
||||
# JDK to use for bootstrapping
|
||||
%global bootjdkpkg java-%{fakefeaturever}-openjdk
|
||||
%global bootjdkpkg java-%{featurever}-%{origin}
|
||||
%ifarch %{fastdebug_arches}
|
||||
%global bootdebugpkg fastdebug
|
||||
%endif
|
||||
@ -746,7 +744,7 @@ BuildRequires: zip
|
||||
BuildRequires: tar
|
||||
BuildRequires: unzip
|
||||
BuildRequires: javapackages-filesystem
|
||||
BuildRequires: %{bootjdkpkg}-portable-devel%{?bootdebugpkg:-%{bootdebugpkg}}
|
||||
BuildRequires: %{bootjdkpkg}-portable-devel%{?bootdebugpkg:-%{bootdebugpkg}} >= %{buildjdkver}
|
||||
# Zero-assembler build requirement
|
||||
%ifarch %{zero_arches}
|
||||
BuildRequires: libffi-devel
|
||||
@ -1080,7 +1078,7 @@ pushd %{_jvmdir}
|
||||
sha256sum --check %{bootjdkzip}.sha256sum
|
||||
popd
|
||||
tar -xJf %{bootjdkzip}
|
||||
mv java-%{fakefeaturever}-openjdk-%{buildjdkver}* %{bootjdk}
|
||||
mv java-%{featurever}-openjdk-%{buildjdkver}* %{bootjdk}
|
||||
# Print release information
|
||||
echo "Installed boot JDK:"
|
||||
cat %{bootjdk}/release
|
||||
@ -1969,9 +1967,24 @@ done
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Mon Nov 10 2025 eabdullin <eabdullin@almalinux.org> - 1:24.0.2.0.12-1
|
||||
* Wed Nov 12 2025 eabdullin <eabdullin@almalinux.org> - 1:25.0.1.0.8-1
|
||||
- Portable build
|
||||
|
||||
* Mon Nov 10 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:25.0.1.0.8-1
|
||||
- Update to jdk-25.0.1+8 (GA)
|
||||
- Update release notes to 25.0.1+8
|
||||
- Related: RHELBU-3203
|
||||
|
||||
* Mon Nov 10 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:25.0.0.0.36-2
|
||||
- Drop fakefeaturever and rebuild with ourselves now we have reached OpenJDK 25
|
||||
- Related: RHELBU-3203
|
||||
|
||||
* Sun Nov 09 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:25.0.0.0.36-1
|
||||
- Update to jdk-25.0.0+36 (GA)
|
||||
- Update release notes with features of JDK 25
|
||||
- Mention finalisation JEP for features finalised in JDK 22, 23 & 24
|
||||
- Resolves: RHELBU-3203
|
||||
|
||||
* Wed Nov 05 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:24.0.2.0.12-1
|
||||
- Update to jdk-24.0.2+12 (GA)
|
||||
- Update release notes with features of JDK 24
|
||||
|
||||
2
sources
2
sources
@ -1,2 +1,2 @@
|
||||
SHA512 (tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz) = 97d026212363b3c83f6a04100ad7f6fdde833d16579717f8756e2b8c2eb70e144a41a330cb9ccde9c3badd37a2d54fdf4650a950ec21d8b686d545ecb2a64d30
|
||||
SHA512 (openjdk-24.0.2+12.tar.xz) = 92dc174ad4fedb1138bc183a390a85a76fcc3aa1508d4d00f49012b28a8e3a5a1739b349f0fb03dedc6f7977eafa472c5f7608c61ae656c0ecf795b9e96a95ae
|
||||
SHA512 (openjdk-25.0.1+8.tar.xz) = eb84d876f81ca02803283e8294c89b6acbed3753426811c3bcc228615c9618deefc85da4aa702800cac2feb103e628ee8b92292b316e9d7e12a58b6de69c5085
|
||||
|
||||
Loading…
Reference in New Issue
Block a user