Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
172 commits
Select commit Hold shift + click to select a range
f083faf
8371503: RETAIN_IMAGE_AFTER_TEST do not work for some tests
Mar 4, 2026
ed1b2c6
8378774: Bump update version for OpenJDK: jdk-25.0.4
GoeLin Mar 4, 2026
7878bc9
8378888: jdk/incubator/vector/Float16OperationsBenchmark.java uses wr…
RealFYang Mar 8, 2026
18507ad
8378810: Enable missing FFM test via jtreg requires for RISC-V
RealFYang Mar 8, 2026
a27ea41
8376402: Dependencies::print_statistics() and AbstractClassHierarchyW…
MBaesken Mar 9, 2026
4494945
8374998: Failing os::write - remove bad file
MBaesken Mar 9, 2026
c0e1c14
8374727: Audio configuration Platform class - use nio for getting end…
MBaesken Mar 9, 2026
463131a
8378561: Mark gc/shenandoah/compiler/TestLinkToNativeRBP.java as /native
Mar 9, 2026
2836b16
8368159: Significant performance overhead when started with jdwp agen…
rm-gh-8 Mar 10, 2026
367d27a
8373650: Test "javax/swing/JMenuItem/6458123/ManualBug6458123.java" f…
rm-gh-8 Mar 10, 2026
2161b14
8297191: [macos] Printing a page range with starting page > 1 results…
rm-gh-8 Mar 10, 2026
cc0debb
8363949: Incorrect jtreg header in MonitorWithDeadObjectTest.java
rm-gh-8 Mar 10, 2026
17641fa
8374506: Incorrect positioning of arrow icon in parent JMenu in Windo…
rm-gh-8 Mar 10, 2026
8790103
8365625: Can't change accelerator colors in Windows L&F
rm-gh-8 Mar 10, 2026
119dbe1
8376151: Test javax/swing/JFileChooser/4966171/bug4966171.java is fai…
rm-gh-8 Mar 10, 2026
b40fbd7
8365379: SU3.applyInsets may produce wrong results
rm-gh-8 Mar 10, 2026
c9ef994
8325482: Test that distinct seeds produce distinct traces for compile…
rm-gh-8 Mar 10, 2026
652b24a
8068293: [TEST_BUG] Test closed/com/sun/java/swing/plaf/motif/Interna…
rm-gh-8 Mar 10, 2026
0988694
8351010: Test java/io/File/GetXSpace.java failed: / usable space 5638…
rm-gh-8 Mar 10, 2026
902d17c
8373690: Unexpected Keystore message using jdk.crypto.disabledAlgorithms
rm-gh-8 Mar 10, 2026
f2b678f
8370939: C2: SIGSEGV in SafePointNode::verify_input when processing M…
shipilev Mar 10, 2026
bbd7c76
8370502: C2: segfault while adding node to IGVN worklist
Mar 11, 2026
969ea61
8367708: GenShen: Reduce total evacuation burden
Mar 12, 2026
08a14fd
8379464: Enable missing stack walking test via jtreg requires for RISC-V
RealFYang Mar 12, 2026
79f0f9d
8367450: Shenandoah: Log the composition of the collection set
Mar 12, 2026
d5c6667
8368524: Tests are skipped and shown as passed in test/jdk/sun/securi…
Mar 16, 2026
0f33a67
8377167: javax/imageio/ReadAbortTest.java throw NPE when x11 unavailable
Mar 16, 2026
5b75179
8374769: PPC: MASM::pop_cont_fastpath() should reset _cont_fastpath i…
reinrich Mar 16, 2026
2fb3e9c
8377932: AOT cache is not rejected when JAR file has changed
Mar 16, 2026
fe129fc
8357086: os::xxx functions returning memory size should return size_t
GoeLin Mar 16, 2026
2829159
8376233: Clean up code in Desktop native peer
rm-gh-8 Mar 16, 2026
cc0e990
8364315: Remove unused xml files from test/jaxp/javax/xml/jaxp/functi…
rm-gh-8 Mar 16, 2026
c42de31
8225787: java/awt/Window/GetScreenLocation/GetScreenLocationTest.java…
rm-gh-8 Mar 16, 2026
ec06e8c
8355339: Test java/io/File/GetCanonicalPath.java failed: The specifie…
rm-gh-8 Mar 16, 2026
c8e6078
8373718: jdk/internal/misc/VM/RuntimeArguments.java test fails in Vir…
rm-gh-8 Mar 16, 2026
09103d3
8298823: [macos] java/awt/Mouse/EnterExitEvents/DragWindowTest.java c…
rm-gh-8 Mar 16, 2026
61eba7c
8373847: Test javax/swing/JMenuItem/MenuItemTest/bug6197830.java fail…
rm-gh-8 Mar 16, 2026
c125ee6
8370370: Add still more cases to WorstCaseTests
rm-gh-8 Mar 16, 2026
4eb4456
8371792: Refactor barrier loop tests out of TestIfMinMax
rm-gh-8 Mar 16, 2026
78bbfd6
8364927: Add @requires annotation to TestReclaimStringsLeaksMemory.java
rm-gh-8 Mar 16, 2026
fdeadda
8068310: [TEST_BUG] Test javax/swing/JColorChooser/Test4234761.java f…
rm-gh-8 Mar 16, 2026
b939f71
8377910: Minor cleanup of java/io/FileDescriptor/Sharing.java
rm-gh-8 Mar 16, 2026
bad628f
8369817: [TESTBUG] EmptyPath::toString is ignored
rm-gh-8 Mar 16, 2026
48e5566
8319326: GC: Make TestParallelRefProc use createTestJavaProcessBuilder
rm-gh-8 Mar 16, 2026
96ab312
8213530: Test java/awt/Modal/ToFront/DialogToFrontModeless1Test.java …
rm-gh-8 Mar 16, 2026
90f4fd1
8368181: ProblemList java/awt/Dialog/ModalExcludedTest/ModalExcludedT…
rm-gh-8 Mar 16, 2026
b1ceddd
8368001: java/text/Format/NumberFormat/NumberRoundTrip.java timed out
rm-gh-8 Mar 16, 2026
c7f3f8f
8319540: GC: Make TestSelectDefaultGC use createTestJavaProcessBuilder
rm-gh-8 Mar 16, 2026
0c80640
8347167: Reduce allocation in com.sun.net.httpserver.Headers::normalize
rm-gh-8 Mar 17, 2026
68e3ee1
8339526: C2: store incorrectly removed for clone() transformed to ser…
shipilev Mar 17, 2026
314a744
8361699: C2: assert(can_reduce_phi(n->as_Phi())) failed: Sanity: prev…
shipilev Mar 17, 2026
dcc66f3
8369736: Add management interface for AOT cache creation
Mar 17, 2026
fda0bc6
8358772: Template-Framework Library: Primitive Types
rm-gh-8 Mar 17, 2026
0881f7e
8374744: Enable dumping of APX EGPRs (R16–R31) in JVM fatal error logs
Mar 17, 2026
147d66a
Merge
GoeLin Mar 18, 2026
aa6e7e1
8367485: os::physical_memory is broken in 32-bit JVMs when running on…
GoeLin Mar 18, 2026
866a70b
8358600: Template-Framework Library: Template for TestFramework test …
rm-gh-8 Mar 18, 2026
9f50cd8
8369950: TLS connection to IPv6 address fails with BCJSSE due to Ille…
rm-gh-8 Mar 18, 2026
541a194
8375065: Update LCMS to 2.18
rm-gh-8 Mar 18, 2026
2008683
8376104: C2 crashes in PhiNode::Ideal(PhaseGVN*, bool) accessing NULL…
Mar 19, 2026
adfde76
8144124: [macosx] The tabs can't be aligned when we pressing the key …
GoeLin Mar 20, 2026
1292cda
8064922: [macos] Test javax/swing/JTabbedPane/4624207/bug4624207.java…
GoeLin Mar 20, 2026
7672013
8361726: Shenandoah: More detailed evacuation instrumentation
Mar 20, 2026
622fb19
8379416: AIX build fails if system (not GNU) date tool is in PATH
MBaesken Mar 23, 2026
88182af
8378201: [OGL] glXMakeContextCurrent() drops the buffers of the unbou…
rm-gh-8 Mar 23, 2026
6d19aa8
8373676: Test javax/net/ssl/HttpsURLConnection/SubjectAltNameIP.java …
rm-gh-8 Mar 23, 2026
bb350a4
8359412: Template-Framework Library: Operations and Expressions
rm-gh-8 Mar 23, 2026
b2e7c1c
8376031: HttpsURLConnection.getServerCertificates() throws "java.lang…
rm-gh-8 Mar 23, 2026
9804987
8373893: Refactor networking http server tests to use JUnit
rm-gh-8 Mar 23, 2026
e008ce3
8344345: test/hotspot/gtest/x86/x86-asmtest.py has trailing whitespaces
rm-gh-8 Mar 23, 2026
204ec6f
8361606: ConsumeNextMnemonicKeyTypedTest.java fails on Windows: chara…
rm-gh-8 Mar 23, 2026
cab51ba
8377949: TestZRelocationSetEvent.java intermittent fails OOME
Mar 24, 2026
94657a2
8372380: Make hs_err reporting more robust for unattached threads
Mar 24, 2026
cf531ad
8380428: ProblemList containers/docker/TestJcmdWithSideCar.java on li…
ArnoZeller Mar 24, 2026
05f5a17
8363943: ARM32: Represent Registers as values
Mar 24, 2026
5a7d56a
8380011: Path-to-gcroots search should not trigger stack overflows
tstuefe Mar 24, 2026
ca9bd28
8373796: Refactor java/net/httpclient/ThrowingPublishers*.java tests …
rm-gh-8 Mar 24, 2026
646e139
8367531: Template Framework: use scopes and tokens instead of misbeha…
rm-gh-8 Mar 24, 2026
c6d47ed
8373866: Refactor java/net/httpclient/ThrowingSubscribers*.java tests…
rm-gh-8 Mar 24, 2026
c6590d8
8377602: Create automated test for PageRange
rm-gh-8 Mar 24, 2026
40506bd
8373120: Virtual thread stuck in BLOCKED state
shipilev Mar 24, 2026
dd30350
Merge
GoeLin Mar 24, 2026
bcffdd2
8362428: Update IANA Language Subtag Registry to Version 2025-08-25
rm-gh-8 Mar 24, 2026
3cc363a
8369683: Exclude runtime/Monitor/MonitorWithDeadObjectTest.java#DumpT…
ArnoZeller Mar 26, 2026
d09e1cc
8376684: Compile OpenJDK in headless mode without required X11 libraries
ThomasDevoogdt Mar 26, 2026
b51af16
8379202: Support linktime-gc on Linux with clang
MBaesken Mar 27, 2026
14d3f56
8377944: LowMemoryTest2.java#id1 intermittent fails OOME: Metaspace
Mar 27, 2026
b164bb0
8373913: Refactor serialization tests to use JUnit
rm-gh-8 Mar 27, 2026
9353e89
8321687: Test vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t002…
rm-gh-8 Mar 27, 2026
4975b2d
8370489: Some compiler tests miss the @key randomness
rm-gh-8 Mar 27, 2026
7b35fc8
8367096: jdk/open/test/jdk/sun/security/pkcs11/ rsa, ec, config, secm…
rm-gh-8 Mar 27, 2026
1950120
8278102: containers/docker/TestJcmd.java failed with "RuntimeExceptio…
rm-gh-8 Mar 27, 2026
a0ac2b1
8354650: [PPC64] Try to reduce register definitions
dbriemann Mar 30, 2026
253daca
8367451: GenShen: Remove the option to compute age census during evac…
Mar 30, 2026
de43a34
8015444: java/awt/Focus/KeyStrokeTest.java sometimes fails
Mar 30, 2026
dc01cec
8366695: Test sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate…
Mar 30, 2026
f8c6ad2
8378727: [macOS] Missing dispatch_release for semaphores in CDesktopPeer
Mar 30, 2026
5d157d5
8341735: Rewrite the build/AbsPathsInImage.java test to not load the …
Mar 30, 2026
b4dd845
8367949: JFR: MethodTrace double-counts methods that catch their own …
Mar 31, 2026
f18c87f
8373239: Test java/awt/print/PrinterJob/PageRanges.java fails with in…
Mar 31, 2026
f361c48
8365424: [macos26] java/awt/Frame/DisposeTest.java fails on macOS 26
GoeLin Mar 31, 2026
85d89a9
Merge
GoeLin Apr 1, 2026
12dea55
8372272: Hotspot shared lib loading - add load attempts to Events::log
MBaesken Apr 1, 2026
fe067a7
8378836: Enable linktime-gc by default on Linux ppc64le
MBaesken Apr 1, 2026
013dc16
8365423: [macos26] java/awt/MenuBar/8007006/bug8007006.java fails on …
GoeLin Apr 1, 2026
4d6a994
8374304: MultiResolutionSplashTest.java fails in CI: "Image with wron…
GoeLin Apr 1, 2026
2dcae67
8369251: Opensource few tests
Apr 1, 2026
be7cad4
8374343: Fix SIGSEGV when lib/modules is unreadable
Apr 2, 2026
7705b59
8372851: Modify java/io/File/GetXSpace.java to print path on failure …
Apr 7, 2026
44dc109
8378878: Refactor java/nio/channels/AsynchronousSocketChannel test to…
Apr 7, 2026
c5b2de2
8359433: The final modifier on Windows L&F internal UI classes preven…
mrserb Apr 8, 2026
d348f05
8279196: Test: jdk/jfr/event/gc/stacktrace/TestG1OldAllocationPending…
Apr 8, 2026
23e5828
8371893: [macOS] use dead_strip linker option to reduce binary size
MBaesken Apr 8, 2026
f981751
8347938: Add Support for the Latest ML-KEM and ML-DSA Private Key Enc…
Apr 8, 2026
eaecaf8
8323792: ThreadSnapshot::initialize can cause assert in Thread::check…
GoeLin Apr 9, 2026
c4c044e
8380474: Crash SEGV in ThreadIdTable::lazy_initialize after JDK-8323792
GoeLin Apr 9, 2026
8ecc43c
8367473: Shenandoah: Make the detailed evacuation metrics a runtime d…
Apr 9, 2026
623ab91
8378417: Printing All pages results in NPE for 1.1 PrintJob
Apr 9, 2026
bf5901b
8380565: PPC64: deoptimization stub should save vector registers
TheRealMDoerr Apr 10, 2026
b5d705e
8379499: [AIX] headless-only build of libjawt.so fails
MBaesken Apr 10, 2026
38d7614
8379515: draft-ietf-lamps-kyber-certificates is now RFC 9935
Apr 13, 2026
204f732
8221451: PIT: sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/Share…
Apr 13, 2026
31a140a
8380947: Add pull request template
gnu-andrew Apr 15, 2026
f7b5db1
8365623: test/jdk/sun/security/pkcs11/tls/ tests skipped without skip…
GoeLin Apr 15, 2026
445f04b
8380663: Update jcmd man page to include AOT.end_recording diagnostic…
GoeLin Apr 15, 2026
dbbdc1d
8375294: (fs) Files.copy can fail with EOPNOTSUPP when copy_file_rang…
Apr 15, 2026
e96e28d
8365057: Add support for java.util.concurrent lock information to Thr…
GoeLin Apr 15, 2026
0184231
8382047: Update Libpng to 1.6.57
GoeLin Apr 16, 2026
31221a3
8364657: Crash for SecureRandom.generateSeed(0) on Windows x86-64
MBaesken Apr 20, 2026
50d5e84
8371381: [Shenandoah] Setting ergo flags should use FLAG_SET_ERGO
Apr 20, 2026
37fbcaa
8241066: Shenandoah: fix or cleanup SH::do_full_collection
Apr 20, 2026
1bb3730
8367709: GenShen: Dirty cards for objects that get promoted by safepo…
Apr 20, 2026
50341ae
8261743: Shenandoah: enable String deduplication with compact heuristics
Apr 20, 2026
03bb624
8368307: Shenandoah: get_next_bit_impl should special case weak and s…
Apr 20, 2026
c7da0f9
8373928: 4 Dangling pointer defect groups in java.c
GoeLin Apr 21, 2026
f65951d
8376152: Test javax/sound/sampled/Clip/bug5070081.java timed out then…
GoeLin Apr 21, 2026
18dbb82
8382018: test/jdk/java/nio/file/spi/SetDefaultProvider.java leaves a …
ArnoZeller Apr 21, 2026
8f1542c
Merge
GoeLin Apr 22, 2026
4a9608f
8377512: AOT cache creation fails with invalid native pointer
antonvoznia Apr 22, 2026
9652460
8381937: Make exceptions in Java_sun_security_mscapi_CKeyPairGenerato…
MBaesken Apr 23, 2026
22ae100
8382522: Disable stringop-overflow in safepointMechanism.cpp
DingliZhang Apr 23, 2026
962fd11
8376969: Shenandoah: GC state getters should be inlineable
Apr 23, 2026
b5e34c1
8371284: GenShen: Avoid unnecessary card marking
Apr 23, 2026
45c9937
8376970: Shenandoah: Verifier should do basic verification before tou…
Apr 23, 2026
1e9b1e0
8372861: Genshen: Override parallel_region_stride of ShenandoahResetB…
Apr 23, 2026
ad9d998
8373039: Remove Incorrect Asserts in shenandoahScanRemembered
Apr 23, 2026
997e506
8352914: Shenandoah: Change definition of ShenandoahSharedValue to in…
Apr 23, 2026
4744046
8372513: Shenandoah: ShenandoahMaxRegionSize can produce an unaligned…
Apr 23, 2026
c214a3b
8368499: GenShen: Do not collect age census during evac when adaptive…
Apr 23, 2026
d0b6d9f
8368015: Shenandoah: fix error in computation of average allocation rate
pf0n Apr 24, 2026
9dfe29d
8373579: Problem list compiler/runtime/Test7196199.java
GoeLin Apr 27, 2026
075c00a
8382242: JFR: Metadata reconstruction invalidates ConstantMap for jav…
GoeLin Apr 27, 2026
ac803ee
8382090: Remove .rej and .orig from .gitignore
GoeLin Apr 27, 2026
13cca2e
8383161: [PPC64] MachCallDynamicJavaNode::ret_addr_offset() needs ada…
TheRealMDoerr Apr 27, 2026
81a2e3b
8374322: TestMemoryWithSubgroups.java fails Permission denied
Apr 27, 2026
11826ba
8382878: RISC-V: Missing InlineSkippedInstructionsCounter in ZGC barr…
zifeihan Apr 27, 2026
20d3ea4
8368501: Shenandoah: GC progress evaluation does not use generation
Apr 27, 2026
23d302c
8370521: GenShen: Various code cleanup related to promotion
Apr 27, 2026
ef0054c
8376956: Add JVMTI phase entering/setting to hserr event log
MBaesken Apr 28, 2026
a1119f5
8376287: Crashes when using -XX:ObjArrayMarkingStride=0
Apr 28, 2026
0cfdfea
8379457: Test EATests.java#id0 ERROR: monitor list errors: error_cnt=1
TheRealMDoerr Apr 29, 2026
51f0a46
8381935: Improve numChunks range in the PPC64 CallAranger
MBaesken Apr 29, 2026
9750701
8380222: Refactor test/jdk/java/lang/Character TestNG tests to JUnit
Apr 29, 2026
6cbe21c
8366852: java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.ja…
Apr 29, 2026
f5f8589
8374888: Implement internal test cache to help UserIterCount test per…
GoeLin Apr 30, 2026
c6c8b39
8382419: Add missed @key randomness after JDK-8370489
GoeLin May 4, 2026
7770bd1
8383601: RISC-V: ShenandoahBarrierSetAssembler::load_reference_barrie…
RealFYang May 5, 2026
a47b2ce
8379425: Windows and macOS should not allow unsupported headless-only…
MBaesken May 5, 2026
e5bdebd
8345631: TestRegionSamplingLogging.java#generational-rotation intermi…
May 5, 2026
44438d0
8382740: JFR: Disable jdk.OldObjectSample event for generational ZGC
May 5, 2026
892d08b
8340182: Java HttpClient does not follow default retry limit of 3 ret…
GoeLin May 5, 2026
5cc14e5
8359223: HttpClient: Remove leftovers from the SecurityManager cleanup
GoeLin May 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@



---------
- [ ] I confirm that I make this contribution in accordance with the [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,3 @@ NashornProfile.txt
/.gdbinit
/.lldbinit
**/core.[0-9]*
*.rej
*.orig
2 changes: 1 addition & 1 deletion .jcheck/conf
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[general]
project=jdk-updates
jbs=JDK
version=25.0.3
version=25.0.4

[checks]
error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace,problemlists,copyright
Expand Down
7 changes: 3 additions & 4 deletions doc/building.html
Original file line number Diff line number Diff line change
Expand Up @@ -1380,10 +1380,9 @@ <h4 id="alsa-1">ALSA</h4>
can specify it by <code>--with-alsa</code>.</p></li>
</ul>
<h4 id="x11-1">X11</h4>
<p>You will need X11 libraries suitable for your <em>target</em> system.
In most cases, using Debian's pre-built libraries work fine.</p>
<p>Note that X11 is needed even if you only want to build a headless
JDK.</p>
<p>When not building a headless JDK, you will need X11 libraries
suitable for your <em>target</em> system. In most cases, using Debian's
pre-built libraries work fine.</p>
<ul>
<li><p>Go to <a href="https://www.debian.org/distrib/packages">Debian
Package Search</a>, search for the following packages for your
Expand Down
6 changes: 2 additions & 4 deletions doc/building.md
Original file line number Diff line number Diff line change
Expand Up @@ -1173,10 +1173,8 @@ Note that alsa is needed even if you only want to build a headless JDK.

#### X11

You will need X11 libraries suitable for your *target* system. In most cases,
using Debian's pre-built libraries work fine.

Note that X11 is needed even if you only want to build a headless JDK.
When not building a headless JDK, you will need X11 libraries suitable for your
*target* system. In most cases, using Debian's pre-built libraries work fine.

* Go to [Debian Package Search](https://www.debian.org/distrib/packages),
search for the following packages for your *target* system, and download them
Expand Down
6 changes: 5 additions & 1 deletion make/autoconf/basic_tools.m4
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2026, 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
Expand Down Expand Up @@ -384,6 +384,10 @@ AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
IS_GNU_DATE=yes
else
AC_MSG_RESULT([no])
# Likely at the AIX provided version of the date utility here, which is not compatible
if test "x$OPENJDK_TARGET_OS" = "xaix"; then
AC_MSG_ERROR([gnu date from AIX toolbox is required])
fi
IS_GNU_DATE=no
fi
AC_SUBST(IS_GNU_DATE)
Expand Down
5 changes: 5 additions & 0 deletions make/autoconf/flags-cflags.m4
Original file line number Diff line number Diff line change
Expand Up @@ -565,6 +565,11 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing" # technically NOT for CXX
fi

if test "x$ENABLE_LINKTIME_GC" = xtrue; then
TOOLCHAIN_CFLAGS_JDK="$TOOLCHAIN_CFLAGS_JDK -ffunction-sections -fdata-sections"
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -ffunction-sections -fdata-sections"
fi

if test "x$OPENJDK_TARGET_OS" = xaix; then
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -ffunction-sections -ftls-model -fno-math-errno"
TOOLCHAIN_CFLAGS_JDK="-ffunction-sections -fsigned-char"
Expand Down
7 changes: 7 additions & 0 deletions make/autoconf/flags-ldflags.m4
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,10 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
if test "x$CXX_IS_USER_SUPPLIED" = xfalse && test "x$CC_IS_USER_SUPPLIED" = xfalse; then
UTIL_REQUIRE_PROGS(LLD, lld, $TOOLCHAIN_PATH:$PATH)
fi

if test "x$ENABLE_LINKTIME_GC" = xtrue; then
BASIC_LDFLAGS_JDK_ONLY="$BASIC_LDFLAGS_JDK_ONLY -Wl,--gc-sections"
fi
fi
if test "x$OPENJDK_TARGET_OS" = xaix; then
BASIC_LDFLAGS="-Wl,-b64 -Wl,-brtl -Wl,-bnorwexec -Wl,-blibpath:/usr/lib:lib -Wl,-bnoexpall \
Expand All @@ -98,6 +102,9 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],

# Setup OS-dependent LDFLAGS
if test "x$OPENJDK_TARGET_OS" = xmacosx && test "x$TOOLCHAIN_TYPE" = xclang; then
if test x$DEBUG_LEVEL = xrelease; then
BASIC_LDFLAGS_JDK_ONLY="$BASIC_LDFLAGS_JDK_ONLY -Wl,-dead_strip"
fi
# FIXME: We should really generalize SET_SHARED_LIBRARY_ORIGIN instead.
OS_LDFLAGS_JVM_ONLY="-Wl,-rpath,@loader_path/. -Wl,-rpath,@loader_path/.."
OS_LDFLAGS="-mmacosx-version-min=$MACOSX_VERSION_MIN -Wl,-reproducible"
Expand Down
15 changes: 13 additions & 2 deletions make/autoconf/jdk-options.m4
Original file line number Diff line number Diff line change
Expand Up @@ -102,9 +102,20 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS],
CHECKING_MSG: [if we should build headless-only (no GUI)])
AC_SUBST(ENABLE_HEADLESS_ONLY)

# Avoid headless-only on macOS and Windows, it is not supported there
if test "x$ENABLE_HEADLESS_ONLY" = xtrue; then
if test "x$OPENJDK_TARGET_OS" = xwindows || test "x$OPENJDK_TARGET_OS" = xmacosx; then
AC_MSG_ERROR([headless-only is not supported on macOS and Windows])
fi
fi

# should we linktime gc unused code sections in the JDK build ?
if test "x$OPENJDK_TARGET_OS" = "xlinux" && test "x$OPENJDK_TARGET_CPU" = xs390x; then
LINKTIME_GC_DEFAULT=true
if test "x$OPENJDK_TARGET_OS" = "xlinux"; then
if test "x$OPENJDK_TARGET_CPU" = "xs390x" || test "x$OPENJDK_TARGET_CPU" = "xppc64le"; then
LINKTIME_GC_DEFAULT=true
else
LINKTIME_GC_DEFAULT=false
fi
else
LINKTIME_GC_DEFAULT=false
fi
Expand Down
8 changes: 4 additions & 4 deletions make/autoconf/libraries.m4
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,12 @@ m4_include([lib-tests.m4])
AC_DEFUN_ONCE([LIB_DETERMINE_DEPENDENCIES],
[
# Check if X11 is needed
if test "x$OPENJDK_TARGET_OS" = xwindows || test "x$OPENJDK_TARGET_OS" = xmacosx; then
# No X11 support on windows or macosx
if test "x$OPENJDK_TARGET_OS" = xwindows ||
test "x$OPENJDK_TARGET_OS" = xmacosx ||
test "x$ENABLE_HEADLESS_ONLY" = xtrue; then
NEEDS_LIB_X11=false
else
# All other instances need X11, even if building headless only, libawt still
# needs X11 headers.
# All other instances need X11 for libawt.
NEEDS_LIB_X11=true
fi

Expand Down
6 changes: 3 additions & 3 deletions make/conf/version-numbers.conf
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,15 @@

DEFAULT_VERSION_FEATURE=25
DEFAULT_VERSION_INTERIM=0
DEFAULT_VERSION_UPDATE=3
DEFAULT_VERSION_UPDATE=4
DEFAULT_VERSION_PATCH=0
DEFAULT_VERSION_EXTRA1=0
DEFAULT_VERSION_EXTRA2=0
DEFAULT_VERSION_EXTRA3=0
DEFAULT_VERSION_DATE=2026-04-21
DEFAULT_VERSION_DATE=2026-07-21
DEFAULT_VERSION_CLASSFILE_MAJOR=69 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
DEFAULT_VERSION_CLASSFILE_MINOR=0
DEFAULT_VERSION_DOCS_API_SINCE=11
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="24 25"
DEFAULT_JDK_SOURCE_TARGET_VERSION=25
DEFAULT_PROMOTED_VERSION_PRE=
DEFAULT_PROMOTED_VERSION_PRE=ea
1 change: 1 addition & 0 deletions make/hotspot/lib/CompileJvm.gmk
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJVM, \
DISABLED_WARNINGS_gcc_jvmtiTagMap.cpp := stringop-overflow, \
DISABLED_WARNINGS_gcc_macroAssembler_ppc_sha.cpp := unused-const-variable, \
DISABLED_WARNINGS_gcc_postaloc.cpp := address, \
DISABLED_WARNINGS_gcc_safepointMechanism.cpp := stringop-overflow, \
DISABLED_WARNINGS_gcc_shenandoahLock.cpp := stringop-overflow, \
DISABLED_WARNINGS_gcc_stubGenerator_s390.cpp := unused-const-variable, \
DISABLED_WARNINGS_gcc_synchronizer.cpp := stringop-overflow, \
Expand Down
21 changes: 18 additions & 3 deletions make/modules/java.desktop/lib/AwtLibraries.gmk
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2026, 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
Expand Down Expand Up @@ -88,6 +88,10 @@ LIBAWT_EXTRA_HEADER_DIRS := \

LIBAWT_CFLAGS := -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES -DMLIB_NO_LIBSUNMATH

ifeq ($(ENABLE_HEADLESS_ONLY), true)
LIBAWT_CFLAGS += -DHEADLESS
endif

ifeq ($(call isTargetOs, windows), true)
LIBAWT_CFLAGS += -EHsc -DUNICODE -D_UNICODE -DMLIB_OS64BIT
LIBAWT_RCFLAGS ?= -I$(TOPDIR)/src/java.base/windows/native/launcher/icons
Expand Down Expand Up @@ -167,11 +171,18 @@ ifeq ($(call isTargetOs, windows macosx), false)
$(TOPDIR)/src/$(MODULE)/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
#

LIBAWT_HEADLESS_EXCLUDE_FILES := \
GLXGraphicsConfig.c \
GLXSurfaceData.c \
X11PMBlitLoops.c \
X11Renderer.c \
X11SurfaceData.c \
#

LIBAWT_HEADLESS_EXTRA_HEADER_DIRS := \
$(LIBAWT_DEFAULT_HEADER_DIRS) \
common/awt/debug \
common/font \
common/java2d/opengl \
java.base:libjvm \
#

Expand All @@ -191,7 +202,8 @@ ifeq ($(call isTargetOs, windows macosx), false)
$(eval $(call SetupJdkLibrary, BUILD_LIBAWT_HEADLESS, \
NAME := awt_headless, \
EXTRA_SRC := $(LIBAWT_HEADLESS_EXTRA_SRC), \
EXCLUDES := medialib, \
EXCLUDES := medialib opengl, \
EXCLUDE_FILES := $(LIBAWT_HEADLESS_EXCLUDE_FILES), \
ONLY_EXPORTED := $(LIBAWT_HEADLESS_ONLY_EXPORTED), \
OPTIMIZATION := LOW, \
CFLAGS := -DHEADLESS=true $(CUPS_CFLAGS) $(FONTCONFIG_CFLAGS) \
Expand Down Expand Up @@ -411,6 +423,9 @@ endif
ifeq ($(call isTargetOs, linux)+$(ENABLE_HEADLESS_ONLY), true+true)
LIBJAWT_CFLAGS += -DHEADLESS
endif
ifeq ($(call isTargetOs, aix)+$(ENABLE_HEADLESS_ONLY), true+true)
LIBJAWT_CFLAGS += -DHEADLESS
endif

ifeq ($(call isTargetOs, windows)+$(call isTargetCpu, x86), true+true)
LIBJAWT_LIBS_windows := kernel32.lib
Expand Down
32 changes: 16 additions & 16 deletions src/hotspot/cpu/arm/arm_32.ad
Original file line number Diff line number Diff line change
Expand Up @@ -62,22 +62,22 @@ register %{
// Integer/Long Registers
// ----------------------------

reg_def R_R0 (SOC, SOC, Op_RegI, 0, R(0)->as_VMReg());
reg_def R_R1 (SOC, SOC, Op_RegI, 1, R(1)->as_VMReg());
reg_def R_R2 (SOC, SOC, Op_RegI, 2, R(2)->as_VMReg());
reg_def R_R3 (SOC, SOC, Op_RegI, 3, R(3)->as_VMReg());
reg_def R_R4 (SOC, SOE, Op_RegI, 4, R(4)->as_VMReg());
reg_def R_R5 (SOC, SOE, Op_RegI, 5, R(5)->as_VMReg());
reg_def R_R6 (SOC, SOE, Op_RegI, 6, R(6)->as_VMReg());
reg_def R_R7 (SOC, SOE, Op_RegI, 7, R(7)->as_VMReg());
reg_def R_R8 (SOC, SOE, Op_RegI, 8, R(8)->as_VMReg());
reg_def R_R9 (SOC, SOE, Op_RegI, 9, R(9)->as_VMReg());
reg_def R_R10(NS, SOE, Op_RegI, 10, R(10)->as_VMReg());
reg_def R_R11(NS, SOE, Op_RegI, 11, R(11)->as_VMReg());
reg_def R_R12(SOC, SOC, Op_RegI, 12, R(12)->as_VMReg());
reg_def R_R13(NS, NS, Op_RegI, 13, R(13)->as_VMReg());
reg_def R_R14(SOC, SOC, Op_RegI, 14, R(14)->as_VMReg());
reg_def R_R15(NS, NS, Op_RegI, 15, R(15)->as_VMReg());
reg_def R_R0 (SOC, SOC, Op_RegI, 0, as_Register(0)->as_VMReg());
reg_def R_R1 (SOC, SOC, Op_RegI, 1, as_Register(1)->as_VMReg());
reg_def R_R2 (SOC, SOC, Op_RegI, 2, as_Register(2)->as_VMReg());
reg_def R_R3 (SOC, SOC, Op_RegI, 3, as_Register(3)->as_VMReg());
reg_def R_R4 (SOC, SOE, Op_RegI, 4, as_Register(4)->as_VMReg());
reg_def R_R5 (SOC, SOE, Op_RegI, 5, as_Register(5)->as_VMReg());
reg_def R_R6 (SOC, SOE, Op_RegI, 6, as_Register(6)->as_VMReg());
reg_def R_R7 (SOC, SOE, Op_RegI, 7, as_Register(7)->as_VMReg());
reg_def R_R8 (SOC, SOE, Op_RegI, 8, as_Register(8)->as_VMReg());
reg_def R_R9 (SOC, SOE, Op_RegI, 9, as_Register(9)->as_VMReg());
reg_def R_R10(NS, SOE, Op_RegI, 10, as_Register(10)->as_VMReg());
reg_def R_R11(NS, SOE, Op_RegI, 11, as_Register(11)->as_VMReg());
reg_def R_R12(SOC, SOC, Op_RegI, 12, as_Register(12)->as_VMReg());
reg_def R_R13(NS, NS, Op_RegI, 13, as_Register(13)->as_VMReg());
reg_def R_R14(SOC, SOC, Op_RegI, 14, as_Register(14)->as_VMReg());
reg_def R_R15(NS, NS, Op_RegI, 15, as_Register(15)->as_VMReg());

// ----------------------------
// Float/Double Registers
Expand Down
2 changes: 1 addition & 1 deletion src/hotspot/cpu/arm/assembler_arm_32.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ class RegisterSet {
}

RegisterSet(Register first, Register last) {
assert(first < last, "encoding constraint");
assert(first->encoding() < last->encoding(), "encoding constraint");
_encoding = (1 << (last->encoding() + 1)) - (1 << first->encoding());
}

Expand Down
2 changes: 1 addition & 1 deletion src/hotspot/cpu/arm/c1_CodeStubs_arm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ void MonitorEnterStub::emit_code(LIR_Assembler* ce) {
const Register lock_reg = _lock_reg->as_pointer_register();

ce->verify_reserved_argument_area_size(2);
if (obj_reg < lock_reg) {
if (obj_reg->encoding() < lock_reg->encoding()) {
__ stmia(SP, RegisterSet(obj_reg) | RegisterSet(lock_reg));
} else {
__ str(obj_reg, Address(SP));
Expand Down
8 changes: 4 additions & 4 deletions src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2655,11 +2655,11 @@ void LIR_Assembler::volatile_move_op(LIR_Opr src, LIR_Opr dest, BasicType type,
const Register src_hi = src->as_register_hi();
assert(addr->index()->is_illegal() && addr->disp() == 0, "The address is simple already");

if (src_lo < src_hi) {
if (src_lo->encoding() < src_hi->encoding()) {
null_check_offset = __ offset();
__ stmia(addr->base()->as_register(), RegisterSet(src_lo) | RegisterSet(src_hi));
} else {
assert(src_lo < Rtemp, "Rtemp is higher than any allocatable register");
assert(src_lo->encoding() < Rtemp->encoding(), "Rtemp is higher than any allocatable register");
__ mov(Rtemp, src_hi);
null_check_offset = __ offset();
__ stmia(addr->base()->as_register(), RegisterSet(src_lo) | RegisterSet(Rtemp));
Expand All @@ -2672,10 +2672,10 @@ void LIR_Assembler::volatile_move_op(LIR_Opr src, LIR_Opr dest, BasicType type,
assert(addr->index()->is_illegal() && addr->disp() == 0, "The address is simple already");

null_check_offset = __ offset();
if (dest_lo < dest_hi) {
if (dest_lo->encoding() < dest_hi->encoding()) {
__ ldmia(addr->base()->as_register(), RegisterSet(dest_lo) | RegisterSet(dest_hi));
} else {
assert(dest_lo < Rtemp, "Rtemp is higher than any allocatable register");
assert(dest_lo->encoding() < Rtemp->encoding(), "Rtemp is higher than any allocatable register");
__ ldmia(addr->base()->as_register(), RegisterSet(dest_lo) | RegisterSet(Rtemp));
__ mov(dest_hi, Rtemp);
}
Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/cpu/arm/interp_masm_arm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,7 @@ void InterpreterMacroAssembler::pop_i(Register r) {

void InterpreterMacroAssembler::pop_l(Register lo, Register hi) {
assert_different_registers(lo, hi);
assert(lo < hi, "lo must be < hi");
assert(lo->encoding() < hi->encoding(), "lo must be < hi");
pop(RegisterSet(lo) | RegisterSet(hi));
}

Expand Down Expand Up @@ -459,7 +459,7 @@ void InterpreterMacroAssembler::push_i(Register r) {

void InterpreterMacroAssembler::push_l(Register lo, Register hi) {
assert_different_registers(lo, hi);
assert(lo < hi, "lo must be < hi");
assert(lo->encoding() < hi->encoding(), "lo must be < hi");
push(RegisterSet(lo) | RegisterSet(hi));
}

Expand Down
30 changes: 19 additions & 11 deletions src/hotspot/cpu/arm/register_arm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,19 @@
#include "register_arm.hpp"
#include "utilities/debug.hpp"

const int ConcreteRegisterImpl::max_gpr = ConcreteRegisterImpl::num_gpr;
const int ConcreteRegisterImpl::max_fpr = ConcreteRegisterImpl::num_fpr +
ConcreteRegisterImpl::max_gpr;
Register::RegisterImpl all_RegisterImpls [Register::number_of_registers + 1];
FloatRegister::FloatRegisterImpl all_FloatRegisterImpls [FloatRegister::number_of_registers + 1];
VFPSystemRegister::VFPSystemRegisterImpl all_VFPSystemRegisterImpls [VFPSystemRegister::number_of_registers + 1] {
{ -1 }, //vfpsnoreg
{ VFPSystemRegister::FPSID },
{ VFPSystemRegister::FPSCR },
{ VFPSystemRegister::MVFR0 },
{ VFPSystemRegister::MVFR1 }
};

const char* RegisterImpl::name() const {
const char* names[number_of_registers] = {
const char* Register::RegisterImpl::name() const {
static const char* names[number_of_registers + 1] = {
"noreg",
"r0", "r1", "r2", "r3", "r4", "r5", "r6",
#if (FP_REG_NUM == 7)
"fp",
Expand All @@ -45,13 +52,14 @@ const char* RegisterImpl::name() const {
#endif
"r12", "sp", "lr", "pc"
};
return is_valid() ? names[encoding()] : "noreg";
return names[encoding() + 1];
}

const char* FloatRegisterImpl::name() const {
const char* names[number_of_registers] = {
"s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7",
"s8", "s9", "s10", "s11", "s12", "s13", "s14", "s15",
const char* FloatRegister::FloatRegisterImpl::name() const {
static const char* names[number_of_registers + 1] = {
"fnoreg",
"s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7",
"s8", "s9", "s10", "s11", "s12", "s13", "s14", "s15",
"s16", "s17", "s18", "s19", "s20", "s21", "s22", "s23",
"s24", "s25", "s26", "s27", "s28", "s29", "s30", "s31"
#ifdef COMPILER2
Expand All @@ -61,5 +69,5 @@ const char* FloatRegisterImpl::name() const {
"s56", "s57?","s58", "s59?","s60", "s61?","s62", "s63?"
#endif
};
return is_valid() ? names[encoding()] : "fnoreg";
return names[encoding() + 1];
}
Loading
Loading