Compare commits

..

839 Commits

Author SHA1 Message Date
Kim Barrett
998d0baab0 8324799: Use correct extension for C++ test headers
Reviewed-by: jwaters, gli, coleenp, lmesnik
2024-02-29 06:24:42 +00:00
David Holmes
0735c8ab26 8318302: ThreadCountLimit.java failed with "Native memory allocation (mprotect) failed to protect 16384 bytes for memory to guard stack pages"
Co-authored-by: Stefan Karlsson <stefank@openjdk.org>
Reviewed-by: shade, stefank
2024-02-29 05:28:32 +00:00
Magnus Ihse Bursie
5fa2bdc6c7 8326953: Race in creation of win-exports.def with static-libs
Reviewed-by: jwaters, erikj, dholmes
2024-02-28 22:48:17 +00:00
Hannes Wallnöfer
be2b92bd8b 8326694: Defer setting of autocapitalize attribute
Reviewed-by: jjg
2024-02-28 18:13:16 +00:00
Lance Andersen
38ad514589 8326687: Inconsistent use of "ZIP", "Zip" and "zip" in java.util.zip/jar zipfs javadoc
Reviewed-by: dfuchs, jpai, gli
2024-02-28 17:14:08 +00:00
Vladimir Kozlov
b938a5c9ed 8324969: C2: prevent elimination of unbalanced coarsened locking regions
Reviewed-by: epeter, vlivanov, dlong
2024-02-28 16:04:47 +00:00
Albert Mingkun Yang
a93605f7fb 8326763: Consolidate print methods in ContiguousSpace
Reviewed-by: stefank, gli
2024-02-28 15:14:43 +00:00
Alexey Ivanov
41242cbe5d 8325762: Use PassFailJFrame.Builder.splitUI() in PrintLatinCJKTest.java
Reviewed-by: honkar, dmarkov
2024-02-28 14:42:03 +00:00
Zhengyu Gu
5db50aca69 8326892: Remove unused PSAdaptiveSizePolicyResizeVirtualSpaceAlot develop flag
Reviewed-by: gli, tschatzl
2024-02-28 13:55:48 +00:00
Thomas Schatzl
eb4b6fa621 8326590: Improve description of MarkStackSize[Max] flags
Reviewed-by: iwalulya
2024-02-28 10:42:44 +00:00
Thomas Schatzl
e7e8083139 8326781: G1ConcurrentMark::top_at_rebuild_start() should take a HeapRegion* not an uint
Reviewed-by: iwalulya, ayang
2024-02-28 10:37:54 +00:00
Magnus Ihse Bursie
e6b3bda2c3 8326509: Clean up JNIEXPORT in Hotspot after JDK-8017234
Reviewed-by: djelinski, jwaters, dholmes
2024-02-28 10:31:18 +00:00
Kuai Wei
1ab6bd434f 8326135: Enhance adlc to report unused operands
Reviewed-by: kvn, vlivanov
2024-02-28 08:44:49 +00:00
Andrew Leonard
3b90ddfefe 8326685: Linux builds not reproducible if two builds configured in different build folders
Reviewed-by: ihse, erikj
2024-02-28 08:37:53 +00:00
Matthias Baesken
9b1f1e5294 8326389: [test] improve assertEquals failure output
Reviewed-by: clanger, jpai
2024-02-28 08:37:44 +00:00
Christian Hagedorn
6cad07c23b 8325746: Refactor Loop Unswitching code
Reviewed-by: epeter, kvn
2024-02-28 07:03:57 +00:00
Robert Toyonaga
4dd6c44cbd 8326529: JFR: Test for CompilerCompile events fails due to time out
Reviewed-by: egahlin
2024-02-28 00:50:31 +00:00
William Kemper
33f2382767 8325807: Shenandoah: Refactor full gc in preparation for generational mode changes
Reviewed-by: shade, ysr, kdnilsen
2024-02-27 23:06:17 +00:00
Weijun Wang
419191c653 8325680: Uninitialised memory in deleteGSSCB of GSSLibStub.c:179
Reviewed-by: valeriep, djelinski
2024-02-27 22:26:08 +00:00
SendaoYan
349df0a0e5 8326726: Problem list Exhaustiveness.java due to 8326616
Reviewed-by: jlahoda
2024-02-27 22:19:14 +00:00
Hamlin Li
552411f832 8326824: Test: remove redundant test in compiler/vectorapi/reshape/utils/TestCastMethods.java
Reviewed-by: kvn
2024-02-27 20:08:22 +00:00
Tobias Hartmann
9f0e7da64e 8326638: Crash in PhaseIdealLoop::remix_address_expressions due to unexpected Region instead of Loop
Reviewed-by: chagedorn, kvn
2024-02-27 16:58:22 +00:00
Jiangli Zhou
81b065a95d 8326714: Make file-local functions static in src/java.base/unix/native/libjava/childproc.c
Reviewed-by: djelinski, rriggs
2024-02-27 16:43:37 +00:00
Zhengyu Gu
4fcae1aef5 8326722: Cleanup unnecessary forward declaration in collectedHeap.hpp
Reviewed-by: tschatzl
2024-02-27 15:09:56 +00:00
Markus Grönlund
c5c866aafe 8326219: applications/kitchensink/Kitchensink8H.java timed out
Reviewed-by: egahlin
2024-02-27 11:41:23 +00:00
Magnus Ihse Bursie
ac3ce2aa15 8326583: Remove over-generalized DefineNativeToolchain solution
Reviewed-by: erikj
2024-02-27 11:14:11 +00:00
Magnus Ihse Bursie
bceaed6d4d 8326406: Remove mapfile support from makefiles
Reviewed-by: jwaters, erikj
2024-02-27 10:54:49 +00:00
Taizo Kurashige
16d917a85f 8313710: jcmd: typo in the documentation of JFR.start and JFR.dump
Reviewed-by: dholmes, egahlin
2024-02-27 10:39:48 +00:00
Viktor Klang
60cbf29250 8325754: Dead AbstractQueuedSynchronizer$ConditionNodes survive minor garbage collections
Reviewed-by: alanb
2024-02-27 10:38:36 +00:00
Magnus Ihse Bursie
da14aa463b 8017234: Hotspot should stop using mapfiles
Reviewed-by: djelinski, erikj, dholmes
2024-02-27 10:26:55 +00:00
Kim Barrett
d482c1af28 8326524: Rename agent_common.h
Reviewed-by: coleenp, sspitsyn, jwaters, dlong, lmesnik
2024-02-27 10:26:42 +00:00
Suchismith Roy
e85355ada4 8320005: Allow loading of shared objects with .a extension on AIX
Reviewed-by: amitkumar, stuefe, jkern, mdoerr
2024-02-27 09:15:40 +00:00
Albert Mingkun Yang
5d3d40d962 8326659: Serial: Remove redundant TenuredSpace::print_on
Reviewed-by: tschatzl
2024-02-27 09:12:20 +00:00
Afshin Zafari
7583419d88 8324828: Avoid multiple search of reserved regions during splitting
Reviewed-by: stuefe, jsjolen
2024-02-27 08:59:10 +00:00
Lei Zaakjyu
c5f1dcccfc 8325082: Rename headers named 'heapRegion*' of G1
Reviewed-by: stefank, tschatzl
2024-02-27 08:58:52 +00:00
Denghui Dong
4d82ea102a 8325144: C1: Optimize CriticalEdgeFinder
Reviewed-by: dlong, chagedorn
2024-02-27 08:28:49 +00:00
Hamlin Li
a48f5966be 8322179: RISC-V: Implement SHA-1 intrinsic
Reviewed-by: tonyp, fyang
2024-02-27 08:17:33 +00:00
SendaoYan
5daf63b717 8326636: Problem list StartupOutput.java due to 8326615
Reviewed-by: kvn, thartmann
2024-02-27 08:14:38 +00:00
Dan Lutker
97aca09e58 8326717: Disable stringop-overflow in shenandoahLock.cpp
Reviewed-by: erikj, shade
2024-02-27 07:34:10 +00:00
Daniel Jeliński
ec9437dbcc 8325247: Memory leak in SessionKeyRef class def when using PKCS11 security provider
Reviewed-by: valeriep
2024-02-27 07:06:35 +00:00
Jiangli Zhou
0901dedefe 8326433: Make file-local functions static in src/jdk.jdwp.agent/unix/native/libjdwp/exec_md.c
Reviewed-by: cjplummer, sspitsyn
2024-02-27 01:34:19 +00:00
Justin Lu
d22d890cac 8325898: ChoiceFormat returns erroneous result when formatting bad pattern
Reviewed-by: naoto
2024-02-26 23:43:52 +00:00
Patricio Chilano Mateo
93feda3d9a 8322962: Upcall stub might go undetected when freezing frames
Reviewed-by: jvernee, alanb, mdoerr, fyang, dlong
2024-02-26 23:29:18 +00:00
Alex Menkov
fc67c2b4f1 8325530: Vague error message when com.sun.tools.attach.VirtualMachine fails to load agent library
Reviewed-by: sspitsyn, cjplummer
2024-02-26 23:18:49 +00:00
Weijun Wang
b87d9cf2c9 8325506: Ensure randomness is only read from provided SecureRandom object
Reviewed-by: kdriver, valeriep
2024-02-26 21:52:40 +00:00
Anthony Scarpino
0963a4e9a1 8326699: Problemlist CertMsgCheck.java
Reviewed-by: rhalade
2024-02-26 21:00:07 +00:00
sunyaqi
bf13a4e281 8322881: java/nio/file/Files/CopyMoveVariations.java fails with AccessDeniedException due to permissions of files in /tmp
Reviewed-by: bpb
2024-02-26 20:47:59 +00:00
Anthony Scarpino
f62b5789ad 8311644: Server should not send bad_certificate alert when the client does not send any certificates
Reviewed-by: djelinski, jjiang, ssahoo
2024-02-26 16:49:01 +00:00
Claes Redestad
9a9cfbe0ba 8325340: Add ASCII fast-path to Data-/ObjectInputStream.readUTF
Reviewed-by: rgiulietti, bpb, rriggs
2024-02-26 16:05:18 +00:00
Magnus Ihse Bursie
3780ad3133 8326587: Separate out Microsoft toolchain linking
Reviewed-by: erikj
2024-02-26 15:43:47 +00:00
Albert Mingkun Yang
2d3c9c5e67 8325553: Parallel: Use per-marker cache for marking stats during Full GC
Reviewed-by: sjohanss, tschatzl
2024-02-26 15:34:10 +00:00
Lance Andersen
20c71ceacd 8321156: Improve the handling of invalid UTF-8 byte sequences for ZipInputStream::getNextEntry and ZipFile::getComment
Reviewed-by: jpai, alanb
2024-02-26 15:31:55 +00:00
Claes Redestad
c042f08632 8326653: Remove jdk.internal.reflect.UTF8
Reviewed-by: rriggs, alanb
2024-02-26 15:30:21 +00:00
Eirik Bjørsnøs
bb6b04897b 8326099: GZIPOutputStream should use Deflater.getBytesRead() instead of Deflater.getTotalIn()
Reviewed-by: jpai
2024-02-26 14:15:24 +00:00
Emanuel Peter
490825fb91 8325589: C2 SuperWord refactoring: create VLoopAnalyzer with Submodules
Reviewed-by: kvn, chagedorn
2024-02-26 13:02:04 +00:00
Chen Liang
3a00fc732a 8323698: Class use page does not include extends/implements type arguments
Reviewed-by: prappo, hannesw
2024-02-26 12:10:58 +00:00
Albert Mingkun Yang
f32f574004 8326575: Remove unused ContiguousSpace::set_top_for_allocations
Reviewed-by: tschatzl, sjohanss
2024-02-26 09:36:48 +00:00
Thomas Schatzl
09f755a64d 8325857: G1 Full GC flushes mark stats cache too early
Reviewed-by: iwalulya, ayang
2024-02-26 07:28:37 +00:00
Korov
1799ffeaa9 8310351: Typo in ImmutableCollections
Reviewed-by: jlaskey, jpai
2024-02-25 11:52:19 +00:00
Leonid Mesnik
d10f277bd3 8326006: Allow TEST_VM_FLAGLESS to set flagless mode
Reviewed-by: tschatzl, ayang
2024-02-23 19:58:38 +00:00
Joe Darcy
63f6a563a3 8326530: Widen allowable error bound of Math.tan
Reviewed-by: bpb, rgiulietti
2024-02-23 18:03:02 +00:00
Magnus Ihse Bursie
27574b384c 8326585: COMPARE_BUILD=PATCH fails if patch -R fails
Reviewed-by: erikj
2024-02-23 17:31:13 +00:00
Weijun Wang
c26c5833cc 8311003: missing @since info in jdk.security.jgss
Reviewed-by: mullan
2024-02-23 16:10:44 +00:00
Martin Doerr
09a78b5da9 8326378: [PPC64] CodeEntryAlignment too large
Reviewed-by: shade, lucy
2024-02-23 13:52:10 +00:00
Albert Mingkun Yang
ef2d5c40c0 8326065: Merge Space into ContiguousSpace
Reviewed-by: cjplummer, sjohanss
2024-02-23 11:47:29 +00:00
Ivan Walulya
11fdca0634 8325202: gc/g1/TestMarkStackOverflow.java intermittently crash: G1CMMarkStack::ChunkAllocator::allocate_new_chunk
Reviewed-by: tschatzl, ayang
2024-02-23 10:48:50 +00:00
Roland Westrelin
5d414da504 8325372: Shenandoah: SIGSEGV crash in unnecessary_acquire due to LoadStore split through phi
Reviewed-by: shade, rkennke, thartmann
2024-02-23 10:09:06 +00:00
Jan Lahoda
93a2e773a5 8326129: Java Record Pattern Match leads to infinite loop
Reviewed-by: vromero
2024-02-23 10:08:56 +00:00
Roman Kennke
336bbbe389 8139457: Relax alignment of array elements
Co-authored-by: Fei Yang <fyang@openjdk.org>
Co-authored-by: Thomas Stuefe <stuefe@openjdk.org>
Reviewed-by: stuefe, stefank, shade, coleenp, kdnilsen, aboldtch
2024-02-23 10:05:25 +00:00
Jan Lahoda
cb809f8e04 8325215: Incorrect not exhaustive switch error
Reviewed-by: vromero
2024-02-23 08:56:14 +00:00
Erik Gahlin
c4409eafc4 8325994: JFR: Examples in JFR.start help use incorrect separator
Reviewed-by: mikael
2024-02-23 02:02:35 +00:00
Jaikiran Pai
54f09d7345 8278527: java/util/concurrent/tck/JSR166TestCase.java fails nanoTime test
Reviewed-by: martin, lancea
2024-02-23 00:53:19 +00:00
Justin Lu
00ffc42cef 8318761: MessageFormat pattern support for CompactNumberFormat, ListFormat, and DateTimeFormatter
Reviewed-by: naoto, rriggs
2024-02-22 22:27:12 +00:00
Thomas Stuefe
d695af89f6 8326376: java -version failed with CONF=fastdebug -XX:InitialCodeCacheSize=1024K -XX:ReservedCodeCacheSize=1200k
Reviewed-by: kvn, jwaters
2024-02-22 17:45:34 +00:00
Stefan Karlsson
9f9a732c38 8325752: Remove badMetaWordVal
Reviewed-by: coleenp, tschatzl
2024-02-22 16:02:26 +00:00
Stefan Karlsson
864cf22241 8325742: Remove MetaWord usage from MemRegion
Reviewed-by: coleenp, tschatzl
2024-02-22 15:58:41 +00:00
Erik Gahlin
8e5c0ee402 8324832: JFR: Improve sorting of 'jfr summary'
Reviewed-by: mgronlun
2024-02-22 15:29:05 +00:00
Renjith Kannath Pariyangad
724a2a2c4a 8321192: j.a.PrintJob/ImageTest/ImageTest.java: Fail or skip the test if there's no printer
Reviewed-by: aivanov, tr
2024-02-22 14:05:02 +00:00
Fredrik Bredberg
f365d807e5 8325153: SEGV in stackChunkOopDesc::derelativize_address(int)
Reviewed-by: stefank, coleenp
2024-02-22 13:07:32 +00:00
Roland Westrelin
4406915ebc 8323274: C2: array load may float above range check
Reviewed-by: epeter, thartmann
2024-02-22 11:07:13 +00:00
SendaoYan
cc1e216eb9 8326461: tools/jlink/CheckExecutable.java fails as .debuginfo files are not executable
Reviewed-by: shade, alanb
2024-02-22 09:59:37 +00:00
Axel Boldt-Christmas
10eafdc62e 8325870: Zap end padding bits for ArrayOops in non-release builds
Reviewed-by: stefank, ayang
2024-02-22 09:14:20 +00:00
Albert Mingkun Yang
0f4cd8f1c0 8326414: Serial: Inline SerialHeap::create_rem_set
Reviewed-by: kbarrett
2024-02-22 07:57:31 +00:00
Laurent Bourgès
8b30503387 8323695: RenderPerf (2D) enhancements (23.12)
Reviewed-by: avu, prr
2024-02-22 07:57:21 +00:00
Sam James
8e5f6ddb68 8324243: Compilation failures in java.desktop module with gcc 14
Reviewed-by: jwaters, ihse, kbarrett, prr
2024-02-22 06:27:25 +00:00
Magnus Ihse Bursie
0bcece9958 8325342: Remove unneeded exceptions in compare.sh
Reviewed-by: erikj
2024-02-21 22:34:58 +00:00
Naoto Sato
64f7972a3d 8326158: Javadoc for java.time.DayOfWeek#minus(long)
Reviewed-by: iris, lancea
2024-02-21 16:53:57 +00:00
Lance Andersen
f0f4d63fa9 8326351: Update the Zlib version in open/src/java.base/share/legal/zlib.md to 1.3.1
Reviewed-by: iris, naoto, jpai
2024-02-21 14:51:35 +00:00
Robbin Ehn
51e2dde018 8326235: RISC-V: Size CodeCache for short calls encoding
Reviewed-by: fyang, tonyp
2024-02-21 14:33:29 +00:00
Magnus Ihse Bursie
c022431a00 8326412: debuginfo files should not have executable bit set
Reviewed-by: erikj
2024-02-21 14:10:38 +00:00
Magnus Ihse Bursie
33834b7d14 8326375: [REDO] Clean up NativeCompilation.gmk and its newly created parts
Reviewed-by: jwaters, erikj
2024-02-21 13:44:12 +00:00
Markus Grönlund
23522682d4 8326334: JFR failed assert(used(klass)) failed: invariant
Reviewed-by: egahlin
2024-02-21 13:38:36 +00:00
Aleksey Shipilev
492e8bf563 8325587: Shenandoah: ShenandoahLock should allow blocking in VM
Reviewed-by: rehn, rkennke
2024-02-21 11:48:59 +00:00
Claes Redestad
5f16f342d9 8326370: Remove redundant and misplaced micros from StringBuffers
Reviewed-by: shade
2024-02-21 11:19:37 +00:00
Albert Mingkun Yang
921507c510 8326319: G1: Remove unused G1ConcurrentMark::_init_times
Reviewed-by: tschatzl, kbarrett
2024-02-21 10:27:55 +00:00
Robbin Ehn
68eb5a1df5 8321075: RISC-V: UseSystemMemoryBarrier lacking proper OS support
Reviewed-by: fyang, yadongwang, luhenry
2024-02-21 08:58:19 +00:00
Tejesh R
04d43c435d 8187759: Background not refreshed when painting over a transparent JFrame
Reviewed-by: azvegint, abhiscxk, serb
2024-02-21 05:54:30 +00:00
Amit Kumar
d5f3d5c8cc 8326201: [S390] Need to bailout cleanly if creation of stubs fails when code cache is out of space
Reviewed-by: lucy, mdoerr
2024-02-21 05:37:21 +00:00
Thomas Stuefe
d31fd78d96 8325496: Make TrimNativeHeapInterval a product switch
Reviewed-by: dholmes, mbaesken
2024-02-21 04:39:09 +00:00
Kim Barrett
27003b53bb 8326090: Rename jvmti_aod.h
Reviewed-by: coleenp, sspitsyn
2024-02-21 03:09:29 +00:00
Jaikiran Pai
36246c975b 8326233: Utils#copySSLParameters loses needClientAuth Setting
Reviewed-by: djelinski, jjiang, dfuchs
2024-02-21 01:26:21 +00:00
David Holmes
14f9aba921 8326371: [BACKOUT] Clean up NativeCompilation.gmk and its newly created parts
Reviewed-by: mikael
2024-02-21 01:15:25 +00:00
Magnus Ihse Bursie
1bd91cdebe 8325963: Clean up NativeCompilation.gmk and its newly created parts
Reviewed-by: jwaters, erikj
2024-02-20 22:25:29 +00:00
Magnus Ihse Bursie
4d50ee63d6 8326368: compare.sh -2bins prints ugly errors on Windows
Reviewed-by: erikj
2024-02-20 22:24:25 +00:00
Calvin Cheung
221fbfb436 8320002: Remove obsolete CDS check in Reflection::verify_class_access()
Reviewed-by: iklam, matsaave, dholmes
2024-02-20 21:10:09 +00:00
Claes Redestad
d2590c69b4 8325730: StringBuilder.toString allocation for the empty String
Reviewed-by: jlaskey, shade
2024-02-20 20:28:55 +00:00
Hannes Wallnöfer
aa792eabab 8164094: javadoc allows to create a @link to a non-existent method
Reviewed-by: prappo, jjg
2024-02-20 19:56:15 +00:00
Hannes Wallnöfer
a2d027eaa0 8326089: Text incorrectly placed in breadcrumbs list in generated docs
Reviewed-by: jjg
2024-02-20 19:22:59 +00:00
Alexey Ivanov
b419e95173 8294148: Support JSplitPane for instructions and test UI
Reviewed-by: honkar, dmarkov
2024-02-20 16:30:32 +00:00
Darragh Clarke
9538f5d317 8319651: Several network tests ignore vm flags when start java process
Reviewed-by: dfuchs, jpai
2024-02-20 16:00:09 +00:00
Tobias Holenstein
4957d6a61e 8325441: IGV: update pom.xml such that IntelliJ can import as maven project
Reviewed-by: rcastanedalo, chagedorn
2024-02-20 15:49:48 +00:00
Albert Mingkun Yang
d60331a21c 8326196: Serial: Remove SerialHeap::generation_iterate
Reviewed-by: tschatzl, kbarrett
2024-02-20 09:38:23 +00:00
Albert Mingkun Yang
beed4145ec 8326209: G1: Remove G1ConcurrentMark::_total_cleanup_time
Reviewed-by: kbarrett, tschatzl
2024-02-20 09:38:13 +00:00
Albert Mingkun Yang
56073cd1ea 8326171: Serial: Remove VerifyGCLevel
Reviewed-by: stefank, tschatzl
2024-02-20 09:19:14 +00:00
Joshua Cao
bb675afae6 8325542: CTW: Runner can produce negative StressSeed
Reviewed-by: shade, xliu
2024-02-20 08:54:48 +00:00
Joshua Cao
5bf859c8e9 8325610: CTW: Add StressIncrementalInlining to stress options
Reviewed-by: shade, xliu
2024-02-20 08:54:36 +00:00
Christian Stein
0d285312a9 8318812: LauncherHelper.checkAndLoadMain closes jar file that's about to be re-opened
Reviewed-by: alanb, jpai, coffeys
2024-02-20 07:01:45 +00:00
David Holmes
69a11c7f7e 8326222: Fix copyright year in src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp
Reviewed-by: jiefu, mikael
2024-02-20 01:25:57 +00:00
Denghui Dong
9fbcc008cb 8326127: JFR: Add SafepointCleanupTask to hardToTestEvents of TestLookForUntestedEvents
Reviewed-by: mgronlun
2024-02-20 00:41:15 +00:00
Denghui Dong
7d32a1a829 8326111: JFR: Cleanup for JFR_ONLY
Reviewed-by: egahlin
2024-02-20 00:39:21 +00:00
David Holmes
a3d7f9f242 8326126: Update the java manpage with the changes from JDK-8322478
Reviewed-by: alanb, cstein
2024-02-19 22:00:48 +00:00
Thomas Stuefe
20a25f60ea 8326067: Remove os::remap_memory and simplify os::map_memory
Reviewed-by: eosterlund, iklam
2024-02-19 19:33:07 +00:00
Magnus Ihse Bursie
5c5a282f91 8325950: Make sure all files in the JDK pass jcheck
Reviewed-by: prr, wetmore, erikj, naoto
2024-02-19 16:13:34 +00:00
Magnus Ihse Bursie
8668198c26 8325972: Add -x to bash for building with LOG=debug
Reviewed-by: erikj
2024-02-19 16:11:02 +00:00
Martin Doerr
a19314b087 8326101: [PPC64] Need to bailout cleanly if creation of stubs fails when code cache is out of space
Reviewed-by: rrich, mbaesken
2024-02-19 15:20:23 +00:00
Chen Liang
f6d7e30b84 8294977: Convert test/jdk/java tests from ASM library to Classfile API
Reviewed-by: asotona
2024-02-19 14:07:46 +00:00
Per Minborg
82609b1ebc 8326112: Javadoc snippet for Linker.Option.captureCallState is wrong
Reviewed-by: jvernee
2024-02-19 13:33:09 +00:00
Markus Grönlund
a776104e21 8326106: Write and clear stack trace table outside of safepoint
Reviewed-by: egahlin
2024-02-19 13:19:12 +00:00
vtstydev
56c50841ee 8307246: Printing: banded raster path doesn't account for device offset values
Reviewed-by: prr, psadhukhan, aivanov
2024-02-19 13:15:13 +00:00
Albert Mingkun Yang
aeb6d8c459 8326170: Parallel: Remove unused enum CollectionType in ParallelScavengeHeap
Reviewed-by: stefank
2024-02-19 13:09:22 +00:00
Matthias Baesken
dc17c268e8 8325116: Amend jdk.ContainerConfiguration by swap related value
Reviewed-by: sgehwolf, lucy, egahlin
2024-02-19 12:52:35 +00:00
Jaikiran Pai
b366492761 8326152: Bad copyright header in test/jdk/java/util/zip/DeflaterDictionaryTests.java
Reviewed-by: tschatzl
2024-02-19 09:56:45 +00:00
Eirik Bjørsnøs
9451677daa 8326100: DeflaterDictionaryTests should use Deflater.getBytesWritten instead of Deflater.getTotalOut
Reviewed-by: alanb, jpai
2024-02-19 09:15:14 +00:00
Denghui Dong
d422811bb7 8324630: C1: Canonicalizer::do_LookupSwitch doesn't break the loop when the successor is found
Reviewed-by: dlong, thartmann
2024-02-19 08:34:40 +00:00
Yi Yang
3742bc626e 8323795: jcmd Compiler.codecache should print total size of code cache
Reviewed-by: thartmann, kvn
2024-02-19 07:38:55 +00:00
Daniel D. Daugherty
099b744235 8326117: ProblemList serviceability/jvmti/vthread/SuspendWithInterruptLock/SuspendWithInterruptLock.java#default in Xcomp mode
8326120: ProblemList sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh on macosx-aarch64

Reviewed-by: alanb
2024-02-18 18:10:32 +00:00
Prasanta Sadhukhan
39627bc429 6510914: JScrollBar.getMinimumSize() breaks the contract of JComponent.setMinimumSize()
Reviewed-by: abhiscxk, prr
2024-02-18 16:14:33 +00:00
Eirik Bjørsnøs
7004c2724d 8303972: (zipfs) Make test/jdk/jdk/nio/zipfs/TestLocOffsetFromZip64EF.java independent of the zip command line
8301183: (zipfs) jdk/jdk/nio/zipfs/TestLocOffsetFromZip64EF.java failing with ZipException:R0 on OL9

Reviewed-by: lancea
2024-02-18 15:25:58 +00:00
Christoph Langer
c2d9fa26ce 8326000: Remove obsolete comments for class sun.security.ssl.SunJSSE
Reviewed-by: mbaesken, ascarpino
2024-02-18 06:58:22 +00:00
Leonid Mesnik
f50df10591 8299023: TestPLABResize.java and TestPLABPromotion.java are failing intermittently
Reviewed-by: tschatzl, ayang
2024-02-17 19:19:47 +00:00
Jan Kratochvil
cf13086efe 8317697: refactor-encapsulate x86 VM_Version::CpuidInfo
Reviewed-by: dholmes, kvn
2024-02-17 16:37:56 +00:00
Joe Darcy
3b76372254 8325687: SimpleJavaFileObject specification would benefit from implSpec
Reviewed-by: jlahoda, iris
2024-02-16 22:56:16 +00:00
Jiří Vaněk
b5df2f4314 8323170: j2dbench is using outdated javac source/target to be able to build by itself
Reviewed-by: serb
2024-02-16 22:16:58 +00:00
Serguei Spitsyn
267780bf0a 8324680: Replace NULL with nullptr in JVMTI generated code
Reviewed-by: amenkov, coleenp
2024-02-16 21:21:42 +00:00
Rajan Halade
f3073db42a 8321408: Add Certainly roots R1 and E1
Reviewed-by: ascarpino, hchao
2024-02-16 18:07:53 +00:00
Justin Lu
4c7b313e0d 8325908: Finish removal of IntlTest and CollatorTest
Reviewed-by: naoto
2024-02-16 17:14:46 +00:00
Albert Mingkun Yang
53102502c3 8325941: Remove unused Space::block_size
Reviewed-by: tschatzl
2024-02-16 16:39:28 +00:00
Brian Burkhalter
7a76252007 8325990: Remove use of snippet @replace annotation in java.base
Reviewed-by: jlu, naoto
2024-02-16 16:06:56 +00:00
Daniel D. Daugherty
00b5c70750 8326062: ProblemList jcstress tests that are failing due to JDK-8325984
Reviewed-by: azvegint, jvernee
2024-02-16 16:03:12 +00:00
Martin Doerr
4388095cde 8325326: [PPC64] Don't relocate in case of allocation failure
Reviewed-by: goetz, rrich
2024-02-16 15:58:37 +00:00
Ben Perez
244573e719 8265372: Simplify PKCS9Attribute
Reviewed-by: weijun
2024-02-16 14:51:31 +00:00
Alexey Ivanov
80b63b6729 8323801: <s> tag doesn't strikethrough the text
Reviewed-by: honkar, dnguyen, psadhukhan
2024-02-16 14:10:44 +00:00
Matthias Baesken
9f4ec21f47 8325862: set -XX:+ErrorFileToStderr when executing java in containers for some container related jtreg tests
Reviewed-by: sgehwolf, stuefe, mdoerr
2024-02-16 13:13:11 +00:00
Leo Korinth
0aaec97527 8325763: Revert properties: vm.opt.x.*
Reviewed-by: ayang, stefank
2024-02-16 09:23:42 +00:00
Richard Reingruber
4018b2b196 8323782: Race: Thread::interrupt vs. AbstractInterruptibleChannel.begin
Co-authored-by: Alan Bateman <alanb@openjdk.org>
Reviewed-by: alanb, dholmes
2024-02-16 08:40:13 +00:00
Axel Boldt-Christmas
2705ed0a71 8325074: ZGC fails assert(index == 0 || is_power_of_2(index)) failed: Incorrect load shift: 11
Reviewed-by: eosterlund, stefank, rcastanedalo
2024-02-16 08:34:58 +00:00
Afshin Zafari
3d851033e9 8316813: NMT: Using WhiteBox API, virtual memory tracking should also be stressed in JMH tests
Reviewed-by: jsjolen, gziemski, stuefe
2024-02-16 08:27:19 +00:00
Matthias Baesken
ba8db1f6d7 8325876: crashes in docker container tests on Linuxppc64le Power8 machines
Reviewed-by: mdoerr, clanger
2024-02-16 08:21:02 +00:00
Axel Boldt-Christmas
18cea823a1 8319801: Recursive lightweight locking: aarch64 implementation
Co-authored-by: Stefan Karlsson <stefank@openjdk.org>
Co-authored-by: Erik Österlund <eosterlund@openjdk.org>
Reviewed-by: rkennke, coleenp, dcubed, aph
2024-02-16 07:18:31 +00:00
Leonid Mesnik
9029bf644e 8316451: 6 java/lang/instrument/PremainClass tests ignore VM flags
Reviewed-by: cjplummer, sspitsyn
2024-02-15 22:50:14 +00:00
Christoph Langer
99c9ae127c 8323664: java/awt/font/JNICheck/FreeTypeScalerJNICheck.java still fails with JNI warning on some Windows configurations
Reviewed-by: prr, mbaesken, aivanov
2024-02-15 22:36:54 +00:00
Zdenek Zambersky
0fdfdf71f2 8325983: Build failure after JDK-8324580
Reviewed-by: stuefe, dcubed
2024-02-15 21:10:56 +00:00
Alexander Zuev
3b1062d45d 8322239: [macos] a11y : java.lang.NullPointerException is thrown when focus is moved on the JTabbedPane
Reviewed-by: asemenov, abhiscxk, aivanov
2024-02-15 18:18:29 +00:00
Alexander Zvegintsev
5a988a5087 8322750: Test "api/java_awt/interactive/SystemTrayTests.html" failed because A blue ball icon is added outside of the system tray
Reviewed-by: jdv, kizune, psadhukhan, prr
2024-02-15 17:52:48 +00:00
Zdenek Zambersky
a231706a06 8324580: SIGFPE on THP initialization on kernels < 4.10
Reviewed-by: stuefe, sjohanss
2024-02-15 16:01:18 +00:00
Leonid Mesnik
2564f0f998 8325906: Problemlist vmTestbase/vm/mlvm/meth/stress/compiler/deoptimize/Test.java#id1 until JDK-8320865 is fixed
Reviewed-by: thartmann
2024-02-15 15:06:12 +00:00
Matias Saavedra Silva
9a1b843ff6 8324584: Optimize Symbol and char* handling in ClassLoader
Reviewed-by: dholmes, coleenp
2024-02-15 14:48:39 +00:00
Daniel Jeliński
a0e5e16afb 8325162: Remove duplicate GCMParameters class
Reviewed-by: weijun, valeriep
2024-02-15 11:27:00 +00:00
Magnus Ihse Bursie
0d51b76947 8325877: Split up NativeCompilation.gmk
Reviewed-by: erikj, jwaters
2024-02-15 10:38:30 +00:00
Albert Mingkun Yang
2b1a840002 8325860: Serial: Move Generation.java to serial folder
Reviewed-by: cjplummer, tschatzl
2024-02-15 10:20:12 +00:00
Albert Mingkun Yang
b718ae35a8 8325882: Serial: Move is_maximal_no_gc to TenuredGeneration
Reviewed-by: stefank
2024-02-15 09:36:07 +00:00
Erik Österlund
0e2fdc95ae 8324933: ConcurrentHashTable::statistics_calculate synchronization is expensive
Reviewed-by: tschatzl, coleenp
2024-02-15 09:26:48 +00:00
Robbin Ehn
8cb9b479c5 8321282: RISC-V: SpinPause() not implemented
Reviewed-by: luhenry, fbredberg, fyang
2024-02-15 09:17:52 +00:00
Sonia Zaldana Calles
1aae980c54 8323994: gtest runner repeats test name for every single gtest assertion
Reviewed-by: stuefe, lmesnik
2024-02-15 08:03:01 +00:00
Kim Barrett
810daf8206 8325910: Rename jnihelper.h
Reviewed-by: coleenp
2024-02-15 03:54:43 +00:00
Kim Barrett
22e81810dd 8325682: Rename nsk_strace.h
Reviewed-by: coleenp
2024-02-14 23:06:47 +00:00
William Kemper
b823fa4450 8325574: Shenandoah: Simplify and enhance reporting of requested GCs
Reviewed-by: ysr, kdnilsen, shade
2024-02-14 16:54:04 +00:00
Magnus Ihse Bursie
09d4936657 8252136: Several methods in hotspot are missing "static"
Reviewed-by: coleenp, stefank, kvn, kbarrett
2024-02-14 16:29:58 +00:00
Brian Burkhalter
f6e285103a 8316340: (bf) Missing {@inheritDoc} for exception in MappedByteBuffer::compact
Reviewed-by: alanb, iris, lancea
2024-02-14 15:59:34 +00:00
Albert Mingkun Yang
53878eef13 8325643: G1: Refactor G1FlushHumongousCandidateRemSets
Reviewed-by: tschatzl, iwalulya, kbarrett
2024-02-14 15:19:40 +00:00
Stefan Johansson
130f429c6f 8325403: Add SystemGC JMH benchmarks
Reviewed-by: ecaspole, ayang, tschatzl
2024-02-14 14:59:34 +00:00
Jorn Vernee
9c852df6aa 8318966: Some methods make promises about Java array element alignment that are too strong
Reviewed-by: psandoz, mcimadamore
2024-02-14 14:30:54 +00:00
Markus Grönlund
737b4c515e 8323883: JFR AssertionError: Missing object ID 15101
Reviewed-by: egahlin
2024-02-14 14:10:28 +00:00
Albert Mingkun Yang
61f249335d 8325767: Serial: Move transform_stack_chunk out of TenuredGeneration::promote
Reviewed-by: stefank
2024-02-14 13:17:10 +00:00
Erik Gahlin
8dc59763eb 8325809: JFR: Remove unnecessary annotation
Reviewed-by: mgronlun
2024-02-14 13:02:13 +00:00
Erik Österlund
84965ea1a8 8322630: Remove ICStubs and related safepoints
Co-authored-by: Martin Doerr <mdoerr@openjdk.org>
Co-authored-by: Aleksey Shipilev <shade@openjdk.org>
Co-authored-by: Amit Kumar <amitkumar@openjdk.org>
Co-authored-by: Robbin Ehn <rehn@openjdk.org>
Co-authored-by: Aleksei Voitylov <avoitylov@openjdk.org>
Reviewed-by: tschatzl, aboldtch, dlong
2024-02-14 11:44:30 +00:00
Aggelos Biboudis
0c2def0e3e 8325653: Erroneous exhaustivity analysis for primitive patterns
Reviewed-by: vromero
2024-02-14 09:19:18 +00:00
Matthias Baesken
d0039960c4 8325743: test/jdk/java/nio/channels/unixdomain/SocketOptions.java enhance user name output in error case
Reviewed-by: dfuchs, alanb
2024-02-14 08:31:35 +00:00
Tobias Hartmann
ea98de63f7 8325449: [BACKOUT] use "dmb.ishst+dmb.ishld" for release barrier
Reviewed-by: chagedorn
2024-02-14 07:34:28 +00:00
Axel Boldt-Christmas
7f6bb71eb3 8319799: Recursive lightweight locking: x86 implementation
Co-authored-by: Stefan Karlsson <stefank@openjdk.org>
Co-authored-by: Erik Österlund <eosterlund@openjdk.org>
Reviewed-by: rkennke, coleenp, dcubed
2024-02-14 07:18:06 +00:00
Dmitry Cherepanov
ea4193222f 8325395: Missing copyright header in StackFilter.java
Reviewed-by: egahlin
2024-02-14 05:30:08 +00:00
Mikael Vidstedt
8765b176f9 8325800: Drop unused cups declaration from Oracle build configuration
Reviewed-by: erikj
2024-02-13 21:23:39 +00:00
Eirik Bjørsnøs
628cd8a489 8303866: Allow ZipInputStream.readEnd to parse small Zip64 ZIP files
Reviewed-by: lancea, jpai
2024-02-13 16:26:37 +00:00
Eirik Bjørsnøs
842b895f09 8303891: Speed up Zip64SizeTest using a small ZIP64 file
8259866: two java.util tests failed with "IOException: There is not enough space on the disk"

Reviewed-by: lancea, jpai
2024-02-13 16:18:50 +00:00
Doug Simon
243fb46157 8325750: Fix spelling of ForceTranslateFailure help message
Reviewed-by: thartmann
2024-02-13 16:15:00 +00:00
Emanuel Peter
74b90aa87e 8325672: C2: allocate PhaseIdealLoop::_loop_or_ctrl from C->comp_arena()
Reviewed-by: kvn, chagedorn
2024-02-13 16:09:09 +00:00
Emanuel Peter
6dfa7f3941 8325541: C2 SuperWord: refactor filter / split
Reviewed-by: chagedorn, kvn
2024-02-13 16:07:41 +00:00
Brian Burkhalter
6b7c9718d6 8325382: (fc) FileChannel.transferTo throws IOException when position equals size
Reviewed-by: alanb
2024-02-13 15:53:29 +00:00
Roger Riggs
13d9e8ff38 8325590: Regression in round-tripping UTF-16 strings after JDK-8311906
Reviewed-by: alanb, redestad
2024-02-13 15:16:50 +00:00
Albert Mingkun Yang
57b04e1b5d 8325748: Serial: Move Generation::promote to TenuredGeneration
Reviewed-by: stefank
2024-02-13 15:00:36 +00:00
Cesar Soares Lucas
7cd25ed605 8322854: Incorrect rematerialization of scalar replaced objects in C2
Reviewed-by: kvn, thartmann
2024-02-13 13:50:59 +00:00
Albert Mingkun Yang
7ec2badd21 8323520: Drop unnecessary virtual specifier in Space
Reviewed-by: stefank
2024-02-13 13:22:53 +00:00
Stefan Karlsson
71ff2d7177 8325616: JFR ZGC Allocation Stall events should record stack traces
Reviewed-by: eosterlund, tschatzl, egahlin
2024-02-13 12:59:42 +00:00
Johannes Bechberger
c3c1cdd1b0 8325731: Installation instructions for Debian/Ubuntu don't mention autoconf
Reviewed-by: ihse
2024-02-13 12:31:31 +00:00
Hannes Wallnöfer
f8d8eecf80 8325325: Breadcrumb navigation shows preview link for modules and packages
Reviewed-by: jjg
2024-02-13 11:21:03 +00:00
Hannes Wallnöfer
088e54f560 8325650: Table of contents scroll timeout not long enough
Reviewed-by: jjg
2024-02-13 11:08:51 +00:00
Magnus Ihse Bursie
c266800a3a 8325558: Add jcheck whitespace checking for properties files
Reviewed-by: naoto, dfuchs, joehw
2024-02-13 10:00:13 +00:00
Magnus Ihse Bursie
ec20b0aa2e 8325626: Allow selection of non-matching configurations using CONF=!string
Reviewed-by: erikj, jwaters
2024-02-13 09:51:33 +00:00
Albert Mingkun Yang
618af397b4 8325633: Use stricter assertion in callers of Space::is_aligned
Reviewed-by: tschatzl, sjohanss
2024-02-13 09:41:12 +00:00
Axel Boldt-Christmas
5dbf13730e 8319797: Recursive lightweight locking: Runtime implementation
Co-authored-by: Stefan Karlsson <stefank@openjdk.org>
Co-authored-by: Erik Österlund <eosterlund@openjdk.org>
Reviewed-by: rkennke, dcubed, coleenp, stefank
2024-02-13 09:32:58 +00:00
Matthias Baesken
4513da9496 8325470: [AIX] use fclose after fopen in read_psinfo
Reviewed-by: mdoerr, kbarrett
2024-02-13 09:03:47 +00:00
Albert Mingkun Yang
62a4be03cf 8325635: Serial: Inline verify_used_region_at_save_marks
Reviewed-by: stefank, tschatzl
2024-02-13 08:47:00 +00:00
Kim Barrett
b356fee5d8 8325458: Rename mlvmJvmtiUtils.h
Reviewed-by: vlivanov
2024-02-13 02:03:07 +00:00
Jonathan Gibbons
2ed889b7f2 8323628: Update license on "pass-through" files
Reviewed-by: hannesw
2024-02-12 21:10:19 +00:00
Mikael Vidstedt
7c6971239d 8325570: Update to Graphviz 9.0.0
Reviewed-by: erikj, pminborg, ihse, mchung, iris
2024-02-12 20:26:11 +00:00
Jonathan Gibbons
482c100646 8322865: JavaDoc fails on aggregator modules
Reviewed-by: hannesw
2024-02-12 19:53:48 +00:00
Jonathan Gibbons
b3e0587ea0 8322874: Redirection loop in index.html
Reviewed-by: hannesw
2024-02-12 19:49:44 +00:00
Jonathan Gibbons
d70156d2e2 8325529: Remove unused imports from ModuleGenerator test file
Reviewed-by: prappo
2024-02-12 19:47:38 +00:00
Patricio Chilano Mateo
4628763001 8320302: compiler/arguments/TestC1Globals.java hits SIGSEGV in ContinuationEntry::set_enter_code
Reviewed-by: dholmes, coleenp
2024-02-12 18:55:43 +00:00
Alisen Chung
1e4b701749 8316931: [macos14] Test "java/awt/TrayIcon/ShowAfterDisposeTest/ShowAfterDisposeTest.html" throws an exception on macOS 14(x64, aarch64)
Reviewed-by: abhiscxk, kizune, serb
2024-02-12 18:04:26 +00:00
Albert Mingkun Yang
16b3be0a76 8325503: Add GC specific prefix for CheckForUnmarked related classes
Reviewed-by: kbarrett, tschatzl, stefank
2024-02-12 12:25:39 +00:00
Denghui Dong
1358850aa6 8322694: C1: Handle Constant and IfOp in NullCheckEliminator
Reviewed-by: thartmann, dlong
2024-02-12 09:26:42 +00:00
Christian Hagedorn
6a12362660 8325606: compiler/predicates/TestPredicatesBasic.java does not compile
Reviewed-by: thartmann
2024-02-12 08:18:45 +00:00
Magnus Ihse Bursie
e5cb78cc88 8324539: Do not use LFS64 symbols in JDK libs
Reviewed-by: jwaters, erikj, mbaesken, alanb
2024-02-12 08:04:39 +00:00
Daniel Jeliński
efa071dd06 8323089: networkaddress.cache.ttl is not a system property
Reviewed-by: alanb, jpai, aefimov, dfuchs
2024-02-12 07:54:48 +00:00
Joshua Cao
2546afe2aa 8325451: Missed elimination of assertion predicates
Reviewed-by: chagedorn, phh
2024-02-12 06:29:37 +00:00
Albert Mingkun Yang
af7eeffddb 8325565: Remove unused SpaceClosure
Reviewed-by: kbarrett
2024-02-11 15:34:28 +00:00
Emanuel Peter
232d136885 8324890: C2 SuperWord: refactor out VLoop, make unrolling_analysis static, remove init/reset mechanism
Reviewed-by: kvn, roland
2024-02-10 14:19:01 +00:00
yifeng.jyf
71d2dbd0b6 8325464: GCCause.java out of sync with gcCause.hpp
Reviewed-by: stefank, tschatzl
2024-02-10 14:07:23 +00:00
Sergey Bylokhov
6c7029ffd4 8318603: Parallelize sun/java2d/marlin/ClipShapeTest.java
Reviewed-by: aivanov, shade
2024-02-10 01:48:48 +00:00
Alex Menkov
e33d8a2198 8311076: RedefineClasses doesn't check for ConstantPool overflow
Reviewed-by: coleenp, lmesnik
2024-02-10 00:56:59 +00:00
Daniel D. Daugherty
6303c0e713 8325569: ProblemList gc/parallel/TestAlwaysPreTouchBehavior.java on linux
Reviewed-by: ccheung
2024-02-09 20:49:55 +00:00
Leonid Mesnik
3ebe6c192a 8319578: Few java/lang/instrument ignore test.java.opts and accept test.vm.opts only
Reviewed-by: kevinw, cjplummer
2024-02-09 18:40:10 +00:00
Leonid Mesnik
d39b7bab27 8316460: 4 javax/management tests ignore VM flags
Reviewed-by: kevinw
2024-02-09 18:40:01 +00:00
Sebastian Lövdahl
ac4607ed81 8226919: attach in linux hangs due to permission denied accessing /proc/pid/root
Reviewed-by: sgehwolf, kevinw
2024-02-09 18:32:09 +00:00
Calvin Cheung
b42b8886aa 8325038: runtime/cds/appcds/ProhibitedPackage.java can fail with UseLargePages
Reviewed-by: matsaave, jsjolen
2024-02-09 18:06:51 +00:00
Alexey Semenyuk
6944537c3e 8325203: System.exit(0) kills the launched 3rd party application
Reviewed-by: almatvee
2024-02-09 17:05:05 +00:00
Bhavana Kilambi
4368437475 8325264: two compiler/intrinsics/float16 tests fail after JDK-8324724
Reviewed-by: thartmann, dfenacci, kvn
2024-02-09 16:57:49 +00:00
William Kemper
4a3a38d1b7 8325517: Shenandoah: Reduce unnecessary includes from shenandoahControlThread.cpp
Reviewed-by: shade, kdnilsen, ysr
2024-02-09 16:53:05 +00:00
Albert Mingkun Yang
40708baf7a 8325563: Remove unused Space::is_in
Reviewed-by: tschatzl
2024-02-09 16:33:41 +00:00
Albert Mingkun Yang
29d89d48cb 8325551: Remove unused obj_is_alive and block_start in Space
Reviewed-by: stefank
2024-02-09 15:01:12 +00:00
Oli Gillespie
8ef918d667 8324646: Avoid Class.forName in SecureRandom constructor
Reviewed-by: shade, weijun
2024-02-09 14:38:09 +00:00
Oli Gillespie
69b2674c68 8324648: Avoid NoSuchMethodError when instantiating NativePRNG
Reviewed-by: shade, weijun, liach, valeriep
2024-02-09 14:36:59 +00:00
Stefan Karlsson
52d497619e 8325437: Safepoint polling in monitor deflation can cause massive logs
Reviewed-by: aboldtch, dcubed, shade
2024-02-09 13:09:12 +00:00
Jan Lahoda
8b70b8d85a 8325440: Confusing error reported for octal literals with wrong digits
Reviewed-by: vromero
2024-02-09 11:51:05 +00:00
Alexey Ivanov
5daf622aea 8325309: Amend "Listeners and Threads" in AWTThreadIssues.html
Reviewed-by: serb, tr
2024-02-09 11:46:04 +00:00
Albert Mingkun Yang
d165d124b1 8325510: Serial: Remove redundant arg in non_clean_card_iterate
Reviewed-by: kbarrett, tschatzl, stefank
2024-02-09 11:05:42 +00:00
Axel Boldt-Christmas
71b46c38a8 8325471: CHeapBitMap(MEMFLAGS flags) constructor misleading use of super-constructor
Reviewed-by: stefank, tschatzl
2024-02-09 09:00:43 +00:00
Aggelos Biboudis
e3dc6a7a28 8314275: Incorrect stepping in switch
Reviewed-by: vromero
2024-02-09 08:52:28 +00:00
William Kemper
cc276ff0df 8325516: Shenandoah: Move heap change tracking into ShenandoahHeap
Reviewed-by: shade, kdnilsen, ysr
2024-02-09 07:42:57 +00:00
Emanuel Peter
8d9ad97c29 8324641: [IR Framework] Add Setup method to provide custom arguments and set fields
Reviewed-by: chagedorn, thartmann
2024-02-09 05:30:20 +00:00
Koichi Sakata
b797652209 8322927: Unused code in LIR_Assembler::verify_oop_map
Reviewed-by: tholenstein, chagedorn
2024-02-09 04:49:37 +00:00
Patrick Zhang
9936aeea32 8324824: AArch64: Detect Ampere-1B core and update default options for Ampere CPUs
Reviewed-by: dlong, thartmann
2024-02-08 22:50:24 +00:00
Thiago Henrique Hüpner
d91fb17a80 8325505: Fix Javadoc ResourceBundle::getString
Reviewed-by: jlu, naoto
2024-02-08 21:56:16 +00:00
Kim Barrett
10beb3184e 8325456: Rename nsk_mutex.h
Reviewed-by: coleenp, jwaters
2024-02-08 17:22:47 +00:00
Albert Mingkun Yang
0ea75b28d4 8325259: Serial: Inline OldGenScanClosure during Young GC
Reviewed-by: stefank, tschatzl
2024-02-08 16:20:09 +00:00
Albert Mingkun Yang
ab5e94777c 8325436: G1: Remove unused G1RegionMarkStats::is_clear
Reviewed-by: tschatzl
2024-02-08 14:22:20 +00:00
Christoph Langer
3c91b59ef9 8325444: GHA: JDK-8325194 causes a regression
Reviewed-by: gdams, shade, ihse
2024-02-08 14:05:20 +00:00
Prasanta Sadhukhan
e8ceb7189b 6507038: Memory Leak in JTree / BasicTreeUI
Co-authored-by: Alexey Ivanov <aivanov@openjdk.org>
Reviewed-by: honkar, aivanov
2024-02-08 11:55:39 +00:00
Matthias Baesken
3d3a8f0ebf 8325432: enhance assert message "relocation addr must be in this section"
Reviewed-by: kvn, thartmann
2024-02-08 11:02:49 +00:00
Per Minborg
b58d73b915 8323746: Add PathElement hashCode and equals
Reviewed-by: mcimadamore
2024-02-08 10:54:11 +00:00
Johny Jose
917838e0a5 8325150: (tz) Update Timezone Data to 2024a
Reviewed-by: coffeys, naoto, iris
2024-02-08 09:15:42 +00:00
Alan Bateman
43089bf006 8325399: Add tests for virtual threads doing Selector operations
Reviewed-by: bpb
2024-02-08 07:56:12 +00:00
Alan Bateman
d1099033ac 8325028: (ch) Pipe channels should lazily set socket to non-blocking mode on first use by virtual thread
Reviewed-by: bpb
2024-02-08 07:55:08 +00:00
Jaikiran Pai
1fb9e3d674 8325304: Several classes in java.util.jar and java.util.zip don't specify the behaviour for null arguments
Reviewed-by: lancea, alanb
2024-02-08 06:35:47 +00:00
Kim Barrett
9cccf0515e 8325367: Rename nsk_list.h
Reviewed-by: coleenp
2024-02-08 00:00:00 +00:00
Chris Plummer
be7cc1c2b0 8323681: SA PointerFinder code should support G1
Reviewed-by: tschatzl, kevinw
2024-02-07 23:39:34 +00:00
Joe Darcy
fbd15b2087 8325189: Enable this-escape javac warning in java.base
Reviewed-by: alanb, erikj, naoto, smarks, ihse, joehw, lancea, weijun
2024-02-07 20:05:11 +00:00
Brian Burkhalter
299a8ee68d 8325302: Files.move(REPLACE_EXISTING) throws NoSuchFileException on deleted target
Reviewed-by: alanb
2024-02-07 19:02:30 +00:00
Joe Darcy
3a1f4d0f48 8325268: Add policy statement to langtools makefiles concerning warnings
Reviewed-by: ihse, jjg, vromero
2024-02-07 18:03:38 +00:00
Magnus Ihse Bursie
18e24d0619 8325109: Sort method modifiers in canonical order
Reviewed-by: aivanov, rriggs, darcy, prappo
2024-02-07 15:50:40 +00:00
Axel Boldt-Christmas
a3a2b1fbbf 8324881: ObjectSynchronizer::inflate(Thread* current...) is invoked for non-current thread
Reviewed-by: rrich, dholmes, coleenp, dcubed
2024-02-07 15:49:16 +00:00
Albert Mingkun Yang
a9c6e87c6a 8325416: Parallel: Refactor CheckForUnmarkedOops
Reviewed-by: stefank
2024-02-07 15:05:18 +00:00
Thomas Stuefe
1ecf74c296 8325306: Rename static huge pages to explicit huge pages
Reviewed-by: jsjolen, jwaters
2024-02-07 14:54:51 +00:00
Albert Mingkun Yang
c3a632dca7 8325248: Serial: Remove Generation::space_iterate
Reviewed-by: tschatzl
2024-02-07 12:21:30 +00:00
Albert Mingkun Yang
77ee7f0e24 8325221: Obsolete TLABStats
Reviewed-by: tschatzl, kbarrett
2024-02-07 12:21:21 +00:00
Daniel Lundén
4abb10eb0b 8317349: Randomize order of macro node expansion in C2
Reviewed-by: chagedorn, rcastanedalo, thartmann
2024-02-07 10:01:35 +00:00
Chen Liang
3bffe223a3 8319463: ClassSignature should have superclass and superinterfaces as ClassTypeSig
Reviewed-by: asotona
2024-02-07 07:54:22 +00:00
Aggelos Biboudis
e0d98dd301 8325257: jshell reports NoSuchFieldError with instanceof primitive type
Reviewed-by: mcimadamore
2024-02-07 06:59:48 +00:00
Kim Barrett
f2f634448e 8325347: Rename native_thread.h
Reviewed-by: coleenp, lmesnik
2024-02-06 23:42:08 +00:00
Joe Darcy
1797efd68d 8322218: Better escaping of single and double quotes in annotation toString() results
Reviewed-by: mchung
2024-02-06 23:22:46 +00:00
Martin Balao
0f5f3c9b97 8325254: CKA_TOKEN private and secret keys are not necessarily sensitive
Reviewed-by: valeriep
2024-02-06 19:49:30 +00:00
Brian Burkhalter
4b1e367eda 8325152: Clarify specification of java.io.RandomAccessFile.setLength
Reviewed-by: alanb
2024-02-06 19:35:03 +00:00
Naoto Sato
96eb0390d6 8324665: Loose matching of space separators in the lenient date/time parsing mode
Reviewed-by: joehw, jlu
2024-02-06 17:43:12 +00:00
Kim Barrett
2d252ee06e 8325180: Rename jvmti_FollowRefObjects.h
Reviewed-by: sspitsyn, jwaters, lmesnik
2024-02-06 17:15:36 +00:00
Mandy Chung
b814c3184e 8321703: jdeps generates illegal dot file containing nodesep=0,500000
8325262: jdeps can drop printing stack trace when FindException is thrown due to modules not found

Reviewed-by: jpai, alanb
2024-02-06 17:03:57 +00:00
Shaojin Wen
50b17d9846 8316704: Regex-free parsing of Formatter and FormatProcessor specifiers
Reviewed-by: redestad, rgiulietti
2024-02-06 15:16:40 +00:00
Kangcheng Xu
51d7169bd9 8320237: C2: late inlining of method handle invoke causes duplicate lines in PrintInlining output
Reviewed-by: roland, kvn, thartmann
2024-02-06 14:37:41 +00:00
Doug Simon
fd89b334c4 8316992: Potential null pointer from get_current_thread JVMCI helper function.
Reviewed-by: thartmann
2024-02-06 14:05:34 +00:00
George Adams
d1c82156ba 8325194: GHA: Add macOS M1 testing
Reviewed-by: clanger, ihse
2024-02-06 13:28:25 +00:00
Fredrik Bredberg
f356970b89 8322535: Change default AArch64 SpinPause instruction
Reviewed-by: eastigeevich, eosterlund, coleenp
2024-02-06 13:25:38 +00:00
Damon Fenacci
b75c134fac 8325313: Header format error in TestIntrinsicBailOut after JDK-8317299
Reviewed-by: chagedorn
2024-02-06 09:34:26 +00:00
Evgeny Astigeevich
4cd318756d 8324874: AArch64: crypto pmull based CRC32/CRC32C intrinsics clobber V8-V15 registers
Reviewed-by: aph, ngasson
2024-02-06 08:54:23 +00:00
Magnus Ihse Bursie
b02599d22e 8298046: Fix hidden but significant trailing whitespace in properties files for serviceability code
Reviewed-by: cjplummer, kevinw
2024-02-06 08:04:17 +00:00
Damon Fenacci
6d911f68a3 8317299: safepoint scalarization doesn't keep track of the depth of the JVM state
Reviewed-by: thartmann, vlivanov
2024-02-06 07:53:03 +00:00
Sonia Zaldana Calles
542b0b6656 8324126: Error message for mistyping -XX:+Unlock...Options is not helpful
Reviewed-by: dholmes, stuefe
2024-02-06 07:03:47 +00:00
Martin Doerr
9ee9f28849 8325213: Flags introduced by configure script are not passed to ADLC build
Reviewed-by: jwaters, ihse
2024-02-06 06:56:48 +00:00
Joe Darcy
729ae1d787 8325266: Enable this-escape javac warning in jdk.javadoc
Reviewed-by: jjg, erikj
2024-02-06 02:11:37 +00:00
Lei Zaakjyu
e0fd3f4dab 8325081: Move '_soft_ref_policy' to 'CollectedHeap'
Reviewed-by: kbarrett, tschatzl
2024-02-06 01:06:43 +00:00
Archie Cobbs
f1f93988fb 8323699: MessageFormat.toPattern() generates non-equivalent MessageFormat pattern
Reviewed-by: jlu, naoto
2024-02-05 23:14:50 +00:00
Daniel D. Daugherty
ab3b941783 8325270: ProblemList two compiler/intrinsics/float16 tests that fail due to JDK-8324724
Reviewed-by: vlivanov
2024-02-05 22:49:00 +00:00
Alex Menkov
f31957e6a1 8317636: Improve heap walking API tests to verify correctness of field indexes
Reviewed-by: cjplummer, sspitsyn
2024-02-05 21:57:15 +00:00
Alex Menkov
fd3042a04b 8318566: Heap walking functions should not use FilteredFieldStream
Reviewed-by: cjplummer, sspitsyn
2024-02-05 21:55:13 +00:00
Brian Burkhalter
209d87a856 8324960: Unsafe.allocateMemory documentation incorrect regarding zero return value
Reviewed-by: rriggs
2024-02-05 21:31:17 +00:00
Gerard Ziemski
7777eb5e15 8321931: memory_swap_current_in_bytes reports 0 as "unlimited"
Reviewed-by: sgehwolf, iklam
2024-02-05 19:35:43 +00:00
Bhavana Kilambi
51853f7488 8324724: Add Stub routines for FP16 conversions on aarch64
Reviewed-by: aph, ngasson
2024-02-05 18:29:32 +00:00
Eirik Bjørsnøs
c3adc61e6e 8325199: (zipfs) jdk/nio/zipfs/TestPosix.java failed 6 sub-tests
Reviewed-by: clanger, lancea
2024-02-05 17:59:59 +00:00
Tom Rodriguez
1993652653 8324983: race in CompileBroker::possibly_add_compiler_threads
Reviewed-by: kvn, dholmes, dnsimon
2024-02-05 17:43:34 +00:00
Claes Redestad
55c1446b68 8321468: Remove StringUTF16::equals
Reviewed-by: rriggs, kvn
2024-02-05 16:30:16 +00:00
Claes Redestad
19e92201b4 8325169: Reduce String::indexOf overheads
Reviewed-by: rriggs, rgiulietti, mli
2024-02-05 16:30:05 +00:00
Emanuel Peter
89e6a02e3b 8325064: C2 SuperWord: refactor construct_bb
Reviewed-by: kvn, chagedorn
2024-02-05 16:28:51 +00:00
Magnus Ihse Bursie
d395ac2879 8321373: Build should use LC_ALL=C.UTF-8
Reviewed-by: redestad, erikj
2024-02-05 14:06:16 +00:00
Albert Mingkun Yang
51671c0b92 8323809: Serial: Refactor card table verification
Reviewed-by: tschatzl, sjohanss
2024-02-05 11:18:43 +00:00
Albert Mingkun Yang
cdf918b1d0 8325134: Serial: Remove Generation::used_region
Reviewed-by: tschatzl, iwalulya
2024-02-05 10:54:41 +00:00
Daniel Lundén
4da28b40f0 8291809: Convert compiler/c2/cr7200264/TestSSE2IntVect.java to IR verification test
Reviewed-by: rcastanedalo, epeter, chagedorn
2024-02-05 10:53:38 +00:00
Johan Sjölen
0377f1abe1 8325133: Missing MEMFLAGS parameter in parts of os API
Reviewed-by: stefank, gziemski
2024-02-05 09:27:07 +00:00
Aggelos Biboudis
df35462a4e 8323502: javac crash with wrongly typed method block in Flow
Co-authored-by: Jan Lahoda <jlahoda@openjdk.org>
Reviewed-by: jlahoda
2024-02-05 08:59:55 +00:00
Julian Waters
af32262c28 8325049: stubGenerator_ppc.cpp should use alignas
Reviewed-by: mdoerr
2024-02-05 07:00:54 +00:00
Emanuel Peter
85e320121e 8325159: C2 SuperWord: measure time for CITime
Reviewed-by: rcastanedalo, kvn
2024-02-05 06:53:51 +00:00
Amit Kumar
8796f43c6c 8315762: Update subtype check profile collection on s390x following 8308869
Reviewed-by: mdoerr, lucy
2024-02-05 06:29:48 +00:00
Wang Zhuo
80642dd7af 8324817: Parallel GC does not pre-touch all heap pages when AlwaysPreTouch enabled and large page disabled
Reviewed-by: ayang, tschatzl
2024-02-05 06:19:02 +00:00
Eirik Bjørsnøs
692c9f8821 8325201: (zipfs) Disable TestPosix.setPermissionsShouldConvertToUnix which fails on Windows
Reviewed-by: lancea
2024-02-04 21:01:37 +00:00
Hamlin Li
ed068469f3 8325037: x86: enable and fix hotspot/jtreg/compiler/vectorization/TestRoundVectFloat.java
Reviewed-by: thartmann, kvn, jbhateja
2024-02-04 09:46:15 +00:00
Eirik Bjørsnøs
a18b03b86f 8324635: (zipfs) Regression in Files.setPosixFilePermissions called on existing MSDOS entries
Reviewed-by: lancea
2024-02-02 21:50:13 +00:00
Chris Plummer
7476e29053 8323680: SA PointerFinder code can do a better job of leveraging existing code to determine if an address is in the TLAB
Reviewed-by: kevinw, sspitsyn
2024-02-02 20:41:37 +00:00
Eirik Bjørsnøs
63cb1f8818 8321396: Retire test/jdk/java/util/zip/NoExtensionSignature.java
Reviewed-by: lancea
2024-02-02 20:21:46 +00:00
Eirik Bjørsnøs
f613e13397 8313739: ZipOutputStream.close() should always close the wrapped stream
Reviewed-by: jpai, lancea
2024-02-02 20:20:36 +00:00
Joe Darcy
adc3604027 8325148: Enable restricted javac warning in java.base
Reviewed-by: erikj, jvernee, mcimadamore, pminborg, ihse
2024-02-02 17:47:28 +00:00
Paul Sandoz
1ae851387f 8324858: [vectorapi] Bounds checking issues when accessing memory segments
Reviewed-by: mcimadamore, jbhateja
2024-02-02 16:53:10 +00:00
Mark Powers
38c01971ff 8318105: [jmh] the test java.security.HSS failed with 2 active threads
Reviewed-by: ascarpino
2024-02-02 16:30:46 +00:00
Kim Barrett
6787c4c3dd 8325055: Rename Injector.h
Reviewed-by: dholmes, amenkov, sspitsyn
2024-02-02 16:19:08 +00:00
Doug Simon
91d8dac9cf 8325137: com/sun/management/ThreadMXBean/ThreadCpuTimeArray.java can fail in Xcomp with out of expected range
Reviewed-by: dholmes, sspitsyn
2024-02-02 10:44:42 +00:00
Pasam Soujanya
783ae56634 8311893: Interactive component with ARIA role 'tabpanel' does not have a programmatically associated name
Reviewed-by: hannesw
2024-02-02 09:01:45 +00:00
Justin Lu
d3c3194ac3 6285888: ChoiceFormat can support unescaped relational symbols in the Format segment
Reviewed-by: naoto
2024-02-01 22:21:45 +00:00
Joe Darcy
144a08ee50 8325078: Better escaping of single and double quotes in javac annotation toString() results
Reviewed-by: jlahoda
2024-02-01 20:20:33 +00:00
Coleen Phillimore
b3ecd55601 8324679: Replace NULL with nullptr in HotSpot .ad files
Reviewed-by: kvn
2024-02-01 19:39:54 +00:00
Chris Plummer
192349eee4 8324066: "clhsdb jstack" should not by default scan for j.u.c locks because it can be very slow
Reviewed-by: kevinw, amenkov
2024-02-01 19:24:39 +00:00
Denghui Dong
6b09a79d64 8324974: JFR: EventCompilerPhase should be created as UNTIMED
Reviewed-by: egahlin
2024-02-01 15:52:25 +00:00
Tejesh R
70e7cdcb9e 8323670: A few client tests intermittently throw ConcurrentModificationException
Reviewed-by: aivanov, serb
2024-02-01 14:05:06 +00:00
Sean Coffey
ac1cd31949 8325096: Test java/security/cert/CertPathBuilder/akiExt/AKISerialNumber.java is failing
Reviewed-by: weijun
2024-02-01 13:54:03 +00:00
Magnus Ihse Bursie
8e45182357 8324834: Use _LARGE_FILES on AIX
Reviewed-by: erikj, mbaesken
2024-02-01 13:09:11 +00:00
Matthias Baesken
cab74b075e 8324287: Record total and free swap space in JFR
Reviewed-by: jbechberger, lucy, egahlin
2024-02-01 12:50:18 +00:00
Per Minborg
6b84f9bb3e 8325001: Typo in the javadocs for the Arena::ofShared method
Reviewed-by: dfuchs
2024-02-01 11:53:02 +00:00
Albert Mingkun Yang
cd11059f10 8325053: Serial: Move Generation::save_used_region to TenuredGeneration
Reviewed-by: stefank, ehelin
2024-02-01 11:00:09 +00:00
Kevin Walls
d9331bfd49 8324845: management.properties text "interface name" is misleading
Reviewed-by: mchung, alanb
2024-02-01 09:18:08 +00:00
Daniel Jeliński
68206b533b 8324585: JVM native memory leak in PCKS11-NSS security provider
Reviewed-by: valeriep
2024-02-01 08:37:24 +00:00
Aleksey Shipilev
1aba78f272 8324937: GHA: Avoid multiple test suites per job
Reviewed-by: erikj, clanger
2024-02-01 08:11:46 +00:00
Jaikiran Pai
a663248786 8324668: JDWP process management needs more efficient file descriptor handling
Reviewed-by: gziemski, dholmes, cjplummer
2024-02-01 05:55:58 +00:00
Julian Waters
a2229b18bf 8324838: test_nmt_locationprinting.cpp broken in the gcc windows build
Reviewed-by: dholmes, kevinw, jsjolen
2024-02-01 05:54:57 +00:00
SendaoYan
432756b6e5 8325024: java/security/cert/CertPathValidator/OCSP/OCSPTimeout.java incorrect comment information
Reviewed-by: jnimeh, fyang
2024-02-01 03:08:33 +00:00
John Jiang
fe78c0f191 8325022: Incorrect error message on client authentication
Reviewed-by: jnimeh, hchao, djelinski
2024-02-01 02:35:34 +00:00
Vladimir Kozlov
5b9b176c67 8324174: assert(m->is_entered(current)) failed: invariant
Reviewed-by: epeter, dlong, thartmann
2024-01-31 19:42:02 +00:00
Kim Barrett
0cc8e5beed 8325042: remove unused JVMDITools test files
Reviewed-by: coleenp
2024-01-31 19:19:21 +00:00
Per Minborg
f2920533e9 8323621: JDK build should exclude snippet class in java.lang.foreign
Reviewed-by: mcimadamore
2024-01-31 17:59:50 +00:00
Harshitha Onkar
62c9530c05 8324238: [macOS] java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java fails with the shape has not been applied msg
Reviewed-by: azvegint, dnguyen
2024-01-31 17:42:00 +00:00
Rajat Mahajan
1f2922ad85 8320342: Use PassFailJFrame for TruncatedPopupMenuTest.java
Reviewed-by: honkar, aivanov
2024-01-31 17:35:50 +00:00
William Kemper
2cd1ba6a52 8324981: Shenandoah: Move commit and soft max heap changed methods into heap
Reviewed-by: shade
2024-01-31 16:42:44 +00:00
Aggelos Biboudis
1733d2ea24 8303374: Implement JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview)
Co-authored-by: Jan Lahoda <jlahoda@openjdk.org>
Co-authored-by: Maurizio Cimadamore <mcimadamore@openjdk.org>
Co-authored-by: Gavin Bierman <gbierman@openjdk.org>
Co-authored-by: Brian Goetz <briangoetz@openjdk.org>
Co-authored-by: Raffaello Giulietti <rgiulietti@openjdk.org>
Co-authored-by: Aggelos Biboudis <abimpoudis@openjdk.org>
Reviewed-by: vromero, jlahoda
2024-01-31 14:18:13 +00:00
Eirik Bjørsnøs
66971600f7 8320712: Rewrite BadFactoryTest in pure Java
Reviewed-by: jpai, sundar
2024-01-31 13:59:19 +00:00
Albert Mingkun Yang
725314fb73 8324771: Obsolete RAMFraction related flags
Reviewed-by: dholmes, mbaesken, tschatzl
2024-01-31 12:44:39 +00:00
Albert Mingkun Yang
ec6c35c4ac 8324970: Serial: Refactor signature of maintain_old_to_young_invariant
Reviewed-by: tschatzl
2024-01-31 12:44:29 +00:00
Lance Andersen
b5c267fc8a 8324632: Update Zlib Data Compression Library to Version 1.3.1
Reviewed-by: iris, alanb
2024-01-31 11:06:01 +00:00
Per Minborg
ec56c72b51 8323601: Improve LayoutPath.PathElement::toString
Reviewed-by: jvernee
2024-01-31 09:54:03 +00:00
Varada M
f7121de4a0 8322648: Improve class initialization barrier in TemplateTable::_new for PPC
Reviewed-by: mdoerr
2024-01-31 06:12:35 +00:00
Tejesh R
577de17d24 8259550: The content of the print out displayed incomplete with the NimbusLAF
Reviewed-by: dnguyen, psadhukhan, abhiscxk
2024-01-31 05:26:30 +00:00
Amit Kumar
83b3c9b3ee 8322649: Improve class initialization barrier in TemplateTable::_new for S390
Reviewed-by: mdoerr, lucy
2024-01-31 04:41:50 +00:00
Leonid Mesnik
7d1a48807a 8324861: Exceptions::wrap_dynamic_exception() doesn't have ResourceMark
Reviewed-by: dholmes, coleenp
2024-01-30 23:56:04 +00:00
Eirik Bjørsnøs
c3c1d5bd12 8324998: Add test cases for String.regionMatches comparing Turkic dotted/dotless I with uppercase latin I
Reviewed-by: naoto, iris
2024-01-30 23:52:37 +00:00
Leonid Mesnik
8892d45b9f 8324582: Replace -Djava.util.concurrent.ForkJoinPool.common.parallelism to -Djdk.virtualThreadScheduler.maxPoolSize in jvmti vthread tests
Reviewed-by: cjplummer, sspitsyn
2024-01-30 21:05:12 +00:00
Emanuel Peter
11e28bd619 8324794: C2 SuperWord: do not ignore reductions in SuperWord::unrolling_analysis
Reviewed-by: chagedorn, kvn
2024-01-30 20:14:20 +00:00
Calvin Cheung
d51aaf6304 8323950: Null CLD while loading shared lambda proxy class with javaagent active
Reviewed-by: matsaave, iklam
2024-01-30 20:00:10 +00:00
Kim Barrett
f57c7223cf 8324880: Rename get_stack_trace.h
Reviewed-by: dholmes, jwaters, sspitsyn
2024-01-30 18:10:25 +00:00
Roman Kennke
f0024f585d 8324734: Relax too-strict assert(VM_Version::supports_evex()) in Assembler::locate_operand()
Co-authored-by: Vladimir Kozlov <kvn@openjdk.org>
Reviewed-by: kvn, shade
2024-01-30 13:26:10 +00:00
Albert Mingkun Yang
fd8adf3083 8324856: Serial: Move Generation::is_in to DefNewGeneration
Reviewed-by: stefank, tschatzl
2024-01-30 08:52:17 +00:00
Gui Cao
a1d65eb6d8 8324125: Improve class initialization barrier in TemplateTable::_new for RISC-V
Reviewed-by: fyang, rehn
2024-01-30 02:07:20 +00:00
Vladimir Kozlov
b6d364ad88 8324865: windows-x64-slowdebug still does not build after JDK-8324840
Reviewed-by: dholmes, dcubed
2024-01-30 01:08:18 +00:00
Vladimir Petko
64c3642c57 8242564: javadoc crashes:: class cast exception com.sun.tools.javac.code.Symtab$6
Reviewed-by: jjg
2024-01-29 21:28:49 +00:00
Aleksey Shipilev
e999dfcb40 8323503: x86: Shorter movptr(reg, imm) for 32-bit unsigned immediates
Reviewed-by: stuefe, kvn, eastigeevich
2024-01-29 20:25:32 +00:00
Joshua Cao
84deeb6cd5 8324667: fold Parse::seems_stable_comparison()
Reviewed-by: jkarthikeyan, chagedorn, xliu
2024-01-29 19:54:42 +00:00
Doug Simon
fb07bbe7b2 8324717: Remove HotSpotJVMCICompilerFactory
Reviewed-by: thartmann, never
2024-01-29 19:12:44 +00:00
Harshitha Onkar
d1e676360d 8324733: [macos14] Problem list tests which fail due to macOS bug described in JDK-8322653
Reviewed-by: prr, tr
2024-01-29 18:03:30 +00:00
Coleen Phillimore
c1281e6b45 8324678: Replace NULL with nullptr in HotSpot gtests
Reviewed-by: kbarrett, dholmes, jwaters
2024-01-29 17:12:13 +00:00
Coleen Phillimore
a6bdee48f3 8324681: Replace NULL with nullptr in HotSpot jtreg test native code files
Reviewed-by: kevinw, kbarrett, dholmes
2024-01-29 17:07:32 +00:00
Aleksey Shipilev
951b5f8ecb 8324723: GHA: Upgrade some actions to avoid deprecated Node 16
Reviewed-by: sgehwolf, ihse
2024-01-29 15:13:44 +00:00
Thomas Schatzl
fe0eec7e20 8324840: windows-x64-slowdebug does not build anymore after JDK-8317572
Reviewed-by: epeter
2024-01-29 13:55:00 +00:00
Albert Mingkun Yang
4df04f0ec9 8324769: Serial: Remove unused TenuredGeneration::unsafe_max_alloc_nogc
Reviewed-by: tschatzl
2024-01-29 12:42:10 +00:00
Emanuel Peter
3066d49cc1 8317572: C2 SuperWord: refactor/improve TraceSuperWord, replace VectorizeDebugOption with TraceAutoVectorization
Reviewed-by: chagedorn, kvn
2024-01-29 10:13:43 +00:00
Denghui Dong
7a300b63b5 8324213: C1: There is no need for Canonicalizer to handle IfOp
Reviewed-by: dlong, chagedorn
2024-01-29 09:47:24 +00:00
Kuai Wei
628348d3e9 8324186: Use "dmb.ishst+dmb.ishld" for release barrier
Reviewed-by: fyang, aph
2024-01-29 09:33:22 +00:00
Christian Hagedorn
72ba8178a8 8324236: compiler/ciReplay/TestInliningProtectionDomain.java failed with RuntimeException: should only dump inline information for ... expected true, was false
Reviewed-by: kvn
2024-01-29 09:20:52 +00:00
Hamlin Li
b39b876493 8324304: RISC-V: add hw probe flags
Reviewed-by: fyang, rehn
2024-01-29 09:17:46 +00:00
Daniel Lundén
69586e7bdf 8322996: BoxLockNode creation fails with assert(reg < CHUNK_SIZE) failed: sanity
Reviewed-by: rcastanedalo, kvn
2024-01-29 09:14:26 +00:00
Emanuel Peter
f0bae7939a 8324750: C2: rename Matcher methods using "superword" -> "autovectorization"
Reviewed-by: kvn, chagedorn
2024-01-29 08:50:35 +00:00
Emanuel Peter
6ad78ca8a5 8324775: C2 SuperWord: refactor visited sets
Reviewed-by: kvn, chagedorn
2024-01-29 08:46:34 +00:00
Tobias Holenstein
422020c4d6 8210858: AArch64: remove Math.log intrinsic
Reviewed-by: ngasson, shade
2024-01-29 08:37:06 +00:00
Thomas Schatzl
0d5f5e15d4 8322484: 22-b26 Regression in J2dBench-bimg_misc-G1 (and more) on Windows-x64 and macOS-x64
Reviewed-by: kbarrett, ayang
2024-01-29 08:36:51 +00:00
Julian Waters
af9cd975ce 8324800: gcc windows build broken after 8322757
Reviewed-by: kbarrett, dholmes
2024-01-29 08:03:20 +00:00
Matthias Baesken
8950d68ddb 8324753: [AIX] adjust os_posix after JDK-8318696
Reviewed-by: jkern, stuefe, kbarrett, dholmes
2024-01-29 07:38:32 +00:00
Emanuel Peter
65d6bc1d4c 8324765: C2 SuperWord: remove dead code: SuperWord::insert_extracts
Reviewed-by: kvn, chagedorn
2024-01-29 07:00:12 +00:00
Emanuel Peter
525c0cd09f 8324752: C2 Superword: remove SuperWordRTDepCheck
Reviewed-by: kvn, chagedorn
2024-01-29 06:54:50 +00:00
Joe Darcy
2e748c998e 8175386: Clarify exception behavior of Types utility methods
Reviewed-by: jjg
2024-01-26 22:33:17 +00:00
Daniel D. Daugherty
70f4a4e18e 8324786: validate-source fails after JDK-8042981
Reviewed-by: darcy
2024-01-26 22:01:07 +00:00
Joe Darcy
ed3272cc44 8042981: Strip type annotations in Types' utility methods
Co-authored-by: Liam Miller-Cushon <cushon@openjdk.org>
Reviewed-by: cushon, jjg, jlahoda
2024-01-26 20:55:46 +00:00
Daniel D. Daugherty
6d1856234f 8324785: ProblemList two tests on linux due to JDK-8315923
Reviewed-by: rriggs
2024-01-26 20:18:08 +00:00
Vicente Romero
91d8ea79d9 8323835: Updating ASM to 9.6 for JDK 23
Reviewed-by: mchung
2024-01-26 18:34:56 +00:00
Liming Liu
a65a89522d 8315923: pretouch_memory by atomic-add-0 fragments huge pages unexpectedly
Reviewed-by: jsjolen, stuefe
2024-01-26 16:42:46 +00:00
Volker Simonis
62b3293df0 8324241: Always record evol_method deps to avoid excessive method flushing
Reviewed-by: eastigeevich, phh, coleenp, dlong, shade
2024-01-26 13:11:58 +00:00
Albert Mingkun Yang
885e9b76d6 8324722: Serial: Inline block_is_obj of subclasses of Generation
Reviewed-by: stefank, tschatzl
2024-01-26 13:03:59 +00:00
Albert Mingkun Yang
32ddcf504c 8324301: Obsolete MaxGCMinorPauseMillis
Reviewed-by: kbarrett, tschatzl
2024-01-26 13:03:50 +00:00
Aleksey Shipilev
c313d451a5 8324659: GHA: Generic jtreg errors are not reported
Reviewed-by: erikj, jwaters, stuefe
2024-01-26 08:51:00 +00:00
Sergey Bylokhov
781f368d42 8324347: Enable "maybe-uninitialized" warning for FreeType 2.13.1
Reviewed-by: erikj, azvegint, jwaters, aivanov
2024-01-26 08:46:34 +00:00
Matthias Baesken
33324a59cc 8324637: [aix] Implement support for reporting swap space in jdk.management
Reviewed-by: kevinw, stuefe
2024-01-26 07:57:29 +00:00
Alisen Chung
10066cd4ef 8324571: JDK 23 L10n resource files update
Reviewed-by: jlu, jjg
2024-01-26 03:47:19 +00:00
Wang Zhuo
bde87895c8 8324123: aarch64: fix prfm literal encoding in assembler
Reviewed-by: aph, dlong
2024-01-26 02:30:49 +00:00
Joe Darcy
b5995a76f7 8302019: Clarify Elements.overrides
Reviewed-by: prappo, jjg
2024-01-25 22:17:07 +00:00
Daniel Jeliński
95310eab6c 8223696: java/net/httpclient/MaxStreams.java failed with didn't finish within the time-out
Reviewed-by: dfuchs
2024-01-25 22:01:18 +00:00
Kim Barrett
39b756a0d1 8324492: Remove Atomic support for OopHandle
Reviewed-by: aboldtch, coleenp
2024-01-25 18:35:20 +00:00
Aleksey Shipilev
12b89cd2ee 8323717: Introduce test keyword for tests that need external dependencies
Reviewed-by: dholmes, lmesnik
2024-01-25 18:03:16 +00:00
Emanuel Peter
746a08686b 8306767: Concurrent repacking of extra data in MethodData is potentially unsafe
Reviewed-by: eosterlund, roland, coleenp, never
2024-01-25 15:50:33 +00:00
Roger Riggs
ffe3bb6763 8324657: Intermittent OOME on exception message create
Reviewed-by: lancea, iris, naoto
2024-01-25 14:51:50 +00:00
Albert Mingkun Yang
e709842eae 8324636: Serial: Remove Generation::block_is_obj
Reviewed-by: stefank, ysr
2024-01-25 14:25:45 +00:00
Matthias Baesken
7a798d3ceb 8324598: use mem_unit when working with sysinfo memory and swap related information
Reviewed-by: dholmes, mdoerr
2024-01-25 10:36:00 +00:00
Jatin Bhateja
6d36eb78ad 8322768: Optimize non-subword vector compress and expand APIs for AVX2 target.
Reviewed-by: epeter, sviswanathan
2024-01-25 10:07:50 +00:00
Jaikiran Pai
9d1a6d1484 8323645: Remove unused internal sun.net.www.protocol.jar.URLJarFileCallBack interface
Reviewed-by: alanb, dfuchs
2024-01-25 09:35:35 +00:00
Kim Barrett
3059c3b69e 8324242: Avoid null check for OopHandle::ptr_raw()
Reviewed-by: shade, jsjolen, coleenp
2024-01-25 05:44:18 +00:00
David Holmes
929af9ed03 8307788: vmTestbase/gc/gctests/LargeObjects/large003/TestDescription.java timed out
Reviewed-by: lmesnik, shade
2024-01-25 05:26:13 +00:00
MaxXSoft
e7fdac9d5c 8324280: RISC-V: Incorrect implementation in VM_Version::parse_satp_mode
Reviewed-by: rehn, fyang
2024-01-25 03:10:28 +00:00
Justin Lu
3d32c460eb 6503196: API doc for DecimalFormat::getMaximumIntegerDigits is unclear
Reviewed-by: naoto, iris
2024-01-24 23:42:53 +00:00
Jie Fu
2d5cb97288 8324647: Invalid test group of lib-test after JDK-8323515
Reviewed-by: shade
2024-01-24 23:25:17 +00:00
Alexander Zuev
6212264cc6 8320692: Null icon returned for .exe without custom icon
Co-authored-by: Alexey Ivanov <aivanov@openjdk.org>
Reviewed-by: aivanov
2024-01-24 22:10:28 +00:00
William Kemper
32eb5290c2 8324553: Shenandoah: Move periodic tasks closer to their collaborators
Reviewed-by: kdnilsen, shade
2024-01-24 19:15:21 +00:00
Christian Stein
c702dcabf8 8323815: Source launcher should find classes with $ in names
Reviewed-by: jlahoda, sundar
2024-01-24 19:05:15 +00:00
Joshua Cao
c432dc008b 8322149: ConcurrentHashMap smarter presizing for copy constructor and putAll
Reviewed-by: shade, simonis
2024-01-24 18:52:38 +00:00
Aleksey Shipilev
fb822e49f2 8324514: ClassLoaderData::print_on should print address of class loader
Reviewed-by: kbarrett, coleenp
2024-01-24 17:40:22 +00:00
Raffaello Giulietti
00bb6bf509 8324220: jdk/jfr/event/io/TestSerializationMisdeclarationEvent.java had 22 failures
Reviewed-by: egahlin
2024-01-24 16:19:46 +00:00
Albert Mingkun Yang
bccd823c8e 8324613: Serial: Rename GenerationPool to TenuredGenerationPool
Reviewed-by: stefank
2024-01-24 13:03:03 +00:00
Thomas Schatzl
8c003d83c4 8321512: runtime/CommandLine/OptionsValidation/TestOptionsWithRanges.java fails on 32-bit platforms
Reviewed-by: shade, iwalulya
2024-01-24 12:00:17 +00:00
Magnus Ihse Bursie
67f29b16ef 8324537: Remove superfluous _FILE_OFFSET_BITS=64
Reviewed-by: shade, erikj, kbarrett
2024-01-24 10:09:05 +00:00
Albert Mingkun Yang
1c1cb048cd 8324512: Serial: Remove Generation::Name
Reviewed-by: stefank, iwalulya, cjplummer
2024-01-24 10:02:28 +00:00
Albert Mingkun Yang
b65e5eb14e 8324543: Remove Space::object_iterate
Reviewed-by: stefank, kbarrett
2024-01-24 10:02:18 +00:00
David Holmes
6d2f6408e4 8324578: [BACKOUT] [IMPROVE] OPEN_MAX is no longer the max limit on macOS >= 10.6 for RLIMIT_NOFILE
Reviewed-by: darcy, kvn
2024-01-24 03:14:01 +00:00
William Kemper
c17059dee7 8324334: Shenandoah: Improve end of process report
Reviewed-by: kdnilsen, ysr
2024-01-24 02:08:11 +00:00
Justin Lu
96607df7f0 8321545: Override toString() for Format subclasses
Reviewed-by: naoto, rriggs
2024-01-23 22:22:16 +00:00
Chris Plummer
edfee7f348 8323546: Cleanup jcmd docs for Compiler.perfmap and VM.cds filename parameter
Reviewed-by: dholmes, sspitsyn, iklam
2024-01-23 20:33:49 +00:00
Aleksey Shipilev
8b9bf75880 8323515: Create test alias "all" for all test roots
Reviewed-by: dholmes, alanb, joehw, lmesnik
2024-01-23 17:03:35 +00:00
Gerard Ziemski
3d8236367d 8300088: [IMPROVE] OPEN_MAX is no longer the max limit on macOS >= 10.6 for RLIMIT_NOFILE
Reviewed-by: dholmes, fparain, dcubed
2024-01-23 16:15:59 +00:00
Albert Mingkun Yang
2a01c798d3 8324513: Inline ContiguousSpace::object_iterate_from
Reviewed-by: stefank
2024-01-23 15:51:58 +00:00
Darragh Clarke
fbaaac63d4 8314164: java/net/HttpURLConnection/HttpURLConnectionExpectContinueTest.java fails intermittently in timeout
Reviewed-by: dfuchs, djelinski
2024-01-23 14:07:17 +00:00
sendaoYan
791b427f44 8323640: [TESTBUG]testMemoryFailCount in jdk/internal/platform/docker/TestDockerMemoryMetrics.java always fail because OOM killed
Reviewed-by: sgehwolf
2024-01-23 13:19:49 +00:00
Hamlin Li
bcaad515fd 8318228: RISC-V: C2 ConvF2HF
Reviewed-by: fyang, vkempik
2024-01-23 12:02:28 +00:00
Albert Mingkun Yang
5acd37fa96 8324207: Serial: Remove Space::set_saved_mark_word
Reviewed-by: tschatzl, stefank
2024-01-23 09:40:09 +00:00
Albert Mingkun Yang
f5e6d111b1 8324210: Serial: Remove unused methods in Generation
Reviewed-by: tschatzl, stefank
2024-01-23 09:38:47 +00:00
Kim Barrett
bcb340da09 8324286: Fix backsliding on use of nullptr instead of NULL
Reviewed-by: jsjolen, coleenp, jwaters
2024-01-23 08:49:46 +00:00
Matthias Baesken
3696765b7d 8323964: runtime/Thread/ThreadCountLimit.java fails intermittently on AIX
Reviewed-by: dholmes, stuefe
2024-01-23 08:17:00 +00:00
David Holmes
5a74c2a67e 8323438: Enhance assertions for Windows sync API failures
Reviewed-by: ccheung, jwaters, dcubed
2024-01-23 01:09:14 +00:00
Vladimir Kozlov
52523d33dd 8324050: Issue store-store barrier after re-materializing objects during deoptimization
Reviewed-by: dlong, shade
2024-01-22 22:50:32 +00:00
Y. Srinivas Ramakrishna
df370d725e 8314329: AgeTable: add is_clear() & allocation spec, and relax assert to allow use of 0-index slot
AgeTable changes:
1. add CHeap allocation spec
2. add a non-product const is_clear() method to check if the age table has only zero entries
3. relax the assertion that the 0th index of the age table is never used, to allow use of that slot

Reviewed-by: wkemper, kdnilsen, ayang, shade
2024-01-22 19:51:47 +00:00
Naoto Sato
0d8543d677 8324065: Daylight saving information for Africa/Casablanca are incorrect
Reviewed-by: iris, joehw, jlu
2024-01-22 17:15:53 +00:00
Jan Lahoda
c9cacfb25d 8323657: Compilation of snippet results in VerifyError at runtime with --release 9 (and above)
Reviewed-by: vromero
2024-01-22 13:06:19 +00:00
Aleksey Shipilev
bde650f21e 8322282: Incorrect LoaderConstraintTable::add_entry after JDK-8298468
Reviewed-by: dholmes, simonis, coleenp
2024-01-22 12:30:36 +00:00
Tobias Holenstein
be943a9fd6 8321984: IGV: Upgrade to Netbeans Platform 20
Reviewed-by: rcastanedalo, chagedorn
2024-01-22 12:18:22 +00:00
Johan Sjölen
d3b2ac1507 8314186: runtime/8176717/TestInheritFD.java failed with "Log file was leaked"
Reviewed-by: lkorinth, dholmes
2024-01-22 11:03:39 +00:00
Jan Lahoda
72f199024d 8323057: Recoverable errors may be reported before unrecoverable errors when annotation processing is skipped
Reviewed-by: vromero
2024-01-22 10:55:10 +00:00
Emanuel Peter
c84af49386 8324129: C2: Remove some ttyLocker usages in preparation for JDK-8306767
Reviewed-by: kvn, vlivanov, dholmes
2024-01-22 10:41:36 +00:00
Hamlin Li
fd372629f7 8323748: RISC-V: Add Zfh probe code
Reviewed-by: fyang
2024-01-22 10:14:25 +00:00
Cesar Soares Lucas
76afa02dab 8322572: AllocationMergesTests.java fails with "IRViolationException: There were one or multiple IR rule failures."
Reviewed-by: kvn, thartmann
2024-01-22 08:22:33 +00:00
Martin Desruisseaux
2003610b3b 8323108: BufferedImage.setData(Raster) should not cast float and double values to integers
Reviewed-by: prr, bpb, serb
2024-01-21 23:47:51 +00:00
Kim Barrett
a474b37212 8324240: Remove unused GrowableArrayView::EMPTY
Reviewed-by: dcubed
2024-01-21 02:28:54 +00:00
Erik Gahlin
68b5aab020 8324229: JFR: Temporarily disable assertion for missing object reference
Reviewed-by: mgronlun
2024-01-20 18:21:45 +00:00
Jonathan Gibbons
f54a336cb7 8324231: bad command-line option in make/Docs.gmk
Reviewed-by: erikj
2024-01-20 18:12:44 +00:00
Sam James
f4d08ccf80 8318696: Do not use LFS64 symbols on Linux
Reviewed-by: ihse, dholmes, kbarrett, mbaesken
2024-01-20 09:49:44 +00:00
Magnus Ihse Bursie
9049402a1b 8323675: Race in jdk.javadoc-gendata
Reviewed-by: erikj, jlahoda
2024-01-19 22:31:23 +00:00
Harshitha Onkar
f1b73350c2 8320113: [macos14] : ShapeNotSetSometimes.java fails intermittently on macOS 14
Reviewed-by: dnguyen, azvegint, kizune
2024-01-19 21:42:34 +00:00
Serguei Spitsyn
8700de66e4 8322744: VirtualThread.notifyJvmtiDisableSuspend should be static
Reviewed-by: pchilanomate, alanb
2024-01-19 18:40:55 +00:00
Mandy Chung
6c0bebccb0 8159927: Add a test to verify JMOD files created in the images do not have debug symbols
Reviewed-by: jlaskey
2024-01-19 17:42:55 +00:00
Calvin Cheung
437342b93e 8323556: CDS archive space addresses should be randomized with ArchiveRelocationMode=1
Reviewed-by: iklam, matsaave
2024-01-19 17:11:01 +00:00
Calvin Cheung
39005e27d6 8324041: ModuleOption.java failed with update release versioning scheme
Reviewed-by: dholmes, mbaesken
2024-01-19 17:02:29 +00:00
Coleen Phillimore
2865afe759 8323685: PrintSystemDictionaryAtExit has mutex rank assert
Co-authored-by: Thomas Schatzl <tschatzl@openjdk.org>
Reviewed-by: tschatzl, ayang
2024-01-19 16:54:03 +00:00
Christian Hagedorn
6997bfc68d 8323154: C2: assert(cmp != nullptr && cmp->Opcode() == Op_Cmp(bt)) failed: no exit test
Reviewed-by: roland, thartmann, qamai
2024-01-19 15:49:02 +00:00
Roman Kennke
16be38887f 8322383: G1: Only preserve marks on objects that are actually moved
Reviewed-by: ayang, tschatzl
2024-01-19 12:59:21 +00:00
Albert Mingkun Yang
0081d8c07f 8324147: Serial: Remove generation::compute_new_size
Reviewed-by: ehelin
2024-01-19 11:48:34 +00:00
Matthias Baesken
5f7141982c 8322366: Add IEEE rounding mode corruption check to JNI checks
Reviewed-by: dholmes, lucy
2024-01-19 09:10:37 +00:00
Matthias Baesken
05330227be 8222719: libperfstat on AIX - cleanup old API versions
Reviewed-by: goetz, clanger
2024-01-19 08:14:13 +00:00
Tejesh R
05dad67cc2 8295804: javax/swing/JFileChooser/JFileChooserSetLocationTest.java failed with "setLocation() is not working properly"
Reviewed-by: prr, serb
2024-01-19 05:57:02 +00:00
Pavel Rappo
9efdd242fb 8324053: Use the blessed modifier order for sealed in java.base
Reviewed-by: naoto, darcy, ihse, dfuchs
2024-01-18 22:28:23 +00:00
Hannes Wallnöfer
81df265e41 8320458: Improve structural navigation in API documentation
Reviewed-by: erikj, jjg
2024-01-18 19:06:26 +00:00
Joe Darcy
a6c0b10704 8323684: TypeMirror.{getAnnotationsByType, getAnnotation} return uninformative results
Reviewed-by: jjg
2024-01-18 19:04:26 +00:00
Daniel D. Daugherty
5c874c19cb 8324161: validate-source fails after JDK-8275338
Reviewed-by: darcy
2024-01-18 17:42:55 +00:00
Matthew Donovan
b6233c3de7 8321925: sun/security/mscapi/KeytoolChangeAlias.java fails with "Alias <246810> does not exist"
Reviewed-by: rhalade
2024-01-18 17:33:31 +00:00
Raffaello Giulietti
bfd2afe5ad 8275338: Add JFR events for notable serialization situations
Reviewed-by: rriggs, egahlin
2024-01-18 17:05:35 +00:00
Claes Redestad
4c1a0fc58f 8323995: Suppress notes generated on incremental microbenchmark builds
Reviewed-by: erikj, ihse
2024-01-18 15:40:39 +00:00
Albert Mingkun Yang
a2b117ae02 8324132: G1: Remove unimplemented G1MonitoringSupport::recalculate_eden_size
Reviewed-by: tschatzl
2024-01-18 15:23:11 +00:00
Albert Mingkun Yang
8e534598b5 8323993: Serial: Refactor gc_prologue and gc_epilogue
Reviewed-by: stefank, ehelin
2024-01-18 15:22:56 +00:00
Daniel D. Daugherty
aeb304b29e 8324074: increase timeout for jvmci test TestResolvedJavaMethod.java
Reviewed-by: stuefe, thartmann
2024-01-18 13:16:05 +00:00
Daniel D. Daugherty
a22ae909bc 8321938: java/foreign/critical/TestCriticalUpcall.java does not need a core file
Reviewed-by: dholmes
2024-01-18 13:15:55 +00:00
Daniel D. Daugherty
806ffb1085 8324082: more monitoring test timeout adjustments
Reviewed-by: kevinw, sspitsyn
2024-01-18 13:15:45 +00:00
Patricio Chilano Mateo
52f787f675 8323595: is_aligned(p, alignof(OopT))) assertion fails in Jetty without compressed OOPs
Reviewed-by: fparain, dlong
2024-01-18 12:16:26 +00:00
Song Pham
cbfddf4e1d 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination
Reviewed-by: honkar, aivanov, shurailine
2024-01-18 10:03:47 +00:00
Andrew Leonard
57fad67781 8323667: Library debug files contain non-reproducible full gcc include paths
Reviewed-by: erikj, ihse
2024-01-18 09:56:54 +00:00
Gui Cao
ff8cc268fd 8323694: RISC-V: Unnecessary ResourceMark in NativeCall::set_destination_mt_safe
Reviewed-by: fyang, rehn
2024-01-18 02:28:54 +00:00
Renjith Kannath Pariyangad
dadd9cd1e8 8316497: ColorConvertOp - typo for non-ICC conversions needs one-line fix
Co-authored-by: Sergey Bylokhov <serb@openjdk.org>
Co-authored-by: Alexey Ivanov <aivanov@openjdk.org>
Reviewed-by: aivanov, serb
2024-01-18 01:23:30 +00:00
Sergey Bylokhov
de237fb058 8323554: The typos in Javadoc: "@return if "
Reviewed-by: prr
2024-01-17 19:35:05 +00:00
Anthony Scarpino
51dbd36c74 8322100: Fix GCMIncrementByte4 & GCMIncrementDirect4, and increase overlap testing
Reviewed-by: jnimeh
2024-01-17 18:08:38 +00:00
Artem Semenov
ffa33d7b80 8317771: [macos14] Expand/collapse a JTree using keyboard freezes the application in macOS 14 Sonoma
Reviewed-by: kizune
2024-01-17 16:44:27 +00:00
Brian Burkhalter
4e5323538c 8323710: (fc) FileChannel.lock creates a FileKey with a poor hashCode after JDK-8321429 (win)
Reviewed-by: alanb
2024-01-17 16:34:48 +00:00
Brian Burkhalter
19287eeeb2 8321561: (fs) Clarify non-atomic behavior of Files.move
Reviewed-by: alanb
2024-01-17 16:34:33 +00:00
Claes Redestad
8b29e127c2 8323794: Remove unused jimage compressor plugin configuration
Reviewed-by: jlaskey, mchung
2024-01-17 15:41:13 +00:00
Aleksey Shipilev
7be9f1d054 8321137: Reconsider ICStub alignment
Reviewed-by: dlong, eosterlund, mdoerr, fyang, aph
2024-01-17 12:48:37 +00:00
Alan Bateman
b8dafa642e 8323612: IOVecWrapper should be changed to be TerminatingThreadLocal
Reviewed-by: bpb
2024-01-17 10:56:17 +00:00
Albert Mingkun Yang
f2a4ed680b 8323779: Serial: Remove Generation::promotion_attempt_is_safe
Reviewed-by: stefank, cjplummer
2024-01-17 10:25:00 +00:00
Joachim Kern
22642ff0aa 8319382: com/sun/jdi/JdwpAllowTest.java shows failures on AIX if prefixLen of mask is larger than 32 in IPv6 case
Reviewed-by: mbaesken, amenkov
2024-01-17 09:34:09 +00:00
Tobias Holenstein
b89172149d 8316756: C2 EA fails with "missing memory path" when encountering unsafe_arraycopy stub call
Co-authored-by: Vladimir Kozlov <kvn@openjdk.org>
Reviewed-by: kvn, thartmann, chagedorn
2024-01-17 08:07:04 +00:00
Roberto Castañeda Lozano
bf666bc0c7 8322692: ZGC: avoid over-unrolling due to hidden barrier size
Reviewed-by: eosterlund, kvn
2024-01-17 07:50:03 +00:00
Richard Reingruber
de97c0eb4b 8290965: PPC64: Implement post-call NOPs
Reviewed-by: mdoerr
2024-01-17 06:50:32 +00:00
Prasanta Sadhukhan
f70667ea68 8318112: CSS percentage values are capped at 100%
Reviewed-by: tr, prr
2024-01-17 02:28:36 +00:00
Henry Jen
2063bb8ffa Merge
Reviewed-by: erikj
2024-01-17 01:41:52 +00:00
Joe Darcy
d8b63370f3 8323839: Expand use of Messager convenience methods in langtools regression tests
Reviewed-by: jjg
2024-01-17 00:29:05 +00:00
John Jiang
43d2d68da5 8320449: ECDHKeyAgreement should validate parameters before using them
Reviewed-by: mullan
2024-01-16 22:54:45 +00:00
Joshua Cao
b058063c40 8323820: [MacOS] build failure: non-void function does not return a value
Reviewed-by: shade, lucy
2024-01-16 22:01:21 +00:00
Doug Simon
19c9388c20 8323616: [JVMCI] TestInvalidJVMCIOption.java fails intermittently with NPE
Reviewed-by: thartmann, never
2024-01-16 19:31:04 +00:00
Jonathan Gibbons
b533272ecb 8299627: Fix/improve handling of "missing" element-list file
Reviewed-by: hannesw
2024-01-16 18:41:25 +00:00
Thomas Schatzl
1007618f6f 8323731: Unproblemlist gc/stress/TestStressG1Humongous.java
Reviewed-by: ehelin
2024-01-16 14:42:32 +00:00
Albert Mingkun Yang
790871e908 8323800: Serial: Fix include guard macro in generation.hpp
Reviewed-by: stefank
2024-01-16 14:26:22 +00:00
Stefan Karlsson
0216f5de55 8323730: Tweak TestZAllocationStallEvent.java to allocate smaller objects
Reviewed-by: aboldtch, sjohanss
2024-01-16 14:26:10 +00:00
Erik Gahlin
21f647310b 8322675: JFR: Fail-fast mode when constants cannot be resolved
Reviewed-by: mgronlun
2024-01-16 13:59:29 +00:00
Markus Grönlund
e2d6023cb9 8323631: JfrTypeSet::write_klass can enqueue a CLD klass that is unloading
Reviewed-by: egahlin
2024-01-16 13:31:03 +00:00
Jorn Vernee
2fd775f69c 8323651: compiler/c2/irTests/TestPrunedExHandler.java fails with -XX:+DeoptimizeALot
Reviewed-by: alanb, kvn
2024-01-16 13:25:49 +00:00
Chris Hegarty
ee4d9aa4c1 8323659: LinkedTransferQueue add and put methods call overridable offer
Reviewed-by: alanb
2024-01-16 12:13:57 +00:00
Thomas Schatzl
5045839cb2 8323635: Test gc/g1/TestHumongousAllocConcurrentStart.java fails with -XX:TieredStopAtLevel=3
Reviewed-by: shade, lmesnik
2024-01-16 12:00:57 +00:00
Albert Mingkun Yang
44a9392eca 8323780: Serial: Remove unused _full_collections_completed
Reviewed-by: ehelin, stefank
2024-01-16 11:56:10 +00:00
Stefan Karlsson
59062402b9 8323716: Only print ZGC Phase Switch events in hs_err files when running with ZGC
Reviewed-by: aboldtch, tschatzl, shade
2024-01-16 10:30:32 +00:00
Emanuel Peter
e01f6da1b8 8320175: [BACKOUT] 8316533: C2 compilation fails with assert(verify(phase)) failed: missing Value() optimization
Reviewed-by: thartmann, chagedorn
2024-01-16 10:15:00 +00:00
Albert Mingkun Yang
8abaf11965 8323715: Serial: Move genMemoryPools to serial folder
Reviewed-by: stefank, tschatzl
2024-01-16 08:39:07 +00:00
Albert Mingkun Yang
67204994dc 8323738: Serial: Remove unreachable methods in Generation
Reviewed-by: tschatzl, stefank
2024-01-16 08:38:53 +00:00
Ferenc Rakoczi
bf7bd9a16c 8317547: Enhance TLS connection support
Reviewed-by: ahgross, rhalade, weijun, valeriep
2024-01-16 05:55:56 +00:00
Christian Hagedorn
c1a568c9c4 8314307: Improve loop handling
Co-authored-by: Christian Hagedorn <chagedorn@openjdk.org>
Co-authored-by: Roland Westrelin <rwestrel@redhat.com>
Co-authored-by: Emanuel Peter <epeter@openjdk.org>
Reviewed-by: mschoene, rhalade, thartmann, epeter
2024-01-16 05:55:56 +00:00
Tobias Hartmann
1cc6fbd9b0 8318588: Windows build failure after JDK-8314468 due to ambiguous call
Reviewed-by: epeter
2024-01-16 05:55:56 +00:00
Tobias Hartmann
ed238e8b88 8314468: Improve Compiler loops
Co-authored-by: Dean Long <dlong@openjdk.org>
Reviewed-by: rhalade, mschoene, iveresov, kvn
2024-01-16 05:55:55 +00:00
Coleen Phillimore
fac49b8375 8317331: Solaris build failed with "declaration can not follow a statement (E_DECLARATION_IN_CODE)"
Backport-of: 852276d1f833d49802693f2a5a82ba6eb2722de6
2024-01-16 05:55:55 +00:00
Coleen Phillimore
fff750c99d 8314295: Enhance verification of verifier
Reviewed-by: mschoene, rhalade, dholmes, dlong
2024-01-16 05:55:55 +00:00
Sean Mullan
a2544568f9 8308204: Enhanced certificate processing
Reviewed-by: mschoene, rhalade, jnimeh
2024-01-16 05:55:55 +00:00
Yude Lin
36f4b34f19 8323122: AArch64: Increase itable stub size estimate
Reviewed-by: aph, eastigeevich
2024-01-16 05:15:22 +00:00
Hamlin Li
b363472265 8318227: RISC-V: C2 ConvHF2F
Reviewed-by: fyang
2024-01-15 18:41:53 +00:00
Per Minborg
edc0ebb780 8323745: Missing comma in copyright header in TestScope
Reviewed-by: alanb
2024-01-15 16:30:59 +00:00
Glavo
a03eb6d3f6 8321620: Optimize JImage decompressors
Reviewed-by: mchung, redestad
2024-01-15 16:10:35 +00:00
Per Minborg
f5b757ced6 8323159: Consider adding some text re. memory zeroing in Arena::allocate
Reviewed-by: mcimadamore, jvernee
2024-01-15 16:07:56 +00:00
Albert Mingkun Yang
1f4474f677 8323726: Serial: Remove unused definitions in Generation
Reviewed-by: stefank
2024-01-15 15:21:09 +00:00
Andrew Leonard
dd0694b9cb 8323671: DevKit build gcc libraries contain full paths to source location
Reviewed-by: erikj, ihse
2024-01-15 14:39:28 +00:00
Guoxiong Li
bf813be0f3 8322279: Generational ZGC: Use ZFragmentationLimit and ZYoungCompactionLimit as percentage instead of multiples
Reviewed-by: eosterlund
2024-01-15 14:34:14 +00:00
Magnus Ihse Bursie
c84c0ab52d 8323637: Capture hotspot replay files in GHA
Reviewed-by: shade
2024-01-15 14:14:13 +00:00
Rajat Mahajan
f368a0c12e 8320328: Restore interrupted flag in ImageIcon.loadImage
Reviewed-by: aivanov, serb
2024-01-15 13:09:00 +00:00
Albert Mingkun Yang
a45b5b4921 8323722: Serial: Remove unused no_gc_in_progress
Reviewed-by: stefank, tschatzl
2024-01-15 12:58:23 +00:00
Christian Hagedorn
7e0a4ed629 8323101: C2: assert(n->in(0) == nullptr) failed: divisions with zero check should already have bailed out earlier in split-if
Reviewed-by: kvn, thartmann
2024-01-15 12:16:10 +00:00
Aleksey Shipilev
34f85ee94e 8323584: AArch64: Unnecessary ResourceMark in NativeCall::set_destination_mt_safe
Reviewed-by: tholenstein, fyang, aph
2024-01-15 12:03:01 +00:00
Jan Kratochvil
62fd26f094 8323700: Add fontconfig requirement to building.md for Alpine Linux
Reviewed-by: ihse
2024-01-15 11:20:44 +00:00
Kevin Walls
8c238eddce 8318707: Remove the Java Management Extension (JMX) Management Applet (m-let) feature
Reviewed-by: sspitsyn, dfuchs
2024-01-15 11:12:38 +00:00
Emanuel Peter
cd0fe37741 8323641: Test compiler/loopopts/superword/TestAlignVectorFuzzer.java timed out
Reviewed-by: chagedorn, kvn
2024-01-15 10:44:01 +00:00
Emanuel Peter
45c65e6b1a 8323577: C2 SuperWord: remove AlignVector restrictions on IR tests added in JDK-8305055
Reviewed-by: rcastanedalo, chagedorn
2024-01-15 10:41:05 +00:00
Thomas Schatzl
8643cc2133 8323610: G1: HeapRegion pin count should be size_t to avoid overflows
Reviewed-by: kbarrett, ayang
2024-01-15 09:35:50 +00:00
Lei Zaakjyu
e66a76f524 8323660: Serial: Fix header ordering and indentation
Reviewed-by: ayang, cjplummer, kbarrett
2024-01-15 09:13:47 +00:00
Aleksey Shipilev
ba3c3bbd87 8323519: Add applications/ctw/modules to Hotspot tiered testing
Reviewed-by: xliu, kvn
2024-01-15 09:10:11 +00:00
Lei Zaakjyu
922f8e44ee 8323693: Update some copyright announcements in the new files created in 8234502
Reviewed-by: cjplummer, dholmes
2024-01-15 07:40:49 +00:00
Zhiqiang Zang
1515bd7c9d 8322077: Add Ideal transformation: (~a) | (~b) => ~(a & b)
Reviewed-by: thartmann, epeter
2024-01-15 06:48:00 +00:00
Sergey Bylokhov
bdee968e3e 4760025: sRGB conversions to and from CIE XYZ incorrect
Reviewed-by: prr, aivanov
2024-01-14 23:05:47 +00:00
David Holmes
71d9a83dec 8323243: JNI invocation of an abstract instance method corrupts the stack
Reviewed-by: coleenp, shade
2024-01-14 22:01:44 +00:00
Varada M
d83ea92085 8301466: [AIX] Revisit CommittedVirtualMemoryTest
Reviewed-by: mdoerr
2024-01-13 14:12:44 +00:00
Sergey Bylokhov
5cf7947ccd 8323562: SaslInputStream.read() may return wrong value
Co-authored-by: Aleksey Shipilev <shade@openjdk.org>
Reviewed-by: shade, dfuchs
2024-01-12 23:50:28 +00:00
Alisen Chung
dc7d3b182d 8321489: Update LCMS to 2.16
Reviewed-by: serb, dnguyen, prr
2024-01-12 22:16:09 +00:00
Alex Menkov
84cf4cb350 8318563: GetClassFields should not use random access to field
Reviewed-by: sspitsyn, cjplummer, fparain
2024-01-12 20:41:49 +00:00
Joe Darcy
9e9c05f0ee 8322979: Add informative discussion to Modifier
Reviewed-by: alanb
2024-01-12 19:40:55 +00:00
Harshitha Onkar
c54bca6f7f 8323617: Add missing null checks to GetMousePositionWithPopup.java test
Reviewed-by: serb, aivanov, dnguyen
2024-01-12 19:21:52 +00:00
William Kemper
95a91682c3 8323627: Shenandoah: Refactor init logger
Reviewed-by: ysr, kdnilsen, shade, phh
2024-01-12 18:57:36 +00:00
Harshitha Onkar
999e556be4 8312518: [macos13] setFullScreenWindow() shows black screen on macOS 13 & above
Reviewed-by: serb, tr, azvegint
2024-01-12 17:56:16 +00:00
Rajat Mahajan
8b6293f6bf 8301994: Remove unused code from awt_List.cpp
Reviewed-by: serb, prr, aivanov
2024-01-12 17:14:16 +00:00
William Kemper
e33031b850 8323629: Shenandoah: Fix missing include and declaration
Reviewed-by: ysr, kdnilsen, phh
2024-01-12 17:04:51 +00:00
Denghui Dong
c5e7245096 8322735: C2: minor improvements of bubble sort used in SuperWord::packset_sort
Reviewed-by: epeter, kvn
2024-01-12 15:21:37 +00:00
Axel Boldt-Christmas
65a0672791 8319773: Avoid inflating monitors when installing hash codes for LM_LIGHTWEIGHT
Reviewed-by: rkennke, dcubed, thartmann
2024-01-12 14:34:42 +00:00
Albert Mingkun Yang
e22ab10991 8322537: Parallel: Remove experimental adjustment in PSAdaptiveSizePolicy
Reviewed-by: kbarrett, tschatzl
2024-01-12 13:51:29 +00:00
Erik Gahlin
be900f1253 8323425: JFR: Auto-generated filename doesn't work with time-limited recording
Reviewed-by: mgronlun
2024-01-12 13:12:37 +00:00
Matthias Baesken
68c4286026 8323008: filter out harmful -std* flags added by autoconf from CXX
Reviewed-by: erikj, clanger, ihse
2024-01-12 12:29:07 +00:00
Lei Zaakjyu
7dc9dd6fdf 8234502: Merge GenCollectedHeap and SerialHeap
Reviewed-by: ayang, cjplummer
2024-01-12 10:56:50 +00:00
Cesar Soares Lucas
ed18222365 8323190: Segfault during deoptimization of C2-compiled code
Reviewed-by: thartmann, chagedorn
2024-01-12 10:43:16 +00:00
Claes Redestad
3e19bf88d5 8323529: Relativize test image dependencies in microbenchmarks
Reviewed-by: mcimadamore, jvernee, erikj
2024-01-12 10:00:37 +00:00
Stefan Karlsson
ba23025cd8 8322957: Generational ZGC: Relocation selection must join the STS
Co-authored-by: Axel Boldt-Christmas <aboldtch@openjdk.org>
Reviewed-by: eosterlund, aboldtch
2024-01-12 09:32:50 +00:00
Stefan Karlsson
7c3a39f400 8323297: Fix incorrect placement of precompiled.hpp include lines
Reviewed-by: kbarrett, dholmes, shade, ysr
2024-01-12 08:57:09 +00:00
Alan Bateman
e72723dc5c 8323296: java/lang/Thread/virtual/stress/GetStackTraceALotWhenPinned.java#id1 timed out
Reviewed-by: jpai
2024-01-12 08:33:27 +00:00
Afshin Zafari
66520be7a7 8280056: gtest/LargePageGtests.java#use-large-pages failed "os.release_one_mapping_multi_commits_vm"
Reviewed-by: stuefe, gziemski
2024-01-12 08:21:42 +00:00
Abhishek Kumar
82a63a03c0 8258979: The image didn't show correctly with GTK LAF
Reviewed-by: psadhukhan, tr
2024-01-12 07:53:41 +00:00
Kim Barrett
8d9814a521 8322757: Enable -Wparentheses warnings
Reviewed-by: dholmes, jwaters, erikj, ihse
2024-01-12 06:12:20 +00:00
Renjith Kannath Pariyangad
0ff2deab5d 8320673: PageFormat/CustomPaper.java has no Pass/Fail buttons; multiple instructions
Reviewed-by: serb, aivanov
2024-01-12 02:55:22 +00:00
Alexey Semenyuk
8e12053e03 8322799: Test JPKG003-013: ServiceTest fails because the user cannot uninstall the "servicetest" package on OEL 9.2 x64 and OEL 9.2 64-bit Arm (aarch64)
Reviewed-by: almatvee
2024-01-11 22:58:20 +00:00
Joe Wang
e4389d8dc2 8323571: Regression in source resolution process
Reviewed-by: lancea, naoto
2024-01-11 22:38:39 +00:00
Pavel Rappo
49e6121347 8310813: Simplify and modernize equals, hashCode, and compareTo for BigInteger
Reviewed-by: rriggs, redestad, rgiulietti
2024-01-11 21:48:58 +00:00
Justin Lu
4ea7b36447 8322235: Split up and improve LocaleProvidersRun
Reviewed-by: naoto
2024-01-11 20:59:53 +00:00
Chris Plummer
93bedd7aba 8323213: Fix some javadoc broken links in ObjectReference, and other misc javadoc cleanups
Reviewed-by: sspitsyn, amenkov
2024-01-11 18:13:11 +00:00
Tim Prinzing
b78896b9aa 8319571: Update jni/nullCaller/NullCallerTest.java to accept flags or mark as flagless
Reviewed-by: mchung
2024-01-11 17:37:30 +00:00
Sandhya Viswanathan
e10d14004f 8321712: C2: "failed: Multiple uses of register" in C2_MacroAssembler::vminmax_fp
Co-authored-by: Volodymyr Paprotski <vpaprotski@openjdk.org>
Reviewed-by: kvn, thartmann, epeter, jbhateja
2024-01-11 16:54:16 +00:00
Matthew Donovan
c2e77e2f17 8319128: sun/security/pkcs11 tests fail on OL 7.9 aarch64
Reviewed-by: mbaesken
2024-01-11 15:19:48 +00:00
Weijun Wang
9fd855ed47 8322971: KEM.getInstance() should check if a 3rd-party security provider is signed
Reviewed-by: mullan, valeriep
2024-01-11 13:45:40 +00:00
Joachim Kern
b8ae4a8c09 8320890: [AIX] Find a better way to mimic dl handle equality
Reviewed-by: stuefe, mdoerr
2024-01-11 13:12:32 +00:00
Varada M
e5aed6be7a 8323276: StressDirListings.java fails on AIX
Reviewed-by: jpai, dfuchs
2024-01-11 12:17:35 +00:00
Roland Westrelin
b922f8d459 8319793: C2 compilation fails with "Bad graph detected in build_loop_late" after JDK-8279888
Reviewed-by: chagedorn, epeter
2024-01-11 09:00:44 +00:00
Viktor Klang
35e9662767 8314515: java/util/concurrent/SynchronousQueue/Fairness.java failed with "Error: fair=false i=8 j=0"
Reviewed-by: alanb
2024-01-11 08:16:28 +00:00
Matthias Baesken
cb1d25fcfa 8323330: [BACKOUT] JDK-8276809: java/awt/font/JNICheck/FreeTypeScalerJNICheck.java shows JNI warning on Windows
Reviewed-by: prr, stuefe
2024-01-11 08:13:28 +00:00
Tejesh R
2b7fc0506a 8264102: JTable Keyboards Navigation differs with Test Instructions.
Reviewed-by: psadhukhan, abhiscxk
2024-01-11 07:34:14 +00:00
Denghui Dong
af942a693b 8323188: JFR: Needless RESOURCE_ARRAY when sending EventOSInformation
Reviewed-by: mgronlun
2024-01-11 07:17:28 +00:00
Eirik Bjørsnøs
26de9e247a 8321616: Retire binary test vectors in test/jdk/java/util/zip/ZipFile
8322830: Add test case for ZipFile opening a ZIP with no entries

Reviewed-by: lancea
2024-01-11 06:32:24 +00:00
Alex Menkov
b530c0281b 8317804: com/sun/jdi/JdwpAllowTest.java fails on Alpine 3.17 / 3.18
Reviewed-by: cjplummer, mbaesken
2024-01-11 00:36:16 +00:00
Eirik Bjørsnøs
e70cb4e6c7 8322565: (zipfs) Files.setPosixPermissions should preserve 'external file attributes' bits
Reviewed-by: clanger, lancea
2024-01-10 21:42:23 +00:00
Xin Liu
d89602a53f 8322982: CTW fails to build after 8308753
Reviewed-by: shade, phh
2024-01-10 19:42:03 +00:00
Naoto Sato
3bd9042054 8320788: The system properties page is missing some properties
Reviewed-by: iris, rriggs, bpb, joehw
2024-01-10 18:54:02 +00:00
Joe Darcy
525063be90 8322878: Including sealing information Class.toGenericString()
Co-authored-by: Pavel Rappo <prappo@openjdk.org>
Reviewed-by: rriggs
2024-01-10 18:46:56 +00:00
Markus Grönlund
c1282b57f5 8323540: assert((!((((method)->is_trace_flag_set(((1 << 4) << 8))))))) failed: invariant
Reviewed-by: mikael
2024-01-10 18:37:33 +00:00
Vicente Romero
5ba69e1734 8322477: order of subclasses in the permits clause can differ between compilations
Reviewed-by: jlahoda
2024-01-10 17:52:50 +00:00
Gerard Ziemski
c96cbe481c 8313083: Print 'rss' and 'cache' as part of the container information
Reviewed-by: sgehwolf
2024-01-10 17:29:55 +00:00
William Kemper
a7db4feceb 8323428: Shenandoah: Unused memory in regions compacted during a full GC should be mangled
Reviewed-by: ysr, kdnilsen, shade
2024-01-10 17:10:39 +00:00
Viktor Klang
b86c3b7a68 8309218: java/util/concurrent/locks/Lock/OOMEInAQS.java still times out with ZGC, Generational ZGC, and SerialGC
Reviewed-by: jpai, dholmes, alanb
2024-01-10 16:42:30 +00:00
Brian Burkhalter
475306b757 7057369: (fs spec) FileStore getUsableSpace and getUnallocatedSpace could be clearer
Reviewed-by: alanb
2024-01-10 16:34:06 +00:00
Albert Mingkun Yang
f016934184 8323518: Parallel: Remove unused methods in psParallelCompact.hpp
Reviewed-by: tschatzl
2024-01-10 15:19:09 +00:00
Albert Mingkun Yang
2174f6646e 8323005: Parallel: Refactor PSPromotionManager::claim_or_forward_depth
Reviewed-by: tschatzl, rrich
2024-01-10 15:18:57 +00:00
Matthias Baesken
16170678a7 8323331: fix typo hpage_pdm_size
Reviewed-by: shade, mdoerr
2024-01-10 15:03:21 +00:00
Serguei Spitsyn
2806adee2d 8321685: Missing ResourceMark in code called from JvmtiEnvBase::get_vthread_jvf
Reviewed-by: amenkov, cjplummer
2024-01-10 14:07:57 +00:00
Stefan Karlsson
ec38505720 8323508: Remove TestGCLockerWithShenandoah.java line from TEST.groups
Reviewed-by: dholmes, shade, tschatzl
2024-01-10 13:25:43 +00:00
Jorn Vernee
d2d58dd6a8 8322324: java/foreign/TestStubAllocFailure.java times out while waiting for forked process
8322637: java/foreign/critical/TestCriticalUpcall.java timed out

Reviewed-by: mcimadamore
2024-01-10 13:13:32 +00:00
Markus Grönlund
b2a39c5767 8316241: Test jdk/jdk/jfr/jvm/TestChunkIntegrity.java failed
Reviewed-by: egahlin
2024-01-10 13:03:36 +00:00
Guoxiong Li
679f526d89 8322278: Generational ZGC: Adjust the comment of ZHeuristics::use_per_cpu_shared_small_pages
Reviewed-by: eosterlund
2024-01-10 12:18:12 +00:00
Richard Reingruber
2e472fe7ea 8322294: Cleanup NativePostCallNop
Reviewed-by: mdoerr, aph
2024-01-10 12:18:01 +00:00
Guoxiong Li
88dafe564f 8314629: Generational ZGC: Clearing All SoftReferences log line lacks GCId
Reviewed-by: eosterlund, tschatzl
2024-01-10 12:15:38 +00:00
Albert Mingkun Yang
8d9479910f 8322828: Parallel: Rename ParallelCompactData::_region_start
Reviewed-by: tschatzl, ehelin
2024-01-10 11:28:51 +00:00
Albert Mingkun Yang
9847086466 8323499: Remove unused methods in space.hpp
Reviewed-by: tschatzl
2024-01-10 10:56:24 +00:00
Thomas Schatzl
40861761c2 8322987: Remove gc/stress/gclocker/TestGCLocker* since they always fail with OOME
Reviewed-by: ayang, lmesnik
2024-01-10 09:57:16 +00:00
Tobias Holenstein
88378ed058 8277869: Maven POMs are using HTTP links where HTTPS is available
Reviewed-by: kvn, thartmann
2024-01-10 08:30:47 +00:00
Zhiqiang Zang
8569227473 8322589: Add Ideal transformation: (~a) & (~b) => ~(a | b)
Reviewed-by: thartmann, epeter
2024-01-10 07:31:56 +00:00
Kim Barrett
f4ca41ad75 8322816: RISC-V: Incorrect guarantee in patch_vtype
Reviewed-by: fyang, luhenry
2024-01-10 00:19:05 +00:00
Naoto Sato
376051a9be 8320919: Clarify Locale related system properties
Reviewed-by: smarks, rriggs
2024-01-09 23:11:21 +00:00
Kim Barrett
a5071e010b 8322817: RISC-V: Eliminate -Wparentheses warnings in riscv code
Reviewed-by: fyang, luhenry
2024-01-09 22:47:36 +00:00
Kim Barrett
28d8149c69 8323115: x86-32: Incorrect predicates for cmov instruct transforms with UseSSE
Reviewed-by: shade, thartmann
2024-01-09 22:33:13 +00:00
Kim Barrett
e9f7db3045 8322880: Eliminate -Wparentheses warnings in arm32 code
Reviewed-by: shade, dholmes
2024-01-09 22:26:17 +00:00
Sergey Bylokhov
aba19334ea 8323210: Update the usage of cmsFLAGS_COPY_ALPHA
Reviewed-by: prr
2024-01-09 22:05:37 +00:00
Mandy Chung
f3be138eb8 8322809: SystemModulesMap::classNames and moduleNames arrays do not match the order
Reviewed-by: alanb
2024-01-09 22:04:02 +00:00
Albert Mingkun Yang
bc05893f82 8323318: Remove unused Space::is_free_block
Reviewed-by: tschatzl
2024-01-09 19:37:28 +00:00
Alex Menkov
dd8ae61643 8322237: Heap dump contains duplicate thread records for mounted virtual threads
Reviewed-by: dholmes, sspitsyn
2024-01-09 19:31:03 +00:00
Thomas Schatzl
ee98d26218 8323066: gc/g1/TestSkipRebuildRemsetPhase.java fails with 'Skipping Remembered Set Rebuild.' missing
Reviewed-by: ayang, iwalulya
2024-01-09 17:03:28 +00:00
Lei Zaakjyu
886386c039 8322890: Directly return in OldPLABSizeConstraintFunc
Reviewed-by: ayang, tschatzl
2024-01-09 15:52:39 +00:00
Albert Mingkun Yang
438ab7c115 8323284: Remove unused FilteringClosure declaration
Reviewed-by: stefank, tschatzl
2024-01-09 14:23:42 +00:00
Thomas Schatzl
52c7ff1d81 8322330: JavadocHelperTest.java OOMEs with Parallel GC and ZGC
Reviewed-by: ayang, aboldtch
2024-01-09 13:47:32 +00:00
Lei Zaakjyu
ff499ef79f 8233443: G1 DetailedUsage class names overly generic for global namespace
Reviewed-by: ayang, gli, tschatzl
2024-01-09 13:26:38 +00:00
Pavel Rappo
37a61720b6 8322936: Update blessed-modifier-order.sh for default, sealed, and non-sealed
Reviewed-by: erikj, rriggs, martin
2024-01-09 11:36:36 +00:00
Pavel Rappo
7d42aa1513 8310277: jdk/javadoc/doclet/testMethodCommentAlgorithm/TestMethodCommentsAlgorithm.java fails with IllegalStateException
Reviewed-by: jjg
2024-01-09 11:31:50 +00:00
Albert Mingkun Yang
6e9671a8a8 8323264: Serial: Remove unused GenerationBlockSizeClosure
Reviewed-by: stefank
2024-01-09 10:37:02 +00:00
Boris Ulasevich
52a6c37558 8322858: compiler/c2/aarch64/TestFarJump.java fails on AArch64 due to unexpected PrintAssembly output
Reviewed-by: aph, thartmann
2024-01-09 10:33:52 +00:00
David Holmes
075fed91bd 8323241: jcmd manpage should use lists for argument lists
Reviewed-by: alanb
2024-01-09 08:19:57 +00:00
Robbin Ehn
30f93a29c2 8320069: RISC-V: Add Zcb instructions
Reviewed-by: fyang, vkempik
2024-01-09 07:34:50 +00:00
Ludovic Henry
4cf131a101 8319716: RISC-V: Add SHA-2
Co-authored-by: Robbin Ehn <rehn@openjdk.org>
Reviewed-by: fyang, mli, luhenry
2024-01-09 07:26:35 +00:00
Alan Bateman
7286f5291d 8322829: Refactor nioBlocker to avoid blocking while holding Thread's interrupt lock
Reviewed-by: jpai
2024-01-09 07:05:27 +00:00
Albert Mingkun Yang
07fce8eff2 8320864: Serial: Extract out Full GC related fields from ContiguousSpace
Reviewed-by: kbarrett, sjohanss
2024-01-09 06:11:44 +00:00
Athijegannathan Sundararajan
176606d0cb 8310995: missing @since tags in 36 jdk.dynalink classes
Reviewed-by: jlaskey, iris, attila
2024-01-09 04:36:30 +00:00
Weibing Xiao
8ae309ebac 8318971: Better Error Handling for Jar Tool When Processing Non-existent Files
Reviewed-by: alanb, jpai
2024-01-09 04:04:12 +00:00
Calvin Cheung
841ab487f8 8322657: CDS filemap fastdebug assert while loading Graal CE Polyglot in isolated classloader
Reviewed-by: matsaave, dholmes
2024-01-08 23:53:06 +00:00
Calvin Cheung
61ebe3b0c4 8323032: OptimizedModuleHandlingTest failed in dynamic CDS archive mode
Reviewed-by: dholmes, matsaave
2024-01-08 22:41:07 +00:00
Kim Barrett
ca9635df33 8322759: Eliminate -Wparentheses warnings in compiler code
Reviewed-by: kvn, shade
2024-01-08 21:26:18 +00:00
Mikael Vidstedt
8a4dc79e1a 8274300: Address dsymutil warning by excluding platform specific files
Reviewed-by: erikj
2024-01-08 20:17:29 +00:00
Rajat Mahajan
d78e8dab93 8322545: Declare newInsets as static in ThemeReader.cpp
Reviewed-by: serb, aivanov
2024-01-08 19:58:32 +00:00
Joshua Cao
24823ba647 8323095: Expand TraceOptoParse block output abbreviations
Reviewed-by: thartmann, chagedorn, xliu
2024-01-08 19:46:04 +00:00
Xin Liu
d47393bd82 8320128: Clean up Parse constructor for OSR
Reviewed-by: thartmann, shade
2024-01-08 18:53:41 +00:00
Chris Plummer
387828a3f7 8322980: Debug agent's dumpThread() API should update thread's name before printing it
Reviewed-by: kevinw, sspitsyn
2024-01-08 16:56:44 +00:00
William Kemper
c4a83bd6f6 8323086: Shenandoah: Heap could be corrupted by oom during evacuation
Reviewed-by: kdnilsen, shade
2024-01-08 16:44:28 +00:00
Emanuel Peter
827c71dac9 8310190: C2 SuperWord: AlignVector is broken, generates misaligned packs
Co-authored-by: Christian Hagedorn <chagedorn@openjdk.org>
Reviewed-by: kvn, chagedorn
2024-01-08 16:10:21 +00:00
Ilya Gavrilin
2acb5bd992 8322790: RISC-V: Tune costs for shuffles with no conversion
Reviewed-by: rehn, fyang
2024-01-08 15:53:58 +00:00
Jorn Vernee
c8fa3e21e6 8320310: CompiledMethod::has_monitors flag can be incorrect
Reviewed-by: vlivanov, thartmann
2024-01-08 14:55:17 +00:00
Jan Lahoda
57a65fe436 8322003: JShell - Incorrect type inference in lists of records implementing interfaces
Reviewed-by: vromero
2024-01-08 14:09:27 +00:00
Thomas Stuefe
c90768c93b 8318444: Write details about compilation bailouts into crash reports
Reviewed-by: thartmann, chagedorn
2024-01-08 13:47:43 +00:00
Fredrik Bredberg
29397d29ba 8320317: ObjectMonitor NotRunnable is not really an optimization
Reviewed-by: eosterlund, dholmes, shade, dcubed
2024-01-08 13:32:17 +00:00
Fredrik Bredberg
fc04750817 8321371: SpinPause() not implemented for bsd_aarch64/macOS
Reviewed-by: eosterlund, dholmes, dcubed, eastigeevich, shade
2024-01-08 13:30:23 +00:00
Christian Hagedorn
458e563cd9 8310711: [IR Framework] Remove safepoint while printing handling
Reviewed-by: thartmann, epeter
2024-01-08 12:57:55 +00:00
Matthias Baesken
71aac7a5fb 8276809: java/awt/font/JNICheck/FreeTypeScalerJNICheck.java shows JNI warning on Windows
Reviewed-by: rschmelter, stuefe
2024-01-08 11:45:18 +00:00
Markus Grönlund
09c6c4ff02 8322489: 22-b27: Up to 7% regression in all Footprint3-*-G1/ZGC
Reviewed-by: egahlin
2024-01-08 11:41:51 +00:00
Aleksey Shipilev
eb9e754b3a 8323065: Unneccesary CodeBlob lookup in CompiledIC::internal_set_ic_destination
Reviewed-by: dlong, thartmann
2024-01-08 10:27:00 +00:00
Kim Barrett
a40d397d5d 8323110: Eliminate -Wparentheses warnings in ppc code
Reviewed-by: dholmes
2024-01-08 09:01:33 +00:00
Per Minborg
7edd10e5fa 8321786: SegmentAllocator:allocateFrom(ValueLayout, MemorySegment,ValueLayout,long,long) spec mismatch in exception scenario
Reviewed-by: mcimadamore
2024-01-08 08:20:07 +00:00
Kim Barrett
d75d876edd 8322806: Eliminate -Wparentheses warnings in aarch64 code
Reviewed-by: stefank, dholmes
2024-01-08 07:30:21 +00:00
Prasanta Sadhukhan
e44276989f 8322754: click JComboBox when dialog about to close causes IllegalComponentStateException
Reviewed-by: abhiscxk, serb
2024-01-08 02:46:10 +00:00
Kim Barrett
3560e680bc 8322815: Eliminate -Wparentheses warnings in shenandoah code
Reviewed-by: shade, zgu
2024-01-08 02:37:10 +00:00
Alan Bateman
faa9c6909d 8322846: Running with -Djdk.tracePinnedThreads set can hang
Reviewed-by: jpai
2024-01-06 18:24:28 +00:00
Alan Bateman
ace010b38a 8319757: java/nio/channels/DatagramChannel/InterruptibleOrNot.java failed: wrong exception thrown
Reviewed-by: jpai, bpb
2024-01-06 08:52:27 +00:00
Jonathan Gibbons
be4614eb5e 8323016: Improve reporting for bad options
Reviewed-by: prappo
2024-01-05 22:16:52 +00:00
David Leopoldseder
35a1b77da5 8322636: [JVMCI] HotSpotSpeculationLog can be inconsistent across a single compile
Reviewed-by: dnsimon, never
2024-01-05 19:00:18 +00:00
Chris Plummer
46965a096c 8322981: Fix 2 locations in JDI that throw IOException without using the "Caused by" exception
Reviewed-by: dholmes, lmesnik
2024-01-05 17:53:45 +00:00
Aleksey Shipilev
700c25f5b4 8322954: Shenandoah: Convert evac-update closures asserts to rich asserts
Reviewed-by: wkemper, kdnilsen, ysr
2024-01-05 17:04:32 +00:00
Daniel D. Daugherty
631a9f60f3 8323073: ProblemList gc/g1/TestSkipRebuildRemsetPhase.java on linux-aarch64
8323075: ProblemList runtime/cds/appcds/jigsaw/modulepath/OptimizeModuleHandlingTest.java

Reviewed-by: thartmann
2024-01-05 16:26:02 +00:00
Tobias Hartmann
ed9f3243f0 8322985: [BACKOUT] 8318562: Computational test more than 2x slower when AVX instructions are used
Reviewed-by: chagedorn, shade
2024-01-05 15:40:32 +00:00
Tobias Hartmann
ade21a965f 8310844: [AArch64] C1 compilation fails because monitor offset in OSR buffer is too large for immediate
Reviewed-by: aph, chagedorn
2024-01-05 13:48:31 +00:00
Jan Lahoda
f0cfd361bd 8322532: JShell : Unnamed variable issue
Reviewed-by: asotona
2024-01-05 11:34:03 +00:00
Tobias Hartmann
78623c95f2 8323012: C2 fails with fatal error: no reachable node should have no use
Reviewed-by: chagedorn
2024-01-05 11:13:34 +00:00
William Kemper
f0e2e4311b 8323021: Shenandoah: Encountered reference count always attributed to first worker thread
Reviewed-by: kdnilsen, ysr, shade
2024-01-05 10:39:08 +00:00
Denghui Dong
3dc4bd8581 8322989: New test serviceability/HeapDump/FullGCHeapDumpLimitTest.java fails
Reviewed-by: stefank, dholmes
2024-01-05 09:23:42 +00:00
Stefan Karlsson
1d1cd32bc3 8321812: Update GC tests to use execute[Limited]TestJava
Reviewed-by: tschatzl, aboldtch
2024-01-05 09:12:24 +00:00
Stefan Karlsson
868f8745fa 8322920: Some ProcessTools.execute* functions are declared to throw Throwable
Reviewed-by: dholmes, lmesnik
2024-01-05 09:07:03 +00:00
Johny Jose
2a9c3589d9 8322725: (tz) Update Timezone Data to 2023d
Reviewed-by: coffeys, naoto
2024-01-05 08:12:59 +00:00
Gui Cao
5235cc987d 8322583: RISC-V: Enable fast class initialization checks
Reviewed-by: rehn, fyang, fjiang
2024-01-05 04:39:55 +00:00
Calvin Cheung
3b1e56a427 8322322: Support archived full module graph when -Xbootclasspath/a is used
Reviewed-by: alanb, mchung
2024-01-05 00:00:24 +00:00
Chris Plummer
3fbccb01dc 8322978: Remove debug agent debugMonitorTimedWait() function. It is no longer used.
Reviewed-by: dholmes, sspitsyn
2024-01-04 17:22:49 +00:00
Naoto Sato
ad31ec5c5f 8322647: Short name for the Europe/Lisbon time zone is incorrect
Reviewed-by: joehw, iris
2024-01-04 17:16:33 +00:00
Justin Lu
15cf8f8531 8319626: Override toString() for ZipFile
Reviewed-by: jpai, alanb, coffeys
2024-01-04 17:16:22 +00:00
Joshua Cao
ade40741ca 8322976: Remove reference to transform_no_reclaim
Reviewed-by: shade, thartmann
2024-01-04 16:55:04 +00:00
Daniel D. Daugherty
ea19e9c6aa 8323011: ProblemList serviceability/HeapDump/FullGCHeapDumpLimitTest.java
Reviewed-by: azvegint, ctornqvi
2024-01-04 16:28:52 +00:00
Alan Bateman
d33dfe5cb2 8323002: test/jdk/java/lang/Thread/virtual/stress/GetStackTraceALotWhenPinned.java times out on macosx-x64
Reviewed-by: pchilanomate
2024-01-04 15:20:23 +00:00
Denghui Dong
27d5f5c237 8322781: C1: Debug build crash in GraphBuilder::vmap() when print stats
Reviewed-by: kvn, thartmann, shade
2024-01-04 13:11:47 +00:00
Jim Laskey
df22fb322e 8322512: StringBuffer.repeat does not work correctly after toString() was called
Reviewed-by: rriggs, jpai
2024-01-04 12:46:31 +00:00
Albert Mingkun Yang
c3cd1f1814 8323000: Parallel: Remove unused class declarations in psScavenge
Reviewed-by: stefank
2024-01-04 11:35:56 +00:00
Aleksey Shipilev
dd517c6404 8237842: Separate definitions for default cache line and padding sizes
Reviewed-by: stefank, kvn, stuefe, tschatzl
2024-01-04 08:39:50 +00:00
Albert Mingkun Yang
83564ea5f3 8322888: Parallel: Remove unused variables in PSPromotionManager
Reviewed-by: kbarrett
2024-01-04 08:32:00 +00:00
Albert Mingkun Yang
bbe0079d98 8322298: Obsolete unused AdaptiveSizePolicyCollectionCostMargin
Reviewed-by: tschatzl, sjohanss, kbarrett, gli
2024-01-04 08:31:50 +00:00
Matthias Baesken
730663649f 8322945: Problemlist runtime/CompressedOops/CompressedClassPointers.java on AIX
Reviewed-by: mdoerr
2024-01-04 08:21:57 +00:00
Matthias Baesken
1369c545ac 8322782: Clean up usages of unnecessary fully qualified class name "java.util.Arrays"
Reviewed-by: alanb, aivanov
2024-01-04 08:06:14 +00:00
Alan Bateman
4db7a1c3bb 8322818: Thread::getStackTrace can fail with InternalError if virtual thread is timed-parked when pinned
Reviewed-by: pchilanomate
2024-01-04 05:59:52 +00:00
Joe Wang
755722ced6 8322214: Return value of XMLInputFactory.getProperty() changed from boolean to String in JDK 22 early access builds
Reviewed-by: lancea
2024-01-04 05:04:45 +00:00
Denghui Dong
1cf9335b24 8321404: Limit the number of heap dumps triggered by HeapDumpBeforeFullGC/AfterFullGC
Reviewed-by: dholmes, cjplummer
2024-01-04 03:20:06 +00:00
Scott Gibbons
13c11487f7 8321599: Data loss in AVX3 Base64 decoding
Reviewed-by: sviswanathan, kvn
2024-01-04 01:36:28 +00:00
David Holmes
028ec7e744 8319948: jcmd man page needs to be updated
Co-authored-by: Thomas Stuefe <stuefe@openjdk.org>
Reviewed-by: kevinw, alanb
2024-01-03 22:30:54 +00:00
Brian Burkhalter
54b3ceeca2 8322877: java/io/BufferedInputStream/TransferTo.java failed with IndexOutOfBoundsException
Reviewed-by: alanb, stsypanov
2024-01-03 21:23:06 +00:00
Kim Barrett
30a0c61de0 8322879: Eliminate -Wparentheses warnings in x86-32 code
Reviewed-by: kvn, shade
2024-01-03 20:13:57 +00:00
Matias Saavedra Silva
409a39ec8d 8320276: Improve class initialization barrier in TemplateTable::_new
Reviewed-by: dholmes, fparain
2024-01-03 20:10:59 +00:00
Mikael Vidstedt
296c5b645a 8322873: Duplicate -ljava -ljvm options for libinstrument
Reviewed-by: dholmes, jwaters, erikj
2024-01-03 19:23:43 +00:00
Daniel D. Daugherty
cc9ab5f197 8322963: ProblemList java/io/BufferedInputStream/TransferTo.java
Reviewed-by: bpb
2024-01-03 17:17:24 +00:00
Carter Kozak
1551928502 8322142: JFR: Periodic tasks aren't orphaned between recordings
Reviewed-by: egahlin
2024-01-03 15:09:06 +00:00
Alan Bateman
b67b71cd87 8320707: Virtual thread test updates
Reviewed-by: jpai
2024-01-03 14:59:03 +00:00
Denghui Dong
7eb25ec7b3 8322853: Should use ConditionalMutexLocker in NativeHeapTrimmerThread::print_state
Reviewed-by: dholmes, shade
2024-01-03 13:10:22 +00:00
Denghui Dong
539da24863 8322779: C1: Remove the unused counter 'totalInstructionNodes'
Reviewed-by: kvn, thartmann
2024-01-03 13:08:48 +00:00
Matthias Baesken
a8e4229852 8322783: prioritize /etc/os-release over /etc/SuSE-release in hs_err/info output
Reviewed-by: dholmes, mdoerr
2024-01-03 09:15:07 +00:00
Stefan Karlsson
cbe329b90a 8321713: Harmonize executeTestJvm with create[Limited]TestJavaProcessBuilder
Reviewed-by: lkorinth, lmesnik
2024-01-03 08:53:01 +00:00
John Jiang
06dd735342 8322766: Micro bench SSLHandshake should use default algorithms
Reviewed-by: djelinski
2024-01-03 08:27:42 +00:00
Stefan Karlsson
9ab29f8dcd 8321718: ProcessTools.executeProcess calls waitFor before logging
Reviewed-by: dholmes, jpai
2024-01-03 07:48:57 +00:00
Albert Mingkun Yang
ba426d6887 8322841: Parallel: Remove unused using-declaration in MutableNUMASpace
Reviewed-by: kbarrett
2024-01-03 06:12:00 +00:00
Guoxiong Li
18cdc903cf 8322801: RISC-V: The riscv path of the debian sysroot had been changed
Reviewed-by: rehn, erikj
2024-01-03 04:17:15 +00:00
Joe Darcy
fcf8368eb1 8322248: Fix inconsistent wording in ElementFilter.typesIn
Reviewed-by: jjg, iris
2024-01-02 23:05:58 +00:00
Kim Barrett
a678416994 8322805: Eliminate -Wparentheses warnings in x86 code
Reviewed-by: dholmes, kvn
2024-01-02 22:47:18 +00:00
Kim Barrett
122bc7770e 8322758: Eliminate -Wparentheses warnings in C2 code
Reviewed-by: aph, kvn
2024-01-02 22:32:58 +00:00
Patricio Chilano Mateo
e9e694f4ef 8320275: assert(_chunk->bitmap().at(index)) failed: Bit not set at index
Reviewed-by: dlong, fparain
2024-01-02 22:22:03 +00:00
Kim Barrett
da1091eed9 8322807: Eliminate -Wparentheses warnings in gc code
Reviewed-by: ayang
2024-01-02 21:57:45 +00:00
Brian Burkhalter
c2477a5cad 8322868: java/io/BufferedInputStream/TransferToTrusted.java has bad copyright header
Reviewed-by: dcubed
2024-01-02 20:35:09 +00:00
Eirik Bjørsnøs
2cf5f01397 8322802: Add testing for ZipFile.getEntry respecting the 'Language encoding' flag
Reviewed-by: lancea, jpai
2024-01-02 20:31:38 +00:00
Sergey Tsypanov
38042ad4e9 8320971: Use BufferedInputStream.buf directly when param of implTransferTo() is trusted
Reviewed-by: alanb, bpb
2024-01-02 20:05:31 +00:00
William Kemper
51238c4bdb 8322503: Shenandoah: Clarify gc state usage
Reviewed-by: ysr, gli
2024-01-02 17:08:36 +00:00
Renjith Kannath Pariyangad
9481d06e62 8320343: Generate GIF images for AbstractButton/5049549/bug5049549.java
Reviewed-by: aivanov
2024-01-02 16:16:20 +00:00
Adam Sotona
a5cf4210cd 8320360: ClassFile.parse: Some defect class files cause unexpected exceptions to be thrown
Reviewed-by: jpai
2024-01-02 12:58:53 +00:00
Adam Sotona
f9aec02f3c 8321540: ClassSignature.parseFrom() throws StringIndexOutOfBoundsException for invalid signatures
Reviewed-by: jpai
2024-01-02 12:39:41 +00:00
Jan Lahoda
7455b1b527 8322159: ThisEscapeAnalyzer crashes for erroneous code
Reviewed-by: vromero
2024-01-02 11:15:12 +00:00
ANUPAM DEV
d4fb30885b 8317846: Typo in API documentation of classes IdentityHashMap
Reviewed-by: mli, jpai
2024-01-02 11:10:15 +00:00
Guoxiong Li
d786c49525 8322751: ZGC: Fix comments about marking roots
Reviewed-by: eosterlund
2024-01-02 10:34:25 +00:00
Archie Cobbs
5852f3eafe 8322027: One XMLStreamException constructor fails to initialize cause
Reviewed-by: joehw, jpai
2024-01-02 10:13:37 +00:00
Lei Zaakjyu
be0e1c7b14 8297573: Parallel: Rename do_oop_nv to do_oop_work in subclasses of OopClosure
Reviewed-by: ayang, gli
2024-01-02 08:45:55 +00:00
Kim Barrett
7c1d481d6d 8322765: Eliminate -Wparentheses warnings in runtime code
Reviewed-by: dholmes
2024-01-02 03:06:13 +00:00
Kim Barrett
518ec97114 8322747: StringTable should be AllStatic
Reviewed-by: eosterlund
2023-12-31 17:26:57 +00:00
Christoph Langer
32d80e2caf 8322772: Clean up code after JDK-8322417
Reviewed-by: mdoerr, goetz, mbaesken, vtewari
2023-12-29 21:49:06 +00:00
Olga Mikhaltsova
19147f326c 8318158: RISC-V: implement roundD/roundF intrinsics
Co-authored-by: Vladimir Kempik <vkempik@openjdk.org>
Reviewed-by: luhenry, fyang, mli
2023-12-29 18:33:43 +00:00
John Jiang
2a59243cba 8322734: A redundant return in method padWithLen
Reviewed-by: jiefu
2023-12-27 02:31:50 +00:00
Eamonn McManus
4fc6b0ffa4 8068958: Timestamp.from(Instant) should throw when conversion is not possible
Reviewed-by: rgiulietti, rriggs
2023-12-23 22:53:23 +00:00
Jie Fu
28c82bf18d 8322661: Build broken due to missing jvmtiExport.hpp after JDK-8320139
Reviewed-by: chagedorn, never
2023-12-22 23:53:42 +00:00
Joshua Cao
7263e25d9b 8322490: cleanup CastNode construction
Reviewed-by: chagedorn, phh
2023-12-22 21:08:45 +00:00
Rajat Mahajan
f695ca5884 8321151: JDK-8294427 breaks Windows L&F on all older Windows versions
Reviewed-by: aivanov, achung
2023-12-22 20:16:45 +00:00
Eirik Bjørsnøs
93fedc12db 8321802: (zipfs) Add validation of incorrect LOC signature in ZipFileSystem
Reviewed-by: alanb, lancea
2023-12-22 16:09:22 +00:00
Matthias Baesken
1230853343 8322163: runtime/Unsafe/InternalErrorTest.java fails on Alpine after JDK-8320886
Reviewed-by: mdoerr, clanger
2023-12-22 13:30:05 +00:00
Stefan Karlsson
dce7a5732e 8321683: Tests fail with AssertionError in RangeWithPageSize
Reviewed-by: stuefe, mbaesken
2023-12-22 13:25:39 +00:00
Albert Mingkun Yang
c53f845ec9 8322539: Parallel: Remove duplicated methods in PSAdaptiveSizePolicy
Reviewed-by: tschatzl, kbarrett
2023-12-22 07:58:09 +00:00
Raphael Mosaner
84c2379285 8320139: [JVMCI] VmObjectAlloc is not generated by intrinsics methods which allocate objects
Reviewed-by: never, dnsimon
2023-12-21 19:22:48 +00:00
Evgeny Astigeevich
3b908c4781 8319795: Static huge pages are not used for CodeCache
Reviewed-by: shade, simonis, thartmann, stuefe
2023-12-21 18:51:50 +00:00
Lei Zaakjyu
1802601a12 8293623: Simplify G1ConcurrentRefineThreadControl
Reviewed-by: kbarrett, tschatzl
2023-12-21 15:20:01 +00:00
Goetz Lindenmaier
6de23bf36e 8322418: Problem list gc/TestAllocHumongousFragment.java subtests for 8298781
Reviewed-by: mbaesken
2023-12-21 11:40:30 +00:00
Serguei Spitsyn
aff659aaf7 8322538: remove fatal from JVM_VirtualThread functions for !INCLUDE_JVMTI
Reviewed-by: dholmes, alanb
2023-12-21 10:07:31 +00:00
Thomas Schatzl
05745e3f1d 8319548: Unexpected internal name for Filler array klass causes error in VisualVM
Co-authored-by: Tomáš Hůrka <tomas.hurka@oracle.com>
Reviewed-by: ayang, dholmes
2023-12-21 09:17:31 +00:00
Gui Cao
e8768ae08d 8321972: test runtime/Unsafe/InternalErrorTest.java timeout on linux-riscv64 platform
Co-authored-by: Fei Yang <fyang@openjdk.org>
Reviewed-by: fyang
2023-12-21 01:28:48 +00:00
Sean Coffey
f6fe39ff11 8322078: ZipSourceCache.testKeySourceMapping() test fails with The process cannot access the file because it is being used by another process
Reviewed-by: lancea
2023-12-20 22:03:10 +00:00
Matthias Baesken
e204242118 8321017: Record in JFR that IEEE rounding mode was corrupted by loading a library
Reviewed-by: stuefe, jbechberger
2023-12-20 17:32:23 +00:00
Markus KARG
2d609557ff 8322141: SequenceInputStream.transferTo should not return as soon as Long.MAX_VALUE bytes have been transferred
Reviewed-by: vsitnikov, bpb, jpai
2023-12-20 17:00:44 +00:00
Albert Mingkun Yang
e0bad5153b 8322543: Parallel: Remove unused _major_pause_old_slope_counter
Reviewed-by: tschatzl
2023-12-20 15:56:50 +00:00
Weijun Wang
424c58f3e9 8187634: keystore.getCertificateAlias(cert) returns original alias, inconsistent with fix of JDK-6483657
Reviewed-by: mullan
2023-12-20 15:45:33 +00:00
Albert Mingkun Yang
14dab319a8 8322377: Parallel: Remove unused arg in adjust_promo_for_pause_time and adjust_eden_for_pause_time
Reviewed-by: tschatzl
2023-12-20 09:41:33 +00:00
Albert Mingkun Yang
5fcac7c846 8322364: Parallel: Remove unused SizePolicyTrueValues enum members
Reviewed-by: tschatzl
2023-12-20 09:41:24 +00:00
Goetz Lindenmaier
2f917bff5c 8322417: Console read line with zero out should zero out when throwing exception
Reviewed-by: mbaesken, stuefe, naoto
2023-12-20 08:01:08 +00:00
bobpengxie
7db69e6a12 8322513: Build failure with minimal
Reviewed-by: dholmes, rehn
2023-12-20 07:46:11 +00:00
Ioi Lam
f7dc257a20 8322321: Add man page doc for -XX:+VerifySharedSpaces
Reviewed-by: dholmes, ccheung
2023-12-20 05:50:45 +00:00
Guoxiong Li
97db670956 8321688: Build on linux with GCC 7.5.0 fails after 8319577
Reviewed-by: kbarrett, sviswanathan
2023-12-20 03:58:12 +00:00
Brian Burkhalter
51be857f3c 8322166: Files.isReadable/isWritable/isExecutable expensive when file does not exist
Reviewed-by: alanb
2023-12-19 18:27:06 +00:00
Serguei Spitsyn
0f8e4e0a81 8311218: fatal error: stuck in JvmtiVTMSTransitionDisabler::VTMS_transition_disable
Reviewed-by: lmesnik, alanb
2023-12-19 17:26:55 +00:00
Ludovic Henry
6313223bcd 8315856: RISC-V: Use Zacas extension for cmpxchg
Reviewed-by: rehn, fyang
2023-12-19 14:15:24 +00:00
Frederic Thevenet
3bc5679cab 8322309: Fix an inconsistancy in spacing style in spec.gmk.template
Reviewed-by: sgehwolf, erikj
2023-12-19 13:54:49 +00:00
Erik Österlund
be49dabd0d 8321619: Generational ZGC: ZColorStoreGoodOopClosure is only valid for young objects
Reviewed-by: stefank, sjohanss
2023-12-19 13:49:01 +00:00
Quan Anh Mai
ac968c36d7 8319451: PhaseIdealLoop::conditional_move is too conservative
Reviewed-by: redestad, thartmann, kvn
2023-12-19 10:39:50 +00:00
Guoxiong Li
0ad6c9e3d9 8322255: Generational ZGC: ZPageSizeMedium should be set before MaxTenuringThreshold
Reviewed-by: tschatzl, eosterlund
2023-12-19 10:39:37 +00:00
Hamlin Li
fff2e580cd 8322195: RISC-V: Minor improvement of MD5 instrinsic
Reviewed-by: luhenry, fyang
2023-12-19 08:45:15 +00:00
Albert Mingkun Yang
7b4d62c794 8322300: Remove redundant arg in PSAdaptiveSizePolicy::adjust_promo_for_pause_time
Reviewed-by: tschatzl
2023-12-19 08:39:45 +00:00
Jatin Bhateja
76637c53c5 8321648: Integral gather optimized mask computation.
Reviewed-by: thartmann, sviswanathan
2023-12-19 07:51:52 +00:00
Gui Cao
59073fa3eb 8322154: RISC-V: JDK-8315743 missed change in MacroAssembler::load_reserved
Reviewed-by: fyang, rehn, luhenry
2023-12-19 07:45:59 +00:00
William Kemper
808a03927c 8321815: Shenandoah: gc state should be synchronized to java threads only once per safepoint
Reviewed-by: kdnilsen, ysr
2023-12-19 00:09:31 +00:00
Alex Menkov
459957f30a 8322062: com/sun/jdi/JdwpAllowTest.java does not performs negative testing with prefix length
Reviewed-by: cjplummer, sspitsyn
2023-12-18 21:14:09 +00:00
Brian Burkhalter
b98d13fc3c 8259637: java.io.File.getCanonicalPath() returns different values for same path
Reviewed-by: alanb
2023-12-18 18:10:34 +00:00
Ioi Lam
4f3de09672 8321940: Improve CDSHeapVerifier in handling of interned strings
Reviewed-by: ccheung, matsaave
2023-12-18 17:56:07 +00:00
Matias Saavedra Silva
1fde8b868a 8321933: TestCDSVMCrash.java spawns two processes
Reviewed-by: ccheung, iklam
2023-12-18 17:05:22 +00:00
Afshin Zafari
66aeb89469 8315462: [REDO] runtime/NMT/SummarySanityCheck.java failed with "Total committed (MMMMMM) did not match the summarized committed (NNNNNN)"
Reviewed-by: gziemski, stuefe
2023-12-18 16:52:36 +00:00
Yi-Fan Tsai
a5122d7f6c 8314029: Add file name parameter to Compiler.perfmap
Reviewed-by: cjplummer, eastigeevich
2023-12-18 15:20:59 +00:00
Yi-Fan Tsai
c0a3b76958 8316197: Make tracing of inline cache available in unified logging
Reviewed-by: kvn, dholmes
2023-12-18 15:19:16 +00:00
Albert Mingkun Yang
7e1d26dd5c 8322287: Parallel: Remove unused arg in adjust_eden_for_pause_time and adjust_eden_for_minor_pause_time
Reviewed-by: tschatzl
2023-12-18 14:29:00 +00:00
Albert Mingkun Yang
5584ba36c6 8322097: Serial: Refactor CardTableRS::find_first_clean_card
Reviewed-by: tschatzl, iwalulya
2023-12-18 13:30:34 +00:00
Albert Mingkun Yang
75d382d3db 8322204: Parallel: Remove unused _collection_cost_margin_fraction
Reviewed-by: tschatzl
2023-12-18 12:57:12 +00:00
Albert Mingkun Yang
febf8af4b5 8322089: Parallel: Remove PSAdaptiveSizePolicy::set_survivor_size
Reviewed-by: tschatzl
2023-12-18 12:57:01 +00:00
Alexander Scherbatiy
10335f60f9 7001133: OutOfMemoryError by CustomMediaSizeName implementation
Reviewed-by: psadhukhan
2023-12-18 12:11:41 +00:00
Lei Zaakjyu
ecff9c1ef7 8315040: Remove redundant check in WorkerPolicy::parallel_worker_threads
Reviewed-by: ayang, tschatzl
2023-12-18 11:05:48 +00:00
Hamlin Li
a247d0c74b 8322209: RISC-V: Enable some tests related to MD5 instrinsic
Reviewed-by: luhenry, fyang
2023-12-18 10:31:29 +00:00
Johan Sjölen
341b4e09b7 8321975: Print when add_reserved_region fails even in product mode
Reviewed-by: dholmes, stuefe
2023-12-18 09:45:26 +00:00
Ivan Walulya
f696796e88 8280087: G1: Handle out-of-mark stack situations during reference processing more gracefully
Reviewed-by: tschatzl, ayang
2023-12-18 09:43:53 +00:00
Lei Zaakjyu
413dbf8757 8322205: Parallel: Remove unused arg in PSCardTable::pre_scavenge
Reviewed-by: ayang, tschatzl
2023-12-18 09:31:13 +00:00
Thomas Schatzl
f553819502 8317007: Add bulk removal of dead nmethods during class unloading
Reviewed-by: ayang, iwalulya
2023-12-18 08:44:43 +00:00
Steven Schlansker
34351b7a79 8321892: Typo in log message logged by src/hotspot/share/nmt/virtualMemoryTracker.cpp
Reviewed-by: dholmes, azafari
2023-12-16 01:40:19 +00:00
Alisen Chung
b061b6678f 8322041: JDK 22 RDP1 L10n resource files update
Reviewed-by: almatvee, cstein, asemenyuk, joehw, jjg
2023-12-16 01:03:09 +00:00
Calvin Cheung
dcdcd48d8f 8321479: java -D-D crashes
Reviewed-by: dholmes, iklam
2023-12-15 19:04:42 +00:00
Naoto Sato
87ef73329f 8321958: @param/@return descriptions of ZoneRules#isDaylightSavings() are incorrect
Reviewed-by: jlu, joehw, jpai
2023-12-15 17:33:50 +00:00
Tom Rodriguez
05f7f0ade2 8321288: [JVMCI] HotSpotJVMCIRuntime doesn't clean up WeakReferences in resolvedJavaTypes
Reviewed-by: dnsimon, kvn
2023-12-15 17:25:24 +00:00
Roger Riggs
6311dabe68 8322018: Test java/lang/String/CompactString/MaxSizeUTF16String.java fails with -Xcomp
Reviewed-by: jpai
2023-12-15 16:13:36 +00:00
Liam Miller-Cushon
bdebf198bb 8322175: test/langtools/tools/javac/classreader/BadMethodParameter.java doesn't compile
Reviewed-by: jlahoda
2023-12-15 12:18:01 +00:00
Liam Miller-Cushon
20de541b13 8322040: Missing array bounds check in ClassReader.parameter
Reviewed-by: vromero
2023-12-15 10:16:35 +00:00
Matthias Baesken
b31454e362 8322098: os::Linux::print_system_memory_info enhance the THP output with /sys/kernel/mm/transparent_hugepage/hpage_pmd_size
Reviewed-by: mdoerr, lucy
2023-12-15 07:42:39 +00:00
Gui Cao
0be0775a76 8320397: RISC-V: Avoid passing t0 as temp register to MacroAssembler:: cmpxchg_obj_header/cmpxchgptr
Reviewed-by: rehn, fyang
2023-12-15 07:23:50 +00:00
Joshua Cao
6dfb8120c2 8321823: Remove redundant PhaseGVN transform_no_reclaim
Reviewed-by: chagedorn, phh
2023-12-15 00:35:37 +00:00
Zhengyu Gu
a7dde578a8 8322057: Memory leaks in creating jfr symbol array
Reviewed-by: mgronlun
2023-12-14 22:33:34 +00:00
David Holmes
692be57738 8322065: Initial nroff manpage generation for JDK 23
Reviewed-by: alanb
2023-12-14 21:26:10 +00:00
David Holmes
d02bc873f8 8309981: Remove expired flags in JDK 23
Reviewed-by: alanb, kvn
2023-12-14 21:24:17 +00:00
Justin Lu
8b24851b9d 8321480: ISO 4217 Amendment 176 Update
Reviewed-by: naoto
2023-12-14 21:16:19 +00:00
Ben Perez
c328f9589d 8296787: Unify debug printing format of X.509 cert serial numbers
Reviewed-by: mullan, coffeys
2023-12-14 17:57:36 +00:00
Aleksei Voitylov
fde5b16817 8321514: UTF16 string gets constructed incorrectly from codepoints if CompactStrings is not enabled
Co-authored-by: Roger Riggs <rriggs@openjdk.org>
Reviewed-by: rriggs
2023-12-14 14:39:04 +00:00
Weijun Wang
45a9ade337 8202598: keytool -certreq output contains inconsistent line separators
Reviewed-by: hchao, mullan
2023-12-14 14:37:15 +00:00
Darragh Clarke
62b7c5eaed 8319647: Few java/lang/System/LoggerFinder/modules tests ignore vm flags
Reviewed-by: lmesnik
2023-12-14 13:24:19 +00:00
Daniel Lundén
69014cd55b 8320682: [AArch64] C1 compilation fails with "Field too big for insn"
Reviewed-by: thartmann, aph, dlong
2023-12-14 13:09:39 +00:00
Albert Mingkun Yang
5a97dbf606 8322034: Parallel: Remove unused methods in PSAdaptiveSizePolicy
Reviewed-by: kbarrett
2023-12-14 12:30:47 +00:00
Adam Sotona
2838a916ab 8288989: Make tests not depend on the source code
Reviewed-by: mcimadamore
2023-12-14 11:36:57 +00:00
Jaikiran Pai
d2ba3b1ef7 8312150: Remove -Xnoagent option
Reviewed-by: dholmes, alanb
2023-12-14 10:36:23 +00:00
Daniel Lundén
d632d743e0 8321820: TestLoadNIdeal fails on 32-bit because -XX:+UseCompressedOops is not recognized
Reviewed-by: rcastanedalo, chagedorn, shade
2023-12-14 09:29:34 +00:00
Joe Wang
ddbbd36e4b 8320279: Link issues in java.xml module-info.java
Reviewed-by: iris, lancea, naoto
2023-12-14 07:45:02 +00:00
Tobias Hartmann
c8ad7b7f84 8321974: Crash in ciKlass::is_subtype_of because TypeAryPtr::_klass is not initialized
Reviewed-by: roland, kvn
2023-12-14 07:23:21 +00:00
3855 changed files with 89679 additions and 56631 deletions

View File

@@ -66,7 +66,7 @@ runs:
shell: bash
- name: 'Upload build logs'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: failure-logs-${{ inputs.platform }}${{ inputs.debug-suffix }}
path: failure-logs
@@ -74,7 +74,7 @@ runs:
# This is the best way I found to abort the job with an error message
- name: 'Notify about build failures'
uses: actions/github-script@v6
uses: actions/github-script@v7
with:
script: core.setFailed('Build failed. See summary for details.')
if: steps.check.outputs.failure == 'true'

View File

@@ -65,7 +65,7 @@ runs:
- name: 'Check cache for BootJDK'
id: get-cached-bootjdk
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: bootjdk/jdk
key: boot-jdk-${{ inputs.platform }}-${{ steps.sha256.outputs.value }}

View File

@@ -48,14 +48,14 @@ runs:
steps:
- name: 'Download bundles artifact'
id: download-bundles
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
path: bundles
continue-on-error: true
- name: 'Download bundles artifact (retry)'
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
path: bundles

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -41,7 +41,7 @@ runs:
- name: 'Check cache for JTReg'
id: get-cached-jtreg
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: jtreg/installed
key: jtreg-${{ steps.version.outputs.value }}
@@ -56,8 +56,14 @@ runs:
- name: 'Build JTReg'
run: |
# If runner architecture is x64 set JAVA_HOME_17_X64 otherwise set to JAVA_HOME_17_arm64
if [[ '${{ runner.arch }}' == 'X64' ]]; then
JDK="$JAVA_HOME_17_X64"
else
JDK="$JAVA_HOME_17_arm64"
fi
# Build JTReg and move files to the proper locations
bash make/build.sh --jdk "$JAVA_HOME_17_X64"
bash make/build.sh --jdk "$JDK"
mkdir ../installed
mv build/images/jtreg/* ../installed
working-directory: jtreg/src

View File

@@ -30,8 +30,7 @@ runs:
using: composite
steps:
- name: 'Install MSYS2'
# use a specific release of msys2/setup-msys2 to prevent jtreg build failures on newer release
uses: msys2/setup-msys2@7efe20baefed56359985e327d329042cde2434ff
uses: msys2/setup-msys2@v2.22.0
with:
install: 'autoconf tar unzip zip make'
path-type: minimal

View File

@@ -69,7 +69,7 @@ runs:
shell: bash
- name: 'Upload bundles artifact'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
path: bundles

View File

@@ -1,6 +1,6 @@
#!/bin/bash
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -44,8 +44,8 @@ for test in $failures $errors; do
base_path="$(echo "$test" | tr '#' '_')"
report_file="$report_dir/$base_path.jtr"
hs_err_files=$(ls $report_dir/$base_path/hs_err*.log 2> /dev/null || true)
replay_files=$(ls $report_dir/$base_path/replay*.log 2> /dev/null || true)
echo "#### <a id="$anchor">$test"
echo '<details><summary>View test results</summary>'
echo ''
echo '```'
@@ -73,6 +73,20 @@ for test in $failures $errors; do
echo ''
fi
if [[ "$replay_files" != "" ]]; then
echo '<details><summary>View HotSpot replay file</summary>'
echo ''
for replay in $replay_files; do
echo '```'
echo "$replay:"
echo ''
cat "$replay"
echo '```'
done
echo '</details>'
echo ''
fi
done >> $GITHUB_STEP_SUMMARY
# With many failures, the summary can easily exceed 1024 kB, the limit set by Github

View File

@@ -42,6 +42,7 @@ error_count=$(echo $errors | wc -w || true)
if [[ "$failures" = "" && "$errors" = "" ]]; then
# We know something went wrong, but not what
echo 'failure=true' >> $GITHUB_OUTPUT
echo 'error-message=Unspecified test suite failure. Please see log for job for details.' >> $GITHUB_OUTPUT
exit 0
fi

View File

@@ -120,7 +120,7 @@ jobs:
- name: 'Check cache for sysroot'
id: get-cached-sysroot
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: sysroot
key: sysroot-${{ matrix.debian-arch }}-${{ hashFiles('./.github/workflows/build-cross-compile.yml') }}

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,9 @@ on:
platform:
required: true
type: string
runs-on:
required: true
type: string
extra-conf-options:
required: false
type: string
@@ -55,7 +58,7 @@ on:
jobs:
build-macos:
name: build
runs-on: macos-13
runs-on: ${{ inputs.runs-on }}
strategy:
fail-fast: false
@@ -74,7 +77,7 @@ jobs:
id: bootjdk
uses: ./.github/actions/get-bootjdk
with:
platform: macos-x64
platform: ${{ inputs.platform }}
- name: 'Get JTReg'
id: jtreg
@@ -87,7 +90,7 @@ jobs:
- name: 'Install toolchain and dependencies'
run: |
# Run Homebrew installation and xcode-select
brew install make
brew install autoconf make
sudo xcode-select --switch /Applications/Xcode_${{ inputs.xcode-toolset-version }}.app/Contents/Developer
# This will make GNU make available as 'make' and not only as 'gmake'
echo '/usr/local/opt/make/libexec/gnubin' >> $GITHUB_PATH

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -228,6 +228,7 @@ jobs:
uses: ./.github/workflows/build-macos.yml
with:
platform: macos-x64
runs-on: 'macos-13'
xcode-toolset-version: '14.3.1'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
@@ -239,8 +240,8 @@ jobs:
uses: ./.github/workflows/build-macos.yml
with:
platform: macos-aarch64
runs-on: 'macos-14'
xcode-toolset-version: '14.3.1'
extra-conf-options: '--openjdk-target=aarch64-apple-darwin'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.macos-aarch64 == 'true'
@@ -321,6 +322,16 @@ jobs:
bootjdk-platform: macos-x64
runs-on: macos-13
test-macos-aarch64:
name: macos-aarch64
needs:
- build-macos-aarch64
uses: ./.github/workflows/test.yml
with:
platform: macos-aarch64
bootjdk-platform: macos-aarch64
runs-on: macos-14
test-windows-x64:
name: windows-x64
needs:
@@ -357,7 +368,7 @@ jobs:
# Hack to get hold of the api environment variables that are only defined for actions
- name: 'Get API configuration'
id: api
uses: actions/github-script@v6
uses: actions/github-script@v7
with:
script: 'return { url: process.env["ACTIONS_RUNTIME_URL"], token: process.env["ACTIONS_RUNTIME_TOKEN"] }'

View File

@@ -63,6 +63,7 @@ jobs:
- 'hs/tier1 compiler part 1'
- 'hs/tier1 compiler part 2'
- 'hs/tier1 compiler part 3'
- 'hs/tier1 compiler not-xcomp'
- 'hs/tier1 gc'
- 'hs/tier1 runtime'
- 'hs/tier1 serviceability'
@@ -90,13 +91,17 @@ jobs:
debug-suffix: -debug
- test-name: 'hs/tier1 compiler part 2'
test-suite: 'test/hotspot/jtreg/:tier1_compiler_2 test/hotspot/jtreg/:tier1_compiler_not_xcomp'
test-suite: 'test/hotspot/jtreg/:tier1_compiler_2'
debug-suffix: -debug
- test-name: 'hs/tier1 compiler part 3'
test-suite: 'test/hotspot/jtreg/:tier1_compiler_3'
debug-suffix: -debug
- test-name: 'hs/tier1 compiler not-xcomp'
test-suite: 'test/hotspot/jtreg/:tier1_compiler_not_xcomp'
debug-suffix: -debug
- test-name: 'hs/tier1 gc'
test-suite: 'test/hotspot/jtreg/:tier1_gc'
debug-suffix: -debug
@@ -206,7 +211,7 @@ jobs:
if: always()
- name: 'Upload test results'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
path: results
name: ${{ steps.package.outputs.artifact-name }}
@@ -214,7 +219,7 @@ jobs:
# This is the best way I found to abort the job with an error message
- name: 'Notify about test failures'
uses: actions/github-script@v6
uses: actions/github-script@v7
with:
script: core.setFailed('${{ steps.run-tests.outputs.error-message }}')
if: steps.run-tests.outputs.failure == 'true'

View File

@@ -15,7 +15,7 @@ version=0
domain=openjdk.org
[checks "whitespace"]
files=.*\.cpp|.*\.hpp|.*\.c|.*\.h|.*\.java|.*\.cc|.*\.hh|.*\.m|.*\.mm|.*\.md|.*\.gmk|.*\.m4|.*\.ac|Makefile
files=.*\.cpp|.*\.hpp|.*\.c|.*\.h|.*\.java|.*\.cc|.*\.hh|.*\.m|.*\.mm|.*\.md|.*\.properties|.*\.gmk|.*\.m4|.*\.ac|Makefile
ignore-tabs=.*\.gmk|Makefile
[checks "merge"]

View File

@@ -1,5 +1,6 @@
#!/bin/bash
#
# Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
# Copyright 2015 Google, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
@@ -26,12 +27,17 @@ usage() {
echo "$0 DIR ..."
echo "Modifies in place all the java source files found"
echo "in the given directories so that all java language modifiers"
echo "are in the canonical order given by Modifier#toString()."
echo "are in the canonical order."
echo "Tries to get it right even within javadoc comments,"
echo "and even if the list of modifiers spans 2 lines."
echo
echo "See:"
echo "https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Modifier.html#toString-int-"
echo "https://docs.oracle.com/javase/specs/jls/se21/html/jls-8.html#jls-8.1.1"
echo "https://docs.oracle.com/javase/specs/jls/se21/html/jls-8.html#jls-8.3.1"
echo "https://docs.oracle.com/javase/specs/jls/se21/html/jls-8.html#jls-8.4.3"
echo "https://docs.oracle.com/javase/specs/jls/se21/html/jls-8.html#jls-8.8.3"
echo "https://docs.oracle.com/javase/specs/jls/se21/html/jls-9.html#jls-9.1.1"
echo "https://docs.oracle.com/javase/specs/jls/se21/html/jls-9.html#jls-9.4"
echo
echo "Example:"
echo "$0 jdk/src/java.base jdk/test/java/{util,io,lang}"
@@ -46,7 +52,7 @@ for dir in "${dirs[@]}"; do [[ -d "$dir" ]] || usage; done
declare -ar modifiers=(
public protected private
abstract static final transient
abstract default static final sealed non-sealed transient
volatile synchronized native strictfp
)
declare -r SAVE_IFS="$IFS"

View File

@@ -92,6 +92,8 @@ id="toc-build-tools-requirements">Build Tools Requirements</a>
<li><a href="#autoconf" id="toc-autoconf">Autoconf</a></li>
<li><a href="#gnu-make" id="toc-gnu-make">GNU Make</a></li>
<li><a href="#gnu-bash" id="toc-gnu-bash">GNU Bash</a></li>
<li><a href="#graphviz-and-pandoc" id="toc-graphviz-and-pandoc">Graphviz
and Pandoc</a></li>
</ul></li>
<li><a href="#running-configure" id="toc-running-configure">Running
Configure</a>
@@ -524,7 +526,7 @@ header files as provided by your distribution.</p>
<p>The basic tooling is provided as part of the core operating system,
but you will most likely need to install developer packages.</p>
<p>For apt-based distributions (Debian, Ubuntu, etc), try this:</p>
<pre><code>sudo apt-get install build-essential</code></pre>
<pre><code>sudo apt-get install build-essential autoconf</code></pre>
<p>For rpm-based distributions (Fedora, Red Hat, etc), try this:</p>
<pre><code>sudo yum groupinstall &quot;Development Tools&quot;</code></pre>
<p>For Alpine Linux, aside from basic tooling, install the GNU versions
@@ -753,6 +755,8 @@ macOS.</p>
<code>sudo apt-get install libfontconfig-dev</code>.</li>
<li>To install on an rpm-based Linux, try running
<code>sudo yum install fontconfig-devel</code>.</li>
<li>To install on Alpine Linux, try running
<code>sudo apk add fontconfig-dev</code>.</li>
</ul>
<p>Use <code>--with-fontconfig-include=&lt;path&gt;</code> and
<code>--with-fontconfig=&lt;path&gt;</code> if <code>configure</code>
@@ -860,6 +864,13 @@ e.g. <code>configure MAKE=/opt/gnu/make</code>.</p>
href="https://www.gnu.org/software/bash">GNU Bash</a>. No other shells
are supported.</p>
<p>At least version 3.2 of GNU Bash must be used.</p>
<h3 id="graphviz-and-pandoc">Graphviz and Pandoc</h3>
<p>In order to build the full docs (see the
<code>--enable-full-docs</code> configure option) <a
href="https://www.graphviz.org">Graphviz</a> and <a
href="https://pandoc.org">Pandoc</a> are required. Any recent versions
should work. For reference, and subject to change, Oracle builds use
Graphviz 9.0.0 and Pandoc 2.19.2.</p>
<h2 id="running-configure">Running Configure</h2>
<p>To build the JDK, you need a "configuration", which consists of a
directory where to store the build output, coupled with information
@@ -1499,9 +1510,7 @@ like this:</p>
--resolve-deps \
buster \
~/sysroot-arm64 \
https://httpredir.debian.org/debian/</code></pre>
<p>If the target architecture is <code>riscv64</code>, the path should
be <code>debian-ports</code> instead of <code>debian</code>.</p></li>
https://httpredir.debian.org/debian/</code></pre></li>
<li><p>To create an Ubuntu-based chroot:</p>
<pre><code>sudo debootstrap \
--arch=arm64 \
@@ -2157,15 +2166,26 @@ you can create a directory under <code>build</code> and run
<code>configure</code> from there, e.g.
<code>mkdir build/&lt;name&gt; &amp;&amp; cd build/&lt;name&gt; &amp;&amp; bash ../../configure</code>.</p>
<p>Then you can build that configuration using
<code>make CONF_NAME=&lt;name&gt;</code> or
<code>make CONF=&lt;pattern&gt;</code>, where
<code>&lt;pattern&gt;</code> is a substring matching one or several
configurations, e.g. <code>CONF=debug</code>. The special empty pattern
(<code>CONF=</code>) will match <em>all</em> available configuration, so
<code>make CONF= hotspot</code> will build the <code>hotspot</code>
target for all configurations. Alternatively, you can execute
<code>make</code> in the configuration directory, e.g.
<code>cd build/&lt;name&gt; &amp;&amp; make</code>.</p>
<code>make CONF=&lt;selector&gt;</code>, where
<code>&lt;selector&gt;</code> is interpreted as follows:</p>
<ul>
<li>If <code>&lt;selector&gt;</code> exacly matches the name of a
configuration, this and only this configuration will be selected.</li>
<li>If <code>&lt;selector&gt;</code> matches (i.e. is a substring of)
the names of several configurations, then all these configurations will
be selected.</li>
<li>If <code>&lt;selector&gt;</code> is empty (i.e. <code>CONF=</code>),
then all configurations will be selected.</li>
<li>If <code>&lt;selector&gt;</code> begins with <code>!</code>, then
all configurations <strong>not</strong> matching the string following
<code>!</code> will be selected.</li>
</ul>
<p>A more specialized version, <code>CONF_NAME=&lt;name&gt;</code> also
exists, which will only match if the given <code>&lt;name&gt;</code>
exactly matches a single configuration.</p>
<p>Alternatively, you can execute <code>make</code> in the configuration
directory, e.g. <code>cd build/&lt;name&gt; &amp;&amp; make</code>.</p>
<p><code>make CONF_NAME=&lt;name&gt;</code> or</p>
<h3 id="handling-reconfigurations">Handling Reconfigurations</h3>
<p>If you update the repository and part of the configure script has
changed, the build system will force you to re-run

View File

@@ -349,7 +349,7 @@ will most likely need to install developer packages.
For apt-based distributions (Debian, Ubuntu, etc), try this:
```
sudo apt-get install build-essential
sudo apt-get install build-essential autoconf
```
For rpm-based distributions (Fedora, Red Hat, etc), try this:
@@ -572,6 +572,7 @@ required on all platforms except Windows and macOS.
libfontconfig-dev`.
* To install on an rpm-based Linux, try running `sudo yum install
fontconfig-devel`.
* To install on Alpine Linux, try running `sudo apk add fontconfig-dev`.
Use `--with-fontconfig-include=<path>` and `--with-fontconfig=<path>` if
`configure` does not automatically locate the platform Fontconfig files.
@@ -684,6 +685,14 @@ shells are supported.
At least version 3.2 of GNU Bash must be used.
### Graphviz and Pandoc
In order to build the full docs (see the `--enable-full-docs`
configure option) [Graphviz](https://www.graphviz.org) and
[Pandoc](https://pandoc.org) are required. Any recent versions should
work. For reference, and subject to change, Oracle builds use Graphviz
9.0.0 and Pandoc 2.19.2.
## Running Configure
To build the JDK, you need a "configuration", which consists of a directory
@@ -1316,9 +1325,6 @@ For example, cross-compiling to AArch64 from x86_64 could be done like this:
https://httpredir.debian.org/debian/
```
If the target architecture is `riscv64`, the path should be `debian-ports`
instead of `debian`.
* To create an Ubuntu-based chroot:
```
@@ -1946,12 +1952,25 @@ configuration with the name `<name>`. Alternatively, you can create a directory
under `build` and run `configure` from there, e.g. `mkdir build/<name> && cd
build/<name> && bash ../../configure`.
Then you can build that configuration using `make CONF_NAME=<name>` or `make
CONF=<pattern>`, where `<pattern>` is a substring matching one or several
configurations, e.g. `CONF=debug`. The special empty pattern (`CONF=`) will
match *all* available configuration, so `make CONF= hotspot` will build the
`hotspot` target for all configurations. Alternatively, you can execute `make`
in the configuration directory, e.g. `cd build/<name> && make`.
Then you can build that configuration using `make CONF=<selector>`, where
`<selector>` is interpreted as follows:
* If `<selector>` exacly matches the name of a configuration, this and only
this configuration will be selected.
* If `<selector>` matches (i.e. is a substring of) the names of several
configurations, then all these configurations will be selected.
* If `<selector>` is empty (i.e. `CONF=`), then all configurations will be
selected.
* If `<selector>` begins with `!`, then all configurations **not** matching the
string following `!` will be selected.
A more specialized version, `CONF_NAME=<name>` also exists, which will only
match if the given `<name>` exactly matches a single configuration.
Alternatively, you can execute `make` in the configuration directory, e.g. `cd
build/<name> && make`.
`make CONF_NAME=<name>` or
### Handling Reconfigurations

View File

@@ -139,11 +139,6 @@ ifeq ($(IS_DRAFT), true)
endif
DRAFT_TEXT := This specification is not final and is subject to change. \
Use is subject to <a href="$(LICENSE_URL)">license terms</a>.
# Workaround stylesheet bug
HEADER_STYLE := style="margin-top: 9px;"
else
HEADER_STYLE := style="margin-top: 14px;"
endif
# $1 - Relative prefix to COPYRIGHT_URL
@@ -339,7 +334,7 @@ define SetupApiDocsGenerationBody
$1_DOC_TITLE := $$($1_LONG_NAME)<br>Version $$(VERSION_SPECIFICATION) API \
Specification
$1_WINDOW_TITLE := $$(subst &amp;,&,$$($1_SHORT_NAME))$$(DRAFT_MARKER_TITLE)
$1_HEADER_TITLE := <div $$(HEADER_STYLE)><strong>$$($1_SHORT_NAME)</strong> \
$1_HEADER_TITLE := <div><strong>$$($1_SHORT_NAME)</strong> \
$$(DRAFT_MARKER_STR)</div>
ifneq ($$($1_OTHER_VERSIONS), )
$1_JAVADOC_BOTTOM := $$(call JAVADOC_BOTTOM, <a href="$$($1_OTHER_VERSIONS)">Other versions.</a>)
@@ -647,7 +642,7 @@ ifeq ($(ENABLE_PANDOC), true)
GLOBAL_SPECS_DEFAULT_CSS_FILE := $(DOCS_OUTPUTDIR)/resources/jdk-default.css
# Unset the following to suppress the link to the tool guides
NAV_LINK_GUIDES := --nav-link-guides
HEADER_RIGHT_SIDE_INFO := <strong>$(subst &amp;,&,$(JDK_SHORT_NAME))$(DRAFT_MARKER_STR)</strong>
HEADER_RIGHT_SIDE_INFO := <strong>$(subst &amp;,&,$(JDK_SHORT_NAME))</strong>$(DRAFT_MARKER_STR)
$(foreach m, $(ALL_MODULES), \
$(eval SPECS_$m := $(call FindModuleSpecsDirs, $m)) \

View File

@@ -87,10 +87,9 @@ help:
$(info $(_) # (gensrc, java, copy, libs, launchers, gendata))
$(info )
$(info Make control variables)
$(info $(_) CONF= # Build all configurations (note, assignment is empty))
$(info $(_) CONF=<substring> # Build the configuration(s) with a name matching)
$(info $(_) # <substring>)
$(info $(_) CONF_NAME=<string> # Build the configuration with exactly the <string>)
$(info $(_) CONF=<selector> # Select which configuration(s) to build)
$(info $(_) CONF= # Select all configurations (note, assignment is empty))
$(info $(_) CONF_NAME=<string> # Select the configuration with the name <string>)
$(info $(_) SPEC=<spec file> # Build the configuration given by the spec file)
$(info $(_) LOG=<loglevel> # Change the log level from warn to <loglevel>)
$(info $(_) # Available log levels are:)

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -38,7 +38,7 @@ HSDIS_OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/hsdis
REAL_HSDIS_NAME := hsdis-$(OPENJDK_TARGET_CPU_LEGACY_LIB)$(SHARED_LIBRARY_SUFFIX)
BUILT_HSDIS_LIB := $(HSDIS_OUTPUT_DIR)/$(REAL_HSDIS_NAME)
HSDIS_TOOLCHAIN := TOOLCHAIN_DEFAULT
HSDIS_LINK_TYPE := C
HSDIS_TOOLCHAIN_CFLAGS := $(CFLAGS_JDKLIB)
HSDIS_TOOLCHAIN_LDFLAGS := $(LDFLAGS_JDKLIB)
@@ -59,8 +59,8 @@ endif
ifeq ($(HSDIS_BACKEND), llvm)
# Use C++ instead of C
HSDIS_LINK_TYPE := C++
HSDIS_TOOLCHAIN_CFLAGS := $(CXXFLAGS_JDKLIB)
HSDIS_TOOLCHAIN := TOOLCHAIN_LINK_CXX
ifeq ($(call isTargetOs, linux), true)
LLVM_OS := pc-linux-gnu
@@ -91,14 +91,11 @@ ifeq ($(HSDIS_BACKEND), binutils)
endif
endif
$(eval $(call DefineNativeToolchain, TOOLCHAIN_MINGW, \
CC := $(MINGW_BASE)-gcc, \
LD := $(MINGW_BASE)-ld, \
OBJCOPY := $(MINGW_BASE)-objcopy, \
RC := $(RC), \
SYSROOT_CFLAGS := --sysroot=$(MINGW_SYSROOT), \
SYSROOT_LDFLAGS := --sysroot=$(MINGW_SYSROOT), \
))
BUILD_HSDIS_CC := $(MINGW_BASE)-gcc
BUILD_HSDIS_LD := $(MINGW_BASE)-ld
BUILD_HSDIS_OBJCOPY := $(MINGW_BASE)-objcopy
BUILD_HSDIS_SYSROOT_CFLAGS := --sysroot=$(MINGW_SYSROOT)
BUILD_HSDIS_SYSROOT_LDFLAGS := --sysroot=$(MINGW_SYSROOT)
MINGW_SYSROOT_LIB_PATH := $(MINGW_SYSROOT)/mingw/lib
ifeq ($(wildcard $(MINGW_SYSROOT_LIB_PATH)), )
@@ -122,8 +119,8 @@ ifeq ($(HSDIS_BACKEND), binutils)
TOOLCHAIN_TYPE := gcc
OPENJDK_TARGET_OS := linux
OPENJDK_TARGET_OS_TYPE := unix
CC_OUT_OPTION := -o$(SPACE)
LD_OUT_OPTION := -o$(SPACE)
GENDEPS_FLAGS := -MMD -MF
CFLAGS_DEBUG_SYMBOLS := -g
DISABLED_WARNINGS :=
@@ -131,7 +128,6 @@ ifeq ($(HSDIS_BACKEND), binutils)
CFLAGS_WARNINGS_ARE_ERRORS := -Werror
SHARED_LIBRARY_FLAGS := -shared
HSDIS_TOOLCHAIN := TOOLCHAIN_MINGW
HSDIS_TOOLCHAIN_CFLAGS :=
HSDIS_TOOLCHAIN_LDFLAGS := -L$(MINGW_GCC_LIB_PATH) -L$(MINGW_SYSROOT_LIB_PATH)
MINGW_DLLCRT := $(MINGW_SYSROOT_LIB_PATH)/dllcrt2.o
@@ -144,9 +140,9 @@ endif
$(eval $(call SetupJdkLibrary, BUILD_HSDIS, \
NAME := hsdis, \
LINK_TYPE := $(HSDIS_LINK_TYPE), \
SRC := $(TOPDIR)/src/utils/hsdis/$(HSDIS_BACKEND), \
EXTRA_HEADER_DIRS := $(TOPDIR)/src/utils/hsdis, \
TOOLCHAIN := $(HSDIS_TOOLCHAIN), \
OUTPUT_DIR := $(HSDIS_OUTPUT_DIR), \
OBJECT_DIR := $(HSDIS_OUTPUT_DIR), \
DISABLED_WARNINGS_gcc := undef format-nonliteral sign-compare, \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -202,8 +202,14 @@ ifeq ($(HAS_SPEC),)
matching_confs := $$(strip $$(all_confs))
else
# Otherwise select those that contain the given CONF string
matching_confs := $$(strip $$(foreach var, $$(all_confs), \
$$(if $$(findstring $$(CONF), $$(var)), $$(var))))
ifeq ($$(patsubst !%,,$$(CONF)),)
# A CONF starting with ! means we should negate the search term
matching_confs := $$(strip $$(foreach var, $$(all_confs), \
$$(if $$(findstring $$(subst !,,$$(CONF)), $$(var)), ,$$(var))))
else
matching_confs := $$(strip $$(foreach var, $$(all_confs), \
$$(if $$(findstring $$(CONF), $$(var)), $$(var))))
endif
ifneq ($$(filter $$(CONF), $$(matching_confs)), )
# If we found an exact match, use that
matching_confs := $$(CONF)
@@ -421,8 +427,9 @@ else # $(HAS_SPEC)=true
# Cleanup after a compare build
define CleanupCompareBuild
# If running with a COMPARE_BUILD patch, reverse-apply it
$(if $(COMPARE_BUILD_PATCH), cd $(topdir) && $(PATCH) -R -p1 < $(COMPARE_BUILD_PATCH))
# If running with a COMPARE_BUILD patch, reverse-apply it, but continue
# even if that fails (can happen with removed files).
$(if $(COMPARE_BUILD_PATCH), cd $(topdir) && $(PATCH) -R -p1 < $(COMPARE_BUILD_PATCH) || true)
# Move this build away and restore the original build
$(MKDIR) -p $(topdir)/build/compare-build
$(MV) $(OUTPUTDIR) $(COMPARE_BUILD_OUTPUTDIR)

View File

@@ -969,20 +969,28 @@ else
jdk.jdeps-gendata: java
# The ct.sym generation uses all the moduleinfos as input
jdk.compiler-gendata: $(GENSRC_MODULEINFO_TARGETS) $(JAVA_TARGETS)
# jdk.compiler-gendata needs the BUILD_JDK. If the BUILD_JDK was supplied
# externally, no extra prerequisites are needed.
# jdk.compiler gendata generates ct.sym, which requires all generated
# java source and compiled classes present.
jdk.compiler-gendata: $(JAVA_TARGETS)
# jdk.javadoc gendata generates element-list, which requires all java sources
# but not compiled classes.
jdk.javadoc-gendata: $(GENSRC_TARGETS)
# ct.sym and element-list generation also needs the BUILD_JDK. If the
# BUILD_JDK was supplied externally, no extra prerequisites are needed.
ifeq ($(CREATE_BUILDJDK), true)
ifneq ($(CREATING_BUILDJDK), true)
# When cross compiling and an external BUILD_JDK wasn't supplied, it's
# produced by the create-buildjdk target.
jdk.compiler-gendata: create-buildjdk
jdk.javadoc-gendata: create-buildjdk
endif
else ifeq ($(EXTERNAL_BUILDJDK), false)
# When not cross compiling, the BUILD_JDK is the interim jdk image, and
# the javac launcher is needed.
jdk.compiler-gendata: jdk.compiler-launchers
jdk.javadoc-gendata: jdk.compiler-launchers
endif
# Declare dependencies between jmod targets.

View File

@@ -620,11 +620,16 @@ define SetupRunMicroTestBody
$1_MICRO_WARMUP_TIME := -w $$(MICRO_WARMUP_TIME)
endif
# Microbenchmarks are executed from the root of the test image directory.
# This enables JMH tests to add dependencies using relative paths such as
# -Djava.library.path=micro/native
run-test-$1: pre-run-test
$$(call LogWarn)
$$(call LogWarn, Running test '$$($1_TEST)')
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/micro, ( \
$$(CD) $$(TEST_IMAGE_DIR) && \
$$(FIXPATH) $$($1_MICRO_TEST_JDK)/bin/java $$($1_MICRO_JAVA_OPTIONS) \
-jar $$($1_MICRO_BENCHMARKS_JAR) \
$$($1_MICRO_ITER) $$($1_MICRO_FORK) $$($1_MICRO_TIME) \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -123,6 +123,22 @@ AC_DEFUN_ONCE([BASIC_SETUP_BUILD_ENV],
]
)
AC_SUBST(BUILD_ENV)
if test "x$LOCALE" != x; then
# Check if we actually have C.UTF-8; if so, use it
if $LOCALE -a | $GREP -q -E "^C\.(utf8|UTF-8)$"; then
LOCALE_USED=C.UTF-8
else
AC_MSG_WARN([C.UTF-8 locale not found, using C locale])
LOCALE_USED=C
fi
else
AC_MSG_WARN([locale command not not found, using C locale])
LOCALE_USED=C
fi
export LC_ALL=$LOCALE_USED
AC_SUBST(LOCALE_USED)
])
###############################################################################

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -54,6 +54,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
UTIL_REQUIRE_SPECIAL(SED, [AC_PROG_SED])
# Tools only needed on some platforms
UTIL_LOOKUP_PROGS(LOCALE, locale)
UTIL_LOOKUP_PROGS(PATHTOOL, cygpath wslpath)
UTIL_LOOKUP_PROGS(CMD, cmd.exe, $PATH:/cygdrive/c/windows/system32:/mnt/c/windows/system32:/c/windows/system32)
])

View File

@@ -25,7 +25,7 @@
# questions.
#
#
#
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
#
# This program is free software; you can redistribute it and/or modify
@@ -54,18 +54,18 @@ AC_DEFUN([PKG_PROG_PKG_CONFIG],
m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
fi
if test -n "$PKG_CONFIG"; then
_pkg_min_version=m4_default([$1], [0.9.0])
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
PKG_CONFIG=""
fi
_pkg_min_version=m4_default([$1], [0.9.0])
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
PKG_CONFIG=""
fi
fi[]dnl
])# PKG_PROG_PKG_CONFIG
@@ -97,7 +97,7 @@ m4_define([_PKG_CONFIG],
elif test -n "$PKG_CONFIG"; then
PKG_CHECK_EXISTS([$3],
[pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
[pkg_failed=yes])
[pkg_failed=yes])
else
pkg_failed=untried
fi[]dnl
@@ -143,14 +143,14 @@ See the pkg-config man page for more details.])
if test $pkg_failed = yes; then
_PKG_SHORT_ERRORS_SUPPORTED
if test $_pkg_short_errors_supported = yes; then
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
else
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
else
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
# Put the nasty error message in config.log where it belongs
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
ifelse([$4], , [AC_MSG_ERROR(dnl
ifelse([$4], , [AC_MSG_ERROR(dnl
[Package requirements ($2) were not met:
$$1_PKG_ERRORS
@@ -160,10 +160,10 @@ installed software in a non-standard prefix.
_PKG_TEXT
])],
[AC_MSG_RESULT([no])
[AC_MSG_RESULT([no])
$4])
elif test $pkg_failed = untried; then
ifelse([$4], , [AC_MSG_FAILURE(dnl
ifelse([$4], , [AC_MSG_FAILURE(dnl
[The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -171,11 +171,11 @@ path to pkg-config.
_PKG_TEXT
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
[$4])
[$4])
else
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
AC_MSG_RESULT([yes])
ifelse([$3], , :, [$3])
ifelse([$3], , :, [$3])
fi[]dnl
])# PKG_CHECK_MODULES

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -40,6 +40,7 @@ LDCXX := @BUILD_LDCXX@
AS := @BUILD_AS@
NM := @BUILD_NM@
AR := @BUILD_AR@
LIB := @BUILD_LIB@
OBJCOPY := @BUILD_OBJCOPY@
STRIP := @BUILD_STRIP@
SYSROOT_CFLAGS := @BUILD_SYSROOT_CFLAGS@

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -40,7 +40,6 @@ AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
elif test "x$TOOLCHAIN_TYPE" = xclang; then
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
@@ -49,7 +48,6 @@ AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path$(or [$]1,/.)'
SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/[$]1'
SET_SHARED_LIBRARY_MAPFILE='-Wl,-exported_symbols_list,[$]1'
elif test "x$OPENJDK_TARGET_OS" = xaix; then
# Linking is different on aix
@@ -57,14 +55,12 @@ AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
SET_EXECUTABLE_ORIGIN=""
SET_SHARED_LIBRARY_ORIGIN=''
SET_SHARED_LIBRARY_NAME=''
SET_SHARED_LIBRARY_MAPFILE=''
else
# Default works for linux, might work on other platforms as well.
SHARED_LIBRARY_FLAGS='-shared'
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
# arm specific settings
if test "x$OPENJDK_TARGET_CPU" = "xarm"; then
@@ -80,20 +76,17 @@ AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
SET_EXECUTABLE_ORIGIN=""
SET_SHARED_LIBRARY_ORIGIN=''
SET_SHARED_LIBRARY_NAME=''
SET_SHARED_LIBRARY_MAPFILE=''
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
SHARED_LIBRARY_FLAGS="-dll"
SET_EXECUTABLE_ORIGIN=''
SET_SHARED_LIBRARY_ORIGIN=''
SET_SHARED_LIBRARY_NAME=''
SET_SHARED_LIBRARY_MAPFILE='-def:[$]1'
fi
AC_SUBST(SET_EXECUTABLE_ORIGIN)
AC_SUBST(SET_SHARED_LIBRARY_ORIGIN)
AC_SUBST(SET_SHARED_LIBRARY_NAME)
AC_SUBST(SET_SHARED_LIBRARY_MAPFILE)
AC_SUBST(SHARED_LIBRARY_FLAGS)
])
@@ -117,6 +110,16 @@ AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS],
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${DEBUG_PREFIX_CFLAGS}],
IF_FALSE: [
DEBUG_PREFIX_CFLAGS=
],
IF_TRUE: [
# Add debug prefix map gcc system include paths, as they cause
# non-deterministic debug paths depending on gcc path location.
DEBUG_PREFIX_MAP_GCC_INCLUDE_PATHS
# Add debug prefix map for OUTPUTDIR to handle the scenario when
# it is not located within WORKSPACE_ROOT
outputdir_slash="${OUTPUTDIR%/}/"
DEBUG_PREFIX_CFLAGS="$DEBUG_PREFIX_CFLAGS -fdebug-prefix-map=${outputdir_slash}="
]
)
fi
@@ -158,6 +161,55 @@ AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS],
AC_SUBST(ASFLAGS_DEBUG_SYMBOLS)
])
# gcc will embed the full system include paths in the debug info
# resulting in non-deterministic debug symbol files and thus
# non-reproducible native libraries if gcc includes are located
# in different paths.
# Add -fdebug-prefix-map'ings for root and gcc include paths,
# pointing to a common set of folders so that the binaries are deterministic:
# root include : /usr/include
# gcc include : /usr/local/gcc_include
# g++ include : /usr/local/gxx_include
AC_DEFUN([DEBUG_PREFIX_MAP_GCC_INCLUDE_PATHS],
[
# Determine gcc system include paths.
# Assume default roots to start with:
GCC_ROOT_INCLUDE="/usr/include"
# Determine is sysroot or devkit specified?
if test "x$SYSROOT" != "x"; then
GCC_ROOT_INCLUDE="${SYSROOT%/}/usr/include"
fi
# Add root include mapping => /usr/include
GCC_INCLUDE_DEBUG_MAP_FLAGS="-fdebug-prefix-map=${GCC_ROOT_INCLUDE}/=/usr/include/"
# Add gcc system include mapping => /usr/local/gcc_include
# Find location of stddef.h using build C compiler
GCC_SYSTEM_INCLUDE=`$ECHO "#include <stddef.h>" | \
$CC $CFLAGS -v -E - 2>&1 | \
$GREP stddef | $TAIL -1 | $TR -s " " | $CUT -d'"' -f2`
if test "x$GCC_SYSTEM_INCLUDE" != "x"; then
GCC_SYSTEM_INCLUDE=`$DIRNAME $GCC_SYSTEM_INCLUDE`
GCC_INCLUDE_DEBUG_MAP_FLAGS="$GCC_INCLUDE_DEBUG_MAP_FLAGS \
-fdebug-prefix-map=${GCC_SYSTEM_INCLUDE}/=/usr/local/gcc_include/"
fi
# Add g++ system include mapping => /usr/local/gxx_include
# Find location of cstddef using build C++ compiler
GXX_SYSTEM_INCLUDE=`$ECHO "#include <cstddef>" | \
$CXX $CXXFLAGS -v -E -x c++ - 2>&1 | \
$GREP cstddef | $TAIL -1 | $TR -s " " | $CUT -d'"' -f2`
if test "x$GXX_SYSTEM_INCLUDE" != "x"; then
GXX_SYSTEM_INCLUDE=`$DIRNAME $GXX_SYSTEM_INCLUDE`
GCC_INCLUDE_DEBUG_MAP_FLAGS="$GCC_INCLUDE_DEBUG_MAP_FLAGS \
-fdebug-prefix-map=${GXX_SYSTEM_INCLUDE}/=/usr/local/gxx_include/"
fi
# Add to debug prefix cflags
DEBUG_PREFIX_CFLAGS="$DEBUG_PREFIX_CFLAGS $GCC_INCLUDE_DEBUG_MAP_FLAGS"
])
AC_DEFUN([FLAGS_SETUP_WARNINGS],
[
# Set default value.
@@ -425,13 +477,14 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
[
#### OS DEFINES, these should be independent on toolchain
if test "x$OPENJDK_TARGET_OS" = xlinux; then
CFLAGS_OS_DEF_JVM="-DLINUX"
CFLAGS_OS_DEF_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
CFLAGS_OS_DEF_JVM="-DLINUX -D_FILE_OFFSET_BITS=64"
CFLAGS_OS_DEF_JDK="-D_GNU_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64"
elif test "x$OPENJDK_TARGET_OS" = xmacosx; then
CFLAGS_OS_DEF_JVM="-D_ALLBSD_SOURCE -D_DARWIN_C_SOURCE -D_XOPEN_SOURCE"
CFLAGS_OS_DEF_JDK="-D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT"
elif test "x$OPENJDK_TARGET_OS" = xaix; then
CFLAGS_OS_DEF_JVM="-DAIX"
CFLAGS_OS_DEF_JVM="-DAIX -D_LARGE_FILES"
CFLAGS_OS_DEF_JDK="-D_LARGE_FILES"
elif test "x$OPENJDK_TARGET_OS" = xbsd; then
CFLAGS_OS_DEF_JDK="-D_ALLBSD_SOURCE"
elif test "x$OPENJDK_TARGET_OS" = xwindows; then
@@ -489,7 +542,7 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
ALWAYS_DEFINES_JVM="-D_GNU_SOURCE"
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
ALWAYS_DEFINES_JVM="-D_REENTRANT"
ALWAYS_DEFINES_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC"
ALWAYS_DEFINES_JDK="-D_GNU_SOURCE -D_REENTRANT -DSTDC"
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
# Access APIs for Windows 8 and above
# see https://docs.microsoft.com/en-us/cpp/porting/modifying-winver-and-win32-winnt?view=msvc-170

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -93,7 +93,7 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
BASIC_LDFLAGS_JVM_ONLY="-Wl,-lC_r -bbigtoc"
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
BASIC_LDFLAGS="-nologo -opt:ref"
BASIC_LDFLAGS="-opt:ref"
BASIC_LDFLAGS_JDK_ONLY="-incremental:no"
BASIC_LDFLAGS_JVM_ONLY="-opt:icf,8 -subsystem:windows"
fi

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -33,9 +33,6 @@ AC_DEFUN([FLAGS_SETUP_ARFLAGS],
# FIXME: figure out if we should select AR flags depending on OS or toolchain.
if test "x$OPENJDK_TARGET_OS" = xaix; then
ARFLAGS="-X64"
elif test "x$OPENJDK_TARGET_OS" = xwindows; then
# lib.exe is used as AR to create static libraries.
ARFLAGS="-nologo -NODEFAULTLIB:MSVCRT"
else
ARFLAGS=""
fi
@@ -43,6 +40,18 @@ AC_DEFUN([FLAGS_SETUP_ARFLAGS],
AC_SUBST(ARFLAGS)
])
AC_DEFUN([FLAGS_SETUP_LIBFLAGS],
[
# LIB is used to create static libraries on Windows
if test "x$OPENJDK_TARGET_OS" = xwindows; then
LIBFLAGS="-nodefaultlib:msvcrt"
else
LIBFLAGS=""
fi
AC_SUBST(LIBFLAGS)
])
AC_DEFUN([FLAGS_SETUP_STRIPFLAGS],
[
## Setup strip.

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -364,24 +364,12 @@ AC_DEFUN([FLAGS_SETUP_TOOLCHAIN_CONTROL],
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
CC_OUT_OPTION=-Fo
LD_OUT_OPTION=-out:
AR_OUT_OPTION=-out:
else
# The option used to specify the target .o,.a or .so file.
# When compiling, how to specify the to be created object file.
CC_OUT_OPTION='-o$(SPACE)'
# When linking, how to specify the output
LD_OUT_OPTION='-o$(SPACE)'
# When archiving, how to specify the destination static archive.
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
AR_OUT_OPTION='-r -cs$(SPACE)'
else
AR_OUT_OPTION='-rcs$(SPACE)'
fi
fi
AC_SUBST(CC_OUT_OPTION)
AC_SUBST(LD_OUT_OPTION)
AC_SUBST(AR_OUT_OPTION)
# Generate make dependency files
if test "x$TOOLCHAIN_TYPE" = xgcc; then
@@ -423,6 +411,7 @@ AC_DEFUN([FLAGS_SETUP_FLAGS],
FLAGS_SETUP_LDFLAGS
FLAGS_SETUP_ARFLAGS
FLAGS_SETUP_LIBFLAGS
FLAGS_SETUP_STRIPFLAGS
FLAGS_SETUP_RCFLAGS
FLAGS_SETUP_NMFLAGS

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -56,8 +56,8 @@ COMMA := ,
# What make to use for main processing, after bootstrapping top-level Makefile.
MAKE := @MAKE@
# Make sure all shell commands are executed with the C locale
export LC_ALL := C
# Make sure all shell commands are executed with a proper locale
export LC_ALL := @LOCALE_USED@
# Make sure we override any local CLASSPATH variable
export CLASSPATH := @CLASSPATH@
@@ -191,7 +191,7 @@ PRODUCT_NAME := @PRODUCT_NAME@
PRODUCT_SUFFIX := @PRODUCT_SUFFIX@
JDK_RC_PLATFORM_NAME := @JDK_RC_PLATFORM_NAME@
JDK_RC_NAME := @JDK_RC_NAME@
JDK_RC_COMPANY_NAME:=@JDK_RC_COMPANY_NAME@
JDK_RC_COMPANY_NAME := @JDK_RC_COMPANY_NAME@
COMPANY_NAME := @COMPANY_NAME@
HOTSPOT_VM_DISTRO := @HOTSPOT_VM_DISTRO@
MACOSX_BUNDLE_NAME_BASE := @MACOSX_BUNDLE_NAME_BASE@
@@ -498,8 +498,6 @@ COMPILER_COMMAND_FILE_FLAG := @COMPILER_COMMAND_FILE_FLAG@
COMPILER_BINDCMD_FILE_FLAG := @COMPILER_BINDCMD_FILE_FLAG@
CC_OUT_OPTION := @CC_OUT_OPTION@
LD_OUT_OPTION := @LD_OUT_OPTION@
AR_OUT_OPTION := @AR_OUT_OPTION@
# Flags used for overriding the default opt setting for a C/C++ source file.
C_O_FLAG_HIGHEST_JVM := @C_O_FLAG_HIGHEST_JVM@
@@ -604,10 +602,10 @@ BUILD_SYSROOT_LDFLAGS := @BUILD_SYSROOT_LDFLAGS@
AS := @AS@
# AR is used to create a static library (is ar in unix, lib.exe in windows)
AR := @AR@
ARFLAGS := @ARFLAGS@
LIB := @LIB@
LIBFLAGS := @LIBFLAGS@
NM := @NM@
NMFLAGS := @NMFLAGS@
STRIP := @STRIP@
@@ -619,10 +617,6 @@ INSTALL_NAME_TOOL := @INSTALL_NAME_TOOL@
METAL := @METAL@
METALLIB := @METALLIB@
# Options to linker to specify a mapfile.
# (Note absence of := assignment, because we do not want to evaluate the macro body here)
SET_SHARED_LIBRARY_MAPFILE = @SET_SHARED_LIBRARY_MAPFILE@
#
# Options for generating debug symbols
COMPILE_WITH_DEBUG_SYMBOLS := @COMPILE_WITH_DEBUG_SYMBOLS@

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -389,6 +389,10 @@ AC_DEFUN_ONCE([TOOLCHAIN_POST_DETECTION],
# This is necessary since AC_PROG_CC defaults CFLAGS to "-g -O2"
CFLAGS="$ORG_CFLAGS"
CXXFLAGS="$ORG_CXXFLAGS"
# filter out some unwanted additions autoconf may add to CXX; we saw this on macOS with autoconf 2.72
UTIL_GET_NON_MATCHING_VALUES(cxx_filtered, $CXX, -std=c++11 -std=gnu++11)
CXX="$cxx_filtered"
])
# Check if a compiler is of the toolchain type we expect, and save the version
@@ -728,11 +732,10 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
AC_SUBST(AS)
#
# Setup the archiver (AR)
# Setup tools for creating static libraries (AR/LIB)
#
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
# The corresponding ar tool is lib.exe (used to create static libraries)
UTIL_LOOKUP_TOOLCHAIN_PROGS(AR, lib)
UTIL_LOOKUP_TOOLCHAIN_PROGS(LIB, lib)
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
UTIL_LOOKUP_TOOLCHAIN_PROGS(AR, ar gcc-ar)
else

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -199,7 +199,7 @@ AC_DEFUN([UTIL_GET_NON_MATCHING_VALUES],
if test -z "$legal_values"; then
$1="$2"
else
result=`$GREP -Fvx "$legal_values" <<< "$values_to_check" | $GREP -v '^$'`
result=`$GREP -Fvx -- "$legal_values" <<< "$values_to_check" | $GREP -v '^$'`
$1=${result//$'\n'/ }
fi
])
@@ -226,7 +226,7 @@ AC_DEFUN([UTIL_GET_MATCHING_VALUES],
if test -z "$illegal_values"; then
$1=""
else
result=`$GREP -Fx "$illegal_values" <<< "$values_to_check" | $GREP -v '^$'`
result=`$GREP -Fx -- "$illegal_values" <<< "$values_to_check" | $GREP -v '^$'`
$1=${result//$'\n'/ }
fi
])

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -152,6 +152,10 @@ define SetupLogging
endif
endif
ifneq ($$(findstring $$(LOG_LEVEL), debug trace),)
SHELL := $$(SHELL) -x
endif
ifeq ($$(LOG_LEVEL), trace)
SHELL_NO_RECURSE := $$(SHELL)
# Shell redefinition trick inspired by http://www.cmcrossroads.com/ask-mr-make/6535-tracing-rule-execution-in-gnu-make

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -103,6 +103,7 @@ define SetupTestFilesCompilationBody
$$(eval $$(call SetupNativeCompilation, BUILD_TEST_$$(name), \
NAME := $$(unprefixed_name), \
TYPE := $$($1_COMPILATION_TYPE), \
LINK_TYPE := $(if $$(filter %.cpp, $$(file)), C++, C), \
EXTRA_FILES := $$(file) $$($1_EXTRA_FILES), \
OBJECT_DIR := $$($1_OUTPUT_DIR)/support/$$(name), \
OUTPUT_DIR := $$($1_OUTPUT_DIR)/$$($1_OUTPUT_SUBDIR), \
@@ -113,7 +114,6 @@ define SetupTestFilesCompilationBody
DISABLED_WARNINGS_clang := undef format-nonliteral \
missing-field-initializers sometimes-uninitialized, \
LIBS := $$($1_LIBS_$$(name)), \
TOOLCHAIN := $(if $$(filter %.cpp, $$(file)), TOOLCHAIN_LINK_CXX, TOOLCHAIN_DEFAULT), \
OPTIMIZATION := $$(if $$($1_OPTIMIZATION_$$(name)),$$($1_OPTIMIZATION_$$(name)),LOW), \
COPY_DEBUG_SYMBOLS := $$($1_COPY_DEBUG_SYMBOLS), \
STRIP_SYMBOLS := $$(if $$($1_STRIP_SYMBOLS_$$(name)),$$($1_STRIP_SYMBOLS_$$(name)),false), \

View File

@@ -0,0 +1,351 @@
#
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################################
# This file contains functionality related to compiling a single native source
# file (C, C++ or Objective-C) into an object file. It also harbours related
# functionality for generating PCH (precompiled headers) and Windows resource
# files.
################################################################################
# Creates a recipe that creates a compile_commands.json fragment. Remove any
# occurrences of FIXPATH programs from the command to show the actual invocation.
#
# Param 1: Name of file to create
# Param 2: Working directory
# Param 3: Source file
# Param 4: Compile command
################################################################################
define WriteCompileCommandsFragment
$(call LogInfo, Creating compile commands fragment for $(notdir $3))
$(call MakeDir, $(dir $1))
$(call WriteFile,{ \
"directory": "$(strip $(call FixPath, $2))"$(COMMA) \
"file": "$(strip $(call FixPath, $3))"$(COMMA) \
"command": "$(strip $(subst $(DQUOTE),\$(DQUOTE),$(subst \,\\,\
$(subst $(FIXPATH),,$(call FixPath, $4)))))" \
}$(COMMA), \
$1)
endef
################################################################################
# Extensions of files handled by this macro.
NATIVE_SOURCE_EXTENSIONS := %.S %.c %.cpp %.cc %.m %.mm
# Replaces native source extensions with the object file extension in a string.
# Param 1: the string containing source file names with extensions
# The surrounding strip is needed to keep additional whitespace out
define replace_with_obj_extension
$(strip \
$(foreach extension, $(NATIVE_SOURCE_EXTENSIONS), \
$(patsubst $(extension),%$(OBJ_SUFFIX), $(filter $(extension), $1))) \
)
endef
################################################################################
# This pattern is used to transform the output of the microsoft CL compiler
# into a make syntax dependency file (.d)
WINDOWS_SHOWINCLUDE_SED_PATTERN := \
-e '/^Note: including file:/!d' \
-e 's|Note: including file: *||' \
-e 's|\r||g' \
-e 's|\\|/|g' \
-e 's|^\([a-zA-Z]\):|$(WINENV_PREFIX)/\1|g' \
-e '\|$(TOPDIR)|I !d' \
-e 's|$$$$| \\|g' \
#
################################################################################
# This pattern is used to transform a dependency file (.d) to a list
# of make targets for dependent files (.d.targets)
DEPENDENCY_TARGET_SED_PATTERN := \
-e 's/\#.*//' \
-e 's/^[^:]*: *//' \
-e 's/ *\\$$$$//' \
-e 's/^[ ]*//' \
-e '/^$$$$/ d' \
-e 's/$$$$/ :/' \
#
################################################################################
# Create the recipe needed to compile a single native source file.
#
# Parameter 1 is the name of the rule, based on the name of the library/
# program being build and the name of the source code file, e.g.
# BUILD_LIBFOO_fooMain.cpp.
#
# Remaining parameters are named arguments:
# FILE - The full path of the source file to compiler
# BASE - The name of the rule for the entire binary to build ($1)
#
CreateCompiledNativeFile = $(NamedParamsMacroTemplate)
define CreateCompiledNativeFileBody
$1_FILENAME := $$(notdir $$($1_FILE))
# The target file to be generated.
$1_OBJ := $$($$($1_BASE)_OBJECT_DIR)/$$(call replace_with_obj_extension, \
$$($1_FILENAME))
# Generate the corresponding compile_commands.json fragment.
$1_OBJ_JSON = $$(MAKESUPPORT_OUTPUTDIR)/compile-commands/$$(subst /,_,$$(subst \
$$(OUTPUTDIR)/,,$$($1_OBJ))).json
$$($1_BASE)_ALL_OBJS_JSON += $$($1_OBJ_JSON)
# Only continue if this object file hasn't been processed already. This lets
# the first found source file override any other with the same name.
ifeq ($$($1_OBJ_PROCESSED), )
$1_OBJ_PROCESSED := true
# This is the definite source file to use for $1_FILENAME.
$1_SRC_FILE := $$($1_FILE)
$$(eval $$(call SetupCompileFileFlags,$1,$$($1_BASE)))
ifneq ($$(filter %.c, $$($1_FILENAME)), )
# Compile as a C file
$1_CFLAGS += $$($1_WARNINGS_FLAGS)
$1_FLAGS := $(CFLAGS_CCACHE) $$($1_USE_PCH_FLAGS) $$($1_BASE_CFLAGS) \
$$($1_OPT_CFLAGS) $$($1_CFLAGS) -c
$1_COMPILER := $$($$($1_BASE)_CC)
else ifneq ($$(filter %.m, $$($1_FILENAME)), )
# Compile as an Objective-C file
$1_CFLAGS += $$($1_WARNINGS_FLAGS)
$1_FLAGS := -x objective-c $(CFLAGS_CCACHE) $$($1_USE_PCH_FLAGS) \
$$($1_BASE_CFLAGS) $$($1_OPT_CFLAGS) $$($1_CFLAGS) -c
$1_COMPILER := $$($$($1_BASE)_CC)
else ifneq ($$(filter %.S, $$($1_FILENAME)), )
# Compile as preprocessed assembler file
$1_FLAGS := $(BASIC_ASFLAGS) $$($1_BASE_ASFLAGS)
$1_COMPILER := $(AS)
# gcc or clang assembly files must contain an appropriate relative .file
# path for reproducible builds.
ifneq ($(findstring $(TOOLCHAIN_TYPE), gcc clang), )
# If no absolute paths allowed, work out relative source file path
# for assembly .file substitution, otherwise use full file path
ifeq ($(ALLOW_ABSOLUTE_PATHS_IN_OUTPUT), false)
$1_REL_ASM_SRC := $$(call RelativePath, $$($1_FILE), $(WORKSPACE_ROOT))
else
$1_REL_ASM_SRC := $$($1_FILE)
endif
$1_FLAGS := $$($1_FLAGS) -DASSEMBLY_SRC_FILE='"$$($1_REL_ASM_SRC)"' \
-include $(TOPDIR)/make/data/autoheaders/assemblyprefix.h
endif
else ifneq ($$(filter %.cpp %.cc %.mm, $$($1_FILENAME)), )
# Compile as a C++ or Objective-C++ file
$1_CXXFLAGS += $$($1_WARNINGS_FLAGS)
$1_FLAGS := $(CFLAGS_CCACHE) $$($1_USE_PCH_FLAGS) $$($1_BASE_CXXFLAGS) \
$$($1_OPT_CXXFLAGS) $$($1_CXXFLAGS) -c
$1_COMPILER := $$($$($1_BASE)_CXX)
else
$$(error Internal error in NativeCompilation.gmk: no compiler for file $$($1_FILENAME))
endif
# And this is the dependency file for this obj file.
$1_DEPS_FILE := $$(patsubst %$(OBJ_SUFFIX),%.d,$$($1_OBJ))
# The dependency target file lists all dependencies as empty targets to
# avoid make error "No rule to make target" for removed files
$1_DEPS_TARGETS_FILE := $$(patsubst %$(OBJ_SUFFIX),%.d.targets,$$($1_OBJ))
# Only try to load individual dependency information files if the global
# file hasn't been loaded (could happen if make was interrupted).
ifneq ($$($$($1_BASE)_DEPS_FILE_LOADED), true)
# Include previously generated dependency information. (if it exists)
-include $$($1_DEPS_FILE)
-include $$($1_DEPS_TARGETS_FILE)
endif
ifneq ($$(strip $$($1_CFLAGS) $$($1_CXXFLAGS) $$($1_OPTIMIZATION)), )
$1_VARDEPS := $$($1_CFLAGS) $$($1_CXXFLAGS) $$($1_OPTIMIZATION)
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, $$($1_OBJ).vardeps)
endif
$1_OBJ_DEPS := $$($1_SRC_FILE) $$($$($1_BASE)_COMPILE_VARDEPS_FILE) \
$$($$($1_BASE)_EXTRA_DEPS) $$($1_VARDEPS_FILE)
$1_COMPILE_OPTIONS := $$($1_FLAGS) $(CC_OUT_OPTION)$$($1_OBJ) $$($1_SRC_FILE)
# For reproducible builds with gcc and clang ensure random symbol generation is
# seeded deterministically
ifneq ($(findstring $(TOOLCHAIN_TYPE), gcc clang), )
$1_COMPILE_OPTIONS += -frandom-seed="$$($1_FILENAME)"
endif
$$($1_OBJ_JSON): $$($1_OBJ_DEPS)
$$(call WriteCompileCommandsFragment, $$@, $$(PWD), $$($1_SRC_FILE), \
$$($1_COMPILER) $$($1_COMPILE_OPTIONS))
$$($1_OBJ): $$($1_OBJ_DEPS) | $$($$($1_BASE)_BUILD_INFO)
$$(call LogInfo, Compiling $$($1_FILENAME) (for $$($$($1_BASE)_BASENAME)))
$$(call MakeDir, $$(@D))
ifneq ($(TOOLCHAIN_TYPE), microsoft)
$$(call ExecuteWithLog, $$@, $$(call MakeCommandRelative, \
$$($1_COMPILER) $$(GENDEPS_FLAGS) \
$$(addsuffix .tmp, $$($1_DEPS_FILE)) \
$$($1_COMPILE_OPTIONS)))
ifneq ($$($1_DEPS_FILE), )
$$(call fix-deps-file, $$($1_DEPS_FILE))
# Create a dependency target file from the dependency file.
# Solution suggested by:
# http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/
$(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_DEPS_FILE) \
> $$($1_DEPS_TARGETS_FILE)
endif
else
# The Visual Studio compiler lacks a feature for generating make
# dependencies, but by setting -showIncludes, all included files are
# printed. These are filtered out and parsed into make dependences.
#
# Keep as much as possible on one execution line for best performance
# on Windows. No need to save exit code from compilation since
# pipefail is always active on Windows.
ifeq ($$(filter %.S, $$($1_FILENAME)), )
$$(call ExecuteWithLog, $$@, $$(call MakeCommandRelative, \
$$($1_COMPILER) -showIncludes $$($1_COMPILE_OPTIONS))) \
| $(TR) -d '\r' | $(GREP) -v -e "^Note: including file:" \
-e "^$$($1_FILENAME)$$$$" || test "$$$$?" = "1" ; \
$(ECHO) $$@: \\ > $$($1_DEPS_FILE) ; \
$(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_OBJ).log \
| $(SORT) -u >> $$($1_DEPS_FILE) ; \
$(ECHO) >> $$($1_DEPS_FILE) ; \
$(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_DEPS_FILE) > $$($1_DEPS_TARGETS_FILE)
else
# For assembler calls just create empty dependency lists
$$(call ExecuteWithLog, $$@, $$(call MakeCommandRelative, \
$$($1_COMPILER) $$($1_FLAGS) \
$(CC_OUT_OPTION)$$($1_OBJ) -Ta $$($1_SRC_FILE))) \
| $(TR) -d '\r' | $(GREP) -v -e "Assembling:" || test "$$$$?" = "1" ; \
$(ECHO) > $$($1_DEPS_FILE) ; \
$(ECHO) > $$($1_DEPS_TARGETS_FILE)
endif
endif
endif
endef
################################################################################
define CreatePrecompiledHeader
ifneq ($$($1_PRECOMPILED_HEADER), )
ifeq ($(USE_PRECOMPILED_HEADER), true)
ifeq ($(TOOLCHAIN_TYPE), microsoft)
$1_PCH_FILE := $$($1_OBJECT_DIR)/$1.pch
$1_GENERATED_PCH_SRC := $$($1_OBJECT_DIR)/$1_pch.cpp
$1_GENERATED_PCH_OBJ := $$($1_OBJECT_DIR)/$1_pch$(OBJ_SUFFIX)
$$(eval $$(call CreateCompiledNativeFile, $1_$$(notdir $$($1_GENERATED_PCH_SRC)), \
FILE := $$($1_GENERATED_PCH_SRC), \
BASE := $1, \
EXTRA_CXXFLAGS := -Fp$$($1_PCH_FILE) -Yc$$(notdir $$($1_PRECOMPILED_HEADER)), \
))
$1_USE_PCH_FLAGS := \
-Fp$$($1_PCH_FILE) -Yu$$(notdir $$($1_PRECOMPILED_HEADER))
$$($1_ALL_OBJS): $$($1_GENERATED_PCH_OBJ)
# Explicitly add the pch obj file first to ease comparing to old
# hotspot build.
$1_ALL_OBJS := $$($1_GENERATED_PCH_OBJ) $$($1_ALL_OBJS)
$$($1_GENERATED_PCH_SRC):
$(ECHO) "#include \"$$(notdir $$($1_PRECOMPILED_HEADER))\"" > $$@
else ifneq ($(findstring $(TOOLCHAIN_TYPE), gcc clang), )
ifeq ($(TOOLCHAIN_TYPE), gcc)
$1_PCH_FILE := $$($1_OBJECT_DIR)/precompiled/$$(notdir $$($1_PRECOMPILED_HEADER)).gch
$1_USE_PCH_FLAGS := -I$$($1_OBJECT_DIR)/precompiled
else ifeq ($(TOOLCHAIN_TYPE), clang)
$1_PCH_FILE := $$($1_OBJECT_DIR)/precompiled/$$(notdir $$($1_PRECOMPILED_HEADER)).pch
$1_USE_PCH_FLAGS := -include-pch $$($1_PCH_FILE)
endif
$1_PCH_DEPS_FILE := $$($1_PCH_FILE).d
$1_PCH_DEPS_TARGETS_FILE := $$($1_PCH_FILE).d.targets
-include $$($1_PCH_DEPS_FILE)
-include $$($1_PCH_DEPS_TARGETS_FILE)
$1_PCH_COMMAND := $$($1_CC) $$($1_CFLAGS) $$($1_EXTRA_CFLAGS) $$($1_SYSROOT_CFLAGS) \
$$($1_OPT_CFLAGS) -x c++-header -c $(GENDEPS_FLAGS) \
$$(addsuffix .tmp, $$($1_PCH_DEPS_FILE))
$$($1_PCH_FILE): $$($1_PRECOMPILED_HEADER) $$($1_COMPILE_VARDEPS_FILE)
$$(call LogInfo, Generating precompiled header)
$$(call MakeDir, $$(@D))
$$(call ExecuteWithLog, $$@, $$(call MakeCommandRelative, \
$$($1_PCH_COMMAND) $$< -o $$@))
$$(call fix-deps-file, $$($1_PCH_DEPS_FILE))
$(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_PCH_DEPS_FILE) \
> $$($1_PCH_DEPS_TARGETS_FILE)
$$($1_ALL_OBJS): $$($1_PCH_FILE)
# Generate the corresponding compile_commands.json fragment.
$1_PCH_FILE_JSON := $$(MAKESUPPORT_OUTPUTDIR)/compile-commands/$$(subst /,_,$$(subst \
$$(OUTPUTDIR)/,,$$($1_PCH_FILE))).json
$1_ALL_OBJS_JSON += $$($1_PCH_FILE_JSON)
$$($1_PCH_FILE_JSON): $$($1_PRECOMPILED_HEADER) $$($1_COMPILE_VARDEPS_FILE)
$$(call WriteCompileCommandsFragment, $$@, $$(PWD), $$<, \
$$($1_PCH_COMMAND) $$< -o $$($1_PCH_FILE))
endif
endif
endif
endef
################################################################################
define CreateWindowsResourceFile
ifneq ($$($1_VERSIONINFO_RESOURCE), )
$1_RES := $$($1_OBJECT_DIR)/$$($1_BASENAME).res
$1_RES_DEPS_FILE := $$($1_RES).d
$1_RES_DEPS_TARGETS_FILE := $$($1_RES).d.targets
-include $$($1_RES_DEPS_FILE)
-include $$($1_RES_DEPS_TARGETS_FILE)
$1_RES_VARDEPS := $$($1_RC) $$($1_RCFLAGS)
$1_RES_VARDEPS_FILE := $$(call DependOnVariable, $1_RES_VARDEPS, \
$$($1_RES).vardeps)
$$($1_RES): $$($1_VERSIONINFO_RESOURCE) $$($1_RES_VARDEPS_FILE)
$$(call LogInfo, Compiling resource $$(notdir $$($1_VERSIONINFO_RESOURCE)) (for $$($1_BASENAME)))
$$(call MakeDir, $$(@D) $$($1_OBJECT_DIR))
$$(call ExecuteWithLog, $$@, $$(call MakeCommandRelative, \
$$($1_RC) $$($1_RCFLAGS) $$($1_SYSROOT_CFLAGS) $(CC_OUT_OPTION)$$@ \
$$($1_VERSIONINFO_RESOURCE) 2>&1 ))
# Windows RC compiler does not support -showIncludes, so we mis-use CL
# for this. Filter out RC specific arguments that are unknown to CL.
# For some unknown reason, in this case CL actually outputs the show
# includes to stderr so need to redirect it to hide the output from the
# main log.
$$(call ExecuteWithLog, $$($1_RES_DEPS_FILE)$(OBJ_SUFFIX), \
$$($1_CC) $$(filter-out -l%, $$($1_RCFLAGS)) \
$$($1_SYSROOT_CFLAGS) -showIncludes -nologo -TC \
$(CC_OUT_OPTION)$$($1_RES_DEPS_FILE)$(OBJ_SUFFIX) -P -Fi$$($1_RES_DEPS_FILE).pp \
$$($1_VERSIONINFO_RESOURCE)) 2>&1 \
| $(TR) -d '\r' | $(GREP) -v -e "^Note: including file:" \
-e "^$$(notdir $$($1_VERSIONINFO_RESOURCE))$$$$" || test "$$$$?" = "1" ; \
$(ECHO) $$($1_RES): \\ > $$($1_RES_DEPS_FILE) ; \
$(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_RES_DEPS_FILE)$(OBJ_SUFFIX).log \
>> $$($1_RES_DEPS_FILE) ; \
$(ECHO) >> $$($1_RES_DEPS_FILE) ;\
$(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_RES_DEPS_FILE) \
> $$($1_RES_DEPS_TARGETS_FILE)
endif
endef

View File

@@ -0,0 +1,118 @@
#
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################################
# This file contains functionality related to native debug symbol handling.
################################################################################
define CreateDebugSymbols
ifneq ($$($1_COPY_DEBUG_SYMBOLS), false)
$1_COPY_DEBUG_SYMBOLS := $(COPY_DEBUG_SYMBOLS)
endif
ifneq ($$($1_ZIP_EXTERNAL_DEBUG_SYMBOLS), false)
$1_ZIP_EXTERNAL_DEBUG_SYMBOLS := $(ZIP_EXTERNAL_DEBUG_SYMBOLS)
endif
ifeq ($$($1_COPY_DEBUG_SYMBOLS), true)
ifneq ($$($1_DEBUG_SYMBOLS), false)
$$(call SetIfEmpty, $1_SYMBOLS_DIR, $$($1_OUTPUT_DIR))
# Only copy debug symbols for dynamic libraries and programs.
ifneq ($$($1_TYPE), STATIC_LIBRARY)
# Generate debuginfo files.
ifeq ($(call isTargetOs, windows), true)
$1_EXTRA_LDFLAGS += -debug "-pdb:$$($1_SYMBOLS_DIR)/$$($1_BASENAME).pdb" \
"-map:$$($1_SYMBOLS_DIR)/$$($1_BASENAME).map"
ifeq ($(SHIP_DEBUG_SYMBOLS), public)
$1_EXTRA_LDFLAGS += "-pdbstripped:$$($1_SYMBOLS_DIR)/$$($1_BASENAME).stripped.pdb"
endif
$1_DEBUGINFO_FILES := $$($1_SYMBOLS_DIR)/$$($1_BASENAME).pdb \
$$($1_SYMBOLS_DIR)/$$($1_BASENAME).map
else ifeq ($(call isTargetOs, linux), true)
$1_DEBUGINFO_FILES := $$($1_SYMBOLS_DIR)/$$($1_NOSUFFIX).debuginfo
# Setup the command line creating debuginfo files, to be run after linking.
# It cannot be run separately since it updates the original target file
# Creating the debuglink is done in another command rather than all at once
# so we can run it after strip is called, since strip can sometimes mangle the
# embedded debuglink, which we want to avoid.
$1_CREATE_DEBUGINFO_CMDS := \
$$($1_OBJCOPY) --only-keep-debug $$($1_TARGET) $$($1_DEBUGINFO_FILES) && \
$$(CHMOD) -x $$($1_DEBUGINFO_FILES)
$1_CREATE_DEBUGLINK_CMDS := $(CD) $$($1_SYMBOLS_DIR) && \
$$($1_OBJCOPY) --add-gnu-debuglink=$$($1_DEBUGINFO_FILES) $$($1_TARGET)
else ifeq ($(call isTargetOs, aix), true)
# AIX does not provide the equivalent of OBJCOPY to extract debug symbols,
# so we copy the compiled object with symbols to the .debuginfo file, which
# happens prior to the STRIP_CMD on the original target object file.
$1_DEBUGINFO_FILES := $$($1_SYMBOLS_DIR)/$$($1_NOSUFFIX).debuginfo
$1_CREATE_DEBUGINFO_CMDS := $(CP) $$($1_TARGET) $$($1_DEBUGINFO_FILES)
else ifeq ($(call isTargetOs, macosx), true)
$1_DEBUGINFO_FILES := \
$$($1_SYMBOLS_DIR)/$$($1_BASENAME).dSYM/Contents/Info.plist \
$$($1_SYMBOLS_DIR)/$$($1_BASENAME).dSYM/Contents/Resources/DWARF/$$($1_BASENAME)
$1_CREATE_DEBUGINFO_CMDS := \
$(DSYMUTIL) --out $$($1_SYMBOLS_DIR)/$$($1_BASENAME).dSYM $$($1_TARGET)
endif
# Since the link rule creates more than one file that we want to track,
# we have to use some tricks to get make to cooperate. To properly
# trigger downstream dependants of $$($1_DEBUGINFO_FILES), we must have
# a recipe in the rule below. To avoid rerunning the recipe every time
# have it touch the target. If a debuginfo file is deleted by something
# external, explicitly delete the TARGET to trigger a rebuild of both.
ifneq ($$(wildcard $$($1_DEBUGINFO_FILES)), $$($1_DEBUGINFO_FILES))
$$(call LogDebug, Deleting $$($1_BASENAME) because debuginfo files are missing)
$$(shell $(RM) $$($1_TARGET))
endif
$$($1_DEBUGINFO_FILES): $$($1_TARGET)
$$(if $$(CORRECT_FUNCTION_IN_RECIPE_EVALUATION), \
$$(if $$(wildcard $$@), , $$(error $$@ was not created for $$<)) \
)
$(TOUCH) $$@
$1 += $$($1_DEBUGINFO_FILES)
ifeq ($$($1_ZIP_EXTERNAL_DEBUG_SYMBOLS), true)
ifeq ($(call isTargetOs, windows), true)
$1_DEBUGINFO_ZIP := $$($1_SYMBOLS_DIR)/$$($1_BASENAME).diz
else
$1_DEBUGINFO_ZIP := $$($1_SYMBOLS_DIR)/$$($1_NOSUFFIX).diz
endif
$1 += $$($1_DEBUGINFO_ZIP)
# The dependency on TARGET is needed for debuginfo files
# to be rebuilt properly.
$$($1_DEBUGINFO_ZIP): $$($1_DEBUGINFO_FILES) $$($1_TARGET)
$(CD) $$($1_SYMBOLS_DIR) && \
$(ZIPEXE) -q -r $$@ $$(subst $$($1_SYMBOLS_DIR)/,, $$($1_DEBUGINFO_FILES))
endif
endif # !STATIC_LIBRARY
endif # $1_DEBUG_SYMBOLS != false
endif # COPY_DEBUG_SYMBOLS
endef

View File

@@ -0,0 +1,225 @@
#
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################################
# This file contains functionality related to setting up compiler and linker
# flags, based on various more abstract sources of compilation description,
# like optimization level.
################################################################################
# $1 is the prefix of the file to be compiled
# $2 is the prefix of the library, i.e. $$($1_BASE)
define SetupCompileFileFlags
ifeq ($$($1_OPTIMIZATION), )
$1_OPT_CFLAGS := $$($2_OPT_CFLAGS)
$1_OPT_CXXFLAGS := $$($2_OPT_CXXFLAGS)
else
ifeq ($$($1_OPTIMIZATION), NONE)
$1_OPT_CFLAGS := $(C_O_FLAG_NONE)
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_NONE)
else ifeq ($$($1_OPTIMIZATION), LOW)
$1_OPT_CFLAGS := $(C_O_FLAG_NORM)
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_NORM)
else ifeq ($$($1_OPTIMIZATION), HIGH)
$1_OPT_CFLAGS := $(C_O_FLAG_HI)
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_HI)
else ifeq ($$($1_OPTIMIZATION), HIGHEST)
$1_OPT_CFLAGS := $(C_O_FLAG_HIGHEST)
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_HIGHEST)
else ifeq ($$($1_OPTIMIZATION), HIGHEST_JVM)
$1_OPT_CFLAGS := $(C_O_FLAG_HIGHEST_JVM)
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_HIGHEST_JVM)
else ifeq ($$($1_OPTIMIZATION), SIZE)
$1_OPT_CFLAGS := $(C_O_FLAG_SIZE)
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_SIZE)
else
$$(error Unknown value for file OPTIMIZATION: $$($1_OPTIMIZATION))
endif
endif
ifneq ($$($2_PRECOMPILED_HEADER), )
ifeq ($$(filter $$($1_FILENAME), $$($2_PRECOMPILED_HEADER_EXCLUDE)), )
$1_USE_PCH_FLAGS := $$($2_USE_PCH_FLAGS)
endif
endif
ifneq ($(DISABLE_WARNING_PREFIX), )
$1_WARNINGS_FLAGS := $$(addprefix $(DISABLE_WARNING_PREFIX), \
$$($2_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)_$$($1_FILENAME)) \
$$($2_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)_$(OPENJDK_TARGET_OS)_$$($1_FILENAME)))
endif
$1_BASE_CFLAGS := $$($2_CFLAGS) $$($2_EXTRA_CFLAGS) \
$$($2_SYSROOT_CFLAGS)
$1_BASE_CXXFLAGS := $$($2_CXXFLAGS) $$($2_EXTRA_CXXFLAGS) \
$$($2_SYSROOT_CFLAGS) $$($1_EXTRA_CXXFLAGS)
$1_BASE_ASFLAGS := $$($2_ASFLAGS) $$($2_EXTRA_ASFLAGS)
endef
################################################################################
define SetupCompilerFlags
# Pickup extra OPENJDK_TARGET_OS_TYPE, OPENJDK_TARGET_OS, TOOLCHAIN_TYPE and
# OPENJDK_TARGET_OS plus OPENJDK_TARGET_CPU pair dependent variables for CFLAGS.
$1_EXTRA_CFLAGS := $$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_CFLAGS_$(OPENJDK_TARGET_OS)) \
$$($1_CFLAGS_$(TOOLCHAIN_TYPE)) \
$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU))
ifneq ($(DEBUG_LEVEL), release)
# Pickup extra debug dependent variables for CFLAGS
$1_EXTRA_CFLAGS += $$($1_CFLAGS_debug)
$1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)_debug)
$1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_debug)
$1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU)_debug)
else
$1_EXTRA_CFLAGS += $$($1_CFLAGS_release)
$1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)_release)
$1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_release)
$1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU)_release)
endif
ifeq ($(STATIC_LIBS), true)
$1_EXTRA_CFLAGS += $$(STATIC_LIBS_CFLAGS)
endif
# Pickup extra OPENJDK_TARGET_OS_TYPE, OPENJDK_TARGET_OS and/or TOOLCHAIN_TYPE
# dependent variables for CXXFLAGS.
$1_EXTRA_CXXFLAGS := $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)) \
$$($1_CXXFLAGS_$(TOOLCHAIN_TYPE))
ifneq ($(DEBUG_LEVEL), release)
# Pickup extra debug dependent variables for CXXFLAGS
$1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_debug)
$1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)_debug)
$1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_debug)
else
$1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_release)
$1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)_release)
$1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_release)
endif
ifeq ($(STATIC_LIBS), true)
$1_EXTRA_CXXFLAGS += $$(STATIC_LIB_CFLAGS)
endif
# If no C++ flags are explicitly set, default to using the C flags.
# After that, we can set additional C++ flags that should not interfere
# with the mechanism for copying the C flags by default.
ifeq ($$($1_CXXFLAGS), )
$1_CXXFLAGS := $$($1_CFLAGS)
endif
ifeq ($$(strip $$($1_EXTRA_CXXFLAGS)), )
$1_EXTRA_CXXFLAGS := $$($1_EXTRA_CFLAGS)
endif
$$(call SetIfEmpty, $1_COMPILE_WITH_DEBUG_SYMBOLS, $$(COMPILE_WITH_DEBUG_SYMBOLS))
ifeq ($(STATIC_LIBS), true)
# For release builds where debug symbols are configured to be moved to
# separate debuginfo files, disable debug symbols for static libs instead.
# We don't currently support this configuration and we don't want symbol
# information in release builds unless explicitly asked to provide it.
ifeq ($(DEBUG_LEVEL), release)
ifeq ($(COPY_DEBUG_SYMBOLS), true)
$1_COMPILE_WITH_DEBUG_SYMBOLS := false
endif
endif
endif
ifeq ($$($1_COMPILE_WITH_DEBUG_SYMBOLS), true)
$1_EXTRA_CFLAGS += $$(CFLAGS_DEBUG_SYMBOLS)
$1_EXTRA_CXXFLAGS += $$(CFLAGS_DEBUG_SYMBOLS)
$1_EXTRA_ASFLAGS += $$(ASFLAGS_DEBUG_SYMBOLS)
endif
# Pass the library name for static JNI library naming
ifeq ($$($1_TYPE), STATIC_LIBRARY)
$1_EXTRA_CFLAGS += -DLIBRARY_NAME=$$($1_NAME)
$1_EXTRA_CXXFLAGS += -DLIBRARY_NAME=$$($1_NAME)
endif
# Pick up disabled warnings, if possible on this platform.
ifneq ($(DISABLE_WARNING_PREFIX), )
$1_EXTRA_CFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), \
$$(DISABLED_WARNINGS) \
$$(DISABLED_WARNINGS_C) \
$$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)) \
$$($1_DISABLED_WARNINGS_C_$(TOOLCHAIN_TYPE)) \
$$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)_$(OPENJDK_TARGET_OS)) \
$$($1_DISABLED_WARNINGS_C_$(TOOLCHAIN_TYPE)_$(OPENJDK_TARGET_OS)))
$1_EXTRA_CXXFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), \
$$(DISABLED_WARNINGS) \
$$(DISABLED_WARNINGS_CXX) \
$$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)) \
$$($1_DISABLED_WARNINGS_CXX_$(TOOLCHAIN_TYPE)) \
$$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)_$(OPENJDK_TARGET_OS)) \
$$($1_DISABLED_WARNINGS_CXX_$(TOOLCHAIN_TYPE)_$(OPENJDK_TARGET_OS)))
endif
# Check if warnings should be considered errors.
# Pick first binary and toolchain specific, then binary specific, then general setting.
ifeq ($$($1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE)), )
ifeq ($$($1_WARNINGS_AS_ERRORS), )
$1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE) := $$(WARNINGS_AS_ERRORS)
else
$1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE) := $$($1_WARNINGS_AS_ERRORS)
endif
endif
ifeq ($$($1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE)), true)
$1_EXTRA_CFLAGS += $(CFLAGS_WARNINGS_ARE_ERRORS)
$1_EXTRA_CXXFLAGS += $(CFLAGS_WARNINGS_ARE_ERRORS)
endif
ifeq (NONE, $$($1_OPTIMIZATION))
$1_OPT_CFLAGS := $(C_O_FLAG_NONE)
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_NONE)
else ifeq (LOW, $$($1_OPTIMIZATION))
$1_OPT_CFLAGS := $(C_O_FLAG_NORM)
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_NORM)
else ifeq (HIGH, $$($1_OPTIMIZATION))
$1_OPT_CFLAGS := $(C_O_FLAG_HI)
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_HI)
else ifeq (HIGHEST, $$($1_OPTIMIZATION))
$1_OPT_CFLAGS := $(C_O_FLAG_HIGHEST)
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_HIGHEST)
else ifeq (HIGHEST_JVM, $$($1_OPTIMIZATION))
$1_OPT_CFLAGS := $(C_O_FLAG_HIGHEST_JVM)
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_HIGHEST_JVM)
else ifeq (SIZE, $$($1_OPTIMIZATION))
$1_OPT_CFLAGS := $(C_O_FLAG_SIZE)
$1_OPT_CXXFLAGS := $(CXX_O_FLAG_SIZE)
else ifneq (, $$($1_OPTIMIZATION))
$$(error Unknown value for OPTIMIZATION: $$($1_OPTIMIZATION))
endif
endef
################################################################################
define SetupLinkerFlags
# Pickup extra OPENJDK_TARGET_OS_TYPE, OPENJDK_TARGET_OS and TOOLCHAIN_TYPE
# dependent variables for LDFLAGS and LIBS, and additionally the pair dependent
# TOOLCHAIN_TYPE plus OPENJDK_TARGET_OS
$1_EXTRA_LDFLAGS += $$($1_LDFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS)) \
$$($1_LDFLAGS_$(TOOLCHAIN_TYPE)) $$($1_LDFLAGS_$(TOOLCHAIN_TYPE)_$(OPENJDK_TARGET_OS))
$1_EXTRA_LIBS += $$($1_LIBS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LIBS_$(OPENJDK_TARGET_OS)) \
$$($1_LIBS_$(TOOLCHAIN_TYPE)) $$($1_LIBS_$(TOOLCHAIN_TYPE)_$(OPENJDK_TARGET_OS))
endef

182
make/common/native/Link.gmk Normal file
View File

@@ -0,0 +1,182 @@
#
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################################
# This file contains functionality related to linking a native binary;
# creating either a dynamic library, a static library or an executable.
################################################################################
# GetEntitlementsFile
# Find entitlements file for executable when signing on macosx. If no
# specialized file is found, returns the default file.
# This macro might be called from custom makefiles.
# $1 Executable to find entitlements file for.
ENTITLEMENTS_DIR := $(TOPDIR)/make/data/macosxsigning
ifeq ($(MACOSX_CODESIGN_MODE), debug)
CODESIGN_PLIST_SUFFIX := -debug
else
CODESIGN_PLIST_SUFFIX :=
endif
DEFAULT_ENTITLEMENTS_FILE := $(ENTITLEMENTS_DIR)/default$(CODESIGN_PLIST_SUFFIX).plist
GetEntitlementsFile = \
$(foreach f, $(ENTITLEMENTS_DIR)/$(strip $(notdir $1))$(CODESIGN_PLIST_SUFFIX).plist, \
$(if $(wildcard $f), $f, $(DEFAULT_ENTITLEMENTS_FILE)) \
)
################################################################################
define SetupLinking
# Unless specifically set, stripping should only happen if symbols are also
# being copied.
$$(call SetIfEmpty, $1_STRIP_SYMBOLS, $$($1_COPY_DEBUG_SYMBOLS))
ifneq ($$($1_STRIP_SYMBOLS), false)
# Default to using the global STRIPFLAGS. Allow for overriding with an
# empty value
$1_STRIPFLAGS ?= $(STRIPFLAGS)
$1_STRIP_CMD := $$($1_STRIP) $$($1_STRIPFLAGS) $$($1_TARGET)
endif
endef
################################################################################
define CreateLinkedResult
ifeq ($$($1_TYPE), STATIC_LIBRARY)
$$(eval $$(call CreateStaticLibrary,$1))
else
$$(eval $$(call CreateDynamicLibraryOrExecutable,$1))
endif
endef
################################################################################
define CreateStaticLibrary
# Include partial linking when building the static library with clang on linux
ifeq ($(call isTargetOs, linux), true)
ifneq ($(findstring $(TOOLCHAIN_TYPE), clang), )
$1_ENABLE_PARTIAL_LINKING := true
endif
endif
$1_VARDEPS := $$($1_AR) $$(ARFLAGS) $$($1_ARFLAGS) $$($1_LIBS) \
$$($1_EXTRA_LIBS)
ifeq ($$($1_ENABLE_PARTIAL_LINKING), true)
$1_VARDEPS += $$($1_LD) $$($1_SYSROOT_LDFLAGS)
endif
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps)
$1_TARGET_DEPS := $$($1_ALL_OBJS) $$($1_VARDEPS_FILE)
$1_AR_OBJ_ARG := $$($1_LD_OBJ_ARG)
# With clang on linux, partial linking is enabled and 'AR' takes the output
# object from the partial linking step.
ifeq ($$($1_ENABLE_PARTIAL_LINKING), true)
$1_TARGET_RELOCATABLE := $$($1_OBJECT_DIR)/$$($1_PREFIX)$$($1_NAME)_relocatable$(OBJ_SUFFIX)
$1_AR_OBJ_ARG := $$($1_TARGET_RELOCATABLE)
endif
$$($1_TARGET): $$($1_TARGET_DEPS)
ifneq ($$($1_OBJ_FILE_LIST), )
ifeq ($$($1_LINK_OBJS_RELATIVE), true)
$$(eval $$(call ListPathsSafely, $1_ALL_OBJS_RELATIVE, $$($1_OBJ_FILE_LIST)))
else
$$(eval $$(call ListPathsSafely, $1_ALL_OBJS, $$($1_OBJ_FILE_LIST)))
endif
endif
$$(call LogInfo, Building static library $$($1_BASENAME))
$$(call MakeDir, $$($1_OUTPUT_DIR) $$($1_SYMBOLS_DIR))
# Do partial linking.
ifeq ($$($1_ENABLE_PARTIAL_LINKING), true)
$$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_partial_link, \
$(if $$($1_LINK_OBJS_RELATIVE), $$(CD) $$(OUTPUTDIR) ; ) \
$$($1_LD) $(LDFLAGS_CXX_PARTIAL_LINKING) $$($1_SYSROOT_LDFLAGS) \
-o $$($1_TARGET_RELOCATABLE) \
$$($1_LD_OBJ_ARG))
endif
$$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \
$(if $$($1_LINK_OBJS_RELATIVE), $$(CD) $$(OUTPUTDIR) ; ) \
$$($1_AR) $$(ARFLAGS) $$($1_ARFLAGS) -r -cs $$($1_TARGET) \
$$($1_AR_OBJ_ARG) $$($1_RES))
ifeq ($(STATIC_BUILD), true)
$(RM) $$(@D)/$$(basename $$(@F)).symbols; \
$(ECHO) "Getting symbols from nm"; \
$(NM) $(NMFLAGS) -m $$($1_TARGET) | $(GREP) "__TEXT" | \
$(EGREP) -v "non-external|private extern|__TEXT,__eh_frame" | \
$(SED) -e 's/.* //' > $$(@D)/$$(basename $$(@F)).symbols
endif
endef
################################################################################
define CreateDynamicLibraryOrExecutable
# A shared dynamic library or an executable binary has been specified
ifeq ($$($1_TYPE), LIBRARY)
# Generating a dynamic library.
$1_EXTRA_LDFLAGS += $$(call SET_SHARED_LIBRARY_NAME,$$($1_BASENAME))
# Create loadmap on AIX. Helps in diagnosing some problems.
ifneq ($(COMPILER_BINDCMD_FILE_FLAG), )
$1_EXTRA_LDFLAGS += $(COMPILER_BINDCMD_FILE_FLAG)$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).loadmap
endif
endif
$1_VARDEPS := $$($1_LD) $$($1_SYSROOT_LDFLAGS) $$($1_LDFLAGS) \
$$($1_EXTRA_LDFLAGS) $$($1_LIBS) $$($1_EXTRA_LIBS) \
$$($1_CREATE_DEBUGINFO_CMDS) $$($1_STRIP_CMD) $$($1_CREATE_DEBUGLINK_CMDS)
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps)
$1_TARGET_DEPS := $$($1_ALL_OBJS) $$($1_VARDEPS_FILE)
$$($1_TARGET): $$($1_TARGET_DEPS)
ifneq ($$($1_OBJ_FILE_LIST), )
ifeq ($$($1_LINK_OBJS_RELATIVE), true)
$$(eval $$(call ListPathsSafely, $1_ALL_OBJS_RELATIVE, $$($1_OBJ_FILE_LIST)))
else
$$(eval $$(call ListPathsSafely, $1_ALL_OBJS, $$($1_OBJ_FILE_LIST)))
endif
endif
$$(call LogInfo, Linking $$($1_BASENAME))
$$(call MakeDir, $$($1_OUTPUT_DIR) $$($1_SYMBOLS_DIR))
$$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \
$$(if $$($1_LINK_OBJS_RELATIVE), $$(CD) $$(OUTPUTDIR) ; ) \
$$($1_LD) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) \
$$($1_SYSROOT_LDFLAGS) -o $$($1_TARGET) $$($1_LD_OBJ_ARG) \
$$($1_LIBS) $$($1_EXTRA_LIBS))
$$($1_CREATE_DEBUGINFO_CMDS)
$$($1_STRIP_CMD)
$$($1_CREATE_DEBUGLINK_CMDS)
# On macosx, optionally run codesign on every binary.
# Remove signature explicitly first to avoid warnings if the linker
# added a default adhoc signature.
ifeq ($(MACOSX_CODESIGN_MODE), hardened)
$(CODESIGN) --remove-signature $$@
$(CODESIGN) -f -s "$(MACOSX_CODESIGN_IDENTITY)" --timestamp \
--options runtime --entitlements \
$$(call GetEntitlementsFile, $$@) $$@
else ifeq ($(MACOSX_CODESIGN_MODE), debug)
$(CODESIGN) --remove-signature $$@
$(CODESIGN) -f -s - --entitlements \
$$(call GetEntitlementsFile, $$@) $$@
endif
endef

View File

@@ -0,0 +1,112 @@
#
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################################
# This file contains functionality related to linking a native binary;
# creating either a dynamic library, a static library or an executable.
################################################################################
define CreateLinkedResultMicrosoft
ifeq ($$($1_TYPE), STATIC_LIBRARY)
$$(eval $$(call CreateStaticLibraryMicrosoft,$1))
else
$$(eval $$(call CreateDynamicLibraryOrExecutableMicrosoft,$1))
endif
endef
################################################################################
define CreateStaticLibraryMicrosoft
$1_VARDEPS := $$($1_LIB) $$(LIBFLAGS) $$($1_LIBFLAGS) $$($1_LIBS) \
$$($1_EXTRA_LIBS)
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps)
$$($1_TARGET): $$($1_ALL_OBJS) $$($1_RES) $$($1_VARDEPS_FILE)
ifneq ($$($1_OBJ_FILE_LIST), )
$$(eval $$(call ListPathsSafely, $1_ALL_OBJS, $$($1_OBJ_FILE_LIST)))
endif
$$(call LogInfo, Building static library $$($1_BASENAME))
$$(call MakeDir, $$($1_OUTPUT_DIR) $$($1_SYMBOLS_DIR))
$$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \
$$($1_LIB) -nologo $$(LIBFLAGS) $$($1_LIBFLAGS) -out:$$($1_TARGET) \
$$($1_LD_OBJ_ARG) $$($1_RES))
endef
################################################################################
define CreateDynamicLibraryOrExecutableMicrosoft
ifeq ($$($1_EMBED_MANIFEST), true)
$1_EXTRA_LDFLAGS += -manifest:embed
endif
$1_IMPORT_LIBRARY := $$($1_OBJECT_DIR)/$$($1_NAME).lib
$1_EXTRA_LDFLAGS += "-implib:$$($1_IMPORT_LIBRARY)"
ifeq ($$($1_TYPE), LIBRARY)
# To properly trigger downstream dependants of the import library, just as
# for debug files, we must have a recipe in the rule. To avoid rerunning
# the recipe every time have it touch the target. If an import library
# file is deleted by something external, explicitly delete the target to
# trigger a rebuild of both.
ifneq ($$(wildcard $$($1_IMPORT_LIBRARY)), $$($1_IMPORT_LIBRARY))
$$(call LogDebug, Deleting $$($1_BASENAME) because import library is missing)
$$(shell $(RM) $$($1_TARGET))
endif
$$($1_IMPORT_LIBRARY): $$($1_TARGET)
$(TOUCH) $$@
$1 += $$($1_IMPORT_LIBRARY)
endif
$1_VARDEPS := $$($1_LD) $$($1_SYSROOT_LDFLAGS) $$($1_LDFLAGS) \
$$($1_EXTRA_LDFLAGS) $$($1_LIBS) $$($1_EXTRA_LIBS) $$($1_MT) \
$$($1_MANIFEST_VERSION)
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps)
$1_TARGET_DEPS := $$($1_ALL_OBJS) $$($1_RES) $$($1_MANIFEST) \
$$($1_VARDEPS_FILE)
$$($1_TARGET): $$($1_TARGET_DEPS)
ifneq ($$($1_OBJ_FILE_LIST), )
$$(eval $$(call ListPathsSafely, $1_ALL_OBJS, $$($1_OBJ_FILE_LIST)))
endif
$$(call LogInfo, Linking $$($1_BASENAME))
$$(call MakeDir, $$($1_OUTPUT_DIR) $$($1_SYMBOLS_DIR))
$$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \
$$($1_LD) -nologo $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) \
$$($1_SYSROOT_LDFLAGS) -out:$$($1_TARGET) $$($1_LD_OBJ_ARG) \
$$($1_RES) $$($1_LIBS) $$($1_EXTRA_LIBS)) \
| $(GREP) -v "^ Creating library .*\.lib and object .*\.exp" || \
test "$$$$?" = "1"
ifeq ($(call isBuildOsEnv, windows.wsl2), true)
$$(CHMOD) +x $$($1_TARGET)
endif
ifneq ($$($1_MANIFEST), )
$$($1_MT) -nologo -manifest $$($1_MANIFEST) \
-identity:"$$($1_NAME).exe, version=$$($1_MANIFEST_VERSION)" \
-outputresource:$$@;#1
endif
endef

View File

@@ -0,0 +1,247 @@
#
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
################################################################################
# This file contains functionality related to handling paths for source files
# and object files. This is complicated by the fact that we usually, but not
# always, use absolute instead of relative paths. It is further complicated
# by the fact that not all tools allow inputting large lists of files as
# "@-files", which we normally use to avoid hitting command line length limits.
# Finally this file contains functionality for locating all source code files
# that should be included in the compilation.
################################################################################
# When absolute paths are not allowed in the output, and the compiler does not
# support any options to avoid it, we need to rewrite compile commands to use
# relative paths. By doing this, the __FILE__ macro will resolve to relative
# paths. The relevant input paths on the command line are the -I flags and the
# path to the source file itself.
#
# The macro MakeCommandRelative is used to rewrite the command line like this:
# 'CD $(WORKSPACE_ROOT) && <cmd>'
# and changes all paths in cmd to be relative to the workspace root. This only
# works properly if the build dir is inside the workspace root. If it's not,
# relative paths are still calculated, but depending on the distance between the
# dirs, paths in the build dir may end up as essentially absolute anyway.
#
# The fix-deps-file macro is used to adjust the contents of the generated make
# dependency files to contain paths compatible with make.
#
REWRITE_PATHS_RELATIVE = false
ifeq ($(ALLOW_ABSOLUTE_PATHS_IN_OUTPUT)-$(FILE_MACRO_CFLAGS), false-)
REWRITE_PATHS_RELATIVE = true
endif
# CCACHE_BASEDIR needs fix-deps-file as makefiles use absolute filenames for
# object files while CCACHE_BASEDIR will make ccache relativize all paths for
# its compiler. The compiler then produces relative dependency files.
# make does not know a relative and absolute filename is the same so it will
# ignore such dependencies. This only applies when the OUTPUTDIR is inside
# the WORKSPACE_ROOT.
ifneq ($(CCACHE), )
ifneq ($(filter $(WORKSPACE_ROOT)/%, $(OUTPUTDIR)), )
REWRITE_PATHS_RELATIVE = true
endif
endif
ifeq ($(REWRITE_PATHS_RELATIVE), true)
# Need to handle -I flags as both '-Ifoo' and '-I foo'.
MakeCommandRelative = \
$(CD) $(WORKSPACE_ROOT) && \
$(foreach o, $1, \
$(if $(filter $(WORKSPACE_ROOT)/% $(OUTPUTDIR)/%, $o), \
$(call RelativePath, $o, $(WORKSPACE_ROOT)) \
, \
$(if $(filter -I$(WORKSPACE_ROOT)/%, $o), \
-I$(call RelativePath, $(patsubst -I%, %, $o), $(WORKSPACE_ROOT)) \
, \
$o \
) \
) \
)
# When compiling with relative paths, the deps file may come out with relative
# paths, and that path may start with './'. First remove any leading ./, then
# add WORKSPACE_ROOT to any line not starting with /, while allowing for
# leading spaces. There may also be multiple entries on the same line, so start
# with splitting such lines.
# Non GNU sed (BSD on macosx) cannot substitute in literal \n using regex.
# Instead use a bash escaped literal newline. To avoid having unmatched quotes
# ruin the ability for an editor to properly syntax highlight this file, define
# that newline sequence as a separate variable and add the closing quote behind
# a comment.
sed_newline := \'$$'\n''#'
define fix-deps-file
$(SED) \
-e 's|\([^ ]\) \{1,\}\([^\\:]\)|\1 \\$(sed_newline) \2|g' \
$1.tmp \
| $(SED) \
-e 's|^\([ ]*\)\./|\1|' \
-e '/^[ ]*[^/ ]/s|^\([ ]*\)|\1$(WORKSPACE_ROOT)/|' \
> $1
endef
else
# By default the MakeCommandRelative macro does nothing.
MakeCommandRelative = $1
# No adjustment is needed.
define fix-deps-file
$(MV) $1.tmp $1
endef
endif
################################################################################
define SetupSourceFiles
$$(foreach d, $$($1_SRC), $$(if $$(wildcard $$d), , \
$$(error SRC specified to SetupNativeCompilation $1 contains missing directory $$d)))
$1_SRCS_RAW := $$(call FindFiles, $$($1_SRC))
# Order src files according to the order of the src dirs
$1_SRCS := $$(foreach d, $$($1_SRC), $$(filter $$d%, $$($1_SRCS_RAW)))
$1_SRCS := $$(filter $$(NATIVE_SOURCE_EXTENSIONS), $$($1_SRCS))
# Extract the C/C++ files.
ifneq ($$($1_EXCLUDE_PATTERNS), )
# We must not match the exclude pattern against the src root(s).
$1_SRCS_WITHOUT_ROOTS := $$($1_SRCS)
$$(foreach i, $$($1_SRC), $$(eval $1_SRCS_WITHOUT_ROOTS := $$(patsubst \
$$i/%,%, $$($1_SRCS_WITHOUT_ROOTS))))
$1_ALL_EXCLUDE_FILES := $$(call containing, $$($1_EXCLUDE_PATTERNS), \
$$($1_SRCS_WITHOUT_ROOTS))
endif
ifneq ($$($1_EXCLUDE_FILES), )
$1_ALL_EXCLUDE_FILES += $$($1_EXCLUDE_FILES)
endif
ifneq ($$($1_ALL_EXCLUDE_FILES), )
$1_EXCLUDE_FILES_PAT := $$($1_ALL_EXCLUDE_FILES) \
$$(foreach i, $$($1_SRC), $$(addprefix $$i/, $$($1_ALL_EXCLUDE_FILES)))
$1_EXCLUDE_FILES_PAT := $$(addprefix %, $$($1_EXCLUDE_FILES_PAT))
$1_SRCS := $$(filter-out $$($1_EXCLUDE_FILES_PAT), $$($1_SRCS))
endif
ifneq ($$($1_INCLUDE_FILES), )
$1_INCLUDE_FILES_PAT := $$(foreach i, $$($1_SRC), $$(addprefix $$i/, $$($1_INCLUDE_FILES)))
$1_SRCS := $$(filter $$($1_INCLUDE_FILES_PAT), $$($1_SRCS))
endif
# Now we have a list of all c/c++ files to compile: $$($1_SRCS)
# Prepend the source/bin path to the filter expressions. Then do the filtering.
ifneq ($$($1_INCLUDES), )
$1_SRC_INCLUDES := $$(foreach i, $$($1_SRC), $$(addprefix $$i/, $$(addsuffix /%, $$($1_INCLUDES))))
$1_SRCS := $$(filter $$($1_SRC_INCLUDES), $$($1_SRCS))
endif
ifneq ($$($1_EXCLUDES), )
$1_SRC_EXCLUDES := $$(addsuffix /%, $$($1_EXCLUDES))
$1_SRC_EXCLUDES += $$(foreach i, $$($1_SRC), $$(addprefix $$i/, $$(addsuffix /%, $$($1_EXCLUDES))))
$1_SRCS := $$(filter-out $$($1_SRC_EXCLUDES), $$($1_SRCS))
endif
$1_SRCS += $$($1_EXTRA_FILES)
ifeq ($$($1_SRCS), )
$$(error No sources found for $1 when looking inside the dirs $$($1_SRC))
endif
ifeq ($$($1_TYPE), EXECUTABLE)
ifeq ($(UBSAN_ENABLED), true)
# We need to set the default options for UBSan. This needs to be included in every executable.
# Rather than copy and paste code to everything with a main function, we add an additional
# source file to every executable that exports __ubsan_default_options.
ifneq ($$(filter %.cpp %.cc, $$($1_SRCS)), )
$1_SRCS += $(TOPDIR)/make/data/ubsan/ubsan_default_options.cpp
else
$1_SRCS += $(TOPDIR)/make/data/ubsan/ubsan_default_options.c
endif
endif
endif
endef
################################################################################
define SetupOutputFiles
# Calculate the expected output from compiling the sources
$1_EXPECTED_OBJS_FILENAMES := $$(call replace_with_obj_extension, $$(notdir $$($1_SRCS)))
$1_EXPECTED_OBJS := $$(addprefix $$($1_OBJECT_DIR)/, $$($1_EXPECTED_OBJS_FILENAMES))
# Sort to remove duplicates and provide a reproducible order on the input files to the linker.
$1_ALL_OBJS := $$(sort $$($1_EXPECTED_OBJS) $$($1_EXTRA_OBJECT_FILES))
ifeq ($(STATIC_LIBS), true)
# Exclude the object files that match with $1_STATIC_LIB_EXCLUDE_OBJS.
ifneq ($$($1_STATIC_LIB_EXCLUDE_OBJS), )
$1_ALL_OBJS := $$(call not-containing, $$($1_STATIC_LIB_EXCLUDE_OBJS), $$($1_ALL_OBJS))
endif
endif
endef
################################################################################
define RemoveSuperfluousOutputFiles
# Are there too many object files on disk? Perhaps because some source file was removed?
$1_BINS := $$(wildcard $$($1_OBJECT_DIR)/*$(OBJ_SUFFIX))
$1_SUPERFLOUS_OBJS := $$(sort $$(filter-out $$($1_EXPECTED_OBJS), $$($1_BINS)))
# Clean out the superfluous object files.
ifneq ($$($1_SUPERFLUOUS_OBJS), )
$$(shell $(RM) -f $$($1_SUPERFLUOUS_OBJS))
endif
endef
################################################################################
define SetupObjectFileList
$1_LD_OBJ_ARG := $$($1_ALL_OBJS)
# If there are many object files, use an @-file...
ifneq ($$(word 17, $$($1_ALL_OBJS)), )
$1_OBJ_FILE_LIST := $$($1_OBJECT_DIR)/_$1_objectfilenames.txt
ifneq ($(COMPILER_COMMAND_FILE_FLAG), )
$1_LD_OBJ_ARG := $(COMPILER_COMMAND_FILE_FLAG)$$($1_OBJ_FILE_LIST)
else
# ...except for toolchains which don't support them.
$1_LD_OBJ_ARG := `cat $$($1_OBJ_FILE_LIST)`
endif
# If we are building static library, 'AR' on macosx/aix may not support @-file.
ifeq ($$($1_TYPE), STATIC_LIBRARY)
ifeq ($(call isTargetOs, macosx aix), true)
$1_LD_OBJ_ARG := `cat $$($1_OBJ_FILE_LIST)`
endif
endif
endif
# Unfortunately the @-file trick does not work reliably when using clang.
# Clang does not propagate the @-file parameter to the ld sub process, but
# instead puts the full content on the command line. At least the llvm ld
# does not even support an @-file.
#
# When linking a large amount of object files, we risk hitting the limit
# of the command line length even on posix systems if the path length of
# the output dir is very long due to our use of absolute paths. To
# mitigate this, use paths relative to the output dir when linking over
# 500 files with clang and the output dir path is deep.
ifneq ($$(word 500, $$($1_ALL_OBJS)), )
ifeq ($$(TOOLCHAIN_TYPE), clang)
# There is no strlen function in make, but checking path depth is a
# reasonable approximation.
ifneq ($$(word 10, $$(subst /, ,$$(OUTPUTDIR))), )
$1_LINK_OBJS_RELATIVE := true
$1_ALL_OBJS_RELATIVE := $$(patsubst $$(OUTPUTDIR)/%, %, $$($1_ALL_OBJS))
endif
endif
endif
endef

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -36,6 +36,10 @@ MACOS_X64_BOOT_JDK_EXT=tar.gz
MACOS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk21/fd2272bbf8e04c3dbaee13770090416c/35/GPL/openjdk-21_macos-x64_bin.tar.gz
MACOS_X64_BOOT_JDK_SHA256=af32e84c11009f72f783fdcdc9917efc277893988f097e198e2576875d1e88c1
MACOS_AARCH64_BOOT_JDK_EXT=tar.gz
MACOS_AARCH64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk21/fd2272bbf8e04c3dbaee13770090416c/35/GPL/openjdk-21_macos-aarch64_bin.tar.gz
MACOS_AARCH64_BOOT_JDK_SHA256=f12e1e0a2dffc847951598f597c8ee60fb0913932f24b2b09c62cfd2f0f4dfb9
WINDOWS_X64_BOOT_JDK_EXT=zip
WINDOWS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk21/fd2272bbf8e04c3dbaee13770090416c/35/GPL/openjdk-21_windows-x64_bin.zip
WINDOWS_X64_BOOT_JDK_SHA256=5434faaf029e66e7ce6e75770ca384de476750984a7d2881ef7686894c4b4944

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -441,7 +441,7 @@ var getJibProfilesProfiles = function (input, common, data) {
"macosx-x64": {
target_os: "macosx",
target_cpu: "x64",
dependencies: ["devkit", "gtest", "pandoc"],
dependencies: ["devkit", "gtest", "graphviz", "pandoc"],
configure_args: concat(common.configure_args_64bit, "--with-zlib=system",
"--with-macosx-version-max=11.00.00",
"--enable-compatible-cds-alignment",
@@ -453,7 +453,7 @@ var getJibProfilesProfiles = function (input, common, data) {
"macosx-aarch64": {
target_os: "macosx",
target_cpu: "aarch64",
dependencies: ["devkit", "gtest", "pandoc"],
dependencies: ["devkit", "gtest", "graphviz", "pandoc"],
configure_args: concat(common.configure_args_64bit,
"--with-macosx-version-max=11.00.00"),
},
@@ -486,7 +486,7 @@ var getJibProfilesProfiles = function (input, common, data) {
"linux-aarch64": {
target_os: "linux",
target_cpu: "aarch64",
dependencies: ["devkit", "gtest", "build_devkit", "pandoc"],
dependencies: ["devkit", "gtest", "build_devkit", "graphviz", "pandoc"],
configure_args: [
"--with-zlib=system",
"--disable-dtrace",
@@ -1181,12 +1181,6 @@ var getJibProfilesDependencies = function (input, common) {
revision: (input.build_cpu == "x64" ? "Xcode11.3.1-MacOSX10.15+1.2" : devkit_platform_revisions[devkit_platform])
},
cups: {
organization: common.organization,
ext: "tar.gz",
revision: "1.0118+1.0"
},
jtreg: {
server: "jpg",
product: "jtreg",
@@ -1237,7 +1231,7 @@ var getJibProfilesDependencies = function (input, common) {
graphviz: {
organization: common.organization,
ext: "tar.gz",
revision: "2.38.0-1+1.1",
revision: "9.0.0+1.0",
module: "graphviz-" + input.target_platform,
configure_args: "DOT=" + input.get("graphviz", "install_path") + "/dot",
environment_path: input.get("graphviz", "install_path")

View File

@@ -1,26 +0,0 @@
#
# Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
JVM_handle_aix_signal
numa_error
numa_warn

View File

@@ -1,26 +0,0 @@
#
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
JVM_AccessVMBooleanFlag
JVM_AccessVMIntFlag
JVM_VMBreakPoint

View File

@@ -1,27 +0,0 @@
#
# Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
JVM_handle_linux_signal
JVM_IsUseContainerSupport
numa_error
numa_warn

View File

@@ -1,24 +0,0 @@
#
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
JVM_handle_bsd_signal

View File

@@ -1,35 +0,0 @@
#
# Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
AsyncGetCallTrace
jio_fprintf
jio_printf
jio_snprintf
jio_vfprintf
jio_vsnprintf
JNI_CreateJavaVM
JNI_GetCreatedJavaVMs
JNI_GetDefaultJavaVMInitArgs
JVM_IsForeignLinkerSupported
JVM_FindClassFromBootLoader
JVM_InitAgentProperties

View File

@@ -1,232 +0,0 @@
#
# Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
JVM_ActiveProcessorCount
JVM_AreNestMates
JVM_ArrayCopy
JVM_AssertionStatusDirectives
JVM_BeforeHalt
JVM_CallStackWalk
JVM_Clone
JVM_ConstantPoolGetClassAt
JVM_ConstantPoolGetClassAtIfLoaded
JVM_ConstantPoolGetClassRefIndexAt
JVM_ConstantPoolGetDoubleAt
JVM_ConstantPoolGetFieldAt
JVM_ConstantPoolGetFieldAtIfLoaded
JVM_ConstantPoolGetFloatAt
JVM_ConstantPoolGetIntAt
JVM_ConstantPoolGetLongAt
JVM_ConstantPoolGetMemberRefInfoAt
JVM_ConstantPoolGetMethodAt
JVM_ConstantPoolGetMethodAtIfLoaded
JVM_ConstantPoolGetNameAndTypeRefIndexAt
JVM_ConstantPoolGetNameAndTypeRefInfoAt
JVM_ConstantPoolGetSize
JVM_ConstantPoolGetStringAt
JVM_ConstantPoolGetTagAt
JVM_ConstantPoolGetUTF8At
JVM_CurrentCarrierThread
JVM_CurrentThread
JVM_SetCurrentThread
JVM_CurrentTimeMillis
JVM_DefineClass
JVM_DefineClassWithSource
JVM_DesiredAssertionStatus
JVM_DumpAllStacks
JVM_DumpClassListToFile
JVM_DumpDynamicArchive
JVM_DumpThreads
JVM_ExpandStackFrameInfo
JVM_FillInStackTrace
JVM_FindClassFromCaller
JVM_FindClassFromClass
JVM_FindLibraryEntry
JVM_FindLoadedClass
JVM_FindPrimitiveClass
JVM_FindSignal
JVM_FreeMemory
JVM_GC
JVM_GetAllThreads
JVM_GetAndClearReferencePendingList
JVM_GetArrayElement
JVM_GetArrayLength
JVM_GetCallerClass
JVM_GetClassAccessFlags
JVM_GetClassAnnotations
JVM_GetClassConstantPool
JVM_GetClassContext
JVM_GetClassCPEntriesCount
JVM_GetClassCPTypes
JVM_GetClassDeclaredConstructors
JVM_GetClassDeclaredFields
JVM_GetClassDeclaredMethods
JVM_GetClassFieldsCount
JVM_GetClassFileVersion
JVM_GetClassInterfaces
JVM_GetClassMethodsCount
JVM_GetClassModifiers
JVM_GetClassNameUTF
JVM_GetClassSignature
JVM_GetClassSigners
JVM_GetClassTypeAnnotations
JVM_GetCPClassNameUTF
JVM_GetCPFieldClassNameUTF
JVM_GetCPFieldModifiers
JVM_GetCPFieldNameUTF
JVM_GetCPFieldSignatureUTF
JVM_GetCPMethodClassNameUTF
JVM_GetCPMethodModifiers
JVM_GetCPMethodNameUTF
JVM_GetCPMethodSignatureUTF
JVM_GetDeclaredClasses
JVM_GetDeclaringClass
JVM_GetEnclosingMethodInfo
JVM_GetExtendedNPEMessage
JVM_GetFieldIxModifiers
JVM_GetFieldTypeAnnotations
JVM_GetInheritedAccessControlContext
JVM_GetManagement
JVM_GetMethodIxArgsSize
JVM_GetMethodIxByteCode
JVM_GetMethodIxByteCodeLength
JVM_GetMethodIxExceptionIndexes
JVM_GetMethodIxExceptionsCount
JVM_GetMethodIxExceptionTableEntry
JVM_GetMethodIxExceptionTableLength
JVM_GetMethodIxLocalsCount
JVM_GetMethodIxMaxStack
JVM_GetMethodIxModifiers
JVM_GetMethodIxNameUTF
JVM_GetMethodIxSignatureUTF
JVM_GetMethodParameters
JVM_GetMethodTypeAnnotations
JVM_GetNanoTimeAdjustment
JVM_GetNestHost
JVM_GetNestMembers
JVM_GetNextThreadIdOffset
JVM_GetPermittedSubclasses
JVM_GetPrimitiveArrayElement
JVM_GetProperties
JVM_GetProtectionDomain
JVM_GetRandomSeedForDumping
JVM_GetRecordComponents
JVM_GetSimpleBinaryName
JVM_GetStackAccessControlContext
JVM_GetSystemPackage
JVM_GetSystemPackages
JVM_GetTemporaryDirectory
JVM_GetVmArguments
JVM_Halt
JVM_HasReferencePendingList
JVM_HoldsLock
JVM_GetStackTrace
JVM_IHashCode
JVM_InitClassName
JVM_InitStackTraceElement
JVM_InitStackTraceElementArray
JVM_InitializeFromArchive
JVM_InternString
JVM_Interrupt
JVM_InvokeMethod
JVM_IsArrayClass
JVM_IsCDSDumpingEnabled
JVM_IsConstructorIx
JVM_IsDumpingClassList
JVM_IsFinalizationEnabled
JVM_IsHiddenClass
JVM_IsInterface
JVM_IsPreviewEnabled
JVM_IsContinuationsSupported
JVM_IsPrimitiveClass
JVM_IsRecord
JVM_IsSameClassPackage
JVM_IsSharingEnabled
JVM_IsSupportedJNIVersion
JVM_IsVMGeneratedMethodIx
JVM_LatestUserDefinedLoader
JVM_LoadZipLibrary
JVM_LoadLibrary
JVM_LookupDefineClass
JVM_LookupLambdaProxyClassFromArchive
JVM_LogLambdaFormInvoker
JVM_MaxMemory
JVM_MaxObjectInspectionAge
JVM_MonitorNotify
JVM_MonitorNotifyAll
JVM_MonitorWait
JVM_MoreStackWalk
JVM_NanoTime
JVM_NativePath
JVM_NewArray
JVM_NewInstanceFromConstructor
JVM_NewMultiArray
JVM_PhantomReferenceRefersTo
JVM_PrintWarningAtDynamicAgentLoad
JVM_RaiseSignal
JVM_RawMonitorCreate
JVM_RawMonitorDestroy
JVM_RawMonitorEnter
JVM_RawMonitorExit
JVM_ReferenceClear
JVM_ReferenceRefersTo
JVM_RegisterContinuationMethods
JVM_RegisterLambdaProxyClassForArchiving
JVM_RegisterSignal
JVM_ReleaseUTF
JVM_ReportFinalizationComplete
JVM_SetArrayElement
JVM_SetClassSigners
JVM_SetNativeThreadName
JVM_SetPrimitiveArrayElement
JVM_SetStackWalkContinuation
JVM_SetThreadPriority
JVM_SleepNanos
JVM_StartThread
JVM_TotalMemory
JVM_UnloadLibrary
JVM_WaitForReferencePendingList
JVM_Yield
# Module related API's
JVM_AddModuleExports
JVM_AddModuleExportsToAll
JVM_AddModuleExportsToAllUnnamed
JVM_AddReadsModule
JVM_DefineArchivedModules
JVM_DefineModule
JVM_SetBootLoaderUnnamedModule
# Virtual thread notifications for JVMTI
JVM_VirtualThreadStart
JVM_VirtualThreadEnd
JVM_VirtualThreadMount
JVM_VirtualThreadUnmount
JVM_VirtualThreadHideFrames
# Scoped values
JVM_EnsureMaterializedForStackWalk_func
JVM_FindScopedValueBindings
JVM_ScopedValueCache
JVM_SetScopedValueCache
#

View File

@@ -0,0 +1,11 @@
SUNWprivate_1.1 {
global:
*;
local:
__bss_start;
_edata;
_end;
_fini;
_init;
};

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -548,6 +548,7 @@ $(BUILDDIR)/$(gcc_ver)/Makefile \
$(PATHPRE) $(ENVS) $(GCC_CFG) $(EXTRA_CFLAGS) \
$(CONFIG) \
--with-sysroot=$(SYSROOT) \
--with-debug-prefix-map=$(OUTPUT_ROOT)=devkit \
--enable-languages=c,c++ \
--enable-shared \
--disable-nls \

View File

@@ -1,6 +1,6 @@
#!/bin/bash -e
#!/bin/bash
#
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -26,38 +26,106 @@
# Create a bundle in the current directory, containing what's needed to run
# the 'dot' program from the graphviz suite by the OpenJDK build.
TMPDIR=`mktemp -d -t graphvizbundle-XXXX`
trap "rm -rf \"$TMPDIR\"" EXIT
set -eux
ORIG_DIR=`pwd`
cd "$TMPDIR"
GRAPHVIZ_VERSION=2.38.0-1
PACKAGE_VERSION=1.1
TARGET_PLATFORM=linux_x64
BUNDLE_NAME=graphviz-$TARGET_PLATFORM-$GRAPHVIZ_VERSION+$PACKAGE_VERSION.tar.gz
wget http://www.graphviz.org/pub/graphviz/stable/redhat/el6/x86_64/os/graphviz-$GRAPHVIZ_VERSION.el6.x86_64.rpm
wget http://www.graphviz.org/pub/graphviz/stable/redhat/el6/x86_64/os/graphviz-libs-$GRAPHVIZ_VERSION.el6.x86_64.rpm
wget http://www.graphviz.org/pub/graphviz/stable/redhat/el6/x86_64/os/graphviz-plugins-core-$GRAPHVIZ_VERSION.el6.x86_64.rpm
wget http://www.graphviz.org/pub/graphviz/stable/redhat/el6/x86_64/os/graphviz-plugins-x-$GRAPHVIZ_VERSION.el6.x86_64.rpm
wget http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/getPackage/libtool-ltdl-2.2.6-15.5.el6.x86_64.rpm
mydir="$(cd -- $(dirname ${BASH_SOURCE[0]}) && pwd)"
me="${mydir}/$(basename ${BASH_SOURCE[0]})"
mkdir graphviz
cd graphviz
for rpm in ../*.rpm; do
rpm2cpio $rpm | cpio --extract --make-directories
done
EXPAT_VERSION="2.6.0"
EXPAT_URL="https://github.com/libexpat/libexpat/releases/download/R_${EXPAT_VERSION//./_}/expat-${EXPAT_VERSION}.tar.gz"
EXPAT_SHA256="a13447b9aa67d7c860783fdf6820f33ebdea996900d6d8bbc50a628f55f099f7"
cat > dot << EOF
GRAPHVIZ_VERSION="9.0.0"
GRAPHVIZ_URL="https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/${GRAPHVIZ_VERSION}/graphviz-${GRAPHVIZ_VERSION}.tar.xz"
GRAPHVIZ_SHA256="6c9afda06a732af7658c2619ee713d2545818c3ff19b7b8fd48effcd06d57bf6"
uname_s="$(uname -s)"
case ${uname_s} in
Linux)
bundle_os="linux"
shacmd="sha256sum --strict --check -"
lib_path_var="LD_LIBRARY_PATH"
;;
Darwin)
bundle_os="macosx"
shacmd="shasum -a 256 --strict --check -"
lib_path_var="DYLD_LIBRARY_PATH"
;;
*)
echo "Unknown OS: ${uname_s}"
exit 1
;;
esac
uname_m="$(uname -m)"
case ${uname_m} in
aarch64|arm64)
bundle_cpu="aarch64"
;;
x86_64)
bundle_cpu="x64"
;;
esac
bundle_platform="${bundle_os}_${bundle_cpu}"
build_dir="${mydir}/../../build/graphviz"
download_dir="${build_dir}/download"
install_dir="${build_dir}/result/graphviz-${bundle_platform}-${GRAPHVIZ_VERSION}"
bundle_file="${install_dir}.tar.gz"
expat_dir="${build_dir}/expat"
expat_src_dir="${expat_dir}/src"
graphviz_dir="${build_dir}/graphviz"
graphviz_src_dir="${graphviz_dir}/src"
graphviz_doc_dir="${install_dir}/doc"
mkdir -p "${build_dir}"
cd "${build_dir}"
download_and_unpack() {
local url="$1"
local sha256="$2"
local file="$3"
local dir="$4"
mkdir -p "$(dirname "${file}")"
if [ ! -f "${file}" ]; then
curl -L -o "${file}" "${url}"
fi
echo "${sha256} ${file}" | ${shacmd}
if [ ! -d "${dir}" ]; then
mkdir -p "${dir}"
tar --extract --file "${file}" --directory "${dir}" --strip-components 1
fi
}
download_and_unpack "${EXPAT_URL}" "${EXPAT_SHA256}" "${download_dir}/expat.tar.gz" "${expat_src_dir}"
download_and_unpack "${GRAPHVIZ_URL}" "${GRAPHVIZ_SHA256}" "${download_dir}/graphviz.tar.gz" "${graphviz_src_dir}"
(
cd "${expat_src_dir}"
./configure --prefix="${install_dir}"
make -j install
)
(
cd "${graphviz_src_dir}"
./configure --prefix="${install_dir}" EXPAT_CFLAGS="-I${install_dir}/include" EXPAT_LIBS="-L${install_dir}/lib -lexpat"
make -j install
)
cat > "${install_dir}/dot" << EOF
#!/bin/bash
# Get an absolute path to this script
this_script_dir=\`dirname \$0\`
this_script_dir=\`cd \$this_script_dir > /dev/null && pwd\`
export LD_LIBRARY_PATH="\$this_script_dir/usr/lib64:\$LD_LIBRARY_PATH"
exec \$this_script_dir/usr/bin/dot "\$@"
this_script_dir="\$(dirname \$0)"
this_script_dir="\$(cd \${this_script_dir} > /dev/null && pwd)"
export ${lib_path_var}="\${this_script_dir}/lib:\${this_script_dir}/lib/graphviz"
exec "\${this_script_dir}/bin/dot" "\$@"
EOF
chmod +x dot
export LD_LIBRARY_PATH="$TMPDIR/graphviz/usr/lib64:$LD_LIBRARY_PATH"
chmod +x "${install_dir}/dot"
# create config file
./dot -c
tar -cvzf ../$BUNDLE_NAME *
cp ../$BUNDLE_NAME "$ORIG_DIR"
"${install_dir}/dot" -c
cp "${me}" "${install_dir}"
tar --create --gzip --file "${bundle_file}" -C "${install_dir}" .

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -45,13 +45,12 @@ ifeq ($(call check-jvm-feature, compiler2), true)
ADLC_CFLAGS := -qnortti -qeh -q64 -DAIX
endif
else ifeq ($(call isBuildOs, windows), true)
ADLC_LDFLAGS += -nologo
ADLC_CFLAGS := -nologo -EHsc
ADLC_CFLAGS_WARNINGS := -W3 -D_CRT_SECURE_NO_WARNINGS
endif
# Set the C++ standard
ADLC_CFLAGS += $(ADLC_LANGSTD_CXXFLAG)
ADLC_CFLAGS += $(ADLC_LANGSTD_CXXFLAGS)
# NOTE: The old build didn't set -DASSERT for windows but it doesn't seem to
# hurt.
@@ -72,7 +71,8 @@ ifeq ($(call check-jvm-feature, compiler2), true)
$(eval $(call SetupNativeCompilation, BUILD_ADLC, \
NAME := adlc, \
TYPE := EXECUTABLE, \
TOOLCHAIN := TOOLCHAIN_BUILD_LINK_CXX, \
TARGET_TYPE := BUILD, \
LINK_TYPE := C++, \
SRC := $(TOPDIR)/src/hotspot/share/adlc, \
EXTRA_FILES := $(TOPDIR)/src/hotspot/share/opto/opcodes.cpp, \
CFLAGS := $(ADLC_CFLAGS) $(ADLC_CFLAGS_WARNINGS), \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -50,7 +50,7 @@ endif
$(eval $(call SetupJdkLibrary, BUILD_GTEST_LIBGTEST, \
NAME := gtest, \
TYPE := STATIC_LIBRARY, \
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
LINK_TYPE := C++, \
OUTPUT_DIR := $(JVM_OUTPUTDIR)/libgtest, \
OBJECT_DIR := $(JVM_OUTPUTDIR)/libgtest/objs, \
SRC := \
@@ -75,25 +75,11 @@ $(eval $(call SetupJdkLibrary, BUILD_GTEST_LIBGTEST, \
TARGETS += $(BUILD_GTEST_LIBGTEST)
################################################################################
ifeq ($(call isTargetOs, windows), true)
GTEST_JVM_MAPFILE := $(JVM_MAPFILE)
else
GTEST_JVM_MAPFILE := $(JVM_OUTPUTDIR)/gtest/mapfile
$(JVM_OUTPUTDIR)/gtest/symbols: $(JVM_OUTPUTDIR)/symbols
$(call MakeDir, $(@D))
( $(CAT) $< ; echo "runUnitTests" ) > $@
$(GTEST_JVM_MAPFILE): $(JVM_OUTPUTDIR)/gtest/symbols
$(call create-mapfile)
endif
# Additional disabled warnings are due to code in the test source.
$(eval $(call SetupJdkLibrary, BUILD_GTEST_LIBJVM, \
NAME := jvm, \
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
LINK_TYPE := C++, \
OUTPUT_DIR := $(JVM_OUTPUTDIR)/gtest, \
OBJECT_DIR := $(JVM_OUTPUTDIR)/gtest/objs, \
SRC := $(GTEST_TEST_SRC), \
@@ -123,8 +109,6 @@ $(eval $(call SetupJdkLibrary, BUILD_GTEST_LIBJVM, \
LIBS_unix := -lgtest, \
LIBS_windows := $(JVM_OUTPUTDIR)/libgtest/gtest.lib, \
OPTIMIZATION := $(JVM_OPTIMIZATION), \
MAPFILE := $(GTEST_JVM_MAPFILE), \
USE_MAPFILE_FOR_SYMBOLS := true, \
COPY_DEBUG_SYMBOLS := $(GTEST_COPY_DEBUG_SYMBOLS), \
ZIP_EXTERNAL_DEBUG_SYMBOLS := false, \
STRIP_SYMBOLS := false, \
@@ -134,14 +118,19 @@ $(eval $(call SetupJdkLibrary, BUILD_GTEST_LIBJVM, \
$(BUILD_GTEST_LIBJVM) : $(BUILD_GTEST_LIBGTEST)
ifeq ($(call isTargetOs, windows), true)
$(BUILD_GTEST_LIBJVM_TARGET): $(WIN_EXPORT_FILE)
endif
TARGETS += $(BUILD_GTEST_LIBJVM)
################################################################################
$(eval $(call SetupJdkExecutable, BUILD_GTEST_LAUNCHER, \
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
NAME := gtestLauncher, \
TYPE := EXECUTABLE, \
LINK_TYPE := C++, \
OUTPUT_DIR := $(JVM_OUTPUTDIR)/gtest, \
EXTRA_FILES := $(GTEST_LAUNCHER_SRC), \
OBJECT_DIR := $(JVM_OUTPUTDIR)/gtest/launcher-objs, \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -33,7 +33,6 @@ include lib/JvmFlags.gmk
# Setup compilation of the main Hotspot native library (libjvm).
JVM_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/libjvm
JVM_MAPFILE := $(JVM_OUTPUTDIR)/mapfile
################################################################################
# Platform independent setup
@@ -85,7 +84,7 @@ CFLAGS_VM_VERSION := \
DISABLED_WARNINGS_gcc := array-bounds comment delete-non-virtual-dtor \
empty-body implicit-fallthrough int-in-bool-context \
maybe-uninitialized missing-field-initializers parentheses \
maybe-uninitialized missing-field-initializers \
shift-negative-value unknown-pragmas
DISABLED_WARNINGS_clang := sometimes-uninitialized \
@@ -146,12 +145,28 @@ $(call FillFindCache, $(JVM_SRC_DIRS))
# operator new.
LIBJVM_STATIC_EXCLUDE_OBJS := operator_new.o
ifeq ($(call isTargetOs, windows), true)
ifeq ($(STATIC_LIBS), true)
WIN_EXPORT_FILE := $(JVM_OUTPUTDIR)/static-win-exports.def
else
WIN_EXPORT_FILE := $(JVM_OUTPUTDIR)/win-exports.def
endif
JVM_LDFLAGS += -def:$(WIN_EXPORT_FILE)
endif
ifeq ($(call isTargetOs, linux), true)
HOTSPOT_VERSION_SCRIPT := $(TOPDIR)/make/data/hotspot-symbols/version-script.txt
JVM_LDFLAGS += -Wl,--exclude-libs,ALL -Wl,-version-script=$(HOTSPOT_VERSION_SCRIPT)
endif
################################################################################
# Now set up the actual compilation of the main hotspot native library
$(eval $(call SetupJdkLibrary, BUILD_LIBJVM, \
NAME := jvm, \
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
LINK_TYPE := C++, \
OUTPUT_DIR := $(JVM_LIB_OUTPUTDIR), \
SRC := $(JVM_SRC_DIRS), \
EXCLUDES := $(JVM_EXCLUDES), \
@@ -169,6 +184,7 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJVM, \
DISABLED_WARNINGS_gcc_jvmciCodeInstaller.cpp := stringop-overflow, \
DISABLED_WARNINGS_gcc_jvmtiTagMap.cpp := stringop-overflow, \
DISABLED_WARNINGS_gcc_postaloc.cpp := address, \
DISABLED_WARNINGS_gcc_shenandoahLock.cpp := stringop-overflow, \
DISABLED_WARNINGS_gcc_synchronizer.cpp := stringop-overflow, \
DISABLED_WARNINGS_clang := $(DISABLED_WARNINGS_clang), \
DISABLED_WARNINGS_clang_arguments.cpp := missing-field-initializers, \
@@ -194,8 +210,6 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJVM, \
LIBS := $(JVM_LIBS), \
OPTIMIZATION := $(JVM_OPTIMIZATION), \
OBJECT_DIR := $(JVM_OUTPUTDIR)/objs, \
MAPFILE := $(JVM_MAPFILE), \
USE_MAPFILE_FOR_SYMBOLS := true, \
STRIPFLAGS := $(JVM_STRIPFLAGS), \
EMBED_MANIFEST := true, \
RC_FILEDESC := $(HOTSPOT_VM_DISTRO) $(OPENJDK_TARGET_CPU_BITS)-Bit $(JVM_VARIANT) VM, \
@@ -204,11 +218,47 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJVM, \
STATIC_LIB_EXCLUDE_OBJS := $(LIBJVM_STATIC_EXCLUDE_OBJS), \
))
ifeq ($(call isTargetOs, windows), true)
# The following lines create a list of vftable symbols to be filtered out of
# the symbol file. Removing this line causes the linker to complain about too
# many (> 64K) symbols, so the _guess_ is that this line is here to keep down
# the number of exported symbols below that limit.
#
# Some usages of C++ lambdas require the vftable symbol of classes that use
# the lambda type as a template parameter. The usage of those classes won't
# link if their vftable symbols are removed. That's why there's an exception
# for vftable symbols containing the string 'lambda'.
#
# A very simple example of a lambda usage that fails if the lambda vftable
# symbols are missing in the symbol file:
#
# #include <functional>
# std::function<void()> f = [](){}
FILTER_SYMBOLS_AWK_SCRIPT := \
'{ \
if ($$7 ~ /\?\?_7.*@@6B@/ && $$7 !~ /type_info/ && $$7 !~ /lambda/) print " " $$7; \
}'
# A more correct solution would be to send BUILD_LIBJVM_ALL_OBJS instead of
# cd && *.obj, but this will result in very long command lines, which could be
# problematic.
$(WIN_EXPORT_FILE): $(BUILD_LIBJVM_ALL_OBJS)
$(call LogInfo, Generating list of symbols to export from object files)
$(call MakeDir, $(@D))
$(ECHO) "EXPORTS" > $@.tmp
$(CD) $(BUILD_LIBJVM_OBJECT_DIR) && \
$(DUMPBIN) -symbols *$(OBJ_SUFFIX) | $(AWK) $(FILTER_SYMBOLS_AWK_SCRIPT) | $(SORT) -u >> $@.tmp
$(RM) $@
$(MV) $@.tmp $@
$(BUILD_LIBJVM_TARGET): $(WIN_EXPORT_FILE)
endif
# Always recompile abstract_vm_version.cpp if libjvm needs to be relinked. This ensures
# that the internal vm version is updated as it relies on __DATE__ and __TIME__
# macros.
ABSTRACT_VM_VERSION_OBJ := $(JVM_OUTPUTDIR)/objs/abstract_vm_version$(OBJ_SUFFIX)
$(ABSTRACT_VM_VERSION_OBJ): $(filter-out $(ABSTRACT_VM_VERSION_OBJ) $(JVM_MAPFILE), \
$(ABSTRACT_VM_VERSION_OBJ): $(filter-out $(ABSTRACT_VM_VERSION_OBJ), \
$(BUILD_LIBJVM_TARGET_DEPS))
ifneq ($(GENERATE_COMPILE_COMMANDS_ONLY), true)
@@ -236,11 +286,6 @@ endif
# 1540-1090 : (I) The destructor of "..." might not be called.
# 1540-1639 : (I) The behavior of long type bit fields has changed ...
# Include mapfile generation. It relies on BUILD_LIBJVM_ALL_OBJS which is only
# defined after the above call to BUILD_LIBJVM. Mapfile will be generated
# after all object files are built, but before the jvm library is linked.
include lib/JvmMapfile.gmk
TARGETS += $(BUILD_LIBJVM)
################################################################################

View File

@@ -1,176 +0,0 @@
#
# Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
$(eval $(call IncludeCustomExtension, hotspot/lib/JvmMapfile.gmk))
################################################################################
# Combine a list of static symbols
ifeq ($(call And, $(call isTargetOs, windows) $(call isTargetCpu, x86_64)), false)
# On Windows x86_64, we should not have any symbols at all, since that
# results in duplicate warnings from the linker (JDK-8043491).
SYMBOLS_SRC += $(TOPDIR)/make/data/hotspot-symbols/symbols-shared
endif
ifeq ($(call isTargetOsType, unix), true)
SYMBOLS_SRC += $(TOPDIR)/make/data/hotspot-symbols/symbols-unix
endif
ifneq ($(wildcard $(TOPDIR)/make/data/hotspot-symbols/symbols-$(OPENJDK_TARGET_OS)), )
SYMBOLS_SRC += $(TOPDIR)/make/data/hotspot-symbols/symbols-$(OPENJDK_TARGET_OS)
endif
ifneq ($(findstring debug, $(DEBUG_LEVEL)), )
ifneq ($(wildcard $(TOPDIR)/make/data/hotspot-symbols/symbols-$(OPENJDK_TARGET_OS)-debug), )
SYMBOLS_SRC += $(TOPDIR)/make/data/hotspot-symbols/symbols-$(OPENJDK_TARGET_OS)-debug
endif
endif
################################################################################
# Create a dynamic list of symbols from the built object files. This is highly
# platform dependent.
ifeq ($(call isTargetOs, linux), true)
DUMP_SYMBOLS_CMD := $(NM) $(NMFLAGS) --defined-only *$(OBJ_SUFFIX)
ifneq ($(FILTER_SYMBOLS_PATTERN), )
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|
endif
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)^_ZTV|^gHotSpotVM|^UseSharedSpaces$$
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|^_ZN9Arguments17SharedArchivePathE$$
FILTER_SYMBOLS_AWK_SCRIPT := \
'{ \
if ($$3 ~ /$(FILTER_SYMBOLS_PATTERN)/) print $$3; \
}'
else ifeq ($(call isTargetOs, macosx), true)
# nm on macosx prints out "warning: nm: no name list" to stderr for
# files without symbols. Hide this, even at the expense of hiding real errors.
DUMP_SYMBOLS_CMD := $(NM) $(NMFLAGS) -Uj *$(OBJ_SUFFIX) 2> /dev/null
ifneq ($(FILTER_SYMBOLS_PATTERN), )
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|
endif
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)^_ZTV|^gHotSpotVM
FILTER_SYMBOLS_AWK_SCRIPT := \
'{ \
if ($$3 ~ /$(FILTER_SYMBOLS_PATTERN)/) print $$3; \
}'
# NOTE: The script is from the old build. It is broken and finds no symbols.
# The script below might be what was intended, but it fails to link with tons
# of 'cannot export hidden symbol vtable for X'.
# '{ if ($$1 ~ /^__ZTV/ || $$1 ~ /^_gHotSpotVM/) print substr($$1, 2) }'
else ifeq ($(call isTargetOs, aix), true)
# NOTE: The old build had the solution below. This should to be fixed in
# configure instead.
# On AIX we have to prevent that we pick up the 'nm' version from the GNU binutils
# which may be installed under /opt/freeware/bin. So better use an absolute path here!
# NM=/usr/bin/nm
DUMP_SYMBOLS_CMD := $(NM) $(NMFLAGS) -B -C *$(OBJ_SUFFIX)
FILTER_SYMBOLS_AWK_SCRIPT := \
'{ \
if (($$2="d" || $$2="D") && ($$3 ~ /^__vft/ || $$3 ~ /^gHotSpotVM/)) print $$3; \
if ($$3 ~ /^UseSharedSpaces$$/) print $$3; \
if ($$3 ~ /^SharedArchivePath__9Arguments$$/) print $$3; \
}'
else ifeq ($(call isTargetOs, windows), true)
DUMP_SYMBOLS_CMD := $(DUMPBIN) -symbols *$(OBJ_SUFFIX)
# The following lines create a list of vftable symbols to be filtered out of
# the mapfile. Removing this line causes the linker to complain about too many
# (> 64K) symbols, so the _guess_ is that this line is here to keep down the
# number of exported symbols below that limit.
#
# Some usages of C++ lambdas require the vftable symbol of classes that use
# the lambda type as a template parameter. The usage of those classes won't
# link if their vftable symbols are removed. That's why there's an exception
# for vftable symbols containing the string 'lambda'.
#
# A very simple example of a lambda usage that fails if the lambda vftable
# symbols are missing in the mapfile:
#
# #include <functional>
# std::function<void()> f = [](){}
FILTER_SYMBOLS_AWK_SCRIPT := \
'{ \
if ($$7 ~ /\?\?_7.*@@6B@/ && $$7 !~ /type_info/ && $$7 !~ /lambda/) print $$7; \
}'
else
$(error Unknown target OS $(OPENJDK_TARGET_OS) in JvmMapfile.gmk)
endif
# A more correct solution would be to send BUILD_LIBJVM_ALL_OBJS instead of
# cd && *.o, but this will result in very long command lines, which is
# problematic on some platforms.
$(JVM_OUTPUTDIR)/symbols-objects: $(BUILD_LIBJVM_ALL_OBJS)
$(call LogInfo, Generating symbol list from object files)
$(CD) $(JVM_OUTPUTDIR)/objs && \
$(DUMP_SYMBOLS_CMD) | $(AWK) $(FILTER_SYMBOLS_AWK_SCRIPT) | $(SORT) -u > $@
SYMBOLS_SRC += $(JVM_OUTPUTDIR)/symbols-objects
################################################################################
# Now concatenate all symbol lists into a single file and remove comments.
$(JVM_OUTPUTDIR)/symbols: $(SYMBOLS_SRC)
$(SED) -e '/^#/d' $^ > $@
################################################################################
# Finally convert the symbol list into a platform-specific mapfile
ifeq ($(call isTargetOs, macosx), true)
# On macosx, we need to add a leading underscore
define create-mapfile-work
$(AWK) '{ if ($$0 ~ ".") { print " _" $$0 } }' < $^ > $@.tmp
endef
else ifeq ($(call isTargetOs, windows), true)
# On windows, add an 'EXPORTS' header
define create-mapfile-work
$(ECHO) "EXPORTS" > $@.tmp
$(AWK) '{ if ($$0 ~ ".") { print " " $$0 } }' < $^ >> $@.tmp
endef
else
# Assume standard linker script
define create-mapfile-work
$(PRINTF) "SUNWprivate_1.1 { \n global: \n" > $@.tmp
$(AWK) '{ if ($$0 ~ ".") { print " " $$0 ";" } }' < $^ >> $@.tmp
$(PRINTF) " local: \n *; \n }; \n" >> $@.tmp
endef
endif
define create-mapfile
$(call LogInfo, Creating mapfile)
$(call MakeDir, $(@D))
$(call create-mapfile-work)
$(RM) $@
$(MV) $@.tmp $@
endef
$(JVM_MAPFILE): $(JVM_OUTPUTDIR)/symbols
$(call create-mapfile)

View File

@@ -48,9 +48,6 @@ ifneq ($(FDLIBM_CFLAGS), )
endif
ifeq ($(call isTargetOs, linux), true)
BUILD_LIBJVM_ostream.cpp_CXXFLAGS := -D_FILE_OFFSET_BITS=64
BUILD_LIBJVM_logFileOutput.cpp_CXXFLAGS := -D_FILE_OFFSET_BITS=64
BUILD_LIBJVM_sharedRuntimeTrig.cpp_CXXFLAGS := -DNO_PCH $(FDLIBM_CFLAGS) $(LIBJVM_FDLIBM_COPY_OPT_FLAG)
BUILD_LIBJVM_sharedRuntimeTrans.cpp_CXXFLAGS := -DNO_PCH $(FDLIBM_CFLAGS) $(LIBJVM_FDLIBM_COPY_OPT_FLAG)

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -35,6 +35,7 @@ import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;
import java.net.InetAddress;
import java.nio.charset.StandardCharsets;
import java.nio.file.FileSystems;
import java.time.LocalDateTime;
import java.time.ZoneId;
@@ -132,6 +133,8 @@ public class HelloClasslist {
String oldDate = String.format("%s%n",
DateFormat.getDateInstance(DateFormat.DEFAULT, Locale.ROOT)
.format(new Date()));
StandardCharsets.US_ASCII.encode("");
StandardCharsets.UTF_8.encode("");
// A selection of trivial and common reflection operations
var instance = HelloClasslist.class.getConstructor().newInstance();

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1289,25 +1289,58 @@ public class CLDRConverter {
*/
private static void generateTZDBShortNamesMap() throws IOException {
Files.walk(Path.of(tzDataDir), 1, FileVisitOption.FOLLOW_LINKS)
.filter(p -> p.toFile().isFile())
.filter(p -> p.toFile().isFile() && !p.endsWith("jdk11_backward"))
.forEach(p -> {
try {
String zone = null;
String rule = null;
String format = null;
boolean inVanguard = false;
boolean inRearguard = false;
for (var line : Files.readAllLines(p)) {
if (line.contains("#STDOFF")) continue;
// Interpret the line in rearguard mode so that STD/DST
// correctly handles negative DST cases, such as "GMT/IST"
// vs. "IST/GMT" case for Europe/Dublin
if (inVanguard) {
if (line.startsWith("# Rearguard")) {
inVanguard = false;
inRearguard = true;
}
continue;
} else if (line.startsWith("# Vanguard")) {
inVanguard = true;
continue;
}
if (inRearguard) {
if (line.startsWith("# End of rearguard")) {
inRearguard = false;
continue;
} else {
if (line.startsWith("#\t")) {
line = line.substring(1); // omit #
}
}
}
if (line.isBlank() || line.matches("^[ \t]*#.*")) {
// ignore blank/comment lines
continue;
}
// remove comments in-line
line = line.replaceAll("[ \t]*#.*", "");
// Zone line
if (line.startsWith("Zone")) {
if (zone != null) {
tzdbShortNamesMap.put(zone, format + NBSP + rule);
}
var zl = line.split("[ \t]+", -1);
zone = zl[1];
rule = zl[3];
format = zl[4];
} else {
if (zone != null) {
if (line.isBlank()) {
if (line.startsWith("Rule") ||
line.startsWith("Link")) {
tzdbShortNamesMap.put(zone, format + NBSP + rule);
zone = null;
rule = null;

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2001, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,6 +32,7 @@ import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.Locale;
@@ -339,9 +340,15 @@ public class GenerateCurrencyData {
validCurrencyCodes.substring(i * 7 + 3, i * 7 + 6));
checkCurrencyCode(currencyCode);
int tableEntry = mainTable[(currencyCode.charAt(0) - 'A') * A_TO_Z + (currencyCode.charAt(1) - 'A')];
if (tableEntry == INVALID_COUNTRY_ENTRY ||
(tableEntry & SPECIAL_CASE_COUNTRY_MASK) != 0 ||
(tableEntry & SIMPLE_CASE_COUNTRY_FINAL_CHAR_MASK) != (currencyCode.charAt(2) - 'A')) {
// Do not allow a future currency to be classified as an otherCurrency,
// otherwise it will leak out into Currency:getAvailableCurrencies
boolean futureCurrency = Arrays.asList(specialCaseNewCurrencies).contains(currencyCode);
boolean simpleCurrency = (tableEntry & SIMPLE_CASE_COUNTRY_FINAL_CHAR_MASK) == (currencyCode.charAt(2) - 'A');
// If neither a simple currency, or one defined in the future
// then the current currency is applicable to be added to the otherTable
if (!futureCurrency && !simpleCurrency) {
if (otherCurrenciesCount == maxOtherCurrencies) {
throw new RuntimeException("too many other currencies");
}

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,11 @@
# questions.
#
DISABLED_WARNINGS_java += this-escape restricted
# The base module should be built with all warnings enabled. When a
# new warning is added to javac, it can be temporarily added to the
# disabled warnings list.
#
# DISABLED_WARNINGS_java +=
DOCLINT += -Xdoclint:all/protected \
'-Xdoclint/package:java.*,javax.*'
@@ -37,7 +41,8 @@ EXCLUDE_FILES += \
EXCLUDES += java/lang/doc-files \
java/lang/classfile/snippet-files \
java/lang/classfile/components/snippet-files
java/lang/classfile/components/snippet-files \
java/lang/foreign/snippet-files
# Exclude BreakIterator classes that are just used in compile process to generate
# data files and shouldn't go in the product

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -242,7 +242,7 @@ endif
ifeq ($(call isTargetOs, linux)+$(call isTargetCpu, x86_64)+$(INCLUDE_COMPILER2)+$(filter $(TOOLCHAIN_TYPE), gcc), true+true+true+gcc)
$(eval $(call SetupJdkLibrary, BUILD_LIB_SIMD_SORT, \
NAME := simdsort, \
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
LINK_TYPE := C++, \
OPTIMIZATION := HIGH, \
CFLAGS := $(CFLAGS_JDKLIB), \
CXXFLAGS := $(CXXFLAGS_JDKLIB) -std=c++17, \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -115,7 +115,7 @@ TARGETS += $(BUILD_LIBZIP)
$(eval $(call SetupJdkLibrary, BUILD_LIBJIMAGE, \
NAME := jimage, \
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
LINK_TYPE := C++, \
OPTIMIZATION := LOW, \
CFLAGS := $(CFLAGS_JDKLIB), \
CXXFLAGS := $(CXXFLAGS_JDKLIB), \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -23,6 +23,10 @@
# questions.
#
# To the extent technically possible, this module should be built with
# -Werror and all lint warnings enabled. In particular,
# DISABLED_WARNINGS_java should not be augmented.
DOCLINT += -Xdoclint:all/protected \
'-Xdoclint/package:java.*,javax.*'

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -51,13 +51,14 @@ ifeq ($(call isTargetOs, aix), false)
-DUSE_PLATFORM_MIDI_IN=TRUE \
#
LIBJSOUND_LINK_TYPE := C
ifeq ($(call isTargetOs, macosx), true)
LIBJSOUND_TOOLCHAIN := TOOLCHAIN_LINK_CXX
LIBJSOUND_LINK_TYPE := C++
endif
$(eval $(call SetupJdkLibrary, BUILD_LIBJSOUND, \
NAME := jsound, \
TOOLCHAIN := $(LIBJSOUND_TOOLCHAIN), \
LINK_TYPE := $(LIBJSOUND_LINK_TYPE), \
OPTIMIZATION := LOW, \
CFLAGS := $(CFLAGS_JDKLIB) \
$(LIBJSOUND_CFLAGS), \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -449,7 +449,6 @@ else
LIBFREETYPE_LIBS := -lfreetype
endif
# gcc_ftobjs.c := maybe-uninitialized required for GCC 7 builds.
$(eval $(call SetupJdkLibrary, BUILD_LIBFREETYPE, \
NAME := freetype, \
OPTIMIZATION := HIGHEST, \
@@ -458,7 +457,6 @@ else
EXTRA_HEADER_DIRS := $(BUILD_LIBFREETYPE_HEADER_DIRS), \
DISABLED_WARNINGS_microsoft := 4267 4244 4996, \
DISABLED_WARNINGS_gcc := dangling-pointer stringop-overflow, \
DISABLED_WARNINGS_gcc_ftobjs.c := maybe-uninitialized, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
))
@@ -508,8 +506,10 @@ else
# noexcept-type required for GCC 7 builds. Not required for GCC 8+.
# expansion-to-defined required for GCC 9 builds. Not required for GCC 10+.
# maybe-uninitialized required for GCC 8 builds. Not required for GCC 9+.
# calloc-transposed-args required for GCC 14 builds. (fixed upstream in Harfbuzz 032c931e1c0cfb20f18e5acb8ba005775242bd92)
HARFBUZZ_DISABLED_WARNINGS_CXX_gcc := class-memaccess noexcept-type \
expansion-to-defined dangling-reference maybe-uninitialized
expansion-to-defined dangling-reference maybe-uninitialized \
calloc-transposed-args
HARFBUZZ_DISABLED_WARNINGS_clang := missing-field-initializers range-loop-analysis
HARFBUZZ_DISABLED_WARNINGS_microsoft := 4267 4244
@@ -562,9 +562,9 @@ LIBFONTMANAGER_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
# libawt_xawt). See JDK-8196516 for details.
$(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
NAME := fontmanager, \
LINK_TYPE := C++, \
EXCLUDE_FILES := $(LIBFONTMANAGER_EXCLUDE_FILES) \
AccelGlyphCache.c, \
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
CFLAGS := $(CFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -47,7 +47,7 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBINSTRUMENT, \
LDFLAGS_macosx := -L$(call FindLibDirForModule, java.base), \
LDFLAGS_aix := -L$(SUPPORT_OUTPUTDIR)/native/java.base, \
LIBS := $(JDKLIB_LIBS), \
LIBS_unix := -ljava -ljvm $(LIBZ_LIBS), \
LIBS_unix := $(LIBZ_LIBS), \
LIBS_linux := -ljli $(LIBDL), \
LIBS_aix := -liconv -ljli_static $(LIBDL), \
LIBS_macosx := -ljli -liconv -framework Cocoa -framework Security \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -23,6 +23,10 @@
# questions.
#
# To the extent technically possible, this module should be built with
# -Werror and all lint warnings enabled. In particular,
# DISABLED_WARNINGS_java should not be augmented.
DOCLINT += -Xdoclint:all/protected \
'-Xdoclint/package:-com.sun.tools.*,-jdk.internal.*,sun.tools.serialver.resources.*'
JAVAC_FLAGS += -XDstringConcat=inline

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -27,10 +27,7 @@ include LibCommon.gmk
################################################################################
ifeq ($(call isTargetOs, linux), true)
SA_CFLAGS := -D_FILE_OFFSET_BITS=64
else ifeq ($(call isTargetOs, macosx), true)
ifeq ($(call isTargetOs, macosx), true)
SA_CFLAGS := -D_GNU_SOURCE -mno-omit-leaf-frame-pointer \
-mstack-alignment=16 -fPIC
LIBSA_EXTRA_SRC := $(SUPPORT_OUTPUTDIR)/gensrc/jdk.hotspot.agent
@@ -48,16 +45,16 @@ else ifeq ($(call isTargetOs, windows), true)
endif
endif
SA_TOOLCHAIN := $(TOOLCHAIN_DEFAULT)
SA_LINK_TYPE := C
ifeq ($(call isTargetOs, linux), true)
SA_TOOLCHAIN := TOOLCHAIN_LINK_CXX
SA_LINK_TYPE := C++
endif
################################################################################
$(eval $(call SetupJdkLibrary, BUILD_LIBSA, \
NAME := saproc, \
TOOLCHAIN := $(SA_TOOLCHAIN), \
LINK_TYPE := $(SA_LINK_TYPE), \
OPTIMIZATION := HIGH, \
DISABLED_WARNINGS_gcc := sign-compare, \
DISABLED_WARNINGS_gcc_ps_core.c := pointer-arith, \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,7 @@ ifeq ($(call isTargetOs, linux macosx windows), true)
$(eval $(call SetupJdkLibrary, BUILD_LIBLE, \
NAME := le, \
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
LINK_TYPE := C++, \
OPTIMIZATION := LOW, \
CFLAGS := $(CXXFLAGS_JDKLIB), \
LDFLAGS := $(LDFLAGS_JDKLIB), \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -23,6 +23,8 @@
# questions.
#
DISABLED_WARNINGS_java += this-escape
# To the extent technically possible, this module should be built with
# -Werror and all lint warnings enabled. In particular,
# DISABLED_WARNINGS_java should not be augmented.
COPY += .xml .css .svg .js .js.template .png .txt

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -32,13 +32,13 @@ include LauncherCommon.gmk
ifeq ($(call isTargetOs, linux), true)
JPACKAGE_APPLAUNCHER_SRC := \
$(call FindSrcDirsForComponent, jdk.jpackage, applauncher)
JPACKAGE_APPLAUNCHER_TOOLCHAIN := TOOLCHAIN_DEFAULT
JPACKAGE_APPLAUNCHER_LINK_TYPE := C
JPACKAGE_APPLAUNCHER_INCLUDE_FILES := %.c
else
JPACKAGE_APPLAUNCHER_SRC := \
$(call FindSrcDirsForComponent, jdk.jpackage, applauncher) \
$(call FindSrcDirsForComponent, jdk.jpackage, common)
JPACKAGE_APPLAUNCHER_TOOLCHAIN := TOOLCHAIN_LINK_CXX
JPACKAGE_APPLAUNCHER_LINK_TYPE := C++
endif
@@ -59,11 +59,11 @@ JPACKAGE_APPLAUNCHER_INCLUDES := $(addprefix -I, $(JPACKAGE_APPLAUNCHER_SRC))
# Output app launcher executable in resources dir, and symbols in the object dir
$(eval $(call SetupJdkExecutable, BUILD_JPACKAGE_APPLAUNCHEREXE, \
NAME := jpackageapplauncher, \
LINK_TYPE := $(JPACKAGE_APPLAUNCHER_LINK_TYPE), \
OUTPUT_DIR := $(JPACKAGE_OUTPUT_DIR), \
SYMBOLS_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/jpackageapplauncher, \
SRC := $(JPACKAGE_APPLAUNCHER_SRC), \
INCLUDE_FILES := $(JPACKAGE_APPLAUNCHER_INCLUDE_FILES), \
TOOLCHAIN := $(JPACKAGE_APPLAUNCHER_TOOLCHAIN), \
OPTIMIZATION := LOW, \
DISABLED_WARNINGS_clang_LinuxPackage.c := format-nonliteral, \
DISABLED_WARNINGS_clang_JvmLauncherLib.c := format-nonliteral, \
@@ -103,7 +103,7 @@ ifeq ($(call isTargetOs, linux), true)
SYMBOLS_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjpackageapplauncheraux, \
SRC := $(JPACKAGE_LIBAPPLAUNCHER_SRC), \
EXCLUDE_FILES := LinuxLauncher.c LinuxPackage.c, \
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
LINK_TYPE := C++, \
OPTIMIZATION := LOW, \
DISABLED_WARNINGS_clang_JvmLauncherLib.c := format-nonliteral, \
DISABLED_WARNINGS_clang_tstrings.cpp := format-nonliteral, \
@@ -177,10 +177,10 @@ ifeq ($(call isTargetOs, windows), true)
# Build non-console version of launcher
$(eval $(call SetupJdkExecutable, BUILD_JPACKAGE_APPLAUNCHERWEXE, \
NAME := jpackageapplauncherw, \
LINK_TYPE := $(BUILD_JPACKAGE_APPLAUNCHEREXE_LINK_TYPE), \
OUTPUT_DIR := $(JPACKAGE_OUTPUT_DIR), \
SYMBOLS_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/jpackageapplauncherw, \
SRC := $(BUILD_JPACKAGE_APPLAUNCHEREXE_SRC), \
TOOLCHAIN := $(BUILD_JPACKAGE_APPLAUNCHEREXE_TOOLCHAIN), \
OPTIMIZATION := $(BUILD_JPACKAGE_APPLAUNCHEREXE_OPTIMIZATION), \
CXXFLAGS := $(BUILD_JPACKAGE_APPLAUNCHEREXE_CXXFLAGS), \
CXXFLAGS_windows := $(BUILD_JPACKAGE_APPLAUNCHEREXE_CXXFLAGS_windows) -DJP_LAUNCHERW, \

View File

@@ -1,6 +1,6 @@
#!/bin/bash
#
# Copyright (c) 2012, 2022, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -60,13 +60,15 @@ else
STAT_PRINT_SIZE="-c %s"
fi
COMPARE_EXCEPTIONS_INCLUDE="$TOPDIR/make/scripts/compare_exceptions.sh.incl"
if [ ! -e "$COMPARE_EXCEPTIONS_INCLUDE" ]; then
echo "Error: Cannot locate the exceptions file, it should have been here: $COMPARE_EXCEPTIONS_INCLUDE"
exit 1
if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
# We ship a pdb file inside a published zip. Such files can never be built
# reproducibly, so ignore it.
ACCEPTED_JARZIP_CONTENTS="/modules_libs/java.security.jgss/w2k_lsa_auth.dll.pdb"
elif [ "$OPENJDK_TARGET_OS" = "macosx" ]; then
# Due to signing, we can never get a byte-by-byte identical build on macOS
STRIP_TESTS_BEFORE_COMPARE="true"
fi
# Include exception definitions
. "$COMPARE_EXCEPTIONS_INCLUDE"
################################################################################
#
@@ -117,35 +119,6 @@ diff_text() {
TMP=$($DIFF $THIS_FILE $OTHER_FILE)
if test "x$SUFFIX" = "xclass"; then
if [ "$NAME" = "SystemModules\$all.class" ] \
|| [ "$NAME" = "SystemModules\$default.class" ]; then
# The SystemModules\$*.classes are not comparable as they contain the
# module hashes which would require a whole other level of
# reproducible builds to get reproducible. There is also random
# order of map initialization.
TMP=""
elif [ "$NAME" = "module-info.class" ]; then
# The module-info.class have several issues with random ordering of
# elements in HashSets.
MODULES_CLASS_FILTER="$SED \
-e 's/,$//' \
-e 's/;$//' \
-e 's/^ *[0-9]*://' \
-e 's/#[0-9]* */#/' \
-e 's/ *\/\// \/\//' \
-e 's/aload *[0-9]*/aload X/' \
-e 's/ldc_w/ldc /' \
| $SORT \
"
$JAVAP -c -constants -l -p "${OTHER_FILE}" \
| eval "$MODULES_CLASS_FILTER" > ${OTHER_FILE}.javap &
$JAVAP -c -constants -l -p "${THIS_FILE}" \
| eval "$MODULES_CLASS_FILTER" > ${THIS_FILE}.javap &
wait
TMP=$($DIFF ${OTHER_FILE}.javap ${THIS_FILE}.javap)
fi
fi
if test -n "$TMP"; then
echo Files $OTHER_FILE and $THIS_FILE differ
@@ -312,75 +285,60 @@ compare_file_types() {
}
################################################################################
# Compare the rest of the files
# Find all files to compare and separate them into different categories
compare_general_files() {
locate_files() {
THIS_DIR=$1
OTHER_DIR=$2
WORK_DIR=$3
TEMP_DIR=$COMPARE_ROOT/support
$MKDIR -p $TEMP_DIR
GENERAL_FILES=$(cd $THIS_DIR && $FIND . -type f ! -name "*.so" ! -name "*.jar" \
! -name "*.zip" ! -name "*.debuginfo" ! -name "*.dylib" ! -name "jexec" \
! -name "modules" ! -name "ct.sym" ! -name "*.diz" ! -name "*.dll" \
! -name "*.cpl" ! -name "*.pdb" ! -name "*.exp" ! -name "*.ilk" \
! -name "*.lib" ! -name "*.jmod" ! -name "*.exe" \
! -name "*.obj" ! -name "*.o" ! -name "jspawnhelper" ! -name "*.a" \
! -name "*.tar.gz" ! -name "gtestLauncher" \
! -name "*.map" \
| $GREP -v "./bin/" | $SORT | $FILTER)
ALL_FILES_PATH=$TEMP_DIR/all_files.txt
cd $THIS_DIR && $FIND . -type f | $SORT | $FILTER > $ALL_FILES_PATH
echo Other files with binary differences...
for f in $GENERAL_FILES
do
# Skip all files in test/*/native
if [[ "$f" == */native/* ]]; then
continue
fi
if [ -e $OTHER_DIR/$f ]; then
SUFFIX="${f##*.}"
if [ "$(basename $f)" = "release" ]; then
# In release file, ignore differences in source rev numbers
OTHER_FILE=$WORK_DIR/$f.other
THIS_FILE=$WORK_DIR/$f.this
$MKDIR -p $(dirname $OTHER_FILE)
$MKDIR -p $(dirname $THIS_FILE)
RELEASE_FILTER="$SED -e 's/SOURCE=".*"/SOURCE=<src-rev>/g'"
$CAT $OTHER_DIR/$f | eval "$RELEASE_FILTER" > $OTHER_FILE
$CAT $THIS_DIR/$f | eval "$RELEASE_FILTER" > $THIS_FILE
elif [ "$SUFFIX" = "svg" ]; then
# GraphViz has non-determinism when generating svg files
OTHER_FILE=$WORK_DIR/$f.other
THIS_FILE=$WORK_DIR/$f.this
$MKDIR -p $(dirname $OTHER_FILE) $(dirname $THIS_FILE)
SVG_FILTER="$SED \
-e 's/edge[0-9][0-9]*/edgeX/g'
"
$CAT $OTHER_DIR/$f | eval "$SVG_FILTER" > $OTHER_FILE
$CAT $THIS_DIR/$f | eval "$SVG_FILTER" > $THIS_FILE
elif [ "$SUFFIX" = "jar_contents" ]; then
# The jar_contents files may have some lines in random order
OTHER_FILE=$WORK_DIR/$f.other
THIS_FILE=$WORK_DIR/$f.this
$MKDIR -p $(dirname $OTHER_FILE) $(dirname $THIS_FILE)
$RM $OTHER_FILE $THIS_FILE
$CAT $OTHER_DIR/$f | $SORT > $OTHER_FILE
$CAT $THIS_DIR/$f | $SORT > $THIS_FILE
else
OTHER_FILE=$OTHER_DIR/$f
THIS_FILE=$THIS_DIR/$f
fi
DIFF_OUT=$($DIFF $OTHER_FILE $THIS_FILE 2>&1)
if [ -n "$DIFF_OUT" ]; then
echo $f
REGRESSIONS=true
if [ "$SHOW_DIFFS" = "true" ]; then
echo "$DIFF_OUT"
fi
fi
fi
done
ZIP_FILES_PATH=$TEMP_DIR/zip_files.txt
ZIP_FILTER="-e '\.zip$' -e '\.tar.gz$'"
$CAT "$ALL_FILES_PATH" | eval $GREP $ZIP_FILTER > $ZIP_FILES_PATH
JMOD_FILES_PATH=$TEMP_DIR/jmod_files.txt
JMOD_FILTER="-e '\.jmod$'"
$CAT "$ALL_FILES_PATH" | eval $GREP $JMOD_FILTER > $JMOD_FILES_PATH
JAR_FILES_PATH=$TEMP_DIR/jar_files.txt
JAR_FILTER="-e '\.jar$' -e '\.war$' -e '/module$'"
$CAT "$ALL_FILES_PATH" | eval $GREP $JAR_FILTER > $JAR_FILES_PATH
LIB_FILES_PATH=$TEMP_DIR/lib_files.txt
LIB_FILTER="-e '\.dylib$' -e '/lib.*\.so$' -e '\.dll$' -e '\.obj$' -e '\.o$' -e '\.a$' -e '\.cpl$'"
# On macos, filter out the dSYM debug symbols files. They are identically named .dylib files that reside
# under a *.dSYM directory
LIB_EXCLUDE="-e '/lib.*\.dSYM/'"
$CAT "$ALL_FILES_PATH" | eval $GREP $LIB_FILTER | eval $GREP -v $LIB_EXCLUDE > $LIB_FILES_PATH
DEBUG_FILES_PATH=$TEMP_DIR/debug_files.txt
DEBUG_FILTER="-e '\.dSYM/' -e '\.debuginfo$' -e '\.diz$' -e '\.pdb$' -e '\.map$'"
$CAT "$ALL_FILES_PATH" | eval $GREP $DEBUG_FILTER > $DEBUG_FILES_PATH
EXEC_FILES_PATH=$TEMP_DIR/exec_files.txt
if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
EXEC_FILTER="-e '\.exe$'"
$CAT "$ALL_FILES_PATH" | eval $GREP $EXEC_FILTER > $EXEC_FILES_PATH
else
# Find all files with the executable bit set
cd $THIS_DIR && $FIND . -type f -perm -100 | $SORT | $FILTER > $EXEC_FILES_PATH
fi
OTHER_FILES_PATH=$TEMP_DIR/other_files.txt
ACCOUNTED_FILES_PATH=$TEMP_DIR/accounted_files.txt
$CAT $ZIP_FILES_PATH $JMOD_FILES_PATH $JAR_FILES_PATH $LIB_FILES_PATH $DEBUG_FILES_PATH $EXEC_FILES_PATH > $ACCOUNTED_FILES_PATH
$CAT $ACCOUNTED_FILES_PATH $ALL_FILES_PATH | $SORT | $UNIQ -u > $OTHER_FILES_PATH
ALL_ZIP_FILES=$($CAT $ZIP_FILES_PATH)
ALL_JMOD_FILES=$($CAT $JMOD_FILES_PATH)
ALL_JAR_FILES=$($CAT $JAR_FILES_PATH)
ALL_LIB_FILES=$($CAT $LIB_FILES_PATH)
ALL_DEBUG_FILES=$($CAT $DEBUG_FILES_PATH)
ALL_EXEC_FILES=$($CAT $EXEC_FILES_PATH)
ALL_OTHER_FILES=$($CAT $OTHER_FILES_PATH)
}
################################################################################
@@ -450,12 +408,14 @@ compare_zip_file() {
if [ -n "$ONLY_OTHER" ]; then
echo " Only OTHER $ZIP_FILE contains:"
echo "$ONLY_OTHER" | sed "s|Only in $OTHER_UNZIPDIR| |"g | sed 's|: |/|g'
REGRESSIONS=true
return_value=1
fi
if [ -n "$ONLY_THIS" ]; then
echo " Only THIS $ZIP_FILE contains:"
echo "$ONLY_THIS" | sed "s|Only in $THIS_UNZIPDIR| |"g | sed 's|: |/|g'
REGRESSIONS=true
return_value=1
fi
@@ -484,6 +444,7 @@ compare_zip_file() {
done
if [ -s "$WORK_DIR/$ZIP_FILE.diffs" ]; then
REGRESSIONS=true
return_value=1
echo " Differing files in $ZIP_FILE"
$CAT $WORK_DIR/$ZIP_FILE.diffs | $GREP 'differ$' | cut -f 2 -d ' ' | \
@@ -508,6 +469,7 @@ compare_zip_file() {
compare_bin_file $THIS_UNZIPDIR $OTHER_UNZIPDIR $WORK_DIR/$ZIP_FILE.bin \
$file
if [ "$?" != "0" ]; then
REGRESSIONS=true
return_value=1
fi
done
@@ -547,12 +509,14 @@ compare_jmod_file() {
if [ -n "$ONLY_OTHER" ]; then
echo " Only OTHER $JMOD_FILE contains:"
echo "$ONLY_OTHER" | sed "s|^>| |"g | sed 's|: |/|g'
REGRESSIONS=true
return_value=1
fi
if [ -n "$ONLY_THIS" ]; then
echo " Only THIS $JMOD_FILE contains:"
echo "$ONLY_THIS" | sed "s|^<| |"g | sed 's|: |/|g'
REGRESSIONS=true
return_value=1
fi
@@ -567,19 +531,18 @@ compare_all_zip_files() {
OTHER_DIR=$2
WORK_DIR=$3
ZIPS=$(cd $THIS_DIR && $FIND . -type f -name "*.zip" -o -name "*.tar.gz" \
| $SORT | $FILTER )
locate_files $THIS_DIR
if [ -n "$ZIPS" ]; then
if [ -n "$ALL_ZIP_FILES" ]; then
echo Zip/tar.gz files...
return_value=0
for f in $ZIPS; do
for f in $ALL_ZIP_FILES; do
if [ -f "$OTHER_DIR/$f" ]; then
compare_zip_file $THIS_DIR $OTHER_DIR $WORK_DIR $f
if [ "$?" != "0" ]; then
return_value=1
REGRESSIONS=true
return_value=1
fi
fi
done
@@ -596,18 +559,18 @@ compare_all_jmod_files() {
OTHER_DIR=$2
WORK_DIR=$3
JMODS=$(cd $THIS_DIR && $FIND . -type f -name "*.jmod" | $SORT | $FILTER )
locate_files $THIS_DIR
if [ -n "$JMODS" ]; then
if [ -n "$ALL_JMOD_FILES" ]; then
echo Jmod files...
return_value=0
for f in $JMODS; do
for f in $ALL_JMOD_FILES; do
if [ -f "$OTHER_DIR/$f" ]; then
compare_jmod_file $THIS_DIR $OTHER_DIR $WORK_DIR $f
if [ "$?" != "0" ]; then
return_value=1
REGRESSIONS=true
return_value=1
fi
fi
done
@@ -624,20 +587,18 @@ compare_all_jar_files() {
OTHER_DIR=$2
WORK_DIR=$3
# TODO filter?
ZIPS=$(cd $THIS_DIR && $FIND . -type f -name "*.jar" -o -name "*.war" \
-o -name "modules" | $SORT | $FILTER)
locate_files $THIS_DIR
if [ -n "$ZIPS" ]; then
if [ -n "$ALL_JAR_FILES" ]; then
echo Jar files...
return_value=0
for f in $ZIPS; do
for f in $ALL_JAR_FILES; do
if [ -f "$OTHER_DIR/$f" ]; then
compare_zip_file $THIS_DIR $OTHER_DIR $WORK_DIR $f
if [ "$?" != "0" ]; then
return_value=1
REGRESSIONS=true
return_value=1
fi
fi
done
@@ -699,14 +660,16 @@ compare_bin_file() {
unset _NT_SYMBOL_PATH
if [ "$(uname -o)" = "Cygwin" ]; then
THIS=$(cygpath -msa $THIS)
OTHER=$(cygpath -msa $OTHER)
if [ -n "$OTHER" ]; then
OTHER=$(cygpath -msa $OTHER)
fi
fi
# Build an _NT_SYMBOL_PATH that contains all known locations for
# pdb files.
PDB_DIRS="$(ls -d \
{$OTHER,$THIS}/support/modules_{cmds,libs}/{*,*/*} \
{$OTHER,$THIS}/support/native/jdk.jpackage/* \
)"
2> /dev/null )"
export _NT_SYMBOL_PATH="$(echo $PDB_DIRS | tr ' ' ';')"
fi
@@ -1047,23 +1010,16 @@ compare_all_libs() {
OTHER_DIR=$2
WORK_DIR=$3
LIBS=$(cd $THIS_DIR && $FIND . -type f \( -name 'lib*.so' -o -name '*.dylib' \
-o -name '*.dll' -o -name '*.obj' -o -name '*.o' -o -name '*.a' \
-o -name '*.cpl' \) | $SORT | $FILTER)
locate_files $THIS_DIR
# On macos, filter out the dSYM debug symbols files as they are also
# named *.dylib.
if [ "$OPENJDK_TARGET_OS" = "macosx" ]; then
LIBS=$(echo "$LIBS" | $GREP -v '\.dSYM/')
fi
if [ -n "$LIBS" ]; then
if [ -n "$ALL_LIB_FILES" ]; then
echo Libraries...
print_binary_diff_header
for l in $LIBS; do
for l in $ALL_LIB_FILES; do
if [ -f "$OTHER_DIR/$l" ]; then
compare_bin_file $THIS_DIR $OTHER_DIR $WORK_DIR $l
if [ "$?" != "0" ]; then
REGRESSIONS=true
return_value=1
fi
fi
@@ -1081,33 +1037,16 @@ compare_all_execs() {
OTHER_DIR=$2
WORK_DIR=$3
if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
EXECS=$(cd $THIS_DIR && $FIND . -type f -name '*.exe' | $SORT | $FILTER)
else
EXECS=$(cd $THIS_DIR && $FIND . -name db -prune -o -type f -perm -100 \! \
\( -name '*.so' -o -name '*.dylib' -o -name '*.dll' -o -name '*.cgi' \
-o -name '*.jar' -o -name '*.diz' -o -name 'jcontrol' -o -name '*.properties' \
-o -name '*.data' -o -name '*.bfc' -o -name '*.src' -o -name '*.txt' \
-o -name '*.cfg' -o -name 'meta-index' -o -name '*.properties.ja' \
-o -name '*.xml' -o -name '*.html' -o -name '*.png' -o -name 'README' \
-o -name '*.zip' -o -name '*.jimage' -o -name '*.java' -o -name '*.mf' \
-o -name '*.jpg' -o -name '*.wsdl' -o -name '*.js' -o -name '*.sh' \
-o -name '*.bat' -o -name '*LICENSE' -o -name '*.d' -o -name '*store' \
-o -name 'blocked' -o -name '*certs' -o -name '*.ttf' \
-o -name '*.jfc' -o -name '*.dat' -o -name 'release' -o -name '*.dir'\
-o -name '*.sym' -o -name '*.idl' -o -name '*.h' -o -name '*.access' \
-o -name '*.template' -o -name '*.policy' -o -name '*.security' \
-o -name 'COPYRIGHT' -o -name '*.1' -o -name '*.debuginfo' \
-o -name 'classlist' \) | $SORT | $FILTER)
fi
locate_files $THIS_DIR
if [ -n "$EXECS" ]; then
if [ -n "$ALL_EXEC_FILES" ]; then
echo Executables...
print_binary_diff_header
for e in $EXECS; do
for e in $ALL_EXEC_FILES; do
if [ -f "$OTHER_DIR/$e" ]; then
compare_bin_file $THIS_DIR $OTHER_DIR $WORK_DIR $e
if [ "$?" != "0" ]; then
REGRESSIONS=true
return_value=1
fi
fi
@@ -1117,6 +1056,95 @@ compare_all_execs() {
return $return_value
}
################################################################################
# Compare native debug symbol files
compare_all_debug_files() {
THIS_DIR=$1
OTHER_DIR=$2
WORK_DIR=$3
locate_files $THIS_DIR
echo Debug symbol files with binary differences...
for f in $ALL_DEBUG_FILES
do
if [ -e $OTHER_DIR/$f ]; then
SUFFIX="${f##*.}"
if [ "$SUFFIX" = "pdb" ]; then
# pdb files are never reproducible
DIFF_OUT=""
else
OTHER_FILE=$OTHER_DIR/$f
THIS_FILE=$THIS_DIR/$f
DIFF_OUT=$($DIFF $OTHER_FILE $THIS_FILE 2>&1)
fi
if [ -n "$DIFF_OUT" ]; then
echo $f
REGRESSIONS=true
if [ "$SHOW_DIFFS" = "true" ]; then
echo "$DIFF_OUT"
fi
fi
fi
done
}
################################################################################
# Compare the rest of the files
compare_all_other_files() {
THIS_DIR=$1
OTHER_DIR=$2
WORK_DIR=$3
locate_files $THIS_DIR
echo Other files with binary differences...
for f in $ALL_OTHER_FILES
do
# Skip all files in test/*/native
if [[ "$f" == */native/* ]]; then
continue
fi
if [ -e $OTHER_DIR/$f ]; then
SUFFIX="${f##*.}"
if [ "$(basename $f)" = "release" ]; then
# In release file, ignore differences in source rev numbers
OTHER_FILE=$WORK_DIR/$f.other
THIS_FILE=$WORK_DIR/$f.this
$MKDIR -p $(dirname $OTHER_FILE)
$MKDIR -p $(dirname $THIS_FILE)
RELEASE_FILTER="$SED -e 's/SOURCE=".*"/SOURCE=<src-rev>/g'"
$CAT $OTHER_DIR/$f | eval "$RELEASE_FILTER" > $OTHER_FILE
$CAT $THIS_DIR/$f | eval "$RELEASE_FILTER" > $THIS_FILE
elif [ "$SUFFIX" = "jar_contents" ]; then
# The jar_contents files are generated by the build and may have
# some lines in random order. They are only included for demos,
# which they shouldn't really...
OTHER_FILE=$WORK_DIR/$f.other
THIS_FILE=$WORK_DIR/$f.this
$MKDIR -p $(dirname $OTHER_FILE) $(dirname $THIS_FILE)
$RM $OTHER_FILE $THIS_FILE
$CAT $OTHER_DIR/$f | $SORT > $OTHER_FILE
$CAT $THIS_DIR/$f | $SORT > $THIS_FILE
else
OTHER_FILE=$OTHER_DIR/$f
THIS_FILE=$THIS_DIR/$f
fi
DIFF_OUT=$($DIFF $OTHER_FILE $THIS_FILE 2>&1)
if [ -n "$DIFF_OUT" ]; then
echo $f
REGRESSIONS=true
if [ "$SHOW_DIFFS" = "true" ]; then
echo "$DIFF_OUT"
fi
fi
fi
done
}
################################################################################
# Initiate configuration
@@ -1515,22 +1543,31 @@ fi
if [ "$CMP_GENERAL" = "true" ]; then
if [ -n "$THIS_JDK" ] && [ -n "$OTHER_JDK" ]; then
echo -n "JDK "
compare_general_files $THIS_JDK $OTHER_JDK $COMPARE_ROOT/jdk
compare_all_other_files $THIS_JDK $OTHER_JDK $COMPARE_ROOT/jdk
echo -n "JDK "
compare_all_debug_files $THIS_JDK $OTHER_JDK $COMPARE_ROOT/jdk
fi
if [ -n "$THIS_JDK_BUNDLE" ] && [ -n "$OTHER_JDK_BUNDLE" ]; then
echo -n "JDK Bundle "
compare_general_files $THIS_JDK_BUNDLE $OTHER_JDK_BUNDLE $COMPARE_ROOT/jdk-bundle
compare_all_other_files $THIS_JDK_BUNDLE $OTHER_JDK_BUNDLE $COMPARE_ROOT/jdk-bundle
echo -n "JDK Bundle "
compare_all_debug_files $THIS_JDK_BUNDLE $OTHER_JDK_BUNDLE $COMPARE_ROOT/jdk-bundle
fi
if [ -n "$THIS_DOCS" ] && [ -n "$OTHER_DOCS" ]; then
echo -n "Docs "
compare_general_files $THIS_DOCS $OTHER_DOCS $COMPARE_ROOT/docs
compare_all_other_files $THIS_DOCS $OTHER_DOCS $COMPARE_ROOT/docs
echo -n "Docs "
compare_all_debug_files $THIS_DOCS $OTHER_DOCS $COMPARE_ROOT/docs
fi
if [ -n "$THIS_TEST" ] && [ -n "$OTHER_TEST" ]; then
echo -n "Test "
compare_general_files $THIS_TEST $OTHER_TEST $COMPARE_ROOT/test
compare_all_other_files $THIS_TEST $OTHER_TEST $COMPARE_ROOT/test
echo -n "Test "
compare_all_debug_files $THIS_TEST $OTHER_TEST $COMPARE_ROOT/test
fi
if [ -n "$THIS_BASE_DIR" ] && [ -n "$OTHER_BASE_DIR" ]; then
compare_general_files $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
compare_all_other_files $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
compare_all_debug_files $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
fi
fi

View File

@@ -1,65 +0,0 @@
#!/bin/bash
#
# Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
# This script is not to be run as stand-alone, it should be included from
# compare.sh.
##########################################################################################
# Check that we are run via inclusion from compare.sh and not as stand-alone.
if [ -z "$COMPARE_EXCEPTIONS_INCLUDE" ]; then
echo "Error: This script should not be run as stand-alone. It is included by compare.sh"
exit 1
fi
##########################################################################################
# Diff exceptions
if [ "$OPENJDK_TARGET_OS" = "linux" ]; then
if [ "$USE_PRECOMPILED_HEADER" = "true" ]; then
ACCEPTED_BIN_DIFF="
./lib/server/libjvm.so
./hotspot/gtest/server/libjvm.so
"
STRIP_BEFORE_COMPARE="
./hotspot/gtest/server/libjvm.so
"
fi
elif [ "$OPENJDK_TARGET_OS" = "windows" ]; then
SKIP_BIN_DIFF="true"
SKIP_FULLDUMP_DIFF="true"
ACCEPTED_JARZIP_CONTENTS="
/modules_libs/java.security.jgss/w2k_lsa_auth.dll.pdb
/modules_libs/java.security.jgss/w2k_lsa_auth.dll.map
/modules_libs/java.security.jgss/w2k_lsa_auth.dll
"
elif [ "$OPENJDK_TARGET_OS" = "macosx" ]; then
ACCEPTED_BIN_DIFF="
./lib/libawt_lwawt.dylib
./lib/libosxapp.dylib
./lib/libosxui.dylib
./lib/server/libjvm.dylib
./hotspot/gtest/server/libjvm.dylib
"
STRIP_TESTS_BEFORE_COMPARE="true"
fi

View File

@@ -107,6 +107,7 @@ $(eval $(call SetupJavaCompilation, BUILD_JDK_MICROBENCHMARK, \
--add-exports java.base/sun.invoke.util=ALL-UNNAMED \
--add-exports java.base/sun.security.util=ALL-UNNAMED \
--enable-preview \
-XDsuppressNotes \
-processor org.openjdk.jmh.generators.BenchmarkProcessor, \
JAVA_FLAGS := \
--add-exports java.base/jdk.internal.vm=ALL-UNNAMED \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -45,6 +45,10 @@ BUILD_LIBTEST_OUTPUT_DIR := $(OUTPUTDIR)/support/test/lib/native
BUILD_LIBTEST_IMAGE_DIR := $(TEST_IMAGE_DIR)/lib
ifeq ($(call isTargetOs, windows), false)
BUILD_LIBTEST_LIBRARIES_EXCLUDE += libFileUtils.c
endif
# This evaluation is expensive and should only be done if this target was
# explicitly called.
ifneq ($(filter build-test-lib-native, $(MAKECMDGOALS)), )

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -857,6 +857,11 @@ else
exeinvoke.c exestack-gap.c exestack-tls.c libAsyncGetCallTraceTest.cpp
endif
ifeq ($(call And, $(call isTargetOs, linux) $(call isTargetCpu, aarch64)), false)
BUILD_HOTSPOT_JTREG_EXCLUDE += libTestSVEWithJNI.c
endif
BUILD_HOTSPOT_JTREG_EXECUTABLES_LIBS_exesigtest := -ljvm
ifeq ($(call isTargetOs, windows), true)

View File

@@ -29,6 +29,23 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
ifndef SOURCE
export SOURCE := 7
endif
ifndef TARGET
export TARGET := 7
endif
ifndef JAVAC
export JAVAC := javac
endif
ifndef JAVA
export JAVA := java
endif
ifndef JAR
export JAR := jar
endif
SOURCEPATH=src
CLASSES=build
DIST=dist
@@ -80,18 +97,18 @@ SCM_DIRs = .hg .svn CVS RCS SCCS Codemgr_wsdata deleted_files
all: mkdirs J2DBench.jar J2DAnalyzer.jar
run: mkdirs J2DBench.jar
java -jar $(DIST)/J2DBench.jar
$(JAVA) -jar $(DIST)/J2DBench.jar
analyze: mkdirs J2DAnalyzer.jar
java -jar $(DIST)/J2DAnalyzer.jar
$(JAVA) -jar $(DIST)/J2DAnalyzer.jar
J2DBench.jar: \
$(J2DBENCH_CLASSES) $(J2DBENCH_RESOURCES) \
$(CLASSES)/j2dbench.manifest
jar cvmf $(CLASSES)/j2dbench.manifest $(DIST)/J2DBench.jar -C $(CLASSES) j2dbench
$(JAR) cvmf $(CLASSES)/j2dbench.manifest $(DIST)/J2DBench.jar -C $(CLASSES) j2dbench
J2DAnalyzer.jar: $(J2DANALYZER_CLASSES) $(CLASSES)/j2danalyzer.manifest
jar cvmf $(CLASSES)/j2danalyzer.manifest \
$(JAR) cvmf $(CLASSES)/j2danalyzer.manifest \
$(DIST)/J2DAnalyzer.jar -C $(CLASSES) j2dbench/report
$(CLASSES)/j2dbench/tests/iio/images: $(RESOURCES)/images
@@ -120,7 +137,7 @@ $(CLASSES):
mkdirs: $(DIST) $(CLASSES)
$(CLASSES)/j2dbench/%.class: $(SOURCEPATH)/j2dbench/%.java
javac -g:none -source 1.7 -target 1.7 -d $(CLASSES) -sourcepath $(SOURCEPATH) $<
$(JAVAC) -g:none -source $(SOURCE) -target $(TARGET) -d $(CLASSES) -sourcepath $(SOURCEPATH) $<
clean:
rm -rf $(CLASSES)

View File

@@ -23,6 +23,9 @@ The benchmark requires at least jdk1.4 to compile and run. Note that
source/target is set to 1.7 in the makefile and build.xml, because of
support in jdk 14 compiler. To check compatibility with jdk1.4 you can
use "-source 1.4 -target 1.4" options and jdk1.7.
Yo can use TARGET/SOURCE of makefile and -Dtarget/surce to set them up for your convinience.
Similarly you can set JAVA/JAVAC/JAR and -Djava/javac to select diffferent java/javac then is on yoru PATH
Unluckily in ant, you can not set jar, but ant should honor JAVA_HOME
-----------------------------------------------------------------------
How To Compile

View File

@@ -39,6 +39,27 @@
<property name="dist" location="dist"/>
<property name="resources" location="resources"/>
<condition property="source" value="7">
<not>
<isset property="source"/>
</not>
</condition>
<condition property="target" value="7">
<not>
<isset property="target"/>
</not>
</condition>
<condition property="java" value="java">
<not>
<isset property="java"/>
</not>
</condition>
<condition property="javac" value="javac">
<not>
<isset property="javac"/>
</not>
</condition>
<target name="init">
<!-- Create the time stamp -->
<tstamp/>
@@ -49,13 +70,14 @@
<target name="compile" depends="init"
description="compile the source " >
<!-- Compile the java code from ${src} into ${build} -->
<javac debug="off" source="1.7" target="1.7" srcdir="${src}" destdir="${build}"/>
<javac debug="off" source="${source}" target="${target}" srcdir="${src}" destdir="${build}" fork="true" executable="${javac}"/>
</target>
<target name="run" depends="dist"
description="run J2DBench" >
<java jar="${dist}/J2DBench.jar"
fork="true"
jvm="${java}"
>
</java>
</target>
@@ -64,6 +86,7 @@
description="run J2DAnalyzer" >
<java jar="${dist}/J2DAnalyzer.jar"
fork="true"
jvm="${java}"
>
</java>
</target>

View File

@@ -1,6 +1,6 @@
/*
*
* Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -1716,7 +1716,7 @@ public class Intro extends JPanel {
this.beginning = beg;
this.ending = end;
fm = surf.getMetrics(font);
java.util.Arrays.sort(members);
Arrays.sort(members);
cast.add("CONTRIBUTORS");
cast.add(" ");
cast.addAll(Arrays.asList(members));

View File

@@ -1,5 +1,5 @@
//
// Copyright (c) 2003, 2023, Oracle and/or its affiliates. All rights reserved.
// Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved.
// Copyright (c) 2014, 2021, Red Hat, Inc. All rights reserved.
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
//
@@ -1237,7 +1237,7 @@ source %{
// r27 is not allocatable when compressed oops is on and heapbase is not
// zero, compressed klass pointers doesn't use r27 after JDK-8234794
if (UseCompressedOops && (CompressedOops::ptrs_base() != NULL)) {
if (UseCompressedOops && (CompressedOops::ptrs_base() != nullptr)) {
_NO_SPECIAL_REG32_mask.Remove(OptoReg::as_OptoReg(r27->as_VMReg()));
_NO_SPECIAL_REG_mask.Remove(OptoReg::as_OptoReg(r27->as_VMReg()));
_NO_SPECIAL_PTR_REG_mask.Remove(OptoReg::as_OptoReg(r27->as_VMReg()));
@@ -1581,7 +1581,7 @@ bool needs_releasing_store(const Node *n)
{
// assert n->is_Store();
StoreNode *st = n->as_Store();
return st->trailing_membar() != NULL;
return st->trailing_membar() != nullptr;
}
// predicate controlling translation of CAS
@@ -1593,9 +1593,9 @@ bool needs_acquiring_load_exclusive(const Node *n)
assert(is_CAS(n->Opcode(), true), "expecting a compare and swap");
LoadStoreNode* ldst = n->as_LoadStore();
if (is_CAS(n->Opcode(), false)) {
assert(ldst->trailing_membar() != NULL, "expected trailing membar");
assert(ldst->trailing_membar() != nullptr, "expected trailing membar");
} else {
return ldst->trailing_membar() != NULL;
return ldst->trailing_membar() != nullptr;
}
// so we can just return true here
@@ -1734,7 +1734,7 @@ void MachPrologNode::format(PhaseRegAlloc *ra_, outputStream *st) const {
st->print("mov rscratch1, #%d\n\t", framesize - 2 * wordSize);
st->print("sub sp, sp, rscratch1");
}
if (C->stub_function() == NULL && BarrierSet::barrier_set()->barrier_set_nmethod() != NULL) {
if (C->stub_function() == nullptr && BarrierSet::barrier_set()->barrier_set_nmethod() != nullptr) {
st->print("\n\t");
st->print("ldr rscratch1, [guard]\n\t");
st->print("dmb ishld\n\t");
@@ -1783,9 +1783,9 @@ void MachPrologNode::emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const {
__ build_frame(framesize);
if (C->stub_function() == NULL) {
if (C->stub_function() == nullptr) {
BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
if (BarrierSet::barrier_set()->barrier_set_nmethod() != NULL) {
if (BarrierSet::barrier_set()->barrier_set_nmethod() != nullptr) {
// Dummy labels for just measuring the code size
Label dummy_slow_path;
Label dummy_continuation;
@@ -2153,12 +2153,12 @@ void MachSpillCopyNode::format(PhaseRegAlloc *ra_, outputStream *st) const {
if (!ra_)
st->print("N%d = SpillCopy(N%d)", _idx, in(1)->_idx);
else
implementation(NULL, ra_, false, st);
implementation(nullptr, ra_, false, st);
}
#endif
void MachSpillCopyNode::emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const {
implementation(&cbuf, ra_, false, NULL);
implementation(&cbuf, ra_, false, nullptr);
}
uint MachSpillCopyNode::size(PhaseRegAlloc *ra_) const {
@@ -2205,14 +2205,14 @@ void MachUEPNode::format(PhaseRegAlloc* ra_, outputStream* st) const
{
st->print_cr("# MachUEPNode");
if (UseCompressedClassPointers) {
st->print_cr("\tldrw rscratch1, j_rarg0 + oopDesc::klass_offset_in_bytes()]\t# compressed klass");
if (CompressedKlassPointers::shift() != 0) {
st->print_cr("\tdecode_klass_not_null rscratch1, rscratch1");
}
st->print_cr("\tldrw rscratch1, [j_rarg0 + oopDesc::klass_offset_in_bytes()]\t# compressed klass");
st->print_cr("\tldrw r10, [rscratch2 + CompiledICData::speculated_klass_offset()]\t# compressed klass");
st->print_cr("\tcmpw rscratch1, r10");
} else {
st->print_cr("\tldr rscratch1, j_rarg0 + oopDesc::klass_offset_in_bytes()]\t# compressed klass");
st->print_cr("\tldr rscratch1, [j_rarg0 + oopDesc::klass_offset_in_bytes()]\t# compressed klass");
st->print_cr("\tldr r10, [rscratch2 + CompiledICData::speculated_klass_offset()]\t# compressed klass");
st->print_cr("\tcmp rscratch1, r10");
}
st->print_cr("\tcmp r0, rscratch1\t # Inline cache check");
st->print_cr("\tbne, SharedRuntime::_ic_miss_stub");
}
#endif
@@ -2221,14 +2221,7 @@ void MachUEPNode::emit(CodeBuffer& cbuf, PhaseRegAlloc* ra_) const
{
// This is the unverified entry point.
C2_MacroAssembler _masm(&cbuf);
__ cmp_klass(j_rarg0, rscratch2, rscratch1);
Label skip;
// TODO
// can we avoid this skip and still use a reloc?
__ br(Assembler::EQ, skip);
__ far_jump(RuntimeAddress(SharedRuntime::get_ic_miss_stub()));
__ bind(skip);
__ ic_check(InteriorEntryAlignment);
}
uint MachUEPNode::size(PhaseRegAlloc* ra_) const
@@ -2249,7 +2242,7 @@ int HandlerImpl::emit_exception_handler(CodeBuffer& cbuf)
// That's why we must use the macroassembler to generate a handler.
C2_MacroAssembler _masm(&cbuf);
address base = __ start_a_stub(size_exception_handler());
if (base == NULL) {
if (base == nullptr) {
ciEnv::current()->record_failure("CodeCache is full");
return 0; // CodeBuffer::expand failed
}
@@ -2267,7 +2260,7 @@ int HandlerImpl::emit_deopt_handler(CodeBuffer& cbuf)
// That's why we must use the macroassembler to generate a handler.
C2_MacroAssembler _masm(&cbuf);
address base = __ start_a_stub(size_deopt_handler());
if (base == NULL) {
if (base == nullptr) {
ciEnv::current()->record_failure("CodeCache is full");
return 0; // CodeBuffer::expand failed
}
@@ -2377,7 +2370,7 @@ int Matcher::min_vector_size(const BasicType bt) {
return MIN2(size, max_size);
}
int Matcher::superword_max_vector_size(const BasicType bt) {
int Matcher::max_vector_size_auto_vectorization(const BasicType bt) {
return Matcher::max_vector_size(bt);
}
@@ -2410,7 +2403,7 @@ MachOper* Matcher::pd_specialize_generic_vector_operand(MachOper* generic_opnd,
case Op_VecX: return new vecXOper();
}
ShouldNotReachHere();
return NULL;
return nullptr;
}
bool Matcher::is_reg2reg_move(MachNode* m) {
@@ -2582,8 +2575,8 @@ Assembler::Condition to_assembler_cond(BoolTest::mask cond) {
}
// Binary src (Replicate con)
bool is_valid_sve_arith_imm_pattern(Node* n, Node* m) {
if (n == NULL || m == NULL) {
static bool is_valid_sve_arith_imm_pattern(Node* n, Node* m) {
if (n == nullptr || m == nullptr) {
return false;
}
@@ -2623,8 +2616,8 @@ bool is_valid_sve_arith_imm_pattern(Node* n, Node* m) {
// (XorV src (Replicate m1))
// (XorVMask src (MaskAll m1))
bool is_vector_bitwise_not_pattern(Node* n, Node* m) {
if (n != NULL && m != NULL) {
static bool is_vector_bitwise_not_pattern(Node* n, Node* m) {
if (n != nullptr && m != nullptr) {
return (n->Opcode() == Op_XorV || n->Opcode() == Op_XorVMask) &&
VectorNode::is_all_ones_vector(m);
}
@@ -3430,7 +3423,7 @@ encode %{
C2_MacroAssembler _masm(&cbuf);
Register dst_reg = as_Register($dst$$reg);
address con = (address)$src$$constant;
if (con == NULL || con == (address)1) {
if (con == nullptr || con == (address)1) {
ShouldNotReachHere();
} else {
relocInfo::relocType rtype = $src->constant_reloc();
@@ -3473,7 +3466,7 @@ encode %{
C2_MacroAssembler _masm(&cbuf);
Register dst_reg = as_Register($dst$$reg);
address con = (address)$src$$constant;
if (con == NULL) {
if (con == nullptr) {
ShouldNotReachHere();
} else {
relocInfo::relocType rtype = $src->constant_reloc();
@@ -3492,7 +3485,7 @@ encode %{
C2_MacroAssembler _masm(&cbuf);
Register dst_reg = as_Register($dst$$reg);
address con = (address)$src$$constant;
if (con == NULL) {
if (con == nullptr) {
ShouldNotReachHere();
} else {
relocInfo::relocType rtype = $src->constant_reloc();
@@ -3675,7 +3668,7 @@ encode %{
Label miss;
C2_MacroAssembler _masm(&cbuf);
__ check_klass_subtype_slow_path(sub_reg, super_reg, temp_reg, result_reg,
NULL, &miss,
nullptr, &miss,
/*set_cond_codes:*/ true);
if ($primary) {
__ mov(result_reg, zr);
@@ -3691,7 +3684,7 @@ encode %{
if (!_method) {
// A call to a runtime wrapper, e.g. new, new_typeArray_Java, uncommon_trap.
call = __ trampoline_call(Address(addr, relocInfo::runtime_call_type));
if (call == NULL) {
if (call == nullptr) {
ciEnv::current()->record_failure("CodeCache is full");
return;
}
@@ -3705,7 +3698,7 @@ encode %{
RelocationHolder rspec = _optimized_virtual ? opt_virtual_call_Relocation::spec(method_index)
: static_call_Relocation::spec(method_index);
call = __ trampoline_call(Address(addr, rspec));
if (call == NULL) {
if (call == nullptr) {
ciEnv::current()->record_failure("CodeCache is full");
return;
}
@@ -3715,8 +3708,8 @@ encode %{
cbuf.shared_stub_to_interp_for(_method, call - cbuf.insts_begin());
} else {
// Emit stub for static call
address stub = CompiledStaticCall::emit_to_interp_stub(cbuf, call);
if (stub == NULL) {
address stub = CompiledDirectCall::emit_to_interp_stub(cbuf, call);
if (stub == nullptr) {
ciEnv::current()->record_failure("CodeCache is full");
return;
}
@@ -3735,7 +3728,7 @@ encode %{
C2_MacroAssembler _masm(&cbuf);
int method_index = resolved_method_index(cbuf);
address call = __ ic_call((address)$meth$$method, method_index);
if (call == NULL) {
if (call == nullptr) {
ciEnv::current()->record_failure("CodeCache is full");
return;
}
@@ -3764,7 +3757,7 @@ encode %{
CodeBlob *cb = CodeCache::find_blob(entry);
if (cb) {
address call = __ trampoline_call(Address(entry, relocInfo::runtime_call_type));
if (call == NULL) {
if (call == nullptr) {
ciEnv::current()->record_failure("CodeCache is full");
return;
}
@@ -4663,7 +4656,7 @@ operand immP()
interface(CONST_INTER);
%}
// NULL Pointer Immediate
// Null Pointer Immediate
operand immP0()
%{
predicate(n->get_ptr() == 0);
@@ -4795,7 +4788,7 @@ operand immN()
interface(CONST_INTER);
%}
// Narrow NULL Pointer Immediate
// Narrow Null Pointer Immediate
operand immN0()
%{
predicate(n->get_narrowcon() == 0);
@@ -7219,7 +7212,7 @@ instruct loadConP0(iRegPNoSp dst, immP0 con)
match(Set dst con);
ins_cost(INSN_COST);
format %{ "mov $dst, $con\t# NULL ptr" %}
format %{ "mov $dst, $con\t# null pointer" %}
ins_encode(aarch64_enc_mov_p0(dst, con));
@@ -7233,7 +7226,7 @@ instruct loadConP1(iRegPNoSp dst, immP_1 con)
match(Set dst con);
ins_cost(INSN_COST);
format %{ "mov $dst, $con\t# NULL ptr" %}
format %{ "mov $dst, $con\t# null pointer" %}
ins_encode(aarch64_enc_mov_p1(dst, con));
@@ -7275,7 +7268,7 @@ instruct loadConN0(iRegNNoSp dst, immN0 con)
match(Set dst con);
ins_cost(INSN_COST);
format %{ "mov $dst, $con\t# compressed NULL ptr" %}
format %{ "mov $dst, $con\t# compressed null pointer" %}
ins_encode(aarch64_enc_mov_n0(dst, con));
@@ -8237,6 +8230,24 @@ instruct popCountL_mem(iRegINoSp dst, memory8 mem, vRegD tmp) %{
ins_pipe(pipe_class_default);
%}
// ============================================================================
// VerifyVectorAlignment Instruction
instruct verify_vector_alignment(iRegP addr, immL_positive_bitmaskI mask, rFlagsReg cr) %{
match(Set addr (VerifyVectorAlignment addr mask));
effect(KILL cr);
format %{ "verify_vector_alignment $addr $mask \t! verify alignment" %}
ins_encode %{
Label Lskip;
// check if masked bits of addr are zero
__ tst($addr$$Register, $mask$$constant);
__ br(Assembler::EQ, Lskip);
__ stop("verify_vector_alignment found a misaligned vector memory access");
__ bind(Lskip);
%}
ins_pipe(pipe_slow);
%}
// ============================================================================
// MemBar Instruction
@@ -15238,7 +15249,7 @@ instruct clearArray_reg_reg(iRegL_R11 cnt, iRegP_R10 base, Universe dummy, rFlag
ins_encode %{
address tpc = __ zero_words($base$$Register, $cnt$$Register);
if (tpc == NULL) {
if (tpc == nullptr) {
ciEnv::current()->record_failure("CodeCache is full");
return;
}
@@ -15259,7 +15270,7 @@ instruct clearArray_imm_reg(immL cnt, iRegP_R10 base, iRegL_R11 temp, Universe d
ins_encode %{
address tpc = __ zero_words($base$$Register, (uint64_t)$cnt$$constant);
if (tpc == NULL) {
if (tpc == nullptr) {
ciEnv::current()->record_failure("CodeCache is full");
return;
}
@@ -16422,13 +16433,12 @@ instruct branchLoopEnd(cmpOp cmp, rFlagsReg cr, label lbl)
instruct cmpFastLock(rFlagsReg cr, iRegP object, iRegP box, iRegPNoSp tmp, iRegPNoSp tmp2, iRegPNoSp tmp3)
%{
predicate(LockingMode != LM_LIGHTWEIGHT);
match(Set cr (FastLock object box));
effect(TEMP tmp, TEMP tmp2, TEMP tmp3);
// TODO
// identify correct cost
ins_cost(5 * INSN_COST);
format %{ "fastlock $object,$box\t! kills $tmp,$tmp2" %}
format %{ "fastlock $object,$box\t! kills $tmp,$tmp2,$tmp3" %}
ins_encode %{
__ fast_lock($object$$Register, $box$$Register, $tmp$$Register, $tmp2$$Register, $tmp3$$Register);
@@ -16439,6 +16449,7 @@ instruct cmpFastLock(rFlagsReg cr, iRegP object, iRegP box, iRegPNoSp tmp, iRegP
instruct cmpFastUnlock(rFlagsReg cr, iRegP object, iRegP box, iRegPNoSp tmp, iRegPNoSp tmp2)
%{
predicate(LockingMode != LM_LIGHTWEIGHT);
match(Set cr (FastUnlock object box));
effect(TEMP tmp, TEMP tmp2);
@@ -16452,6 +16463,37 @@ instruct cmpFastUnlock(rFlagsReg cr, iRegP object, iRegP box, iRegPNoSp tmp, iRe
ins_pipe(pipe_serial);
%}
instruct cmpFastLockLightweight(rFlagsReg cr, iRegP object, iRegP box, iRegPNoSp tmp, iRegPNoSp tmp2)
%{
predicate(LockingMode == LM_LIGHTWEIGHT);
match(Set cr (FastLock object box));
effect(TEMP tmp, TEMP tmp2);
ins_cost(5 * INSN_COST);
format %{ "fastlock $object,$box\t! kills $tmp,$tmp2" %}
ins_encode %{
__ fast_lock_lightweight($object$$Register, $box$$Register, $tmp$$Register, $tmp2$$Register);
%}
ins_pipe(pipe_serial);
%}
instruct cmpFastUnlockLightweight(rFlagsReg cr, iRegP object, iRegP box, iRegPNoSp tmp, iRegPNoSp tmp2)
%{
predicate(LockingMode == LM_LIGHTWEIGHT);
match(Set cr (FastUnlock object box));
effect(TEMP tmp, TEMP tmp2);
ins_cost(5 * INSN_COST);
format %{ "fastunlock $object,$box\t! kills $tmp, $tmp2" %}
ins_encode %{
__ fast_unlock_lightweight($object$$Register, $box$$Register, $tmp$$Register, $tmp2$$Register);
%}
ins_pipe(pipe_serial);
%}
// ============================================================================
// Safepoint Instructions
@@ -17086,23 +17128,7 @@ instruct string_equalsL(iRegP_R1 str1, iRegP_R3 str2, iRegI_R4 cnt,
ins_encode %{
// Count is in 8-bit bytes; non-Compact chars are 16 bits.
__ string_equals($str1$$Register, $str2$$Register,
$result$$Register, $cnt$$Register, 1);
%}
ins_pipe(pipe_class_memory);
%}
instruct string_equalsU(iRegP_R1 str1, iRegP_R3 str2, iRegI_R4 cnt,
iRegI_R0 result, rFlagsReg cr)
%{
predicate(((StrEqualsNode*)n)->encoding() == StrIntrinsicNode::UU);
match(Set result (StrEquals (Binary str1 str2) cnt));
effect(USE_KILL str1, USE_KILL str2, USE_KILL cnt, KILL cr);
format %{ "String Equals $str1,$str2,$cnt -> $result" %}
ins_encode %{
// Count is in 8-bit bytes; non-Compact chars are 16 bits.
__ string_equals($str1$$Register, $str2$$Register,
$result$$Register, $cnt$$Register, 2);
$result$$Register, $cnt$$Register);
%}
ins_pipe(pipe_class_memory);
%}
@@ -17124,7 +17150,7 @@ instruct array_equalsB(iRegP_R1 ary1, iRegP_R2 ary2, iRegI_R0 result,
address tpc = __ arrays_equals($ary1$$Register, $ary2$$Register,
$tmp1$$Register, $tmp2$$Register, $tmp3$$Register,
$result$$Register, $tmp$$Register, 1);
if (tpc == NULL) {
if (tpc == nullptr) {
ciEnv::current()->record_failure("CodeCache is full");
return;
}
@@ -17149,7 +17175,7 @@ instruct array_equalsC(iRegP_R1 ary1, iRegP_R2 ary2, iRegI_R0 result,
address tpc = __ arrays_equals($ary1$$Register, $ary2$$Register,
$tmp1$$Register, $tmp2$$Register, $tmp3$$Register,
$result$$Register, $tmp$$Register, 2);
if (tpc == NULL) {
if (tpc == nullptr) {
ciEnv::current()->record_failure("CodeCache is full");
return;
}
@@ -17164,7 +17190,7 @@ instruct count_positives(iRegP_R1 ary1, iRegI_R2 len, iRegI_R0 result, rFlagsReg
format %{ "count positives byte[] $ary1,$len -> $result" %}
ins_encode %{
address tpc = __ count_positives($ary1$$Register, $len$$Register, $result$$Register);
if (tpc == NULL) {
if (tpc == nullptr) {
ciEnv::current()->record_failure("CodeCache is full");
return;
}
@@ -17207,7 +17233,7 @@ instruct string_inflate(Universe dummy, iRegP_R0 src, iRegP_R1 dst, iRegI_R2 len
address tpc = __ byte_array_inflate($src$$Register, $dst$$Register, $len$$Register,
$vtmp0$$FloatRegister, $vtmp1$$FloatRegister,
$vtmp2$$FloatRegister, $tmp$$Register);
if (tpc == NULL) {
if (tpc == nullptr) {
ciEnv::current()->record_failure("CodeCache is full");
return;
}

View File

@@ -1,5 +1,5 @@
//
// Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved.
// Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved.
// Copyright (c) 2020, 2023, Arm Limited. All rights reserved.
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
//
@@ -126,7 +126,7 @@ source %{
}
}
bool Matcher::match_rule_supported_superword(int opcode, int vlen, BasicType bt) {
bool Matcher::match_rule_supported_auto_vectorization(int opcode, int vlen, BasicType bt) {
if (UseSVE == 0) {
// These operations are not profitable to be vectorized on NEON, because no direct
// NEON instructions support them. But the match rule support for them is profitable for

View File

@@ -1,5 +1,5 @@
//
// Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved.
// Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved.
// Copyright (c) 2020, 2023, Arm Limited. All rights reserved.
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
//
@@ -116,7 +116,7 @@ source %{
}
}
bool Matcher::match_rule_supported_superword(int opcode, int vlen, BasicType bt) {
bool Matcher::match_rule_supported_auto_vectorization(int opcode, int vlen, BasicType bt) {
if (UseSVE == 0) {
// These operations are not profitable to be vectorized on NEON, because no direct
// NEON instructions support them. But the match rule support for them is profitable for

View File

@@ -19,7 +19,7 @@ dnl Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
dnl or visit www.oracle.com if you need additional information or have any
dnl questions.
dnl
dnl
dnl
dnl Process this file with m4 ad_encode.m4 to generate the load/store
dnl patterns used in aarch64.ad.
dnl
@@ -90,4 +90,3 @@ STORE(vRegD,strd,Float,,8)
loadStore(_masm, &MacroAssembler::strb, zr, $mem->opcode(),
as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp, 1);
%}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, 2020 Red Hat Inc. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -118,10 +118,6 @@ extern "C" {
else
Disassembler::decode((address)start, (address)start + len);
}
JNIEXPORT void das1(uintptr_t insn) {
das(insn, 1);
}
}
#define __ as->
@@ -187,6 +183,26 @@ void Address::lea(MacroAssembler *as, Register r) const {
zrf(Rd, 0);
}
// This encoding is similar (but not quite identical) to the encoding used
// by literal ld/st. see JDK-8324123.
// PRFM does not support writeback or pre/post index.
void Assembler::prfm(const Address &adr, prfop pfop) {
Address::mode mode = adr.getMode();
// PRFM does not support pre/post index
guarantee((mode != Address::pre) && (mode != Address::post), "prfm does not support pre/post indexing");
if (mode == Address::literal) {
starti;
f(0b11, 31, 30), f(0b011, 29, 27), f(0b000, 26, 24);
f(pfop, 4, 0);
int64_t offset = (adr.target() - pc()) >> 2;
sf(offset, 23, 5);
} else {
assert((mode == Address::base_plus_offset)
|| (mode == Address::base_plus_offset_reg), "must be base_plus_offset/base_plus_offset_reg");
ld_st2(as_Register(pfop), adr, 0b11, 0b10);
}
}
// An "all-purpose" add/subtract immediate, per ARM documentation:
// A "programmer-friendly" assembler may accept a negative immediate
// between -(2^24 -1) and -1 inclusive, causing it to convert a

View File

@@ -797,6 +797,8 @@ public:
void adrp(Register Rd, const Address &dest, uint64_t &offset) = delete;
void prfm(const Address &adr, prfop pfop = PLDL1KEEP);
#undef INSN
void add_sub_immediate(Instruction_aarch64 &current_insn, Register Rd, Register Rn,
@@ -1574,17 +1576,6 @@ public:
#undef INSN
#define INSN(NAME, size, op) \
void NAME(const Address &adr, prfop pfop = PLDL1KEEP) { \
ld_st2(as_Register(pfop), adr, size, op); \
}
INSN(prfm, 0b11, 0b10); // FIXME: PRFM should not be used with
// writeback modes, but the assembler
// doesn't enfore that.
#undef INSN
#define INSN(NAME, size, op) \
void NAME(FloatRegister Rt, const Address &adr) { \
ld_st2(as_Register(Rt), adr, size, op, 1); \

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, 2020, Red Hat Inc. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -53,7 +53,6 @@
#endif
NEEDS_CLEANUP // remove this definitions ?
const Register IC_Klass = rscratch2; // where the IC klass is cached
const Register SYNC_header = r0; // synchronization header
const Register SHIFT_count = r0; // where count for shift operations must be
@@ -282,7 +281,8 @@ void LIR_Assembler::osr_entry() {
__ bind(L);
}
#endif
__ ldp(r19, r20, Address(OSR_buf, slot_offset));
__ ldr(r19, Address(OSR_buf, slot_offset));
__ ldr(r20, Address(OSR_buf, slot_offset + BytesPerWord));
__ str(r19, frame_map()->address_for_monitor_lock(i));
__ str(r20, frame_map()->address_for_monitor_object(i));
}
@@ -292,27 +292,7 @@ void LIR_Assembler::osr_entry() {
// inline cache check; done before the frame is built.
int LIR_Assembler::check_icache() {
Register receiver = FrameMap::receiver_opr->as_register();
Register ic_klass = IC_Klass;
int start_offset = __ offset();
__ inline_cache_check(receiver, ic_klass);
// if icache check fails, then jump to runtime routine
// Note: RECEIVER must still contain the receiver!
Label dont;
__ br(Assembler::EQ, dont);
__ far_jump(RuntimeAddress(SharedRuntime::get_ic_miss_stub()));
// We align the verified entry point unless the method body
// (including its inline cache check) will fit in a single 64-byte
// icache line.
if (! method()->is_accessor() || __ offset() - start_offset > 4 * 4) {
// force alignment after the cache check.
__ align(CodeEntryAlignment);
}
__ bind(dont);
return start_offset;
return __ ic_check(CodeEntryAlignment);
}
void LIR_Assembler::clinit_barrier(ciMethod* method) {
@@ -1229,7 +1209,7 @@ void LIR_Assembler::emit_alloc_array(LIR_OpAllocArray* op) {
len,
tmp1,
tmp2,
arrayOopDesc::header_size(op->type()),
arrayOopDesc::base_offset_in_bytes(op->type()),
array_element_size(op->type()),
op->klass()->as_register(),
*op->stub()->entry());
@@ -2041,7 +2021,7 @@ void LIR_Assembler::emit_static_call_stub() {
__ relocate(static_stub_Relocation::spec(call_pc));
__ emit_static_call_stub();
assert(__ offset() - start + CompiledStaticCall::to_trampoline_stub_size()
assert(__ offset() - start + CompiledDirectCall::to_trampoline_stub_size()
<= call_stub_size(), "stub too big");
__ end_a_stub();
}

View File

@@ -71,8 +71,8 @@ friend class ArrayCopyStub;
void deoptimize_trap(CodeEmitInfo *info);
enum {
// call stub: CompiledStaticCall::to_interp_stub_size() +
// CompiledStaticCall::to_trampoline_stub_size()
// call stub: CompiledDirectCall::to_interp_stub_size() +
// CompiledDirectCall::to_trampoline_stub_size()
_call_stub_size = 13 * NativeInstruction::instruction_size,
_exception_handler_size = DEBUG_ONLY(1*K) NOT_DEBUG(175),
_deopt_handler_size = 7 * NativeInstruction::instruction_size

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2005, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -831,18 +831,12 @@ void LIRGenerator::do_LibmIntrinsic(Intrinsic* x) {
}
break;
case vmIntrinsics::_dlog:
if (StubRoutines::dlog() != nullptr) {
__ call_runtime_leaf(StubRoutines::dlog(), getThreadTemp(), result_reg, cc->args());
} else {
__ call_runtime_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::dlog), getThreadTemp(), result_reg, cc->args());
}
// Math.log intrinsic is not implemented on AArch64 (see JDK-8210858),
// but we can still call the shared runtime.
__ call_runtime_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::dlog), getThreadTemp(), result_reg, cc->args());
break;
case vmIntrinsics::_dlog10:
if (StubRoutines::dlog10() != nullptr) {
__ call_runtime_leaf(StubRoutines::dlog10(), getThreadTemp(), result_reg, cc->args());
} else {
__ call_runtime_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::dlog10), getThreadTemp(), result_reg, cc->args());
}
__ call_runtime_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::dlog10), getThreadTemp(), result_reg, cc->args());
break;
case vmIntrinsics::_dpow:
if (StubRoutines::dpow() != nullptr) {

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1999, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, 2021, Red Hat Inc. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -80,12 +80,12 @@ int C1_MacroAssembler::lock_object(Register hdr, Register obj, Register disp_hdr
br(Assembler::NE, slow_case);
}
// Load object header
ldr(hdr, Address(obj, hdr_offset));
if (LockingMode == LM_LIGHTWEIGHT) {
lightweight_lock(obj, hdr, temp, rscratch2, slow_case);
} else if (LockingMode == LM_LEGACY) {
Label done;
// Load object header
ldr(hdr, Address(obj, hdr_offset));
// and mark it as unlocked
orr(hdr, hdr, markWord::unlocked_value);
// save unlocked object header into the displaced header location on the stack
@@ -144,11 +144,6 @@ void C1_MacroAssembler::unlock_object(Register hdr, Register obj, Register disp_
verify_oop(obj);
if (LockingMode == LM_LIGHTWEIGHT) {
ldr(hdr, Address(obj, oopDesc::mark_offset_in_bytes()));
// We cannot use tbnz here, the target might be too far away and cannot
// be encoded.
tst(hdr, markWord::monitor_value);
br(Assembler::NE, slow_case);
lightweight_unlock(obj, hdr, temp, rscratch2, slow_case);
} else if (LockingMode == LM_LEGACY) {
// test if object header is pointing to the displaced header, and if so, restore
@@ -193,6 +188,12 @@ void C1_MacroAssembler::initialize_header(Register obj, Register klass, Register
if (len->is_valid()) {
strw(len, Address(obj, arrayOopDesc::length_offset_in_bytes()));
int base_offset = arrayOopDesc::length_offset_in_bytes() + BytesPerInt;
if (!is_aligned(base_offset, BytesPerWord)) {
assert(is_aligned(base_offset, BytesPerInt), "must be 4-byte aligned");
// Clear gap/first 4 bytes following the length field.
strw(zr, Address(obj, base_offset));
}
} else if (UseCompressedClassPointers) {
store_klass_gap(obj, zr);
}
@@ -271,7 +272,7 @@ void C1_MacroAssembler::initialize_object(Register obj, Register klass, Register
verify_oop(obj);
}
void C1_MacroAssembler::allocate_array(Register obj, Register len, Register t1, Register t2, int header_size, int f, Register klass, Label& slow_case) {
void C1_MacroAssembler::allocate_array(Register obj, Register len, Register t1, Register t2, int base_offset_in_bytes, int f, Register klass, Label& slow_case) {
assert_different_registers(obj, len, t1, t2, klass);
// determine alignment mask
@@ -284,7 +285,7 @@ void C1_MacroAssembler::allocate_array(Register obj, Register len, Register t1,
const Register arr_size = t2; // okay to be the same
// align object end
mov(arr_size, (int32_t)header_size * BytesPerWord + MinObjAlignmentInBytesMask);
mov(arr_size, (int32_t)base_offset_in_bytes + MinObjAlignmentInBytesMask);
add(arr_size, arr_size, len, ext::uxtw, f);
andr(arr_size, arr_size, ~MinObjAlignmentInBytesMask);
@@ -292,8 +293,11 @@ void C1_MacroAssembler::allocate_array(Register obj, Register len, Register t1,
initialize_header(obj, klass, len, t1, t2);
// Align-up to word boundary, because we clear the 4 bytes potentially
// following the length field in initialize_header().
int base_offset = align_up(base_offset_in_bytes, BytesPerWord);
// clear rest of allocated space
initialize_body(obj, arr_size, header_size * BytesPerWord, t1, t2);
initialize_body(obj, arr_size, base_offset, t1, t2);
if (Compilation::current()->bailed_out()) {
return;
}
@@ -308,17 +312,6 @@ void C1_MacroAssembler::allocate_array(Register obj, Register len, Register t1,
verify_oop(obj);
}
void C1_MacroAssembler::inline_cache_check(Register receiver, Register iCache) {
verify_oop(receiver);
// explicit null check not needed since load from [klass_offset] causes a trap
// check against inline cache
assert(!MacroAssembler::needs_explicit_null_check(oopDesc::klass_offset_in_bytes()), "must add explicit null check");
cmp_klass(receiver, iCache, rscratch1);
}
void C1_MacroAssembler::build_frame(int framesize, int bang_size_in_bytes) {
assert(bang_size_in_bytes >= framesize, "stack bang size incorrect");
// Make sure there is enough stack space for this method's activation.

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1999, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, 2021, Red Hat Inc. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -100,7 +100,7 @@ using MacroAssembler::null_check;
// header_size: size of object header in words
// f : element scale factor
// slow_case : exit to slow case implementation if fast allocation fails
void allocate_array(Register obj, Register len, Register t, Register t2, int header_size, int f, Register klass, Label& slow_case);
void allocate_array(Register obj, Register len, Register t, Register t2, int base_offset_in_bytes, int f, Register klass, Label& slow_case);
int rsp_offset() const { return _rsp_offset; }
void set_rsp_offset(int n) { _rsp_offset = n; }

View File

@@ -38,7 +38,6 @@
#include "interpreter/interpreter.hpp"
#include "memory/universe.hpp"
#include "nativeInst_aarch64.hpp"
#include "oops/compiledICHolder.hpp"
#include "oops/oop.inline.hpp"
#include "prims/jvmtiExport.hpp"
#include "register_aarch64.hpp"

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,6 +32,7 @@
#include "opto/output.hpp"
#include "opto/subnode.hpp"
#include "runtime/stubRoutines.hpp"
#include "utilities/globalDefinitions.hpp"
#ifdef PRODUCT
#define BLOCK_COMMENT(str) /* nothing */
@@ -55,6 +56,7 @@ void C2_MacroAssembler::fast_lock(Register objectReg, Register boxReg, Register
Label object_has_monitor;
Label count, no_count;
assert(LockingMode != LM_LIGHTWEIGHT, "lightweight locking should use fast_lock_lightweight");
assert_different_registers(oop, box, tmp, disp_hdr);
// Load markWord from object into displaced_header.
@@ -73,7 +75,8 @@ void C2_MacroAssembler::fast_lock(Register objectReg, Register boxReg, Register
if (LockingMode == LM_MONITOR) {
tst(oop, oop); // Set NE to indicate 'failure' -> take slow-path. We know that oop != 0.
b(cont);
} else if (LockingMode == LM_LEGACY) {
} else {
assert(LockingMode == LM_LEGACY, "must be");
// Set tmp to be (markWord of object | UNLOCK_VALUE).
orr(tmp, disp_hdr, markWord::unlocked_value);
@@ -102,31 +105,26 @@ void C2_MacroAssembler::fast_lock(Register objectReg, Register boxReg, Register
ands(tmp/*==0?*/, disp_hdr, tmp); // Sets flags for result
str(tmp/*==0, perhaps*/, Address(box, BasicLock::displaced_header_offset_in_bytes()));
b(cont);
} else {
assert(LockingMode == LM_LIGHTWEIGHT, "must be");
lightweight_lock(oop, disp_hdr, tmp, tmp3Reg, no_count);
b(count);
}
// Handle existing monitor.
bind(object_has_monitor);
// The object's monitor m is unlocked iff m->owner == NULL,
// The object's monitor m is unlocked iff m->owner == nullptr,
// otherwise m->owner may contain a thread or a stack address.
//
// Try to CAS m->owner from NULL to current thread.
// Try to CAS m->owner from null to current thread.
add(tmp, disp_hdr, (in_bytes(ObjectMonitor::owner_offset())-markWord::monitor_value));
cmpxchg(tmp, zr, rthread, Assembler::xword, /*acquire*/ true,
/*release*/ true, /*weak*/ false, tmp3Reg); // Sets flags for result
if (LockingMode != LM_LIGHTWEIGHT) {
// Store a non-null value into the box to avoid looking like a re-entrant
// lock. The fast-path monitor unlock code checks for
// markWord::monitor_value so use markWord::unused_mark which has the
// relevant bit set, and also matches ObjectSynchronizer::enter.
mov(tmp, (address)markWord::unused_mark().value());
str(tmp, Address(box, BasicLock::displaced_header_offset_in_bytes()));
}
// Store a non-null value into the box to avoid looking like a re-entrant
// lock. The fast-path monitor unlock code checks for
// markWord::monitor_value so use markWord::unused_mark which has the
// relevant bit set, and also matches ObjectSynchronizer::enter.
mov(tmp, (address)markWord::unused_mark().value());
str(tmp, Address(box, BasicLock::displaced_header_offset_in_bytes()));
br(Assembler::EQ, cont); // CAS success means locking succeeded
cmp(tmp3Reg, rthread);
@@ -157,6 +155,7 @@ void C2_MacroAssembler::fast_unlock(Register objectReg, Register boxReg, Registe
Label object_has_monitor;
Label count, no_count;
assert(LockingMode != LM_LIGHTWEIGHT, "lightweight locking should use fast_unlock_lightweight");
assert_different_registers(oop, box, tmp, disp_hdr);
if (LockingMode == LM_LEGACY) {
@@ -175,7 +174,8 @@ void C2_MacroAssembler::fast_unlock(Register objectReg, Register boxReg, Registe
if (LockingMode == LM_MONITOR) {
tst(oop, oop); // Set NE to indicate 'failure' -> take slow-path. We know that oop != 0.
b(cont);
} else if (LockingMode == LM_LEGACY) {
} else {
assert(LockingMode == LM_LEGACY, "must be");
// Check if it is still a light weight lock, this is is true if we
// see the stack address of the basicLock in the markWord of the
// object.
@@ -183,10 +183,6 @@ void C2_MacroAssembler::fast_unlock(Register objectReg, Register boxReg, Registe
cmpxchg(oop, box, disp_hdr, Assembler::xword, /*acquire*/ false,
/*release*/ true, /*weak*/ false, tmp);
b(cont);
} else {
assert(LockingMode == LM_LIGHTWEIGHT, "must be");
lightweight_unlock(oop, tmp, box, disp_hdr, no_count);
b(count);
}
assert(oopDesc::mark_offset_in_bytes() == 0, "offset of _mark is not 0");
@@ -196,19 +192,6 @@ void C2_MacroAssembler::fast_unlock(Register objectReg, Register boxReg, Registe
STATIC_ASSERT(markWord::monitor_value <= INT_MAX);
add(tmp, tmp, -(int)markWord::monitor_value); // monitor
if (LockingMode == LM_LIGHTWEIGHT) {
// If the owner is anonymous, we need to fix it -- in an outline stub.
Register tmp2 = disp_hdr;
ldr(tmp2, Address(tmp, ObjectMonitor::owner_offset()));
// We cannot use tbnz here, the target might be too far away and cannot
// be encoded.
tst(tmp2, (uint64_t)ObjectMonitor::ANONYMOUS_OWNER);
C2HandleAnonOMOwnerStub* stub = new (Compile::current()->comp_arena()) C2HandleAnonOMOwnerStub(tmp, tmp2);
Compile::current()->output()->add_stub(stub);
br(Assembler::NE, stub->entry());
bind(stub->continuation());
}
ldr(disp_hdr, Address(tmp, ObjectMonitor::recursions_offset()));
Label notRecursive;
@@ -241,6 +224,262 @@ void C2_MacroAssembler::fast_unlock(Register objectReg, Register boxReg, Registe
bind(no_count);
}
void C2_MacroAssembler::fast_lock_lightweight(Register obj, Register t1,
Register t2, Register t3) {
assert(LockingMode == LM_LIGHTWEIGHT, "must be");
assert_different_registers(obj, t1, t2, t3);
// Handle inflated monitor.
Label inflated;
// Finish fast lock successfully. MUST branch to with flag == EQ
Label locked;
// Finish fast lock unsuccessfully. MUST branch to with flag == NE
Label slow_path;
if (DiagnoseSyncOnValueBasedClasses != 0) {
load_klass(t1, obj);
ldrw(t1, Address(t1, Klass::access_flags_offset()));
tstw(t1, JVM_ACC_IS_VALUE_BASED_CLASS);
br(Assembler::NE, slow_path);
}
const Register t1_mark = t1;
{ // Lightweight locking
// Push lock to the lock stack and finish successfully. MUST branch to with flag == EQ
Label push;
const Register t2_top = t2;
const Register t3_t = t3;
// Check if lock-stack is full.
ldrw(t2_top, Address(rthread, JavaThread::lock_stack_top_offset()));
cmpw(t2_top, (unsigned)LockStack::end_offset() - 1);
br(Assembler::GT, slow_path);
// Check if recursive.
subw(t3_t, t2_top, oopSize);
ldr(t3_t, Address(rthread, t3_t));
cmp(obj, t3_t);
br(Assembler::EQ, push);
// Relaxed normal load to check for monitor. Optimization for monitor case.
ldr(t1_mark, Address(obj, oopDesc::mark_offset_in_bytes()));
tbnz(t1_mark, exact_log2(markWord::monitor_value), inflated);
// Not inflated
assert(oopDesc::mark_offset_in_bytes() == 0, "required to avoid a lea");
// Try to lock. Transition lock-bits 0b01 => 0b00
orr(t1_mark, t1_mark, markWord::unlocked_value);
eor(t3_t, t1_mark, markWord::unlocked_value);
cmpxchg(/*addr*/ obj, /*expected*/ t1_mark, /*new*/ t3_t, Assembler::xword,
/*acquire*/ true, /*release*/ false, /*weak*/ false, noreg);
br(Assembler::NE, slow_path);
bind(push);
// After successful lock, push object on lock-stack.
str(obj, Address(rthread, t2_top));
addw(t2_top, t2_top, oopSize);
strw(t2_top, Address(rthread, JavaThread::lock_stack_top_offset()));
b(locked);
}
{ // Handle inflated monitor.
bind(inflated);
// mark contains the tagged ObjectMonitor*.
const Register t1_tagged_monitor = t1_mark;
const uintptr_t monitor_tag = markWord::monitor_value;
const Register t2_owner_addr = t2;
const Register t3_owner = t3;
// Compute owner address.
lea(t2_owner_addr, Address(t1_tagged_monitor, (in_bytes(ObjectMonitor::owner_offset()) - monitor_tag)));
// CAS owner (null => current thread).
cmpxchg(t2_owner_addr, zr, rthread, Assembler::xword, /*acquire*/ true,
/*release*/ false, /*weak*/ false, t3_owner);
br(Assembler::EQ, locked);
// Check if recursive.
cmp(t3_owner, rthread);
br(Assembler::NE, slow_path);
// Recursive.
increment(Address(t1_tagged_monitor, in_bytes(ObjectMonitor::recursions_offset()) - monitor_tag), 1);
}
bind(locked);
increment(Address(rthread, JavaThread::held_monitor_count_offset()));
#ifdef ASSERT
// Check that locked label is reached with Flags == EQ.
Label flag_correct;
br(Assembler::EQ, flag_correct);
stop("Fast Lock Flag != EQ");
#endif
bind(slow_path);
#ifdef ASSERT
// Check that slow_path label is reached with Flags == NE.
br(Assembler::NE, flag_correct);
stop("Fast Lock Flag != NE");
bind(flag_correct);
#endif
// C2 uses the value of Flags (NE vs EQ) to determine the continuation.
}
void C2_MacroAssembler::fast_unlock_lightweight(Register obj, Register t1, Register t2,
Register t3) {
assert(LockingMode == LM_LIGHTWEIGHT, "must be");
assert_different_registers(obj, t1, t2, t3);
// Handle inflated monitor.
Label inflated, inflated_load_monitor;
// Finish fast unlock successfully. MUST branch to with flag == EQ
Label unlocked;
// Finish fast unlock unsuccessfully. MUST branch to with flag == NE
Label slow_path;
const Register t1_mark = t1;
const Register t2_top = t2;
const Register t3_t = t3;
{ // Lightweight unlock
// Check if obj is top of lock-stack.
ldrw(t2_top, Address(rthread, JavaThread::lock_stack_top_offset()));
subw(t2_top, t2_top, oopSize);
ldr(t3_t, Address(rthread, t2_top));
cmp(obj, t3_t);
// Top of lock stack was not obj. Must be monitor.
br(Assembler::NE, inflated_load_monitor);
// Pop lock-stack.
DEBUG_ONLY(str(zr, Address(rthread, t2_top));)
strw(t2_top, Address(rthread, JavaThread::lock_stack_top_offset()));
// Check if recursive.
subw(t3_t, t2_top, oopSize);
ldr(t3_t, Address(rthread, t3_t));
cmp(obj, t3_t);
br(Assembler::EQ, unlocked);
// Not recursive.
// Load Mark.
ldr(t1_mark, Address(obj, oopDesc::mark_offset_in_bytes()));
// Check header for monitor (0b10).
tbnz(t1_mark, exact_log2(markWord::monitor_value), inflated);
// Try to unlock. Transition lock bits 0b00 => 0b01
assert(oopDesc::mark_offset_in_bytes() == 0, "required to avoid lea");
orr(t3_t, t1_mark, markWord::unlocked_value);
cmpxchg(/*addr*/ obj, /*expected*/ t1_mark, /*new*/ t3_t, Assembler::xword,
/*acquire*/ false, /*release*/ true, /*weak*/ false, noreg);
br(Assembler::EQ, unlocked);
// Compare and exchange failed.
// Restore lock-stack and handle the unlock in runtime.
DEBUG_ONLY(str(obj, Address(rthread, t2_top));)
addw(t2_top, t2_top, oopSize);
str(t2_top, Address(rthread, JavaThread::lock_stack_top_offset()));
b(slow_path);
}
{ // Handle inflated monitor.
bind(inflated_load_monitor);
ldr(t1_mark, Address(obj, oopDesc::mark_offset_in_bytes()));
#ifdef ASSERT
tbnz(t1_mark, exact_log2(markWord::monitor_value), inflated);
stop("Fast Unlock not monitor");
#endif
bind(inflated);
#ifdef ASSERT
Label check_done;
subw(t2_top, t2_top, oopSize);
cmpw(t2_top, in_bytes(JavaThread::lock_stack_base_offset()));
br(Assembler::LT, check_done);
ldr(t3_t, Address(rthread, t2_top));
cmp(obj, t3_t);
br(Assembler::NE, inflated);
stop("Fast Unlock lock on stack");
bind(check_done);
#endif
// mark contains the tagged ObjectMonitor*.
const Register t1_monitor = t1_mark;
const uintptr_t monitor_tag = markWord::monitor_value;
// Untag the monitor.
sub(t1_monitor, t1_mark, monitor_tag);
const Register t2_recursions = t2;
Label not_recursive;
// Check if recursive.
ldr(t2_recursions, Address(t1_monitor, ObjectMonitor::recursions_offset()));
cbz(t2_recursions, not_recursive);
// Recursive unlock.
sub(t2_recursions, t2_recursions, 1u);
str(t2_recursions, Address(t1_monitor, ObjectMonitor::recursions_offset()));
// Set flag == EQ
cmp(t2_recursions, t2_recursions);
b(unlocked);
bind(not_recursive);
Label release;
const Register t2_owner_addr = t2;
// Compute owner address.
lea(t2_owner_addr, Address(t1_monitor, ObjectMonitor::owner_offset()));
// Check if the entry lists are empty.
ldr(rscratch1, Address(t1_monitor, ObjectMonitor::EntryList_offset()));
ldr(t3_t, Address(t1_monitor, ObjectMonitor::cxq_offset()));
orr(rscratch1, rscratch1, t3_t);
cmp(rscratch1, zr);
br(Assembler::EQ, release);
// The owner may be anonymous and we removed the last obj entry in
// the lock-stack. This loses the information about the owner.
// Write the thread to the owner field so the runtime knows the owner.
str(rthread, Address(t2_owner_addr));
b(slow_path);
bind(release);
// Set owner to null.
// Release to satisfy the JMM
stlr(zr, t2_owner_addr);
}
bind(unlocked);
decrement(Address(rthread, JavaThread::held_monitor_count_offset()));
#ifdef ASSERT
// Check that unlocked label is reached with Flags == EQ.
Label flag_correct;
br(Assembler::EQ, flag_correct);
stop("Fast Unlock Flag != EQ");
#endif
bind(slow_path);
#ifdef ASSERT
// Check that slow_path label is reached with Flags == NE.
br(Assembler::NE, flag_correct);
stop("Fast Unlock Flag != NE");
bind(flag_correct);
#endif
// C2 uses the value of Flags (NE vs EQ) to determine the continuation.
}
// Search for str1 in str2 and return index or -1
// Clobbers: rscratch1, rscratch2, rflags. May also clobber v0-v1, when icnt1==-1.
void C2_MacroAssembler::string_indexof(Register str2, Register str1,

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -36,9 +36,11 @@
public:
// Code used by cmpFastLock and cmpFastUnlock mach instructions in .ad file.
// See full description in macroAssembler_aarch64.cpp.
void fast_lock(Register object, Register box, Register tmp, Register tmp2, Register tmp3);
void fast_unlock(Register object, Register box, Register tmp, Register tmp2);
// Code used by cmpFastLockLightweight and cmpFastUnlockLightweight mach instructions in .ad file.
void fast_lock_lightweight(Register object, Register t1, Register t2, Register t3);
void fast_unlock_lightweight(Register object, Register t1, Register t2, Register t3);
void string_compare(Register str1, Register str2,
Register cnt1, Register cnt2, Register result,

View File

@@ -26,8 +26,8 @@
#include "precompiled.hpp"
#include "asm/macroAssembler.inline.hpp"
#include "code/compiledIC.hpp"
#include "code/icBuffer.hpp"
#include "code/nmethod.hpp"
#include "logging/log.hpp"
#include "memory/resourceArea.hpp"
#include "runtime/mutexLocker.hpp"
#include "runtime/safepoint.hpp"
@@ -35,7 +35,7 @@
// ----------------------------------------------------------------------------
#define __ _masm.
address CompiledStaticCall::emit_to_interp_stub(CodeBuffer &cbuf, address mark) {
address CompiledDirectCall::emit_to_interp_stub(CodeBuffer &cbuf, address mark) {
precond(cbuf.stubs()->start() != badAddress);
precond(cbuf.stubs()->end() != badAddress);
@@ -70,11 +70,11 @@ address CompiledStaticCall::emit_to_interp_stub(CodeBuffer &cbuf, address mark)
}
#undef __
int CompiledStaticCall::to_interp_stub_size() {
int CompiledDirectCall::to_interp_stub_size() {
return MacroAssembler::static_call_stub_size();
}
int CompiledStaticCall::to_trampoline_stub_size() {
int CompiledDirectCall::to_trampoline_stub_size() {
// Somewhat pessimistically, we count 3 instructions here (although
// there are only two) because we sometimes emit an alignment nop.
// Trampoline stubs are always word aligned.
@@ -82,21 +82,14 @@ int CompiledStaticCall::to_trampoline_stub_size() {
}
// Relocation entries for call stub, compiled java to interpreter.
int CompiledStaticCall::reloc_to_interp_stub() {
int CompiledDirectCall::reloc_to_interp_stub() {
return 4; // 3 in emit_to_interp_stub + 1 in emit_call
}
void CompiledDirectStaticCall::set_to_interpreted(const methodHandle& callee, address entry) {
void CompiledDirectCall::set_to_interpreted(const methodHandle& callee, address entry) {
address stub = find_stub();
guarantee(stub != nullptr, "stub not found");
if (TraceICs) {
ResourceMark rm;
tty->print_cr("CompiledDirectStaticCall@" INTPTR_FORMAT ": set_to_interpreted %s",
p2i(instruction_address()),
callee->name_and_sig_as_C_string());
}
// Creation also verifies the object.
NativeMovConstReg* method_holder
= nativeMovConstReg_at(stub + NativeInstruction::instruction_size);
@@ -114,7 +107,7 @@ void CompiledDirectStaticCall::set_to_interpreted(const methodHandle& callee, ad
set_destination_mt_safe(stub);
}
void CompiledDirectStaticCall::set_stub_to_clean(static_stub_Relocation* static_stub) {
void CompiledDirectCall::set_stub_to_clean(static_stub_Relocation* static_stub) {
// Reset stub.
address stub = static_stub->addr();
assert(stub != nullptr, "stub not found");
@@ -131,7 +124,7 @@ void CompiledDirectStaticCall::set_stub_to_clean(static_stub_Relocation* static_
// Non-product mode code
#ifndef PRODUCT
void CompiledDirectStaticCall::verify() {
void CompiledDirectCall::verify() {
// Verify call.
_call->verify();
_call->verify_alignment();

View File

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2023, Red Hat, Inc. All rights reserved.
* Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -58,7 +58,7 @@ static char* reserve_at_eor_compatible_address(size_t size, bool aslr) {
0x7ffc, 0x7ffe, 0x7fff
};
static constexpr int num_immediates = sizeof(immediates) / sizeof(immediates[0]);
const int start_index = aslr ? os::random() : 0;
const int start_index = aslr ? os::next_random((int)os::javaTimeNanos()) : 0;
constexpr int max_tries = 64;
for (int ntry = 0; result == nullptr && ntry < max_tries; ntry ++) {
// As in os::attempt_reserve_memory_between, we alternate between higher and lower

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, 2020, Red Hat Inc. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -678,7 +678,7 @@ static void printbc(Method *m, intptr_t bcx) {
printf("%s : %s ==> %s\n", m->name_and_sig_as_C_string(), buf, name);
}
void internal_pf(uintptr_t sp, uintptr_t fp, uintptr_t pc, uintptr_t bcx) {
static void internal_pf(uintptr_t sp, uintptr_t fp, uintptr_t pc, uintptr_t bcx) {
if (! fp)
return;

View File

@@ -156,8 +156,6 @@
static void verify_deopt_original_pc( CompiledMethod* nm, intptr_t* unextended_sp);
#endif
const ImmutableOopMap* get_oop_map() const;
public:
// Constructors

Some files were not shown because too many files have changed in this diff Show More