Compare commits
23 Commits
c9s
...
a8-portabl
Author | SHA1 | Date | |
---|---|---|---|
|
7148940163 | ||
4e0a0a121f | |||
|
4f53aa171e | ||
d147dfde95 | |||
|
d9d5e913a3 | ||
653c8e9151 | |||
|
27f5648000 | ||
4f480283d1 | |||
59f4f02acc | |||
b5abed90eb | |||
ffd27635f6 | |||
75a042925c | |||
9ec916ee34 | |||
fe7bdc8675 | |||
edbfd1275a | |||
5720835f8f | |||
|
e99c73402f | ||
c371864bcb | |||
b3e6b0628b | |||
|
e103f0d4f9 | ||
fd3d4aa510 | |||
a12191bbdc | |||
|
726bc53b0f |
38
.gitignore
vendored
38
.gitignore
vendored
@ -1,36 +1,2 @@
|
||||
/openjdk-jdk17u-jdk-17.0.7+7.tar.xz
|
||||
/tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz
|
||||
/openjdk-jdk18u-jdk-18.0.1+0.tar.xz
|
||||
/openjdk-jdk18u-jdk-18.0.1+10.tar.xz
|
||||
/openjdk-jdk18u-jdk-18.0.1.1+2.tar.xz
|
||||
/openjdk-jdk18u-jdk-18.0.2+9.tar.xz
|
||||
/openjdk-jdk19u-jdk-19+36.tar.xz
|
||||
/openjdk-jdk19u-jdk-19.0.1+10.tar.xz
|
||||
/openjdk-jdk19u-jdk-19.0.2+7.tar.xz
|
||||
/openjdk-jdk20u-jdk-20+36.tar.xz
|
||||
/openjdk-jdk20u-jdk-20.0.1+9.tar.xz
|
||||
/openjdk-jdk20u-jdk-20.0.2+9.tar.xz
|
||||
/openjdk-jdk21u-jdk-21+35.tar.xz
|
||||
/openjdk-21.0.1+12.tar.xz
|
||||
/openjdk-21.0.2+11.tar.xz
|
||||
/openjdk-21.0.2+12.tar.xz
|
||||
/openjdk-21.0.2+13.tar.xz
|
||||
/openjdk-21.0.3+1-ea.tar.xz
|
||||
/openjdk-21.0.3+7-ea.tar.xz
|
||||
/openjdk-21.0.3+9.tar.xz
|
||||
/openjdk-21.0.4+1-ea.tar.xz
|
||||
/openjdk-21.0.4+5-ea.tar.xz
|
||||
/openjdk-21.0.4+7.tar.xz
|
||||
/openjdk-21.0.5+1-ea.tar.xz
|
||||
/openjdk-21.0.5+5-ea.tar.xz
|
||||
/openjdk-21.0.5+9-ea.tar.xz
|
||||
/openjdk-21.0.5+10.tar.xz
|
||||
/openjdk-21.0.5+11.tar.xz
|
||||
/openjdk-21.0.6+6-ea.tar.xz
|
||||
/openjdk-21.0.6+7.tar.xz
|
||||
/openjdk-21.0.7+1-ea.tar.xz
|
||||
/openjdk-21.0.7+2-ea.tar.xz
|
||||
/openjdk-21.0.7+3-ea.tar.xz
|
||||
/openjdk-21.0.7+4-ea.tar.xz
|
||||
/openjdk-21.0.7+5-ea.tar.xz
|
||||
/openjdk-21.0.7+6.tar.xz
|
||||
SOURCES/openjdk-21.0.8+9.tar.xz
|
||||
SOURCES/tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz
|
||||
|
2
.java-21-openjdk.metadata
Normal file
2
.java-21-openjdk.metadata
Normal file
@ -0,0 +1,2 @@
|
||||
3af78581a3c2538dda0885e64327745497a6f875 SOURCES/openjdk-21.0.8+9.tar.xz
|
||||
c8281ee37b77d535c9c1af86609a531958ff7b34 SOURCES/tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz
|
@ -3,6 +3,539 @@ 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 21.0.8 (2025-07-15):
|
||||
===========================================
|
||||
Live versions of these release notes can be found at:
|
||||
* https://bit.ly/openjdk2108
|
||||
|
||||
* CVEs
|
||||
- CVE-2025-30749
|
||||
- CVE-2025-30754
|
||||
- CVE-2025-50059
|
||||
- CVE-2025-50106
|
||||
* Changes
|
||||
- JDK-6956385: URLConnection.getLastModified() leaks file handles for jar:file and file: URLs
|
||||
- JDK-8051591: Test javax/swing/JTabbedPane/8007563/Test8007563.java fails
|
||||
- JDK-8136895: Writer not closed with disk full error, file resource leaked
|
||||
- JDK-8180450: secondary_super_cache does not scale well
|
||||
- JDK-8183348: Better cleanup for jdk/test/sun/security/pkcs12/P12SecretKey.java
|
||||
- JDK-8200566: DistributionPointFetcher fails to fetch CRLs if the DistributionPoints field contains more than one DistributionPoint and the first one fails
|
||||
- JDK-8202100: Merge vm/share/InMemoryJavaCompiler w/ jdk/test/lib/compiler/InMemoryJavaCompiler
|
||||
- JDK-8210471: GZIPInputStream constructor could leak an un-end()ed Inflater
|
||||
- JDK-8211400: nsk.share.gc.Memory::getArrayLength returns wrong value
|
||||
- JDK-8220213: com/sun/jndi/dns/ConfigTests/Timeout.java failed intermittent
|
||||
- JDK-8249831: Test sun/security/mscapi/nonUniqueAliases/NonUniqueAliases.java is marked with @ignore
|
||||
- JDK-8253440: serviceability/sa/TestJhsdbJstackLineNumbers.java failed with "Didn't find enough line numbers"
|
||||
- JDK-8256211: assert fired in java/net/httpclient/DependentPromiseActionsTest (infrequent)
|
||||
- JDK-8258483: [TESTBUG] gtest CollectorPolicy.young_scaled_initial_ergo_vm fails if heap is too small
|
||||
- JDK-8267174: Many test files have the wrong Copyright header
|
||||
- JDK-8270269: Desktop.browse method fails if earlier CoInitialize call as COINIT_MULTITHREADED
|
||||
- JDK-8276995: Bug in jdk.jfr.event.gc.collection.TestSystemGC
|
||||
- JDK-8279016: JFR Leak Profiler is broken with Shenandoah
|
||||
- JDK-8280991: [XWayland] No displayChanged event after setDisplayMode call
|
||||
- JDK-8281511: java/net/ipv6tests/UdpTest.java fails with checkTime failed
|
||||
- JDK-8282726: java/net/vthread/BlockingSocketOps.java timeout/hang intermittently on Windows
|
||||
- JDK-8286204: [Accessibility,macOS,VoiceOver] VoiceOver reads the spinner value 10 as 1 when user iterates to 10 for the first time on macOS
|
||||
- JDK-8286789: Test forceEarlyReturn002.java timed out
|
||||
- JDK-8286875: ProgrammableUpcallHandler::on_entry/on_exit access thread fields from native
|
||||
- JDK-8294155: Exception thrown before awaitAndCheck hangs PassFailJFrame
|
||||
- JDK-8295804: javax/swing/JFileChooser/JFileChooserSetLocationTest.java failed with "setLocation() is not working properly"
|
||||
- JDK-8297692: Avoid sending per-region GCPhaseParallel JFR events in G1ScanCollectionSetRegionClosure
|
||||
- JDK-8303770: Remove Baltimore root certificate expiring in May 2025
|
||||
- JDK-8305010: Test vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java timed out: thread not suspended
|
||||
- JDK-8307318: Test serviceability/sa/ClhsdbCDSJstackPrintAll.java failed: ArrayIndexOutOfBoundsException
|
||||
- JDK-8307824: Clean up Finalizable.java and finalize terminology in vmTestbase/nsk/share
|
||||
- JDK-8308033: The jcmd thread dump related tests should test virtual threads
|
||||
- JDK-8308966: Add intrinsic for float/double modulo for x86 AVX2 and AVX512
|
||||
- JDK-8309667: TLS handshake fails because of ConcurrentModificationException in PKCS12KeyStore.engineGetEntry
|
||||
- JDK-8309841: Jarsigner should print a warning if an entry is removed
|
||||
- JDK-8309978: [x64] Fix useless padding
|
||||
- JDK-8310066: Improve test coverage for JVMTI GetThreadState on carrier and mounted vthread
|
||||
- JDK-8310525: DynamicLauncher for JDP test needs to try harder to find a free port
|
||||
- JDK-8310643: Misformatted copyright messages in FFM
|
||||
- JDK-8312246: NPE when HSDB visits bad oop
|
||||
- JDK-8312475: org.jline.util.PumpReader signed byte problem
|
||||
- JDK-8313290: Misleading exception message from STS.Subtask::get when task forked after shutdown
|
||||
- JDK-8313430: [JVMCI] fatal error: Never compilable: in JVMCI shutdown
|
||||
- JDK-8313654: Test WaitNotifySuspendedVThreadTest.java timed out
|
||||
- JDK-8314056: Remove runtime platform check from frem/drem
|
||||
- JDK-8314136: Test java/net/httpclient/CancelRequestTest.java failed: WARNING: tracker for HttpClientImpl(42) has outstanding operations
|
||||
- JDK-8314236: Overflow in Collections.rotate
|
||||
- JDK-8314319: LogCompilation doesn't reset lateInlining when it encounters a failure.
|
||||
- JDK-8314840: 3 gc/epsilon tests ignore external vm options
|
||||
- JDK-8314842: zgc/genzgc tests ignore vm flags
|
||||
- JDK-8315128: jdk/jfr/event/runtime/TestResidentSetSizeEvent.java fails with "The size should be less than or equal to peak"
|
||||
- JDK-8315484: java/awt/dnd/RejectDragDropActionTest.java timed out
|
||||
- JDK-8315669: Open source several Swing PopupMenu related tests
|
||||
- JDK-8315742: Open source several Swing Scroll related tests
|
||||
- JDK-8315827: Kitchensink.java and RenaissanceStressTest.java time out with jvmti module errors
|
||||
- JDK-8315871: Opensource five more Swing regression tests
|
||||
- JDK-8315876: Open source several Swing CSS related tests
|
||||
- JDK-8315951: Open source several Swing HTMLEditorKit related tests
|
||||
- JDK-8315981: Opensource five more random Swing tests
|
||||
- JDK-8316061: Open source several Swing RootPane and Slider related tests
|
||||
- JDK-8316324: Opensource five miscellaneous Swing tests
|
||||
- JDK-8316388: Opensource five Swing component related regression tests
|
||||
- JDK-8316452: java/lang/instrument/modules/AppendToClassPathModuleTest.java ignores VM flags
|
||||
- JDK-8316497: ColorConvertOp - typo for non-ICC conversions needs one-line fix
|
||||
- JDK-8316580: HttpClient with StructuredTaskScope does not close when a task fails
|
||||
- JDK-8316629: j.text.DateFormatSymbols setZoneStrings() exception is unhelpful
|
||||
- JDK-8317264: Pattern.Bound has `static` fields that should be `static final`.
|
||||
- JDK-8318509: x86 count_positives intrinsic broken for -XX:AVX3Threshold=0
|
||||
- JDK-8318636: Add jcmd to print annotated process memory map
|
||||
- JDK-8318700: MacOS Zero cannot run gtests due to wrong JVM path
|
||||
- JDK-8318811: Compiler directives parser swallows a character after line comments
|
||||
- JDK-8318915: Enhance checks in BigDecimal.toPlainString()
|
||||
- JDK-8319439: Move BufferNode from PtrQueue files to new files
|
||||
- JDK-8319572: Test jdk/incubator/vector/LoadJsvmlTest.java ignores VM flags
|
||||
- JDK-8319690: [AArch64] C2 compilation hits offset_ok_for_immed: assert "c2 compiler bug"
|
||||
- JDK-8320687: sun.jvmstat.monitor.MonitoredHost.getMonitoredHost() throws unexpected exceptions when invoked concurrently
|
||||
- JDK-8320948: NPE due to unreported compiler error
|
||||
- JDK-8321204: C2: assert(false) failed: node should be in igvn hash table
|
||||
- JDK-8321479: java -D-D crashes
|
||||
- JDK-8321931: memory_swap_current_in_bytes reports 0 as "unlimited"
|
||||
- JDK-8322141: SequenceInputStream.transferTo should not return as soon as Long.MAX_VALUE bytes have been transferred
|
||||
- JDK-8322475: Extend printing for System.map
|
||||
- JDK-8323795: jcmd Compiler.codecache should print total size of code cache
|
||||
- JDK-8324345: Stack overflow during C2 compilation when splitting memory phi
|
||||
- JDK-8324678: Replace NULL with nullptr in HotSpot gtests
|
||||
- JDK-8324681: Replace NULL with nullptr in HotSpot jtreg test native code files
|
||||
- JDK-8324799: Use correct extension for C++ test headers
|
||||
- JDK-8324880: Rename get_stack_trace.h
|
||||
- JDK-8325055: Rename Injector.h
|
||||
- JDK-8325180: Rename jvmti_FollowRefObjects.h
|
||||
- JDK-8325347: Rename native_thread.h
|
||||
- JDK-8325367: Rename nsk_list.h
|
||||
- JDK-8325435: [macos] Menu or JPopupMenu not closed when main window is resized
|
||||
- JDK-8325456: Rename nsk_mutex.h
|
||||
- JDK-8325458: Rename mlvmJvmtiUtils.h
|
||||
- JDK-8325680: Uninitialised memory in deleteGSSCB of GSSLibStub.c:179
|
||||
- JDK-8325682: Rename nsk_strace.h
|
||||
- JDK-8325910: Rename jnihelper.h
|
||||
- JDK-8326090: Rename jvmti_aod.h
|
||||
- JDK-8326389: [test] improve assertEquals failure output
|
||||
- JDK-8326524: Rename agent_common.h
|
||||
- JDK-8326586: Improve Speed of System.map
|
||||
- JDK-8327071: [Testbug] g-tests for cgroup leave files in /tmp on linux
|
||||
- JDK-8327169: serviceability/dcmd/vm/SystemMapTest.java and SystemDumpMapTest.java may fail after JDK-8326586
|
||||
- JDK-8327370: (ch) sun.nio.ch.Poller.register throws AssertionError
|
||||
- JDK-8327461: KeyStore getEntry is not thread-safe
|
||||
- JDK-8328107: Shenandoah/C2: TestVerifyLoopOptimizations test failure
|
||||
- JDK-8328301: Convert Applet test ManualHTMLDataFlavorTest.java to main program
|
||||
- JDK-8328482: Convert and Open source few manual applet test to main based
|
||||
- JDK-8328484: Convert and Opensource few JFileChooser applet test to main
|
||||
- JDK-8328648: Remove applet usage from JFileChooser tests bug4150029
|
||||
- JDK-8328670: Automate and open source few closed manual applet test
|
||||
- JDK-8328673: Convert closed text/html/CSS manual applet test to main
|
||||
- JDK-8328864: NullPointerException in sun.security.jca.ProviderList.getService()
|
||||
- JDK-8329261: G1: interpreter post-barrier x86 code asserts index size of wrong buffer
|
||||
- JDK-8329729: java/util/Properties/StoreReproducibilityTest.java times out
|
||||
- JDK-8330106: C2: VectorInsertNode::make() shouldn't call ConINode::make() directly
|
||||
- JDK-8330158: C2: Loop strip mining uses ABS with min int
|
||||
- JDK-8330534: Update nsk/jdwp tests to use driver instead of othervm
|
||||
- JDK-8330598: java/net/httpclient/Http1ChunkedTest.java fails with java.util.MissingFormatArgumentException: Format specifier '%s'
|
||||
- JDK-8330936: [ubsan] exclude function BilinearInterp and ShapeSINextSpan in libawt java2d from ubsan checks
|
||||
- JDK-8331088: Incorrect TraceLoopPredicate output
|
||||
- JDK-8331735: UpcallLinker::on_exit races with GC when copying frame anchor
|
||||
- JDK-8332252: Clean up vmTestbase/vm/share
|
||||
- JDK-8332506: SIGFPE In ObjectSynchronizer::is_async_deflation_needed()
|
||||
- JDK-8332631: Update nsk.share.jpda.BindServer to don't use finalization
|
||||
- JDK-8332641: Update nsk.share.jpda.Jdb to don't use finalization
|
||||
- JDK-8332880: JFR GCHelper class recognizes "Archive" regions as valid
|
||||
- JDK-8332921: Ctrl+C does not call shutdown hooks after JLine upgrade
|
||||
- JDK-8333013: Update vmTestbase/nsk/share/LocalProcess.java to don't use finalization
|
||||
- JDK-8333117: Remove support of remote and manual debuggee launchers
|
||||
- JDK-8333680: com/sun/tools/attach/BasicTests.java fails with "SocketException: Permission denied: connect"
|
||||
- JDK-8333805: Replaying compilation with null static final fields results in a crash
|
||||
- JDK-8333890: Fatal error in auto-vectorizer with float16 kernel.
|
||||
- JDK-8334644: Automate javax/print/attribute/PageRangesException.java
|
||||
- JDK-8334780: Crash: assert(h_array_list.not_null()) failed: invariant
|
||||
- JDK-8334895: OpenJDK fails to configure on linux aarch64 when CDS is disabled after JDK-8331942
|
||||
- JDK-8335181: Incorrect handling of HTTP/2 GOAWAY frames in HttpClient
|
||||
- JDK-8335643: serviceability/dcmd/vm tests fail for ZGC after JDK-8322475
|
||||
- JDK-8335662: [AArch64] C1: guarantee(val < (1ULL << nbits)) failed: Field too big for insn
|
||||
- JDK-8335684: Test ThreadCpuTime.java should pause like ThreadCpuTimeArray.java
|
||||
- JDK-8335710: serviceability/dcmd/vm/SystemDumpMapTest.java and SystemMapTest.java fail on Linux Alpine after 8322475
|
||||
- JDK-8335836: serviceability/jvmti/StartPhase/AllowedFunctions/AllowedFunctions.java fails with unexpected exit code: 112
|
||||
- JDK-8335860: compiler/vectorization/TestFloat16VectorConvChain.java fails with non-standard AVX/SSE settings
|
||||
- JDK-8336042: Caller/callee param size mismatch in deoptimization causes crash
|
||||
- JDK-8336499: Failure when creating non-CRT RSA private keys in SunPKCS11
|
||||
- JDK-8336587: failure_handler lldb command times out on macosx-aarch64 core file
|
||||
- JDK-8336827: compiler/vectorization/TestFloat16VectorConvChain.java timeouts on ppc64 platforms after JDK-8335860
|
||||
- JDK-8337221: CompileFramework: test library to conveniently compile java and jasm sources for fuzzing
|
||||
- JDK-8337299: vmTestbase/nsk/jdb/stop_at/stop_at002/stop_at002.java failure goes undetected
|
||||
- JDK-8337681: PNGImageWriter uses much more memory than necessary
|
||||
- JDK-8337795: Type annotation attached to incorrect type during class reading
|
||||
- JDK-8337958: Out-of-bounds array access in secondary_super_cache
|
||||
- JDK-8337981: ShenandoahHeap::is_in should check for alive regions
|
||||
- JDK-8337998: CompletionFailure in getEnclosingType attaching type annotations
|
||||
- JDK-8338010: WB_IsFrameDeoptimized miss ResourceMark
|
||||
- JDK-8338064: Give better error for ConcurrentHashTable corruption
|
||||
- JDK-8338136: Hotspot should support multiple large page sizes on Windows
|
||||
- JDK-8338154: Fix -Wzero-as-null-pointer-constant warnings in gtest framework
|
||||
- JDK-8338202: Shenandoah: Improve handshake closure labels
|
||||
- JDK-8338314: JFR: Split JFRCheckpoint VM operation
|
||||
- JDK-8339148: Make os::Linux::active_processor_count() public
|
||||
- JDK-8339288: Improve diagnostic logging runtime/cds/DeterministicDump.java
|
||||
- JDK-8339300: CollectorPolicy.young_scaled_initial_ergo_vm gtest fails on ppc64 based platforms
|
||||
- JDK-8339538: Wrong timeout computations in DnsClient
|
||||
- JDK-8339639: Opensource few AWT PopupMenu tests
|
||||
- JDK-8339678: Update runtime/condy tests to be executed with VM flags
|
||||
- JDK-8339727: Open source several AWT focus tests - series 1
|
||||
- JDK-8339769: Incorrect error message during startup if working directory does not exist
|
||||
- JDK-8339794: Open source closed choice tests #1
|
||||
- JDK-8339810: Clean up the code in sun.tools.jar.Main to properly close resources and use ZipFile during extract
|
||||
- JDK-8339836: Open source several AWT Mouse tests - Batch 1
|
||||
- JDK-8339842: Open source several AWT focus tests - series 2
|
||||
- JDK-8339895: Open source several AWT focus tests - series 3
|
||||
- JDK-8339906: Open source several AWT focus tests - series 4
|
||||
- JDK-8339935: Open source several AWT focus tests - series 5
|
||||
- JDK-8339982: Open source several AWT Mouse tests - Batch 2
|
||||
- JDK-8339984: Open source AWT MenuItem related tests
|
||||
- JDK-8339995: Open source several AWT focus tests - series 6
|
||||
- JDK-8340024: In ClassReader, extract a constant for the superclass supertype_index
|
||||
- JDK-8340077: Open source few Checkbox tests - Set2
|
||||
- JDK-8340084: Open source AWT Frame related tests
|
||||
- JDK-8340143: Open source several Java2D rendering loop tests.
|
||||
- JDK-8340146: ZGC: TestAllocateHeapAt.java should not run with UseLargePages
|
||||
- JDK-8340164: Open source few Component tests - Set1
|
||||
- JDK-8340173: Open source some Component/Panel/EventQueue tests - Set2
|
||||
- JDK-8340176: Replace usage of -noclassgc with -Xnoclassgc in test/jdk/java/lang/management/MemoryMXBean/LowMemoryTest2.java
|
||||
- JDK-8340193: Open source several AWT Dialog tests - Batch 1
|
||||
- JDK-8340228: Open source couple more miscellaneous AWT tests
|
||||
- JDK-8340271: Open source several AWT Robot tests
|
||||
- JDK-8340279: Open source several AWT Dialog tests - Batch 2
|
||||
- JDK-8340332: Open source mixed AWT tests - Set3
|
||||
- JDK-8340366: Open source several AWT Dialog tests - Batch 3
|
||||
- JDK-8340367: Opensource few AWT image tests
|
||||
- JDK-8340393: Open source closed choice tests #2
|
||||
- JDK-8340407: Open source a few more Component related tests
|
||||
- JDK-8340417: Open source some MenuBar tests - Set1
|
||||
- JDK-8340432: Open source some MenuBar tests - Set2
|
||||
- JDK-8340433: Open source closed choice tests #3
|
||||
- JDK-8340437: Open source few more AWT Frame related tests
|
||||
- JDK-8340458: Open source additional Component tests (part 2)
|
||||
- JDK-8340555: Open source DnD tests - Set4
|
||||
- JDK-8340560: Open Source several AWT/2D font and rendering tests
|
||||
- JDK-8340605: Open source several AWT PopupMenu tests
|
||||
- JDK-8340621: Open source several AWT List tests
|
||||
- JDK-8340625: Open source additional Component tests (part 3)
|
||||
- JDK-8340639: Open source few more AWT List tests
|
||||
- JDK-8340713: Open source DnD tests - Set5
|
||||
- JDK-8340784: Remove PassFailJFrame constructor with screenshots
|
||||
- JDK-8340790: Open source several AWT Dialog tests - Batch 4
|
||||
- JDK-8340809: Open source few more AWT PopupMenu tests
|
||||
- JDK-8340874: Open source some of the AWT Geometry/Button tests
|
||||
- JDK-8340907: Open source closed frame tests # 2
|
||||
- JDK-8340966: Open source few Checkbox and Cursor tests - Set1
|
||||
- JDK-8340967: Open source few Cursor tests - Set2
|
||||
- JDK-8340978: Open source few DnD tests - Set6
|
||||
- JDK-8340985: Open source some Desktop related tests
|
||||
- JDK-8341000: Open source some of the AWT Window tests
|
||||
- JDK-8341004: Open source AWT FileDialog related tests
|
||||
- JDK-8341072: Open source several AWT Canvas and Rectangle related tests
|
||||
- JDK-8341128: open source some 2d graphics tests
|
||||
- JDK-8341148: Open source several Choice related tests
|
||||
- JDK-8341162: Open source some of the AWT window test
|
||||
- JDK-8341170: Open source several Choice related tests (part 2)
|
||||
- JDK-8341177: Opensource few List and a Window test
|
||||
- JDK-8341191: Open source few more AWT FileDialog tests
|
||||
- JDK-8341239: Open source closed frame tests # 3
|
||||
- JDK-8341257: Open source few DND tests - Set1
|
||||
- JDK-8341258: Open source few various AWT tests - Set1
|
||||
- JDK-8341278: Open source few TrayIcon tests - Set7
|
||||
- JDK-8341298: Open source more AWT window tests
|
||||
- JDK-8341373: Open source closed frame tests # 4
|
||||
- JDK-8341378: Open source few TrayIcon tests - Set8
|
||||
- JDK-8341447: Open source closed frame tests # 5
|
||||
- JDK-8341535: sun/awt/font/TestDevTransform.java fails with RuntimeException: Different rendering
|
||||
- JDK-8341637: java/net/Socket/UdpSocket.java fails with "java.net.BindException: Address already in use" (macos-aarch64)
|
||||
- JDK-8341779: [REDO BACKPORT] type annotations are not visible to javac plugins across compilation boundaries (JDK-8225377)
|
||||
- JDK-8341972: java/awt/dnd/DnDRemoveFocusOwnerCrashTest.java timed out after JDK-8341257
|
||||
- JDK-8342075: HttpClient: improve HTTP/2 flow control checks
|
||||
- JDK-8342376: More reliable OOM handling in ExceptionDuringDumpAtObjectsInitPhase test
|
||||
- JDK-8342524: Use latch in AbstractButton/bug6298940.java instead of delay
|
||||
- JDK-8342633: javax/management/security/HashedPasswordFileTest.java creates tmp file in src dir
|
||||
- JDK-8342958: Use jvmArgs consistently in microbenchmarks
|
||||
- JDK-8343019: Primitive caches must use boxed instances from the archive
|
||||
- JDK-8343037: Missing @since tag on JColorChooser.showDialog overload
|
||||
- JDK-8343103: Enable debug logging for vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java
|
||||
- JDK-8343124: Tests fails with java.lang.IllegalAccessException: class com.sun.javatest.regtest.agent.MainWrapper$MainTask cannot access
|
||||
- JDK-8343144: UpcallLinker::on_entry racingly clears pending exception with GC safepoints
|
||||
- JDK-8343170: java/awt/Cursor/JPanelCursorTest/JPanelCursorTest.java does not show the default cursor
|
||||
- JDK-8343224: print/Dialog/PaperSizeError.java fails with MediaSizeName is not A4: A4
|
||||
- JDK-8343342: java/io/File/GetXSpace.java fails on Windows with CD-ROM drive
|
||||
- JDK-8343345: Use -jvmArgsPrepend when running microbenchmarks in RunTests.gmk
|
||||
- JDK-8343529: serviceability/sa/ClhsdbWhere.java fails AssertionFailure: Corrupted constant pool
|
||||
- JDK-8343754: Problemlist jdk/jfr/event/oldobject/TestShenandoah.java after JDK-8279016
|
||||
- JDK-8343855: HTTP/2 ConnectionWindowUpdateSender may miss some unprocessed DataFrames from closed streams
|
||||
- JDK-8343891: Test javax/swing/JTabbedPane/TestJTabbedPaneBackgroundColor.java failed
|
||||
- JDK-8343936: Adjust timeout in test javax/management/monitor/DerivedGaugeMonitorTest.java
|
||||
- JDK-8344316: security/auth/callback/TextCallbackHandler/Password.java make runnable with JTReg and add the UI
|
||||
- JDK-8344346: java/net/httpclient/ShutdownNow.java fails with java.lang.AssertionError: client was still running, but exited after further delay: timeout should be adjusted
|
||||
- JDK-8344361: Restore null return for invalid services from legacy providers
|
||||
- JDK-8344414: ZGC: Another division by zero in rule_major_allocation_rate
|
||||
- JDK-8344925: translet-name ignored when package-name is also set
|
||||
- JDK-8345133: Test sun/security/tools/jarsigner/TsacertOptionTest.java failed: Warning found in stdout
|
||||
- JDK-8345134: Test sun/security/tools/jarsigner/ConciseJarsigner.java failed: unable to find valid certification path to requested target
|
||||
- JDK-8345146: [PPC64] Make intrinsic conversions between bit representations of half precision values and floats
|
||||
- JDK-8345341: Fix incorrect log message in JDI stop002t test
|
||||
- JDK-8345357: test/jdk/javax/swing/JRadioButton/8033699/bug8033699.java fails in ubuntu22.04
|
||||
- JDK-8345447: test/jdk/javax/swing/JToolBar/4529206/bug4529206.java fails in ubuntu22.04
|
||||
- JDK-8345547: test/jdk/javax/swing/text/DefaultEditorKit/4278839/bug4278839.java fails in ubuntu22.04
|
||||
- JDK-8345598: Upgrade NSS binaries for interop tests
|
||||
- JDK-8345625: Better HTTP connections
|
||||
- JDK-8345728: [Accessibility,macOS,Screen Magnifier]: JCheckbox unchecked state does not magnify but works for checked state
|
||||
- JDK-8345838: Remove the appcds/javaldr/AnonVmClassesDuringDump.java test
|
||||
- JDK-8346049: jdk/test/lib/security/timestamp/TsaServer.java warnings
|
||||
- JDK-8346082: Output JVMTI agent information in hserr files
|
||||
- JDK-8346264: "Total compile time" counter should include time spent in failing/bailout compiles
|
||||
- JDK-8346581: JRadioButton/ButtonGroupFocusTest.java fails in CI on Linux
|
||||
- JDK-8346888: [ubsan] block.cpp:1617:30: runtime error: 9.97582e+36 is outside the range of representable values of type 'int'
|
||||
- JDK-8347000: Bug in com/sun/net/httpserver/bugs/B6361557.java test
|
||||
- JDK-8347019: Test javax/swing/JRadioButton/8033699/bug8033699.java still fails: Focus is not on Radio Button Single as Expected
|
||||
- JDK-8347083: Incomplete logging in nsk/jvmti/ResourceExhausted/resexhausted00* tests
|
||||
- JDK-8347126: gc/stress/TestStressG1Uncommit.java gets OOM-killed
|
||||
- JDK-8347173: java/net/DatagramSocket/InterruptibleDatagramSocket.java fails with virtual thread factory
|
||||
- JDK-8347286: (fs) Remove some extensions from java/nio/file/Files/probeContentType/Basic.java
|
||||
- JDK-8347296: WinInstallerUiTest fails in local test runs if the path to test work directory is longer that regular
|
||||
- JDK-8347373: HTTP/2 flow control checks may count unprocessed data twice
|
||||
- JDK-8347506: Compatible OCSP readtimeout property with OCSP timeout
|
||||
- JDK-8347596: Update HSS/LMS public key encoding
|
||||
- JDK-8347629: Test FailOverDirectExecutionControlTest.java fails with -Xcomp
|
||||
- JDK-8347995: Race condition in jdk/java/net/httpclient/offline/FixedResponseHttpClient.java
|
||||
- JDK-8348107: test/jdk/java/net/httpclient/HttpsTunnelAuthTest.java fails intermittently
|
||||
- JDK-8348110: Update LCMS to 2.17
|
||||
- JDK-8348299: Update List/ItemEventTest/ItemEventTest.java
|
||||
- JDK-8348323: Corrupted timezone string in JVM crash log
|
||||
- JDK-8348596: Update FreeType to 2.13.3
|
||||
- JDK-8348597: Update HarfBuzz to 10.4.0
|
||||
- JDK-8348598: Update Libpng to 1.6.47
|
||||
- JDK-8348600: Update PipeWire to 1.3.81
|
||||
- JDK-8348865: JButton/bug4796987.java never runs because Windows XP is unavailable
|
||||
- JDK-8348936: [Accessibility,macOS,VoiceOver] VoiceOver doesn't announce untick on toggling the checkbox with "space" key on macOS
|
||||
- JDK-8348989: Better Glyph drawing
|
||||
- JDK-8349111: Enhance Swing supports
|
||||
- JDK-8349200: [JMH] time.format.ZonedDateTimeFormatterBenchmark fails
|
||||
- JDK-8349348: Refactor ClassLoaderDeadlock.sh and Deadlock.sh to run fully in java
|
||||
- JDK-8349358: [JMH] Cannot access class jdk.internal.vm.ContinuationScope
|
||||
- JDK-8349492: Update sun/security/pkcs12/KeytoolOpensslInteropTest.java to use a recent Openssl version
|
||||
- JDK-8349501: Relocate supporting classes in security/testlibrary to test/lib/jdk tree
|
||||
- JDK-8349594: Enhance TLS protocol support
|
||||
- JDK-8349623: [ASAN] Gtest os_linux.glibc_mallinfo_wrapper_vm fails
|
||||
- JDK-8349637: Integer.numberOfLeadingZeros outputs incorrectly in certain cases
|
||||
- JDK-8349751: AIX build failure after upgrade pipewire to 1.3.81
|
||||
- JDK-8350201: Out of bounds access on Linux aarch64 in os::print_register_info
|
||||
- JDK-8350211: CTW: Attempt to preload all classes in constant pool
|
||||
- JDK-8350224: Test javax/swing/JComboBox/TestComboBoxComponentRendering.java fails in ubuntu 23.x and later
|
||||
- JDK-8350260: Improve HTML instruction formatting in PassFailJFrame
|
||||
- JDK-8350313: Include timings for leaving safepoint in safepoint logging
|
||||
- JDK-8350383: Test: add more test case for string compare (UL case)
|
||||
- JDK-8350386: Test TestCodeCacheFull.java fails with option -XX:-UseCodeCacheFlushing
|
||||
- JDK-8350412: [21u] AArch64: Ambiguous frame layout leads to incorrect traces in JFR
|
||||
- JDK-8350483: AArch64: turn on signum intrinsics by default on Ampere CPUs
|
||||
- JDK-8350498: Remove two Camerfirma root CA certificates
|
||||
- JDK-8350546: Several java/net/InetAddress tests fails UnknownHostException
|
||||
- JDK-8350616: Skip ValidateHazardPtrsClosure in non-debug builds
|
||||
- JDK-8350650: Bump update version for OpenJDK: jdk-21.0.8
|
||||
- JDK-8350682: [JMH] vector.IndexInRangeBenchmark failed with IndexOutOfBoundsException for size=1024
|
||||
- JDK-8350786: Some java/lang jtreg tests miss requires vm.hasJFR
|
||||
- JDK-8350924: javax/swing/JMenu/4213634/bug4213634.java fails
|
||||
- JDK-8350991: Improve HTTP client header handling
|
||||
- JDK-8351086: (fc) Make java/nio/channels/FileChannel/BlockDeviceSize.java test manual
|
||||
- JDK-8351500: G1: NUMA migrations cause crashes in region allocation
|
||||
- JDK-8351665: Remove unused UseNUMA in os_aix.cpp
|
||||
- JDK-8351933: Inaccurate masking of TC subfield decrement in ForkJoinPool
|
||||
- JDK-8352076: [21u] Problem list tests that fail in 21 and would be fixed by 8309622
|
||||
- JDK-8352109: java/awt/Desktop/MailTest.java fails in platforms where Action.MAIL is not supported
|
||||
- JDK-8352302: Test sun/security/tools/jarsigner/TimestampCheck.java is failing
|
||||
- JDK-8352512: TestVectorZeroCount: counter not reset between iterations
|
||||
- JDK-8352676: Opensource JMenu tests - series1
|
||||
- JDK-8352680: Opensource few misc swing tests
|
||||
- JDK-8352684: Opensource JInternalFrame tests - series1
|
||||
- JDK-8352706: httpclient HeadTest does not run on HTTP2
|
||||
- JDK-8352716: (tz) Update Timezone Data to 2025b
|
||||
- JDK-8352908: Open source several swing tests batch1
|
||||
- JDK-8352942: jdk/jfr/startupargs/TestMemoryOptions.java fails with 32-bit build
|
||||
- JDK-8353070: Clean up and open source couple AWT Graphics related tests (Part 1)
|
||||
- JDK-8353138: Screen capture for test TaskbarPositionTest.java, failure case
|
||||
- JDK-8353190: Use "/native" Run Option for TestAvailableProcessors Execution
|
||||
- JDK-8353237: [AArch64] Incorrect result of VectorizedHashCode intrinsic on Cortex-A53
|
||||
- JDK-8353320: Open source more Swing text tests
|
||||
- JDK-8353446: Open source several AWT Menu tests - Batch 2
|
||||
- JDK-8353475: Open source two Swing DefaultCaret tests
|
||||
- JDK-8353685: Open some JComboBox bugs 4
|
||||
- JDK-8353709: Debug symbols bundle should contain full debug files when building --with-external-symbols-in-bundles=public
|
||||
- JDK-8353787: Increased number of SHA-384-Digest java.util.jar.Attributes$Name instances leading to higher memory footprint
|
||||
- JDK-8353942: Open source Swing Tests - Set 5
|
||||
- JDK-8354255: [jittester] Remove TempDir debug output
|
||||
- JDK-8354530: AIX: sporadic unexpected errno when calling setsockopt in Net.joinOrDrop
|
||||
- JDK-8354554: Open source several clipboard tests batch1
|
||||
- JDK-8354802: MAX_SECS definition is unused in os_linux
|
||||
- JDK-8354893: [REDO BACKPORT] javac crashes while adding type annotations to the return type of a constructor (JDK-8320001)
|
||||
- JDK-8355498: [AIX] Adapt code for C++ VLA rule
|
||||
- JDK-8356053: Test java/awt/Toolkit/Headless/HeadlessToolkit.java fails by timeout
|
||||
- JDK-8356096: ISO 4217 Amendment 179 Update
|
||||
- JDK-8356571: Re-enable -Wtype-limits for GCC in LCMS
|
||||
- JDK-8357105: C2: compilation fails with "assert(false) failed: empty program detected during loop optimization"
|
||||
- JDK-8357193: [VS 2022 17.14] Warning C5287 in debugInit.c: enum type mismatch during build
|
||||
- JDK-8359170: Add 2 TLS and 2 CS Sectigo roots
|
||||
- JDK-8360147: Better Glyph drawing redux
|
||||
- JDK-8360406: [21u] Disable logic for attaching type annotations to class files until 8359336 is fixed
|
||||
- JDK-8361672: [21u] Remove designator DEFAULT_PROMOTED_VERSION_PRE=ea for release 21.0.8
|
||||
|
||||
Notes on individual issues:
|
||||
===========================
|
||||
|
||||
tools/javac:
|
||||
|
||||
JDK-8341779: [REDO BACKPORT] type annotations are not visible to javac plugins across compilation boundaries (JDK-8225377)
|
||||
==========================================================================================================================
|
||||
The compiler in previous releases of OpenJDK 21 would only provide
|
||||
access to type annotations on types loaded from source code files. If
|
||||
the type was instead loaded from bytecode, then any type annotations
|
||||
would be absent.
|
||||
|
||||
With this release, `TypeMirror` now provides access to annotations for
|
||||
types loaded from bytecode. These type annotations can be obtained
|
||||
using `AnnotationMirror#getAnnotationMirrors` and will be included in
|
||||
the output of `AnnotationMirror#toString`.
|
||||
|
||||
Programs that rely on type annotations being absent from elements
|
||||
loaded from bytecode will need to be updated accordingly. Due to
|
||||
ongoing issues with this new feature (see JDK-8360406), it is not
|
||||
enabled by default and the option `-XDaddTypeAnnotationsToSymbol=true`
|
||||
must be specified in order for bytecode type annotations to be
|
||||
included.
|
||||
|
||||
core-libs/java.net:
|
||||
|
||||
JDK-8342075: HttpClient: improve HTTP/2 flow control checks
|
||||
===========================================================
|
||||
This release of OpenJDK 21 enhances the HTTP/2 client implementation
|
||||
in `java.net.http.HttpClient` to report flow control errors back to
|
||||
the server. While this should be transparent in most cases, it may
|
||||
lead to streams being reset or connections being closed if connecting
|
||||
to a HTTP/2 server that does not correctly handle these errors.
|
||||
|
||||
Flow control limits can be adjusted using the following existing
|
||||
properties:
|
||||
|
||||
* `jdk.httpclient.connectionWindowSize`
|
||||
- Specifies the HTTP/2 client connection window size in bytes.
|
||||
- Default value: `2^26`
|
||||
- Range: `2^16-1` to `2^31-1`.
|
||||
|
||||
* `jdk.httpclient.windowSize`
|
||||
- Specifies the HTTP/2 client stream window size in bytes.
|
||||
- Default value: `16777216` (16MB)
|
||||
- Range: `2^14` to `2^31-1`
|
||||
|
||||
Specifying an invalid value leads to the default value being used.
|
||||
The implementation guarantees that the actual value used for the
|
||||
connection window size will be no smaller than the stream window size.
|
||||
|
||||
hotspot/runtime:
|
||||
|
||||
JDK-8318636: Add jcmd to print annotated process memory map
|
||||
===========================================================
|
||||
Two new diagnostic commands have been added to `jcmd`, which print the
|
||||
virtual memory map of the JVM either to standard output or a file. If
|
||||
Native Memory Tracking (NMT) is enabled, NMT information about the
|
||||
virtual memory segments will be included.
|
||||
|
||||
The new commands are:
|
||||
|
||||
* `jcmd <pid> System.map` -- prints the virtual memory map of the JVM
|
||||
identified by `<pid>` to the standard output.
|
||||
|
||||
* `jcmd <pid> System.dump_map` -- prints the virtual memory map of the
|
||||
JVM identified by `<pid>` to a file `vm_memory_map_<pid>.txt` in the
|
||||
current directory.
|
||||
|
||||
security-libs/java.security:
|
||||
|
||||
JDK-8303770: Remove Baltimore root certificate expiring in May 2025
|
||||
===================================================================
|
||||
The following root certificate from Baltimore has been removed from
|
||||
the `cacerts` keystore:
|
||||
|
||||
Alias Name: baltimorecybertrustca [jdk]
|
||||
Distinguished Name: CN=Baltimore CyberTrust Root, OU=CyberTrust, O=Baltimore, C=IE
|
||||
|
||||
JDK-8347506: Compatible OCSP readtimeout property with OCSP timeout
|
||||
===================================================================
|
||||
The initial release of OpenJDK 21 introduced the
|
||||
`com.sun.security.ocsp.readtimeout` property, which was paired with
|
||||
the existing `com.sun.security.ocsp.timeout` to give greater control
|
||||
over the timeouts for OCSP connections and certificate retrieval. The
|
||||
existence of two separate properties allows the timeout for reading
|
||||
data to be set separately from the timeout for the transport layer.
|
||||
|
||||
When `com.sun.security.ocsp.readtimeout` was backported to OpenJDK
|
||||
17.0.15, the default value of `com.sun.security.ocsp.readtimeout` was
|
||||
changed from 15 seconds to the value of
|
||||
`com.sun.security.ocsp.timeout`, which itself has a default of 15
|
||||
seconds. This change is brought forward to OpenJDK 21 with this
|
||||
release.
|
||||
|
||||
If neither property is set, both will default to 15 seconds as in
|
||||
previous OpenJDK 21 releases. If only `com.sun.security.ocsp.timeout`
|
||||
is set, `com.sun.security.ocsp.readtimeout` will use the same value
|
||||
which retains the behaviour from before the
|
||||
`com.sun.security.ocsp.readtimeout` property was introduced.
|
||||
|
||||
JDK-8347596: Update HSS/LMS public key encoding
|
||||
===============================================
|
||||
The X.509 encoding format for HSS/LMS public keys has been updated to
|
||||
align with the latest standard outlined in RFC 9708 [0]. Notably, the
|
||||
OCTET_STRING wrapping around the public key value has been removed.
|
||||
For compatibility, the JDK will still detect the presence of DER
|
||||
encoding when reading keys encoded by earlier releases.
|
||||
|
||||
[0] https://www.rfc-editor.org/rfc/rfc9708.html#name-hss-lms-public-key-identifi
|
||||
|
||||
JDK-8350498: Remove two Camerfirma root CA certificates
|
||||
=======================================================
|
||||
The following expired root certificates from Camerfirma have been
|
||||
removed from the `cacerts` keystore:
|
||||
|
||||
Alias name: camerfirmachamberscommerceca [jdk]
|
||||
CN=Chambers of Commerce Root
|
||||
OU=http://www.chambersign.org
|
||||
O=AC Camerfirma SA CIF A82743287
|
||||
C=EU
|
||||
SHA256: 0C:25:8A:12:A5:67:4A:EF:25:F2:8B:A7:DC:FA:EC:EE:A3:48:E5:41:E6:F5:CC:4E:E6:3B:71:B3:61:60:6A:C3
|
||||
|
||||
Alias name: camerfirmachambersignca [jdk]
|
||||
CN=Global Chambersign Root - 2008
|
||||
O=AC Camerfirma S.A.
|
||||
SERIALNUMBER=A82743287
|
||||
L=Madrid (see current address at www.camerfirma.com/address)
|
||||
C=EU
|
||||
SHA256: 13:63:35:43:93:34:A7:69:80:16:A0:D3:24:DE:72:28:4E:07:9D:7B:52:20:BB:8F:BD:74:78:16:EE:BE:BA:CA
|
||||
|
||||
JDK-8359170: Add 2 TLS and 2 CS Sectigo roots
|
||||
=============================================
|
||||
The following root certificates have been added to the cacerts
|
||||
truststore:
|
||||
|
||||
Name: Sectigo Limited
|
||||
Alias Name: sectigocodesignroote46
|
||||
Distinguished Name: CN=Sectigo Public Code Signing Root E46, O=Sectigo Limited, C=GB
|
||||
|
||||
Name: Sectigo Limited
|
||||
Alias Name: sectigocodesignrootr46
|
||||
Distinguished Name: CN=Sectigo Public Code Signing Root R46, O=Sectigo Limited, C=GB
|
||||
|
||||
Name: Sectigo Limited
|
||||
Alias Name: sectigotlsroote46
|
||||
Distinguished Name: Sectigo Public Server Authentication Root E46, O=Sectigo Limited, C=GB
|
||||
|
||||
Name: Sectigo Limited
|
||||
Alias Name: sectigotlsrootr46
|
||||
Distinguished Name: Sectigo Public Server Authentication Root R46, O=Sectigo Limited, C=GB
|
||||
|
||||
New in release OpenJDK 21.0.7 (2025-04-15):
|
||||
===========================================
|
||||
Live versions of these release notes can be found at:
|
||||
@ -1604,8 +2137,6 @@ Name: GlobalSign
|
||||
Alias Name: globalsigne46
|
||||
Distinguished Name: CN=GlobalSign Root E46, O=GlobalSign nv-sa, C=BE
|
||||
|
||||
security-libs/javax.security:
|
||||
|
||||
JDK-8328638: Fallback Option For POST-only OCSP Requests
|
||||
========================================================
|
||||
JDK-8179503, introduced in OpenJDK 17, added support for using the
|
||||
@ -1645,8 +2176,6 @@ runtime search path to use down to the default of the linker. With
|
||||
this release, the option `--disable-new-dtags` is explicitly passed to
|
||||
the linker to avoid setting DT_RUNPATH.
|
||||
|
||||
tools/jpackage:
|
||||
|
||||
JDK-8295111: dpkg appears to have problems resolving symbolically linked native libraries
|
||||
=========================================================================================
|
||||
The jpackage tool uses `dpkg -S` to lookup which package provides a
|
@ -126,7 +126,7 @@
|
||||
# Set of architectures for which we build fastdebug builds
|
||||
%global fastdebug_arches x86_64 ppc64le aarch64
|
||||
# Set of architectures with a Just-In-Time (JIT) compiler
|
||||
%global jit_arches %{arm} %{aarch64} %{ix86} %{power64} s390x sparcv9 sparc64 x86_64
|
||||
%global jit_arches %{arm} %{aarch64} %{ix86} %{power64} s390x sparcv9 sparc64 x86_64 riscv64
|
||||
# Set of architectures which use the Zero assembler port (!jit_arches)
|
||||
%global zero_arches ppc s390
|
||||
# Set of architectures which run a full bootstrap cycle
|
||||
@ -136,15 +136,15 @@
|
||||
# Set of architectures with a Ahead-Of-Time (AOT) compiler
|
||||
%global aot_arches x86_64 %{aarch64}
|
||||
# Set of architectures which support the serviceability agent
|
||||
%global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64} %{arm}
|
||||
%global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64} %{arm} riscv64
|
||||
# Set of architectures which support class data sharing
|
||||
# As of JDK-8005165 in OpenJDK 10, class sharing is not arch-specific
|
||||
# However, it does segfault on the Zero assembler port, so currently JIT only
|
||||
%global share_arches %{jit_arches}
|
||||
# Set of architectures for which we build the Shenandoah garbage collector
|
||||
%global shenandoah_arches x86_64 %{aarch64}
|
||||
%global shenandoah_arches x86_64 %{aarch64} riscv64
|
||||
# Set of architectures for which we build the Z garbage collector
|
||||
%global zgc_arches x86_64
|
||||
%global zgc_arches x86_64 riscv64
|
||||
# Set of architectures for which alt-java has SSB mitigation
|
||||
%global ssbd_arches x86_64
|
||||
# Set of architectures for which java has short vector math library (libjsvml.so)
|
||||
@ -161,7 +161,7 @@
|
||||
# Set of architectures for which we have a devkit
|
||||
# Only used on RHEL
|
||||
%if 0%{?centos} == 0
|
||||
%global devkit_arches %{aarch64} %{ppc64le} s390x x86_64
|
||||
%global devkit_arches %{aarch64} %{ppc64le} riscv64 s390x x86_64
|
||||
%endif
|
||||
|
||||
# By default, we build a slowdebug build during main build on JIT architectures
|
||||
@ -300,6 +300,10 @@
|
||||
%global archinstall aarch64
|
||||
%global stapinstall arm64
|
||||
%endif
|
||||
%ifarch riscv64
|
||||
%global archinstall riscv64
|
||||
%global stapinstall %{_target_cpu}
|
||||
%endif
|
||||
# 32 bit sparc, optimized for v9
|
||||
%ifarch sparcv9
|
||||
%global archinstall sparc
|
||||
@ -325,7 +329,7 @@
|
||||
# New Version-String scheme-style defines
|
||||
%global featurever 21
|
||||
%global interimver 0
|
||||
%global updatever 7
|
||||
%global updatever 8
|
||||
%global patchver 0
|
||||
# buildjdkver is usually same as %%{featurever},
|
||||
# but in time of bootstrap of next jdk, it is featurever-1,
|
||||
@ -389,8 +393,8 @@
|
||||
%global origin_nice OpenJDK
|
||||
%global top_level_dir_name %{vcstag}
|
||||
%global top_level_dir_name_backup %{top_level_dir_name}-backup
|
||||
%global buildver 6
|
||||
%global rpmrelease 2
|
||||
%global buildver 9
|
||||
%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
|
||||
%if %is_system_jdk
|
||||
@ -540,7 +544,7 @@
|
||||
%if 0%{?centos} == 0
|
||||
ExclusiveArch: %{devkit_arches}
|
||||
%else
|
||||
ExclusiveArch: %{aarch64} %{ppc64le} s390x x86_64
|
||||
ExclusiveArch: %{aarch64} %{ppc64le} riscv64 s390x x86_64
|
||||
%endif
|
||||
|
||||
Name: java-%{javaver}-%{origin}-portable%{?pkgos:-%{pkgos}}
|
||||
@ -673,9 +677,7 @@ Patch1001: fips-%{featurever}u-%{fipsver}.patch
|
||||
#
|
||||
#############################################
|
||||
|
||||
# JDK-8351500: G1: NUMA migrations cause crashes in region allocation
|
||||
# Upstream in 21.0.8+1
|
||||
Patch2001: jdk8351500-numa_migration_crashes.patch
|
||||
# Currently empty
|
||||
|
||||
#############################################
|
||||
#
|
||||
@ -729,7 +731,7 @@ BuildRequires: zip
|
||||
BuildRequires: tar
|
||||
BuildRequires: unzip
|
||||
BuildRequires: javapackages-filesystem
|
||||
BuildRequires: java-%{featurever}-%{origin}%{?pkgos:-%{pkgos}}-devel
|
||||
BuildRequires: java-%{buildjdkver}-%{origin}%{?pkgos:-%{pkgos}}-devel
|
||||
# Zero-assembler build requirement
|
||||
%ifarch %{zero_arches}
|
||||
BuildRequires: libffi-devel
|
||||
@ -758,17 +760,17 @@ BuildRequires: libpng-devel
|
||||
BuildRequires: zlib-devel
|
||||
%else
|
||||
# Version in src/java.desktop/share/legal/freetype.md
|
||||
Provides: bundled(freetype) = 2.13.2
|
||||
Provides: bundled(freetype) = 2.13.3
|
||||
# Version in src/java.desktop/share/native/libsplashscreen/giflib/gif_lib.h
|
||||
Provides: bundled(giflib) = 5.2.2
|
||||
# Version in src/java.desktop/share/native/libharfbuzz/hb-version.h
|
||||
Provides: bundled(harfbuzz) = 8.2.2
|
||||
Provides: bundled(harfbuzz) = 10.4.0
|
||||
# Version in src/java.desktop/share/native/liblcms/lcms2.h
|
||||
Provides: bundled(lcms2) = 2.16.0
|
||||
Provides: bundled(lcms2) = 2.17.0
|
||||
# Version in src/java.desktop/share/native/libjavajpeg/jpeglib.h
|
||||
Provides: bundled(libjpeg) = 6b
|
||||
# Version in src/java.desktop/share/native/libsplashscreen/libpng/png.h
|
||||
Provides: bundled(libpng) = 1.6.43
|
||||
Provides: bundled(libpng) = 1.6.47
|
||||
# Version in src/java.base/share/native/libzip/zlib/zlib.h
|
||||
Provides: bundled(zlib) = 1.3.1
|
||||
# We link statically against libstdc++ to increase portability
|
||||
@ -988,8 +990,6 @@ sh %{SOURCE12} %{top_level_dir_name}
|
||||
pushd %{top_level_dir_name}
|
||||
# Add crypto policy and FIPS support
|
||||
%patch -P1001 -p1
|
||||
# Add early JDK-8351500
|
||||
%patch -P2001 -p1
|
||||
popd # openjdk
|
||||
|
||||
|
||||
@ -1152,6 +1152,11 @@ function buildjdk() {
|
||||
local top_dir_abs_src_path=$(pwd)/%{top_level_dir_name}
|
||||
local top_dir_abs_build_path=$(pwd)/${outputdir}
|
||||
|
||||
%ifarch s390x
|
||||
# devkit libstdc++.a fails with "error: relocation refers
|
||||
# to local symbol "" [9], which is defined in a discarded section
|
||||
libc_link_opt="dynamic";
|
||||
%else
|
||||
# This must be set using the global, so that the
|
||||
# static libraries still use a dynamic stdc++lib
|
||||
if [ "x%{link_type}" = "xbundled" ] ; then
|
||||
@ -1159,6 +1164,7 @@ function buildjdk() {
|
||||
else
|
||||
libc_link_opt="dynamic";
|
||||
fi
|
||||
%endif
|
||||
|
||||
echo "Using output directory: ${outputdir}";
|
||||
echo "Checking build JDK ${buildjdk} is operational..."
|
||||
@ -1939,6 +1945,63 @@ done
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Thu Jul 10 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.8.0.9-1.1
|
||||
- Update to jdk-21.0.8+9 (GA)
|
||||
- Update release notes to 21.0.8+9
|
||||
- Switch to GA mode
|
||||
- ** This tarball is embargoed until 2025-07-15 @ 1pm PT. **
|
||||
|
||||
* Thu Jul 10 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.8.0.8-0.1.ea
|
||||
- Update to jdk-21.0.8+8 (EA)
|
||||
- Update release notes to 21.0.8+8
|
||||
|
||||
* Wed Jul 09 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.8.0.2-0.1.ea
|
||||
- Update to jdk-21.0.8+2 (EA)
|
||||
- Update release notes to 21.0.8+2
|
||||
- Add timezone data update check to openjdk_news.sh
|
||||
- Add duplicate check to openjdk_news.sh
|
||||
- Exit if no fixes are obtained rather than try to run filters in openjdk_news.sh
|
||||
- Related: OPENJDK-3949
|
||||
|
||||
* Tue Jul 08 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.8.0.1-0.1.ea
|
||||
- Update get_bundle_versions.sh to match other scripts
|
||||
- * get_bundle_versions.sh: Add license
|
||||
- * get_bundle_versions.sh: Set compile-command in Emacs
|
||||
- * get_bundle_versions.sh: Use different error codes for different failures
|
||||
- * get_bundle_versions.sh: Remove unneeded '.' in JPEG version
|
||||
- * get_bundle_versions.sh: shellcheck: Double-quote variable references (SC2086)
|
||||
- * get_bundle_versions.sh: shellcheck: Drop use of cat and pass file to awk directly (SC2002)
|
||||
- Add OpenJDK 8u support to get_bundle_versions.sh
|
||||
- Print bundle updates and backouts at end of openjdk_news.sh output
|
||||
- Refer user to get_bundle_versions.sh when bundle updates are found by openjdk_news.sh
|
||||
- Resolves: OPENJDK-3949
|
||||
|
||||
* Tue Jul 08 2025 Antonio Vieiro <avieirov@redhat.com> - 1:21.0.8.0.1-0.1.ea
|
||||
- Add script to obtain bundled library versions from OpenJDK sources
|
||||
- Related: OPENJDK-3949
|
||||
|
||||
* Tue Jul 08 2025 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:21.0.8.0.1-0.1.ea
|
||||
- Warn about bundled provide version bumps and backouts in openjdk_news.sh
|
||||
- Related: OPENJDK-3949
|
||||
|
||||
* Tue Jul 08 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.8.0.1-0.1.ea
|
||||
- Update to jdk-21.0.8+1 (EA)
|
||||
- Update release notes to 21.0.8+1
|
||||
- Bump freetype version to 2.13.3 following JDK-8348596
|
||||
- Bump harfbuzz version to 10.4.0 following JDK-8348597
|
||||
- Bump lcms2 version to 2.17.0 following JDK-8348110
|
||||
- Bump libpng version to 1.6.47 following JDK-8348598
|
||||
- Switch to EA mode
|
||||
- Drop JDK-8351500 local patch which is now available in 21.0.8+1 upstream
|
||||
|
||||
* Fri Jul 04 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.7.0.6-3
|
||||
- Move riscv64 addition to ExclusiveArch to devkit_arches on RHEL
|
||||
- Related: OPENJDK-3850
|
||||
|
||||
* Tue May 20 2025 Kashyap Chamarthy <kchamart@redhat.com> - 1:21.0.7.0.6-3
|
||||
- Enable riscv64 arch; thanks: Songsong Zhang <U2FsdGVkX1@gmail.com>
|
||||
- Resolves: OPENJDK-3850
|
||||
|
||||
* Thu May 08 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.7.0.6-2
|
||||
- Add local version of JDK-8351500 for early interim release before 21.0.8
|
||||
- Resolves: OPENJDK-3679
|
||||
@ -2020,7 +2083,7 @@ done
|
||||
- Update release notes to 21.0.4+5
|
||||
- Move unstripped, misc and doc tarball handling into normal build / no suffix blocks
|
||||
- Limit Java only tests to one architecture using jdk_test_arch
|
||||
- Drop unneeded tzdata-java build dependency following f854bb3955fb57bba4e83d09813e9cfd0e81079e
|
||||
- Drop unneeded tzdata-java build dependency following 3e3cf8fa2df7bac2f6a60a0ddd596ec39228a3e1
|
||||
- Resolves: OPENJDK-3133
|
||||
- Resolves: OPENJDK-3237
|
||||
- Resolves: OPENJDK-3182
|
||||
@ -2039,7 +2102,6 @@ done
|
||||
- Update to jdk-21.0.3+9 (GA)
|
||||
- Update release notes to 21.0.3+9
|
||||
- Switch to GA mode.
|
||||
- Update buildjdkver to match the featurever
|
||||
- ** This tarball is embargoed until 2024-04-16 @ 1pm PT. **
|
||||
|
||||
* Thu Apr 04 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.3.0.7-0.1.ea
|
||||
@ -2134,10 +2196,6 @@ done
|
||||
- Update release notes to 21.0.2+13
|
||||
- Bump libpng version to 1.6.40 following JDK-8316030
|
||||
- Bump HarfBuzz version to 8.2.2 following JDK-8313643
|
||||
- pandoc is only available on RHEL/CentOS 8
|
||||
- Check for CentOS being defined to determine use of devkit
|
||||
- Set buildjdkver to 20 until OpenJDK 21 is available in the buildroot
|
||||
- Use featurever for JDK build dependencies
|
||||
|
||||
* Mon Mar 11 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.1.0.12-2
|
||||
- Use a devkit to build on architectures where we have one (s390x, aarch64, ppc64le, x86_64)
|
||||
@ -2147,7 +2205,6 @@ done
|
||||
- Use system gdb for both builds as devkit version fails (needs devkit libraries, then JDK segfaults with them)
|
||||
- Filter out annobin plugin when using the devkit
|
||||
- Drop static libstdc++ build dependency on devkit builds as it should come from the devkit
|
||||
- Disable devkit build on CentOS where it is unavailable
|
||||
- Introduce tar_opts to avoid repetition of lengthy tar creation options
|
||||
|
||||
* Thu Feb 08 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:21.0.1.0.12-2
|
||||
@ -2169,7 +2226,7 @@ done
|
||||
* Fri Oct 27 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.0.0.35-4
|
||||
- Rebuild jmods using the stripped binaries in release builds
|
||||
- Make sure the unstripped JDK is customised by the installjdk function
|
||||
- Resolves: OPENJDK-3224
|
||||
- Resolves: OPENJDK-1974
|
||||
|
||||
* Thu Oct 26 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.0.0.35-3
|
||||
- Re-enable SystemTap support and perform only substitutions possible without final NVR available
|
||||
@ -2181,7 +2238,6 @@ done
|
||||
* Thu Aug 24 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.0.0.35-2
|
||||
- Update documentation (README.md, add missing JEP to release notes)
|
||||
- Replace alt-java patch with a binary separate from the JDK
|
||||
- Adapt alt-java test to new binary where there is always a set_speculation function
|
||||
- Drop stale patches that are of little use any more:
|
||||
- * nss.cfg has been disabled since early PKCS11 work and long superseded by FIPS work
|
||||
- * No accessibility subpackage to warrant RH1648242 patch any more
|
||||
@ -2205,21 +2261,18 @@ done
|
||||
- Replace smoke test files used in the staticlibs test, as fdlibm was removed by JDK-8303798
|
||||
- Related: rhbz#2192749
|
||||
|
||||
* Wed Aug 16 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:20.0.2.0.9-1
|
||||
* Wed Aug 16 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:20.0.0.0.36-1
|
||||
- Update to jdk-20.0.2+9
|
||||
- Update release notes to 20.0.2+9
|
||||
- Update system crypto policy & FIPS patch from new fips-20u tree
|
||||
- Update generate_tarball.sh ICEDTEA_VERSION
|
||||
- Update CLDR reference data following update to 42 (Rocky Mountain-Normalzeit => Rocky-Mountain-Normalzeit)
|
||||
|
||||
* Wed Aug 16 2023 Jiri Vanek <jvanek@redhat.com> - 1:20.0.2.0.9-1
|
||||
* Wed Aug 16 2023 Jiri Vanek <jvanek@redhat.com> - 1:20.0.0.0.36-1
|
||||
- Dropped JDK-8295447, JDK-8296239 & JDK-8299439 patches now upstream
|
||||
- Adapted rh1750419-redhat_alt_java.patch
|
||||
|
||||
* Tue Aug 15 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:19.0.2.0.7-2
|
||||
- Bump rpmrelease to rebuild for CentOS 9
|
||||
|
||||
* Tue Aug 15 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:19.0.2.0.7-1
|
||||
* Tue Aug 15 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:19.0.1.0.10-1
|
||||
- Update to jdk-19.0.2 release
|
||||
- Update release notes to 19.0.2
|
||||
- Rebase FIPS patches from fips-19u branch
|
||||
@ -2228,9 +2281,6 @@ done
|
||||
- Add local patches for JDK-8296239 & JDK-8299439 (Croatia Euro update) which are present in 8u, 11u & 17u releases
|
||||
- Switch buildjdkver to java-21-openjdk
|
||||
|
||||
* Thu Aug 10 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:18.0.2.0.9-2
|
||||
- Bump rpmrelease to rebuild for CentOS 9
|
||||
|
||||
* Thu Aug 10 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:18.0.2.0.9-1
|
||||
- Update to jdk-18.0.2 release
|
||||
- Update release notes to actually reflect OpenJDK 18
|
||||
@ -2240,13 +2290,12 @@ done
|
||||
- Automatically turn off building a fresh HotSpot first, if the bootstrap JDK is not the same major version as that being built
|
||||
- Drop tzdata patches added for 17.0.7 which will eventually appear in the upstream tarball when we reach OpenJDK 21
|
||||
- Disable tzdata tests until we are on the latest JDK and things are back in sync
|
||||
- Related: rhbz#2192749
|
||||
|
||||
* Thu Aug 10 2023 Petra Alice Mikova <pmikova@redhat.com> - 1:18.0.0.0.37-1
|
||||
- Update to ea version of jdk18
|
||||
- Adjust rh1684077-openjdk_should_depend_on_pcsc-lite-libs_instead_of_pcsc-lite-devel.patch
|
||||
|
||||
* Mon May 15 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-3
|
||||
- Bump rpmrelease to rebuild for CentOS 9
|
||||
- Related: rhbz#2192749
|
||||
|
||||
* Mon May 15 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-2
|
||||
- Create java-21-openjdk-portable package based on java-17-openjdk-portable
|
1
SPECS/java-21-openjdk.spec
Symbolic link
1
SPECS/java-21-openjdk.spec
Symbolic link
@ -0,0 +1 @@
|
||||
../SOURCES/java-21-openjdk-portable.specfile
|
@ -1,7 +0,0 @@
|
||||
# recipients: java-qa
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-9
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
|
2893
java-21-openjdk.spec
2893
java-21-openjdk.spec
File diff suppressed because it is too large
Load Diff
@ -1,274 +0,0 @@
|
||||
commit c5c0ac6140ec5241d949bc66f54469bfa516c60c
|
||||
Author: Thomas Stuefe <stuefe@openjdk.org>
|
||||
Date: Thu Mar 27 17:37:44 2025 +0000
|
||||
|
||||
8351500: G1: NUMA migrations cause crashes in region allocation
|
||||
|
||||
Reviewed-by: sjohanss
|
||||
Backport-of: 37ec796255ae857588a5c7e0d572407dd81cbec9
|
||||
|
||||
diff --git a/src/hotspot/share/gc/g1/g1Allocator.cpp b/src/hotspot/share/gc/g1/g1Allocator.cpp
|
||||
index 5b33e24de75..23c7ee839d8 100644
|
||||
--- a/src/hotspot/share/gc/g1/g1Allocator.cpp
|
||||
+++ b/src/hotspot/share/gc/g1/g1Allocator.cpp
|
||||
@@ -212,10 +212,10 @@ size_t G1Allocator::used_in_alloc_regions() {
|
||||
|
||||
|
||||
HeapWord* G1Allocator::par_allocate_during_gc(G1HeapRegionAttr dest,
|
||||
- size_t word_size,
|
||||
- uint node_index) {
|
||||
+ uint node_index,
|
||||
+ size_t word_size) {
|
||||
size_t temp = 0;
|
||||
- HeapWord* result = par_allocate_during_gc(dest, word_size, word_size, &temp, node_index);
|
||||
+ HeapWord* result = par_allocate_during_gc(dest, node_index, word_size, word_size, &temp);
|
||||
assert(result == nullptr || temp == word_size,
|
||||
"Requested " SIZE_FORMAT " words, but got " SIZE_FORMAT " at " PTR_FORMAT,
|
||||
word_size, temp, p2i(result));
|
||||
@@ -223,13 +223,13 @@ HeapWord* G1Allocator::par_allocate_during_gc(G1HeapRegionAttr dest,
|
||||
}
|
||||
|
||||
HeapWord* G1Allocator::par_allocate_during_gc(G1HeapRegionAttr dest,
|
||||
+ uint node_index,
|
||||
size_t min_word_size,
|
||||
size_t desired_word_size,
|
||||
- size_t* actual_word_size,
|
||||
- uint node_index) {
|
||||
+ size_t* actual_word_size) {
|
||||
switch (dest.type()) {
|
||||
case G1HeapRegionAttr::Young:
|
||||
- return survivor_attempt_allocation(min_word_size, desired_word_size, actual_word_size, node_index);
|
||||
+ return survivor_attempt_allocation(node_index, min_word_size, desired_word_size, actual_word_size);
|
||||
case G1HeapRegionAttr::Old:
|
||||
return old_attempt_allocation(min_word_size, desired_word_size, actual_word_size);
|
||||
default:
|
||||
@@ -238,10 +238,10 @@ HeapWord* G1Allocator::par_allocate_during_gc(G1HeapRegionAttr dest,
|
||||
}
|
||||
}
|
||||
|
||||
-HeapWord* G1Allocator::survivor_attempt_allocation(size_t min_word_size,
|
||||
+HeapWord* G1Allocator::survivor_attempt_allocation(uint node_index,
|
||||
+ size_t min_word_size,
|
||||
size_t desired_word_size,
|
||||
- size_t* actual_word_size,
|
||||
- uint node_index) {
|
||||
+ size_t* actual_word_size) {
|
||||
assert(!_g1h->is_humongous(desired_word_size),
|
||||
"we should not be seeing humongous-size allocations in this path");
|
||||
|
||||
@@ -396,10 +396,10 @@ HeapWord* G1PLABAllocator::allocate_direct_or_new_plab(G1HeapRegionAttr dest,
|
||||
|
||||
size_t actual_plab_size = 0;
|
||||
HeapWord* buf = _allocator->par_allocate_during_gc(dest,
|
||||
+ node_index,
|
||||
required_in_plab,
|
||||
plab_word_size,
|
||||
- &actual_plab_size,
|
||||
- node_index);
|
||||
+ &actual_plab_size);
|
||||
|
||||
assert(buf == nullptr || ((actual_plab_size >= required_in_plab) && (actual_plab_size <= plab_word_size)),
|
||||
"Requested at minimum %zu, desired %zu words, but got %zu at " PTR_FORMAT,
|
||||
@@ -418,7 +418,7 @@ HeapWord* G1PLABAllocator::allocate_direct_or_new_plab(G1HeapRegionAttr dest,
|
||||
*plab_refill_failed = true;
|
||||
}
|
||||
// Try direct allocation.
|
||||
- HeapWord* result = _allocator->par_allocate_during_gc(dest, word_sz, node_index);
|
||||
+ HeapWord* result = _allocator->par_allocate_during_gc(dest, node_index, word_sz);
|
||||
if (result != nullptr) {
|
||||
plab_data->_direct_allocated += word_sz;
|
||||
plab_data->_num_direct_allocations++;
|
||||
diff --git a/src/hotspot/share/gc/g1/g1Allocator.hpp b/src/hotspot/share/gc/g1/g1Allocator.hpp
|
||||
index 32f37778a18..b2828d64d87 100644
|
||||
--- a/src/hotspot/share/gc/g1/g1Allocator.hpp
|
||||
+++ b/src/hotspot/share/gc/g1/g1Allocator.hpp
|
||||
@@ -78,19 +78,16 @@ class G1Allocator : public CHeapObj<mtGC> {
|
||||
inline OldGCAllocRegion* old_gc_alloc_region();
|
||||
|
||||
// Allocation attempt during GC for a survivor object / PLAB.
|
||||
- HeapWord* survivor_attempt_allocation(size_t min_word_size,
|
||||
+ HeapWord* survivor_attempt_allocation(uint node_index,
|
||||
+ size_t min_word_size,
|
||||
size_t desired_word_size,
|
||||
- size_t* actual_word_size,
|
||||
- uint node_index);
|
||||
+ size_t* actual_word_size);
|
||||
|
||||
// Allocation attempt during GC for an old object / PLAB.
|
||||
HeapWord* old_attempt_allocation(size_t min_word_size,
|
||||
size_t desired_word_size,
|
||||
size_t* actual_word_size);
|
||||
|
||||
- // Node index of current thread.
|
||||
- inline uint current_node_index() const;
|
||||
-
|
||||
public:
|
||||
G1Allocator(G1CollectedHeap* heap);
|
||||
~G1Allocator();
|
||||
@@ -110,18 +107,22 @@ class G1Allocator : public CHeapObj<mtGC> {
|
||||
void abandon_gc_alloc_regions();
|
||||
bool is_retained_old_region(HeapRegion* hr);
|
||||
|
||||
+ // Node index of current thread.
|
||||
+ inline uint current_node_index() const;
|
||||
+
|
||||
// Allocate blocks of memory during mutator time.
|
||||
|
||||
// Attempt allocation in the current alloc region.
|
||||
- inline HeapWord* attempt_allocation(size_t min_word_size,
|
||||
+ inline HeapWord* attempt_allocation(uint node_index,
|
||||
+ size_t min_word_size,
|
||||
size_t desired_word_size,
|
||||
size_t* actual_word_size);
|
||||
|
||||
// This is to be called when holding an appropriate lock. It first tries in the
|
||||
// current allocation region, and then attempts an allocation using a new region.
|
||||
- inline HeapWord* attempt_allocation_locked(size_t word_size);
|
||||
+ inline HeapWord* attempt_allocation_locked(uint node_index, size_t word_size);
|
||||
|
||||
- inline HeapWord* attempt_allocation_force(size_t word_size);
|
||||
+ inline HeapWord* attempt_allocation_force(uint node_index, size_t word_size);
|
||||
|
||||
size_t unsafe_max_tlab_alloc();
|
||||
size_t used_in_alloc_regions();
|
||||
@@ -131,14 +132,15 @@ class G1Allocator : public CHeapObj<mtGC> {
|
||||
// heap, and then allocate a block of the given size. The block
|
||||
// may not be a humongous - it must fit into a single heap region.
|
||||
HeapWord* par_allocate_during_gc(G1HeapRegionAttr dest,
|
||||
- size_t word_size,
|
||||
- uint node_index);
|
||||
+ uint node_index,
|
||||
+ size_t word_size
|
||||
+ );
|
||||
|
||||
HeapWord* par_allocate_during_gc(G1HeapRegionAttr dest,
|
||||
+ uint node_index,
|
||||
size_t min_word_size,
|
||||
size_t desired_word_size,
|
||||
- size_t* actual_word_size,
|
||||
- uint node_index);
|
||||
+ size_t* actual_word_size);
|
||||
};
|
||||
|
||||
// Manages the PLABs used during garbage collection. Interface for allocation from PLABs.
|
||||
diff --git a/src/hotspot/share/gc/g1/g1Allocator.inline.hpp b/src/hotspot/share/gc/g1/g1Allocator.inline.hpp
|
||||
index 13ae9b9bbbd..7e516b48faa 100644
|
||||
--- a/src/hotspot/share/gc/g1/g1Allocator.inline.hpp
|
||||
+++ b/src/hotspot/share/gc/g1/g1Allocator.inline.hpp
|
||||
@@ -49,11 +49,10 @@ inline OldGCAllocRegion* G1Allocator::old_gc_alloc_region() {
|
||||
return &_old_gc_alloc_region;
|
||||
}
|
||||
|
||||
-inline HeapWord* G1Allocator::attempt_allocation(size_t min_word_size,
|
||||
+inline HeapWord* G1Allocator::attempt_allocation(uint node_index,
|
||||
+ size_t min_word_size,
|
||||
size_t desired_word_size,
|
||||
size_t* actual_word_size) {
|
||||
- uint node_index = current_node_index();
|
||||
-
|
||||
HeapWord* result = mutator_alloc_region(node_index)->attempt_retained_allocation(min_word_size, desired_word_size, actual_word_size);
|
||||
if (result != nullptr) {
|
||||
return result;
|
||||
@@ -62,8 +61,7 @@ inline HeapWord* G1Allocator::attempt_allocation(size_t min_word_size,
|
||||
return mutator_alloc_region(node_index)->attempt_allocation(min_word_size, desired_word_size, actual_word_size);
|
||||
}
|
||||
|
||||
-inline HeapWord* G1Allocator::attempt_allocation_locked(size_t word_size) {
|
||||
- uint node_index = current_node_index();
|
||||
+inline HeapWord* G1Allocator::attempt_allocation_locked(uint node_index, size_t word_size) {
|
||||
HeapWord* result = mutator_alloc_region(node_index)->attempt_allocation_locked(word_size);
|
||||
|
||||
assert(result != nullptr || mutator_alloc_region(node_index)->get() == nullptr,
|
||||
@@ -71,8 +69,7 @@ inline HeapWord* G1Allocator::attempt_allocation_locked(size_t word_size) {
|
||||
return result;
|
||||
}
|
||||
|
||||
-inline HeapWord* G1Allocator::attempt_allocation_force(size_t word_size) {
|
||||
- uint node_index = current_node_index();
|
||||
+inline HeapWord* G1Allocator::attempt_allocation_force(uint node_index, size_t word_size) {
|
||||
return mutator_alloc_region(node_index)->attempt_allocation_force(word_size);
|
||||
}
|
||||
|
||||
diff --git a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp
|
||||
index 9b6b22a29e7..a43e45c4afa 100644
|
||||
--- a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp
|
||||
+++ b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp
|
||||
@@ -401,7 +401,7 @@ G1CollectedHeap::mem_allocate(size_t word_size,
|
||||
return attempt_allocation(word_size, word_size, &dummy);
|
||||
}
|
||||
|
||||
-HeapWord* G1CollectedHeap::attempt_allocation_slow(size_t word_size) {
|
||||
+HeapWord* G1CollectedHeap::attempt_allocation_slow(uint node_index, size_t word_size) {
|
||||
ResourceMark rm; // For retrieving the thread names in log messages.
|
||||
|
||||
// Make sure you read the note in attempt_allocation_humongous().
|
||||
@@ -427,7 +427,7 @@ HeapWord* G1CollectedHeap::attempt_allocation_slow(size_t word_size) {
|
||||
|
||||
// Now that we have the lock, we first retry the allocation in case another
|
||||
// thread changed the region while we were waiting to acquire the lock.
|
||||
- result = _allocator->attempt_allocation_locked(word_size);
|
||||
+ result = _allocator->attempt_allocation_locked(node_index, word_size);
|
||||
if (result != nullptr) {
|
||||
return result;
|
||||
}
|
||||
@@ -438,7 +438,7 @@ HeapWord* G1CollectedHeap::attempt_allocation_slow(size_t word_size) {
|
||||
if (GCLocker::is_active_and_needs_gc() && policy()->can_expand_young_list()) {
|
||||
// No need for an ergo message here, can_expand_young_list() does this when
|
||||
// it returns true.
|
||||
- result = _allocator->attempt_allocation_force(word_size);
|
||||
+ result = _allocator->attempt_allocation_force(node_index, word_size);
|
||||
if (result != nullptr) {
|
||||
return result;
|
||||
}
|
||||
@@ -495,7 +495,7 @@ HeapWord* G1CollectedHeap::attempt_allocation_slow(size_t word_size) {
|
||||
// follow-on attempt will be at the start of the next loop
|
||||
// iteration (after taking the Heap_lock).
|
||||
size_t dummy = 0;
|
||||
- result = _allocator->attempt_allocation(word_size, word_size, &dummy);
|
||||
+ result = _allocator->attempt_allocation(node_index, word_size, word_size, &dummy);
|
||||
if (result != nullptr) {
|
||||
return result;
|
||||
}
|
||||
@@ -636,11 +636,14 @@ inline HeapWord* G1CollectedHeap::attempt_allocation(size_t min_word_size,
|
||||
assert(!is_humongous(desired_word_size), "attempt_allocation() should not "
|
||||
"be called for humongous allocation requests");
|
||||
|
||||
- HeapWord* result = _allocator->attempt_allocation(min_word_size, desired_word_size, actual_word_size);
|
||||
+ // Fix NUMA node association for the duration of this allocation
|
||||
+ const uint node_index = _allocator->current_node_index();
|
||||
+
|
||||
+ HeapWord* result = _allocator->attempt_allocation(node_index, min_word_size, desired_word_size, actual_word_size);
|
||||
|
||||
if (result == nullptr) {
|
||||
*actual_word_size = desired_word_size;
|
||||
- result = attempt_allocation_slow(desired_word_size);
|
||||
+ result = attempt_allocation_slow(node_index, desired_word_size);
|
||||
}
|
||||
|
||||
assert_heap_not_locked();
|
||||
@@ -778,8 +781,11 @@ HeapWord* G1CollectedHeap::attempt_allocation_at_safepoint(size_t word_size,
|
||||
assert(!_allocator->has_mutator_alloc_region() || !expect_null_mutator_alloc_region,
|
||||
"the current alloc region was unexpectedly found to be non-null");
|
||||
|
||||
+ // Fix NUMA node association for the duration of this allocation
|
||||
+ const uint node_index = _allocator->current_node_index();
|
||||
+
|
||||
if (!is_humongous(word_size)) {
|
||||
- return _allocator->attempt_allocation_locked(word_size);
|
||||
+ return _allocator->attempt_allocation_locked(node_index, word_size);
|
||||
} else {
|
||||
HeapWord* result = humongous_obj_allocate(word_size);
|
||||
if (result != nullptr && policy()->need_to_start_conc_mark("STW humongous allocation")) {
|
||||
diff --git a/src/hotspot/share/gc/g1/g1CollectedHeap.hpp b/src/hotspot/share/gc/g1/g1CollectedHeap.hpp
|
||||
index 88f4f680800..6afaeb6e6d4 100644
|
||||
--- a/src/hotspot/share/gc/g1/g1CollectedHeap.hpp
|
||||
+++ b/src/hotspot/share/gc/g1/g1CollectedHeap.hpp
|
||||
@@ -453,7 +453,7 @@ class G1CollectedHeap : public CollectedHeap {
|
||||
// Second-level mutator allocation attempt: take the Heap_lock and
|
||||
// retry the allocation attempt, potentially scheduling a GC
|
||||
// pause. This should only be used for non-humongous allocations.
|
||||
- HeapWord* attempt_allocation_slow(size_t word_size);
|
||||
+ HeapWord* attempt_allocation_slow(uint node_index, size_t word_size);
|
||||
|
||||
// Takes the Heap_lock and attempts a humongous allocation. It can
|
||||
// potentially schedule a GC pause.
|
@ -1,3 +0,0 @@
|
||||
---
|
||||
inspections:
|
||||
javabytecode: off
|
@ -1,29 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2024 Red Hat, Inc.
|
||||
# Written by:
|
||||
# Andrew John Hughes <gnu.andrew@redhat.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program 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 Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Builds the RPM on CentOS 9 or 10
|
||||
|
||||
centpkg -v build
|
||||
|
||||
# Local Variables:
|
||||
# compile-command: "shellcheck build_centos.sh"
|
||||
# fill-column: 80
|
||||
# indent-tabs-mode: nil
|
||||
# sh-basic-offset: 4
|
||||
# End:
|
@ -1,29 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2024 Red Hat, Inc.
|
||||
# Written by:
|
||||
# Andrew John Hughes <gnu.andrew@redhat.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program 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 Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Builds the portable on CentOS
|
||||
|
||||
centpkg -v build --target java-openjdk-portable-build --rhel-target none
|
||||
|
||||
# Local Variables:
|
||||
# compile-command: "shellcheck build_centos_portable_build.sh"
|
||||
# fill-column: 80
|
||||
# indent-tabs-mode: nil
|
||||
# sh-basic-offset: 4
|
||||
# End:
|
@ -1,43 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2024 Red Hat, Inc.
|
||||
# Written by:
|
||||
# Andrew John Hughes <gnu.andrew@redhat.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program 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 Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Builds the RPM on RHEL 10
|
||||
|
||||
NVR=${1}
|
||||
USER=${2}
|
||||
|
||||
if test "${NVR}" = ""; then
|
||||
echo "${0} <NVR> <USER>";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
if test "${USER}" = ""; then
|
||||
echo "${0} <NVR> <USER>";
|
||||
exit 2;
|
||||
fi
|
||||
|
||||
METADATA="{\"osci\": {\"upstream_nvr\": \"${NVR}\", \"upstream_owner_name\": \"${USER}\"}, \"rhel-target\": \"latest\"}"
|
||||
rhpkg -v build --target=java-openjdk-rhel-10-build --custom-user-metadata "${METADATA}"
|
||||
|
||||
# Local Variables:
|
||||
# compile-command: "shellcheck build_rhel_10.sh"
|
||||
# fill-column: 80
|
||||
# indent-tabs-mode: nil
|
||||
# sh-basic-offset: 4
|
||||
# End:
|
@ -1,29 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2024 Red Hat, Inc.
|
||||
# Written by:
|
||||
# Andrew John Hughes <gnu.andrew@redhat.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program 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 Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Builds the portable on RHEL 7
|
||||
|
||||
rhpkg -v build --target=java-openjdk-rhel-7-build --skip-nvr-check
|
||||
|
||||
# Local Variables:
|
||||
# compile-command: "shellcheck build_rhel_7_portable_build.sh"
|
||||
# fill-column: 80
|
||||
# indent-tabs-mode: nil
|
||||
# sh-basic-offset: 4
|
||||
# End:
|
@ -1,43 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2024 Red Hat, Inc.
|
||||
# Written by:
|
||||
# Andrew John Hughes <gnu.andrew@redhat.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program 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 Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Builds the RPM on RHEL 8
|
||||
|
||||
NVR=${1}
|
||||
USER=${2}
|
||||
|
||||
if test "${NVR}" = ""; then
|
||||
echo "${0} <NVR> <USER>";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
if test "${USER}" = ""; then
|
||||
echo "${0} <NVR> <USER>";
|
||||
exit 2;
|
||||
fi
|
||||
|
||||
METADATA="{\"osci\": {\"upstream_nvr\": \"${NVR}\", \"upstream_owner_name\": \"${USER}\"}, \"rhel-target\": \"latest\"}"
|
||||
rhpkg -v build --target=java-openjdk-rhel-8-build --custom-user-metadata "${METADATA}"
|
||||
|
||||
# Local Variables:
|
||||
# compile-command: "shellcheck build_rhel_8.sh"
|
||||
# fill-column: 80
|
||||
# indent-tabs-mode: nil
|
||||
# sh-basic-offset: 4
|
||||
# End:
|
@ -1,43 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2024 Red Hat, Inc.
|
||||
# Written by:
|
||||
# Andrew John Hughes <gnu.andrew@redhat.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program 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 Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Builds the RPM on RHEL 9
|
||||
|
||||
NVR=${1}
|
||||
USER=${2}
|
||||
|
||||
if test "${NVR}" = ""; then
|
||||
echo "${0} <NVR> <USER>";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
if test "${USER}" = ""; then
|
||||
echo "${0} <NVR> <USER>";
|
||||
exit 2;
|
||||
fi
|
||||
|
||||
METADATA="{\"osci\": {\"upstream_nvr\": \"${NVR}\", \"upstream_owner_name\": \"${USER}\"}, \"rhel-target\": \"latest\"}"
|
||||
rhpkg -v build --target=java-openjdk-rhel-9-build --custom-user-metadata "${METADATA}"
|
||||
|
||||
# Local Variables:
|
||||
# compile-command: "shellcheck build_rhel_9.sh"
|
||||
# fill-column: 80
|
||||
# indent-tabs-mode: nil
|
||||
# sh-basic-offset: 4
|
||||
# End:
|
@ -1,29 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2024 Red Hat, Inc.
|
||||
# Written by:
|
||||
# Andrew John Hughes <gnu.andrew@redhat.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program 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 Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Builds the portable on RHEL 8
|
||||
|
||||
rhpkg -v build --target=java-openjdk-rhel-8-build --skip-nvr-check
|
||||
|
||||
# Local Variables:
|
||||
# compile-command: "shellcheck build_rhel_portable_build.sh"
|
||||
# fill-column: 80
|
||||
# indent-tabs-mode: nil
|
||||
# sh-basic-offset: 4
|
||||
# End:
|
@ -1,43 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2024 Red Hat, Inc.
|
||||
# Written by:
|
||||
# Andrew John Hughes <gnu.andrew@redhat.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program 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 Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Builds a scratch build of vanilla OpenJDK with no local patches
|
||||
|
||||
SEPARATE_ARCHES=${1}
|
||||
CMD="--target java-openjdk-rhel-8-build --skip-nvr-check --nowait";
|
||||
SUPPORTED_ARCHES="aarch64 ppc64le s390x x86_64";
|
||||
|
||||
if [ "x${SEPARATE_ARCHES}" = "x" ] ; then
|
||||
SEPARATE_ARCHES=0;
|
||||
fi
|
||||
|
||||
if [ ${SEPARATE_ARCHES} -eq 1 ] ; then
|
||||
for arch in ${SUPPORTED_ARCHES}; do \
|
||||
rhpkg -v build --arches ${arch} --scratch ${CMD} ; \
|
||||
done && brew watch-task --mine
|
||||
else
|
||||
rhpkg -v build ${CMD} && brew watch-task --mine
|
||||
fi
|
||||
|
||||
# Local Variables:
|
||||
# compile-command: "shellcheck build_vanilla.sh"
|
||||
# fill-column: 80
|
||||
# indent-tabs-mode: nil
|
||||
# sh-basic-offset: 4
|
||||
# End:
|
@ -1,61 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2024 Red Hat, Inc.
|
||||
# Written by Andrew John Hughes <gnu.andrew@redhat.com>.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program 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 Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
TREE=${1}
|
||||
|
||||
if test "${TREE}" = ""; then
|
||||
TREE=${PWD}
|
||||
fi
|
||||
|
||||
if [ -e "${TREE}"/nashorn/.hg ] || [ -e "${TREE}"/nashorn/merge.changeset ] ; then
|
||||
NASHORN="nashorn" ;
|
||||
fi
|
||||
|
||||
if [ -e "${TREE}"/corba/.hg ] || [ -e "${TREE}"/corba/merge.changeset ] ; then
|
||||
CORBA="corba";
|
||||
fi
|
||||
|
||||
if [ -e "${TREE}"/jaxp/.hg ] || [ -e "${TREE}"/jaxp/merge.changeset ] ; then
|
||||
JAXP="jaxp";
|
||||
fi
|
||||
|
||||
if [ -e "${TREE}"/jaxws/.hg ] || [ -e "${TREE}"/jaxws/merge.changeset ] ; then
|
||||
JAXWS="jaxws";
|
||||
fi
|
||||
|
||||
if [ -e "${TREE}"/langtools/.hg ] || [ -e "${TREE}"/langtools/merge.changeset ] ; then
|
||||
LANGTOOLS="langtools";
|
||||
fi
|
||||
|
||||
if [ -e "${TREE}"/jdk/.hg ] || [ -e "${TREE}"/jdk/merge.changeset ] ; then
|
||||
JDK="jdk";
|
||||
fi
|
||||
|
||||
if [ -e "${TREE}"/hotspot/.hg ] || [ -e "${TREE}"/hotspot/merge.changeset ] ; then
|
||||
HOTSPOT="hotspot";
|
||||
fi
|
||||
|
||||
SUBTREES="${CORBA} ${JAXP} ${JAXWS} ${LANGTOOLS} ${NASHORN} ${JDK} ${HOTSPOT}";
|
||||
echo "${SUBTREES}"
|
||||
|
||||
# Local Variables:
|
||||
# compile-command: "shellcheck discover_trees.sh"
|
||||
# fill-column: 80
|
||||
# indent-tabs-mode: nil
|
||||
# sh-basic-offset: 4
|
||||
# End:
|
@ -1,294 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright (C) 2024 Red Hat, Inc.
|
||||
# Written by:
|
||||
# Andrew John Hughes <gnu.andrew@redhat.com>
|
||||
# Thomas Fitzsimmons <fitzsim@redhat.com>
|
||||
# Jiri Vanek <jvanek@redhat.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program 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 Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Generates the source tarball for OpenJDK projects.
|
||||
#
|
||||
# There are multiple ways to specify the source code location and version:
|
||||
#
|
||||
# 1. Specify the version (VERSION), the location of the Git repository
|
||||
# (REPO_ROOT) and the root of the output tarball name (FILE_NAME_ROOT)
|
||||
# 2. Specify the version (VERSION) along with an upstream project name
|
||||
# (PROJECT_NAME) and repository name (REPO_NAME) that can be used
|
||||
# to construct the URL of the upstream OpenJDK repository.
|
||||
# 3. Specify OPENJDK_LATEST=1 and allow the script to obtain the JDK
|
||||
# feature version from the spec file, which is then used to
|
||||
# obtain the latest build promotion from the upstream repository.
|
||||
#
|
||||
# An appropriate bootstrap JDK is also required for when ./configure
|
||||
# is run within the checked out repository to generate the .src-rev.
|
||||
# file. This can be specified by setting BOOT_JDK.
|
||||
#
|
||||
# Example 1:
|
||||
# This will check out the specified version from the specified
|
||||
# repository and construct a tarball called openjdk-17.0.3+5.tar.xz:
|
||||
#
|
||||
# $ VERSION=jdk-17.0.3+5 FILE_NAME_ROOT=open${VERSION} \
|
||||
# REPO_ROOT=$HOME/projects/openjdk/upstream/17u \
|
||||
# BOOT_JDK=/usr/lib/jvm/java-17-openjdk ./generate_source_tarball.sh
|
||||
#
|
||||
# Example 2:
|
||||
# This will check out the same version as example 1, but from the
|
||||
# upstream repository:
|
||||
#
|
||||
# $ VERSION=jdk-17.0.3+5 PROJECT_NAME=openjdk REPO_NAME=jdk17u \
|
||||
# BOOT_JDK=/usr/lib/jvm/java-17-openjdk ./generate_source_tarball.sh
|
||||
#
|
||||
# Example 3:
|
||||
# This will read the OpenJDK feature version from the spec file, then create a
|
||||
# tarball from the most recent tag for that version in the upstream Git
|
||||
# repository.
|
||||
#
|
||||
# $ OPENJDK_LATEST=1 \
|
||||
# BOOT_JDK=/usr/lib/jvm/java-17-openjdk ./generate_source_tarball.sh
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
OPENJDK_URL_DEFAULT=https://github.com
|
||||
COMPRESSION_DEFAULT=xz
|
||||
|
||||
if [ "$1" = "help" ] ; then
|
||||
echo "Behaviour may be specified by setting the following variables:"
|
||||
echo
|
||||
echo "VERSION - the version of the specified OpenJDK project"
|
||||
echo " (required unless OPENJDK_LATEST is set)"
|
||||
echo "PROJECT_NAME - the name of the OpenJDK project being archived"
|
||||
echo " (needed to compute REPO_ROOT and/or"
|
||||
echo " FILE_NAME_ROOT automatically;"
|
||||
echo " optional if they are set explicitly)"
|
||||
echo "REPO_NAME - the name of the OpenJDK repository"
|
||||
echo " (needed to compute REPO_ROOT automatically;"
|
||||
echo " optional if REPO_ROOT is set explicitly)"
|
||||
echo "OPENJDK_URL - the URL to retrieve code from"
|
||||
echo " (defaults to ${OPENJDK_URL_DEFAULT})"
|
||||
echo "COMPRESSION - the compression type to use"
|
||||
echo " (defaults to ${COMPRESSION_DEFAULT})"
|
||||
echo "FILE_NAME_ROOT - name of the archive, minus extensions"
|
||||
echo " (defaults to PROJECT_NAME-VERSION)"
|
||||
echo "REPO_ROOT - the location of the Git repository to archive"
|
||||
echo " (defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME.git)"
|
||||
echo "TO_COMPRESS - what part of clone to pack"
|
||||
echo " (defaults to ${VERSION})"
|
||||
echo "BOOT_JDK - the bootstrap JDK to satisfy the configure run"
|
||||
echo " (defaults to packaged JDK version)"
|
||||
echo "WITH_TEMP - run in a temporary directory"
|
||||
echo " (defaults to disabled)"
|
||||
echo "OPENJDK_LATEST - deduce VERSION from most recent upstream tag"
|
||||
echo " (implies WITH_TEMP, computes everything else"
|
||||
echo " automatically; Note: accesses network to read"
|
||||
echo " tag list from remote Git repository)"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
if [ "$OPENJDK_LATEST" != "" ] ; then
|
||||
FEATURE_VERSION=$(echo '%featurever' \
|
||||
| rpmspec --shell ./*.spec 2>/dev/null \
|
||||
| grep --after-context 1 featurever \
|
||||
| tail --lines 1)
|
||||
PROJECT_NAME=openjdk
|
||||
REPO_NAME=jdk"${FEATURE_VERSION}"u
|
||||
# Skip -ga tags since those are the same as the most recent non-ga tag, and
|
||||
# the non-ga tag is the one that is used to generated the official source
|
||||
# tarball. For example:
|
||||
# ca760c86642aa2e0d9b571aaabac054c0239fbdc refs/tags/jdk-17.0.10-ga^{}
|
||||
# 25a2e6c20c9a96853714284cabc6b456eb095070 refs/tags/jdk-17.0.10-ga
|
||||
# ca760c86642aa2e0d9b571aaabac054c0239fbdc refs/tags/jdk-17.0.10+7^{}
|
||||
# e49c5749b10f3e90274b72e9279f794fdd191d27 refs/tags/jdk-17.0.10+7
|
||||
VERSION=$(git ls-remote --tags --refs --sort=-version:refname \
|
||||
"${OPENJDK_URL_DEFAULT}/${PROJECT_NAME}/${REPO_NAME}.git" \
|
||||
"jdk-${FEATURE_VERSION}*" \
|
||||
| grep --invert-match '\-ga$' \
|
||||
| head --lines 1 | cut --characters 52-)
|
||||
FILE_NAME_ROOT=open${VERSION}
|
||||
WITH_TEMP=1
|
||||
fi
|
||||
|
||||
if [ "$WITH_TEMP" != "" ] ; then
|
||||
pushd "$(mktemp --directory --tmpdir temp-generated-source-tarball-XXX)"
|
||||
fi
|
||||
|
||||
if [ "$VERSION" = "" ] ; then
|
||||
echo "No VERSION specified"
|
||||
exit 2
|
||||
fi
|
||||
echo "Version: ${VERSION}"
|
||||
|
||||
NUM_VER=${VERSION##jdk-}
|
||||
RELEASE_VER=${NUM_VER%%+*}
|
||||
BUILD_VER=${NUM_VER##*+}
|
||||
MAJOR_VER=${RELEASE_VER%%.*}
|
||||
echo "Major version is ${MAJOR_VER}, release ${RELEASE_VER}, build ${BUILD_VER}"
|
||||
|
||||
if [ "$BOOT_JDK" = "" ] ; then
|
||||
echo "No boot JDK specified".
|
||||
BOOT_JDK=/usr/lib/jvm/java-${MAJOR_VER}-openjdk;
|
||||
echo -n "Checking for ${BOOT_JDK}...";
|
||||
if [ -d "${BOOT_JDK}" ] && [ -x "${BOOT_JDK}"/bin/java ] ; then
|
||||
echo "Boot JDK found at ${BOOT_JDK}";
|
||||
else
|
||||
echo "Not found";
|
||||
PREV_VER=$((MAJOR_VER - 1));
|
||||
BOOT_JDK=/usr/lib/jvm/java-${PREV_VER}-openjdk;
|
||||
echo -n "Checking for ${BOOT_JDK}...";
|
||||
if [ -d ${BOOT_JDK} ] && [ -x ${BOOT_JDK}/bin/java ] ; then
|
||||
echo "Boot JDK found at ${BOOT_JDK}";
|
||||
else
|
||||
echo "Not found";
|
||||
exit 4;
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "Boot JDK: ${BOOT_JDK}";
|
||||
fi
|
||||
|
||||
if [ "$OPENJDK_URL" = "" ] ; then
|
||||
OPENJDK_URL=${OPENJDK_URL_DEFAULT}
|
||||
echo "No OpenJDK URL specified; defaulting to ${OPENJDK_URL}"
|
||||
else
|
||||
echo "OpenJDK URL: ${OPENJDK_URL}"
|
||||
fi
|
||||
|
||||
if [ "$COMPRESSION" = "" ] ; then
|
||||
# rhel 5 needs tar.gz
|
||||
COMPRESSION=${COMPRESSION_DEFAULT}
|
||||
fi
|
||||
echo "Creating a tar.${COMPRESSION} archive"
|
||||
|
||||
if [ "$FILE_NAME_ROOT" = "" ] ; then
|
||||
if [ "$PROJECT_NAME" = "" ] ; then
|
||||
echo "No PROJECT_NAME specified, needed by FILE_NAME_ROOT"
|
||||
exit 1
|
||||
fi
|
||||
FILE_NAME_ROOT=${PROJECT_NAME}-${VERSION}
|
||||
echo "No file name root specified; default to ${FILE_NAME_ROOT}"
|
||||
fi
|
||||
if [ "$REPO_ROOT" = "" ] ; then
|
||||
if [ "$PROJECT_NAME" = "" ] ; then
|
||||
echo "No PROJECT_NAME specified, needed by REPO_ROOT"
|
||||
exit 1
|
||||
fi
|
||||
if [ "$REPO_NAME" = "" ] ; then
|
||||
echo "No REPO_NAME specified, needed by REPO_ROOT"
|
||||
exit 3
|
||||
fi
|
||||
REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}.git"
|
||||
echo "No repository root specified; default to ${REPO_ROOT}"
|
||||
fi;
|
||||
|
||||
if [ "$TO_COMPRESS" = "" ] ; then
|
||||
TO_COMPRESS="${VERSION}"
|
||||
echo "No targets to be compressed specified ; default to ${TO_COMPRESS}"
|
||||
fi;
|
||||
|
||||
echo -e "Settings:"
|
||||
echo -e "\tVERSION: ${VERSION}"
|
||||
echo -e "\tPROJECT_NAME: ${PROJECT_NAME}"
|
||||
echo -e "\tREPO_NAME: ${REPO_NAME}"
|
||||
echo -e "\tOPENJDK_URL: ${OPENJDK_URL}"
|
||||
echo -e "\tCOMPRESSION: ${COMPRESSION}"
|
||||
echo -e "\tFILE_NAME_ROOT: ${FILE_NAME_ROOT}"
|
||||
echo -e "\tREPO_ROOT: ${REPO_ROOT}"
|
||||
echo -e "\tTO_COMPRESS: ${TO_COMPRESS}"
|
||||
echo -e "\tBOOT_JDK: ${BOOT_JDK}"
|
||||
echo -e "\tWITH_TEMP: ${WITH_TEMP}"
|
||||
echo -e "\tOPENJDK_LATEST: ${OPENJDK_LATEST}"
|
||||
|
||||
if [ -d "${FILE_NAME_ROOT}" ] ; then
|
||||
echo "Reusing existing ${FILE_NAME_ROOT}"
|
||||
STAT_TIME="$(stat --format=%Y "${FILE_NAME_ROOT}")"
|
||||
TAR_TIME="$(date --date=@"${STAT_TIME}" --iso-8601=seconds)"
|
||||
else
|
||||
mkdir "${FILE_NAME_ROOT}"
|
||||
pushd "${FILE_NAME_ROOT}"
|
||||
echo "Cloning ${VERSION} root repository from ${REPO_ROOT}"
|
||||
if realpath -q "${REPO_ROOT}"; then
|
||||
echo "Local path detected; not adding depth argument";
|
||||
DEPTH="--";
|
||||
else
|
||||
DEPTH="--depth=1";
|
||||
echo "Remote repository detected; adding ${DEPTH}";
|
||||
fi
|
||||
git clone -b "${VERSION}" "${DEPTH}" "${REPO_ROOT}" "${VERSION}"
|
||||
pushd "${VERSION}"
|
||||
TAR_TIME="$(git log --max-count 1 --format=%cI)"
|
||||
popd
|
||||
popd
|
||||
fi
|
||||
pushd "${FILE_NAME_ROOT}"
|
||||
# Generate .src-rev so build has knowledge of the revision the tarball was
|
||||
# created from
|
||||
mkdir build
|
||||
pushd build
|
||||
sh "${PWD}"/../"${VERSION}"/configure --with-boot-jdk="${BOOT_JDK}"
|
||||
make store-source-revision
|
||||
popd
|
||||
rm -rf build
|
||||
|
||||
# Remove commit checks
|
||||
echo "Removing $(find "${VERSION}" -name '.jcheck' -print)"
|
||||
find "${VERSION}" -name '.jcheck' -print0 | xargs -0 rm -r
|
||||
|
||||
# Remove history and GHA
|
||||
echo "find ${VERSION} -name '.hgtags'"
|
||||
find "${VERSION}" -name '.hgtags' -exec rm -v '{}' '+'
|
||||
echo "find ${VERSION} -name '.hgignore'"
|
||||
find "${VERSION}" -name '.hgignore' -exec rm -v '{}' '+'
|
||||
echo "find ${VERSION} -name '.gitattributes'"
|
||||
find "${VERSION}" -name '.gitattributes' -exec rm -v '{}' '+'
|
||||
echo "find ${VERSION} -name '.gitignore'"
|
||||
find "${VERSION}" -name '.gitignore' -exec rm -v '{}' '+'
|
||||
# Work around some Git objects not having write permissions.
|
||||
echo "chmod --recursive u+w ${VERSION}/.git"
|
||||
chmod --recursive u+w "${VERSION}"/.git
|
||||
echo "find ${VERSION} -name '.git'"
|
||||
find "${VERSION}" -name '.git' -exec rm -rv '{}' '+'
|
||||
echo "find ${VERSION} -name '.github'"
|
||||
find "${VERSION}" -name '.github' -exec rm -rv '{}' '+'
|
||||
|
||||
echo "Compressing remaining forest"
|
||||
if [ "$COMPRESSION" = "xz" ] ; then
|
||||
SWITCH=cJf
|
||||
else
|
||||
SWITCH=czf
|
||||
fi
|
||||
EA_PART="$(awk -F= \
|
||||
'/^DEFAULT_PROMOTED_VERSION_PRE/ { if ($2) print "-"$2 }' \
|
||||
"${VERSION}"/make/conf/version-numbers.conf)"
|
||||
TARBALL_NAME=${FILE_NAME_ROOT}${EA_PART}.tar.${COMPRESSION}
|
||||
XZ_OPT=${XZ_OPT-"-T0"} \
|
||||
tar --mtime="${TAR_TIME}" --owner=root --group=root --sort=name \
|
||||
--exclude-vcs -$SWITCH "${TARBALL_NAME}" "${TO_COMPRESS}"
|
||||
mv "${TARBALL_NAME}" ..
|
||||
popd
|
||||
if [ "$WITH_TEMP" != "" ] ; then
|
||||
echo "Tarball is: $(realpath .)/${TARBALL_NAME}"
|
||||
popd
|
||||
else
|
||||
echo -n "Done. You may want to remove the uncompressed version"
|
||||
echo " - $FILE_NAME_ROOT"
|
||||
fi
|
||||
|
||||
# Local Variables:
|
||||
# compile-command: "shellcheck generate_source_tarball.sh"
|
||||
# fill-column: 80
|
||||
# indent-tabs-mode: nil
|
||||
# sh-basic-offset: 4
|
||||
# End:
|
@ -1,198 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright (C) 2024 Red Hat, Inc.
|
||||
# Written by Andrew John Hughes <gnu.andrew@redhat.com>.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program 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 Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
ICEDTEA_USE_VCS=true
|
||||
|
||||
ICEDTEA_VERSION=3.15.0
|
||||
ICEDTEA_URL=https://icedtea.classpath.org/download/source
|
||||
ICEDTEA_SIGNING_KEY=CFDA0F9B35964222
|
||||
|
||||
ICEDTEA_HG_URL=https://icedtea.classpath.org/hg/icedtea11
|
||||
set -e
|
||||
|
||||
RPM_DIR=${PWD}
|
||||
if [ ! -f "${RPM_DIR}/jconsole.desktop.in" ] ; then
|
||||
echo "Not in RPM source tree.";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
if test "${TMPDIR}" = ""; then
|
||||
TMPDIR=/tmp;
|
||||
fi
|
||||
WORKDIR=${TMPDIR}/it.sync
|
||||
|
||||
echo "Using working directory ${WORKDIR}"
|
||||
mkdir "${WORKDIR}"
|
||||
pushd "${WORKDIR}"
|
||||
|
||||
if test "${WGET}" = ""; then
|
||||
WGET=$(which wget);
|
||||
if test "${WGET}" = ""; then
|
||||
echo "wget not found";
|
||||
exit 1;
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "${TAR}" = ""; then
|
||||
TAR=$(which tar)
|
||||
if test "${TAR}" = ""; then
|
||||
echo "tar not found";
|
||||
exit 2;
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Dependencies:";
|
||||
echo -e "\tWGET: ${WGET}";
|
||||
echo -e "\tTAR: ${TAR}\n";
|
||||
|
||||
if test "${ICEDTEA_USE_VCS}" = "true"; then
|
||||
echo "Mode: Using VCS";
|
||||
|
||||
if test "${GREP}" = ""; then
|
||||
GREP=$(which grep);
|
||||
if test "${GREP}" = ""; then
|
||||
echo "grep not found";
|
||||
exit 3;
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "${CUT}" = ""; then
|
||||
CUT=$(which cut);
|
||||
if test "${CUT}" = ""; then
|
||||
echo "cut not found";
|
||||
exit 4;
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "${TR}" = ""; then
|
||||
TR=$(which tr);
|
||||
if test "${TR}" = ""; then
|
||||
echo "tr not found";
|
||||
exit 5;
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "${HG}" = ""; then
|
||||
HG=$(which hg);
|
||||
if test "${HG}" = ""; then
|
||||
echo "hg not found";
|
||||
exit 6;
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Dependencies:";
|
||||
echo -e "\tGREP: ${GREP}";
|
||||
echo -e "\tCUT: ${CUT}";
|
||||
echo -e "\tTR: ${TR}";
|
||||
echo -e "\tHG: ${HG}";
|
||||
|
||||
echo "Checking out repository from VCS...";
|
||||
${HG} clone ${ICEDTEA_HG_URL} icedtea
|
||||
|
||||
echo "Obtaining version from configure.ac...";
|
||||
ROOT_VER=$(${GREP} '^AC_INIT' icedtea/configure.ac|${CUT} -d ',' -f 2|${TR} -d '[][:space:]')
|
||||
echo "Root version from configure: ${ROOT_VER}";
|
||||
|
||||
VCS_REV=$(${HG} log -R icedtea --template '{node|short}' -r tip)
|
||||
echo "VCS revision: ${VCS_REV}";
|
||||
|
||||
ICEDTEA_VERSION="${ROOT_VER}-${VCS_REV}"
|
||||
echo "Creating icedtea-${ICEDTEA_VERSION}";
|
||||
mkdir "icedtea-${ICEDTEA_VERSION}"
|
||||
echo "Copying required files from checkout to icedtea-${ICEDTEA_VERSION}";
|
||||
# Commented out for now as IcedTea 6's jconsole.desktop.in is outdated
|
||||
#cp -a icedtea/jconsole.desktop.in ../icedtea-${ICEDTEA_VERSION}
|
||||
cp -a "${RPM_DIR}/jconsole.desktop.in" "icedtea-${ICEDTEA_VERSION}"
|
||||
cp -a icedtea/tapset "icedtea-${ICEDTEA_VERSION}"
|
||||
|
||||
rm -rf icedtea
|
||||
else
|
||||
echo "Mode: Using tarball";
|
||||
|
||||
if test "${ICEDTEA_VERSION}" = ""; then
|
||||
echo "No IcedTea version specified for tarball download.";
|
||||
exit 3;
|
||||
fi
|
||||
|
||||
if test "${CHECKSUM}" = ""; then
|
||||
CHECKSUM=$(which sha256sum)
|
||||
if test "${CHECKSUM}" = ""; then
|
||||
echo "sha256sum not found";
|
||||
exit 4;
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "${PGP}" = ""; then
|
||||
PGP=$(which gpg)
|
||||
if test "${PGP}" = ""; then
|
||||
echo "gpg not found";
|
||||
exit 5;
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Dependencies:";
|
||||
echo -e "\tCHECKSUM: ${CHECKSUM}";
|
||||
echo -e "\tPGP: ${PGP}\n";
|
||||
|
||||
echo "Checking for IcedTea signing key ${ICEDTEA_SIGNING_KEY}...";
|
||||
if ! gpg --list-keys ${ICEDTEA_SIGNING_KEY}; then
|
||||
echo "IcedTea signing key ${ICEDTEA_SIGNING_KEY} not installed.";
|
||||
exit 6;
|
||||
fi
|
||||
|
||||
echo "Downloading IcedTea release tarball...";
|
||||
${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.tar.xz
|
||||
echo "Downloading IcedTea tarball signature...";
|
||||
${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.tar.xz.sig
|
||||
echo "Downloading IcedTea tarball checksums...";
|
||||
${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.sha256
|
||||
|
||||
echo "Verifying checksums...";
|
||||
${CHECKSUM} --check --ignore-missing icedtea-${ICEDTEA_VERSION}.sha256
|
||||
|
||||
echo "Checking signature...";
|
||||
${PGP} --verify icedtea-${ICEDTEA_VERSION}.tar.xz.sig
|
||||
|
||||
echo "Extracting files...";
|
||||
${TAR} xJf icedtea-${ICEDTEA_VERSION}.tar.xz \
|
||||
icedtea-${ICEDTEA_VERSION}/tapset \
|
||||
icedtea-${ICEDTEA_VERSION}/jconsole.desktop.in
|
||||
|
||||
rm -vf icedtea-${ICEDTEA_VERSION}.tar.xz
|
||||
rm -vf icedtea-${ICEDTEA_VERSION}.tar.xz.sig
|
||||
rm -vf icedtea-${ICEDTEA_VERSION}.sha256
|
||||
fi
|
||||
|
||||
echo "Replacing desktop files...";
|
||||
mv -v "icedtea-${ICEDTEA_VERSION}/jconsole.desktop.in" "${RPM_DIR}"
|
||||
|
||||
echo "Creating new tapset tarball...";
|
||||
mv -v "icedtea-${ICEDTEA_VERSION}" openjdk
|
||||
${TAR} cJf "${RPM_DIR}/tapsets-icedtea-${ICEDTEA_VERSION}.tar.xz" openjdk
|
||||
|
||||
rm -rvf openjdk
|
||||
|
||||
popd
|
||||
rm -rf "${WORKDIR}"
|
||||
|
||||
# Local Variables:
|
||||
# compile-command: "shellcheck icedtea_sync.sh"
|
||||
# fill-column: 80
|
||||
# indent-tabs-mode: nil
|
||||
# sh-basic-offset: 4
|
||||
# End:
|
@ -1,83 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright (C) 2024 Red Hat, Inc.
|
||||
# Written by Andrew John Hughes <gnu.andrew@redhat.com>, 2012-2022
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program 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 Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
OLD_RELEASE=$1
|
||||
NEW_RELEASE=$2
|
||||
REPO=$3
|
||||
SUBDIR=$4
|
||||
SCRIPT_DIR=$(dirname "${0}")
|
||||
|
||||
if test "${SUBDIR}" = ""; then
|
||||
echo "No subdirectory specified; using .";
|
||||
SUBDIR=".";
|
||||
fi
|
||||
|
||||
if test "$REPO" = ""; then
|
||||
echo "No repository specified; using ${PWD}"
|
||||
REPO=${PWD}
|
||||
fi
|
||||
|
||||
if test "${TMPDIR}" = ""; then
|
||||
TMPDIR=/tmp;
|
||||
fi
|
||||
|
||||
echo "Repository: ${REPO}"
|
||||
|
||||
if [ -e "${REPO}/.git" ] ; then
|
||||
TYPE=git;
|
||||
elif [ -e "${REPO}/.hg" ] ; then
|
||||
TYPE=hg;
|
||||
else
|
||||
echo "No Mercurial or Git repository detected.";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
if test "$OLD_RELEASE" = "" || test "$NEW_RELEASE" = ""; then
|
||||
echo "ERROR: Need to specify old and new release";
|
||||
exit 2;
|
||||
fi
|
||||
|
||||
echo "Listing fixes between $OLD_RELEASE and $NEW_RELEASE in $REPO"
|
||||
rm -f "${TMPDIR}/fixes2" "${TMPDIR}/fixes3" "${TMPDIR}/fixes"
|
||||
for repos in . $("${SCRIPT_DIR}/discover_trees.sh" "${REPO}");
|
||||
do
|
||||
if test "$TYPE" = "hg"; then
|
||||
hg log -r "tag('$NEW_RELEASE'):tag('$OLD_RELEASE') - tag('$OLD_RELEASE')" -R "$REPO/$repos" -G -M "${REPO}/${SUBDIR}" | \
|
||||
grep -E '^[o:| ]*summary'|grep -v 'Added tag'|sed -r 's#^[o:| ]*summary:\W*([0-9])# - JDK-\1#'| \
|
||||
sed 's#^[o:| ]*summary:\W*# - #' >> "${TMPDIR}/fixes2";
|
||||
hg log -v -r "tag('$NEW_RELEASE'):tag('$OLD_RELEASE') - tag('$OLD_RELEASE')" -R "$REPO/$repos" -G -M "${REPO}/${SUBDIR}" | \
|
||||
grep -E '^[o:| ]*[0-9]{7}'|sed -r 's#^[o:| ]*([0-9]{7})# - JDK-\1#' >> "${TMPDIR}/fixes3";
|
||||
else
|
||||
git -C "${REPO}" log --no-merges --pretty=format:%B "${NEW_RELEASE}...${OLD_RELEASE}" -- "${SUBDIR}" |grep -E '^[0-9]{7}' | \
|
||||
sed -r 's#^([0-9])# - JDK-\1#' >> "${TMPDIR}/fixes2";
|
||||
touch "${TMPDIR}/fixes3" ; # unused
|
||||
fi
|
||||
done
|
||||
|
||||
sort "${TMPDIR}/fixes2" "${TMPDIR}/fixes3" | uniq > "${TMPDIR}/fixes"
|
||||
rm -f "${TMPDIR}/fixes2" "${TMPDIR}/fixes3"
|
||||
|
||||
echo "In ${TMPDIR}/fixes:"
|
||||
cat "${TMPDIR}/fixes"
|
||||
|
||||
# Local Variables:
|
||||
# compile-command: "shellcheck openjdk_news.sh"
|
||||
# fill-column: 80
|
||||
# indent-tabs-mode: nil
|
||||
# sh-basic-offset: 4
|
||||
# End:
|
2
sources
2
sources
@ -1,2 +0,0 @@
|
||||
SHA512 (tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz) = 97d026212363b3c83f6a04100ad7f6fdde833d16579717f8756e2b8c2eb70e144a41a330cb9ccde9c3badd37a2d54fdf4650a950ec21d8b686d545ecb2a64d30
|
||||
SHA512 (openjdk-21.0.7+6.tar.xz) = 4ccbad22a7284fc8a38f78585dbc9e2b632c634f0a496d0f41bc5a0ec35ef1f2ca75b2aad135c299e9ebb04c8bd73b905f6c57ae041bd39d4474ecbda3656c97
|
@ -1,21 +0,0 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
roles:
|
||||
- role: standard-test-source
|
||||
tags:
|
||||
- always
|
||||
- role: standard-test-basic
|
||||
tags:
|
||||
- classic
|
||||
- atomic
|
||||
required_packages:
|
||||
- java-21-openjdk-devel
|
||||
tests:
|
||||
- javaVersion1:
|
||||
dir: ~
|
||||
run: set -ex; useradd franta1; su franta1 -c 'java -version';
|
||||
run: set -ex; useradd franta4; su franta4 -c 'javac -version';
|
||||
run: ls -l /usr/lib/jvm;
|
||||
- javaVersion2:
|
||||
dir: ~
|
||||
run: set -ex; useradd franta2; su franta2 -c 'java --version'
|
Loading…
Reference in New Issue
Block a user