Compare commits

..

484 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
3728 changed files with 62659 additions and 164874 deletions

214
.github/README.md vendored
View File

@@ -1,214 +0,0 @@
[![official JetBrains project](http://jb.gg/badges/official.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
# Welcome to JetBrains Runtime!
JetBrains Runtime is a fork of [OpenJDK](https://github.com/openjdk/jdk) available for Windows, Mac OS X, and Linux.
It supports enhanced class redefinition ([DCEVM](https://ssw.jku.at/dcevm/)),
features optional [JCEF](https://github.com/JetBrains/jcef), a framework for embedding Chromium-based browsers,
includes a number of improvements in font rendering, keyboards support,
windowing/focus subsystems, HiDPI, accessibility, and performance, provides better desktop integration
and bugfixes not yet present in OpenJDK.
> **_NOTE_**: This is a **development** branch that is periodically synchronized with
> the [OpenJDK master](https://github.com/openjdk/jdk/tree/master) branch.
>
Release builds are based on these branches:
* [jbr11](https://github.com/JetBrains/JetBrainsRuntime/tree/jbr11) (JDK 11)
* [jbr17](https://github.com/JetBrains/JetBrainsRuntime/tree/jbr17) (JDK 17)
Download the latest releases of JetBrains Runtime to use with JetBrains IDEs. The full list
can be found on the [releases page](https://github.com/JetBrains/JetBrainsRuntime/releases).
## Releases based on JDK 17
| IDE Version | Latest JBR | Date Released |
|-------------|--------------------------------------------------------------------------------------------------------|---------------|
| 2023.3 | [17.0.9-b1087.7](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.9b1087.7) | 20-Nov-2023 |
| 2023.2 | [17.0.9-b1000.46](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.9b1000.46) | 01-Nov-2023 |
| 2023.1 | [17.0.7-b829.16](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.7b829.16) | 06-Jun-2023 |
| 2022.3 | [17.0.6-b653.34](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.6b653.34) | 28-Feb-2023 |
| 2022.2 | [17.0.6-b469.82](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.6b469.82) | 06-Mar-2023 |
## Releases based on JDK 11
| IDE Version | Latest JBR | Date Released |
|-------------|-------------------------------------------------------------------------------------------------------|---------------|
| 2022.1 | [11_0_16-b2043.64](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr11_0_16b2043.64) | 10-Nov-2022 |
| 2021.3 | [11_0_14_1-b1751.46](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr11_0_14_1b1751.46) | 21-Feb-2022 |
| 2021.2 | [11_0_13-b1504.49](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jb11_0_13-b1504.49) | 15-Nov-2021 |
| 2021.1 | [11.0.11+9-b1341.60](https://github.com/JetBrains/JetBrainsRuntime/issues/171#issuecomment-1248891540)| 15-Jun-2021 |
| 2020.3 | [11_0_10-b1145.115](https://github.com/JetBrains/JetBrainsRuntime/issues/171#issuecomment-1249243977) | 21-Jun-2021 |
## Contents
- [Welcome to JetBrains Runtime](#welcome-to-jetbrains-runtime)
- [Why Use JetBrains Runtime?](#why-use-jetbrains-runtime)
- [Products Built on JetBrains Runtime](#products-built-on-jetbrains-runtime)
- [Getting Sources](#getting-sources)
- [macOS, Linux](#macos-linux)
- [Windows](#sources-windows)
- [Configuring the Build Environment](#configuring-the-build-environment)
- [Linux (Docker)](#linux-docker)
- [Ubuntu Linux](#ubuntu-linux)
- [Windows](#build-windows)
- [macOS](#macos)
- [Developing](#developing)
- [Contributing](#contributing)
- [Resources](#resources)
## Why Use JetBrains Runtime?
* **Embedded browser**: JetBrains Runtime includes the Java Chromium Embedded Framework ([JCEF](https://github.com/JetBrains/jcef)), which
enables you to embed a Chromium-based browsers in your JVM-based application.
To use it, [download a build with JCEF](https://github.com/JetBrains/JetBrainsRuntime/releases).
* **Enhanced class re-definition** with the [DCEVM](https://ssw.jku.at/dcevm/) technology that makes it easier to reload
changed code without restarting JVM; this feature needs to be explicitly enabled with `-XX:+AllowEnhancedClassRedefinition`.
* **Better FPS performance** for graphics-intensive applications.
* **Improved font rendering**, **keyboard input** (such as shortcuts and multinational keyboards),
**HiDPI** and **accessibility** support.
* **Robust desktop experience**: GUI-related fixes often reach JetBrains Runtime much earlier than the corresponding version of OpenJDK.
## Products Built on JetBrains Runtime
* [Android Studio](https://developer.android.com/studio). The official IDE for Google's Android operating system.
* [CLion](https://www.jetbrains.com/clion/). A cross-platform IDE for C and C++ from JetBrains.
* [DataGrip](https://www.jetbrains.com/datagrip/). The IDE for Databases and SQL from JetBrains.
* [GoLand](https://www.jetbrains.com/go/). The cross-platform Go IDE from JetBrains.
* [IntelliJ IDEA](https://www.jetbrains.com/idea/). The IDE for JVM from JetBrains.
* [JProfiler](https://www.ej-technologies.com/products/jprofiler/overview.html). The Java profiler.
* [PhpStorm](https://www.jetbrains.com/phpstorm/). The PHP IDE from JetBrains.
* [PyCharm](https://www.jetbrains.com/pycharm/). The Python IDE from JetBrains.
* [Rider](https://www.jetbrains.com/rider/). The cross-platform .NET IDE from JetBrains.
* [RubyMine](https://www.jetbrains.com/ruby/). The Ruby and Rails IDE from JetBrains.
* [Toolbox App](https://www.jetbrains.com/toolbox-app/). JetBrains IDE manager.
* [WebStorm](https://www.jetbrains.com/webstorm/). The JavaScript IDE from JetBrains.
* [YourKit](https://www.yourkit.com/). Java and .NET profilers.
## Getting Sources
### macOS, Linux
```
git config --global core.autocrlf input
git clone git@github.com:JetBrains/JetBrainsRuntime.git
```
### Windows
<a name="sources-windows"></a>
```
git config --global core.autocrlf false
git clone git@github.com:JetBrains/JetBrainsRuntime.git
```
## Configuring the Build Environment
Here are quick per-platform instructions for those who can't wait to get started.
Please refer to [OpenJDK build docs](https://openjdk.java.net/groups/build/doc/building.html) for in-depth
coverage of all the details.
> **_TIP:_** To get a preliminary report of what's missing, run `./configure` and check its output.
> It would usually have meaningful advice on how to solve the problem.
### Linux (Docker)
Create a container:
```
$ cd jb/project/docker
$ docker build .
...
Successfully built 942ea9900054
```
Run these commands in the new container:
```
$ docker run -v `pwd`../../../../:/JetBrainsRuntime -it 942ea9900054
# cd /JetBrainsRuntime
# sh ./configure
# make images CONF=linux-x86_64-normal-server-release
```
### Ubuntu Linux
Install the necessary tools, libraries, and headers with:
```
$ sudo apt-get install autoconf make build-essential libx11-dev libxext-dev libxrender-dev libxtst-dev \
libxt-dev libxrandr-dev libcups2-dev libfontconfig1-dev libasound2-dev
```
Get Java 18 (for instance, [Azul Zulu Builds of OpenJDK 18](https://www.azul.com/downloads/?version=java-18-sts&os=linux&package=jdk)).
Then run the following:
```
$ cd JetBrainsRuntime
$ git checkout main
$ sh ./configure
$ make images
```
This will build the release configuration under `./build/linux-x86_64-server-release/`.
### Windows
<a name="build-windows"></a>
Install the following:
* [Cygwin x64](http://www.cygwin.com/).
Required packages: `autoconf`, `binutils`, `cpio`, `diffutils`, `file`, `gawk`, `gcc-core`, `make`, `m4`, `unzip`, `zip`.
Install those together with Cygwin.
* [Visual Studio compiler toolset](https://visualstudio.microsoft.com/downloads/).
Install with the desktop development kit, which includes Windows SDK and compilers.
Visual Studio 2019 is supported by default.
* Java 18 (for instance, [Azul Zulu Builds of OpenJDK 18](https://www.azul.com/downloads/?version=java-18-sts&os=windows&package=jdk)).
If you have problems while configuring, read [Java tips on Cygwin](http://horstmann.com/articles/cygwin-tips.html).
From the command line:
```
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
"c:\Program_Files\cygwin64\bin\mintty.exe" /bin/bash -l
```
The first command sets up environment variables, the second starts a Cygwin shell with the proper environment.
In the Cygwin shell:
```
$ cd JetBrainsRuntime
$ git checkout main
$ bash configure --with-toolchain-version=2019
$ make images
```
This will build the release configuration under `./build/windows-x86_64-server-release/`.
### macOS
Install the following:
* Xcode command line developer tools and `autoconf` via [Homebrew](https://brew.sh/).
* Java 18 (for instance, [Azul Zulu Builds of OpenJDK 18](https://www.azul.com/downloads/?version=java-18-sts&os=macos&package=jdk)).
From the command line:
```
$ cd JetBrainsRuntime
$ git checkout main
$ sh ./configure
$ make images
```
This will build the release configuration under `./build/macosx-x86_64-server-release/`.
## Developing
You can use [CLion](https://www.jetbrains.com/clion/) to develop native parts of the JetBrains Runtime and
[IntelliJ IDEA](https://www.jetbrains.com/idea/) for the parts written in Java.
Both require projects to be created.
### CLion
Run
```
$ make compile-commands
```
in the git root and open the resulting `build/.../compile_commands.json` file as a project.
Then use `Tools | Compilation Database | Change Project Root` to point to git root of this repository.
See also this detailed step-by-step tutorial for all platforms:
[How to develop OpenJDK with CLion](https://blog.jetbrains.com/clion/2020/03/openjdk-with-clion/).
### IDEA
Run
```
$ sh ./bin/idea.sh
```
in the git root to generate project files (add `--help` for options). If you have multiple
configurations (for example, `release` and `fastdebug`), supply the `--conf <conf_name>` argument.
Then open the git root directory as a project in IDEA.
## Contributing
We are happy to receive your pull requests!
Before you submit one, please sign our [Contributor License Agreement (CLA)](https://www.jetbrains.com/agreements/cla/).
## Resources
* [JetBrains Runtime on GitHub](https://github.com/JetBrains/JetBrainsRuntime).
* [OpenJDK build instructions](https://openjdk.java.net/groups/build/doc/building.html).
* [OpenJDK test instructions](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk/master/doc/building.html#running-tests).
* [How to develop OpenJDK with CLion](https://blog.jetbrains.com/clion/2020/03/openjdk-with-clion/).

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

@@ -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
@@ -31,7 +31,6 @@ on:
- master
- pr/*
- jdk*
- main
workflow_dispatch:
inputs:
platforms:
@@ -61,8 +60,7 @@ jobs:
outputs:
linux-x64: ${{ steps.include.outputs.linux-x64 }}
linux-x86: ${{ steps.include.outputs.linux-x86 }}
# additional build options for linux-x64 are disabled
# linux-x64-variants: ${{ steps.include.outputs.linux-x64-variants }}
linux-x64-variants: ${{ steps.include.outputs.linux-x64-variants }}
linux-cross-compile: ${{ steps.include.outputs.linux-cross-compile }}
macos-x64: ${{ steps.include.outputs.macos-x64 }}
macos-aarch64: ${{ steps.include.outputs.macos-aarch64 }}
@@ -230,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 }}
@@ -241,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'
@@ -323,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:
@@ -359,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

@@ -1,270 +0,0 @@
#
# Copyright 2000-2023 JetBrains s.r.o.
# 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.
#
name: 'Build OpenJDK on pull request'
on:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
###
### Determine platforms to include
###
select:
name: 'Select platforms'
runs-on: ubuntu-22.04
outputs:
linux-x64: ${{ steps.include.outputs.linux-x64 }}
linux-x86: ${{ steps.include.outputs.linux-x86 }}
linux-cross-compile: ${{ steps.include.outputs.linux-cross-compile }}
macos-x64: ${{ steps.include.outputs.macos-x64 }}
macos-aarch64: ${{ steps.include.outputs.macos-aarch64 }}
windows-x64: ${{ steps.include.outputs.windows-x64 }}
windows-aarch64: ${{ steps.include.outputs.windows-aarch64 }}
windows-x86: ${{ steps.include.outputs.windows-x86 }}
steps:
# This function must be inlined in main.yml, or we'd be forced to checkout the repo
- name: 'Check what jobs to run'
id: include
run: |
# Determine which platform jobs to run
# Returns 'true' if the input platform list matches any of the platform monikers given as argument,
# 'false' otherwise.
# arg $1: platform name or names to look for
function check_platform() {
if [[ $GITHUB_EVENT_NAME == workflow_dispatch ]]; then
input='${{ github.event.inputs.platforms }}'
elif [[ $GITHUB_EVENT_NAME == push ]]; then
if [[ '${{ !secrets.JDK_SUBMIT_FILTER || startsWith(github.ref, 'refs/heads/submit/') }}' == 'false' ]]; then
# If JDK_SUBMIT_FILTER is set, and this is not a "submit/" branch, don't run anything
>&2 echo 'JDK_SUBMIT_FILTER is set and not a "submit/" branch'
echo 'false'
return
else
input='${{ secrets.JDK_SUBMIT_PLATFORMS }}'
fi
fi
normalized_input="$(echo ,$input, | tr -d ' ')"
if [[ "$normalized_input" == ",," ]]; then
# For an empty input, assume all platforms should run
echo 'true'
return
else
# Check for all acceptable platform names
for part in $* ; do
if echo "$normalized_input" | grep -q -e ",$part," ; then
echo 'true'
return
fi
done
fi
echo 'false'
}
echo "linux-x64=$(check_platform linux-x64 linux x64)" >> $GITHUB_OUTPUT
echo "linux-x86=$(check_platform linux-x86 linux x86)" >> $GITHUB_OUTPUT
echo "linux-x64-variants=$(check_platform linux-x64-variants variants)" >> $GITHUB_OUTPUT
echo "linux-cross-compile=$(check_platform linux-cross-compile cross-compile)" >> $GITHUB_OUTPUT
echo "macos-x64=$(check_platform macos-x64 macos x64)" >> $GITHUB_OUTPUT
echo "macos-aarch64=$(check_platform macos-aarch64 macos aarch64)" >> $GITHUB_OUTPUT
echo "windows-x64=$(check_platform windows-x64 windows x64)" >> $GITHUB_OUTPUT
echo "windows-x86=$(check_platform windows-x86 windows x86)" >> $GITHUB_OUTPUT
echo "windows-aarch64=$(check_platform windows-aarch64 windows aarch64)" >> $GITHUB_OUTPUT
echo "docs=$(check_platform docs)" >> $GITHUB_OUTPUT
###
### Build jobs
###
build-linux-x64:
name: linux-x64
needs: select
uses: ./.github/workflows/build-linux.yml
with:
platform: linux-x64
gcc-major-version: '10'
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
# The linux-x64 jdk bundle is used as buildjdk for the cross-compile job
if: needs.select.outputs.linux-x64 == 'true' || needs.select.outputs.linux-cross-compile == 'true'
build-linux-x86:
name: linux-x86
needs: select
uses: ./.github/workflows/build-linux.yml
with:
platform: linux-x86
gcc-major-version: '10'
gcc-package-suffix: '-multilib'
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
apt-architecture: 'i386'
# Some multilib libraries do not have proper inter-dependencies, so we have to
# install their dependencies manually.
apt-extra-packages: 'libfreetype6-dev:i386 libtiff-dev:i386 libcupsimage2-dev:i386 libc6-i386'
extra-conf-options: '--with-target-bits=32'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.linux-x86 == 'true'
build-linux-cross-compile:
name: linux-cross-compile
needs:
- select
- build-linux-x64
uses: ./.github/workflows/build-cross-compile.yml
with:
gcc-major-version: '10'
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
apt-gcc-cross-version: '10.4.0-4ubuntu1~22.04cross1'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.linux-cross-compile == 'true'
build-macos-x64:
name: macos-x64
needs: select
uses: ./.github/workflows/build-macos.yml
with:
platform: macos-x64
xcode-toolset-version: '12.5.1'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.macos-x64 == 'true'
build-macos-aarch64:
name: macos-aarch64
needs: select
uses: ./.github/workflows/build-macos.yml
with:
platform: macos-aarch64
xcode-toolset-version: '12.5.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'
build-windows-x64:
name: windows-x64
needs: select
uses: ./.github/workflows/build-windows.yml
with:
platform: windows-x64
msvc-toolset-version: '14.29'
msvc-toolset-architecture: 'x86.x64'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.windows-x64 == 'true'
build-windows-x86:
name: windows-x86
needs: select
uses: ./.github/workflows/build-windows.yml
with:
platform: windows-x86
msvc-toolset-version: '14.29'
msvc-toolset-architecture: 'x86'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.windows-x86 == 'true'
build-windows-aarch64:
name: windows-aarch64
needs: select
uses: ./.github/workflows/build-windows.yml
with:
platform: windows-aarch64
msvc-toolset-version: '14.29'
msvc-toolset-architecture: 'arm64'
make-target: 'hotspot'
extra-conf-options: '--openjdk-target=aarch64-unknown-cygwin'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.windows-aarch64 == 'true'
build-docs:
name: docs
needs: select
uses: ./.github/workflows/build-linux.yml
with:
platform: linux-x64
debug-levels: '[ "debug" ]'
make-target: 'docs-jdk-bundles'
# Make sure we never try to make full docs, since that would require a
# build JDK, and we do not need the additional testing of the graphs.
extra-conf-options: '--disable-full-docs'
gcc-major-version: '10'
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.docs == 'true'
# Remove bundles so they are not misconstrued as binary distributions from the JDK project
remove-bundles:
name: 'Remove bundle artifacts'
runs-on: ubuntu-22.04
if: always()
needs:
- build-linux-x64
- build-linux-x86
- build-linux-cross-compile
- build-macos-x64
- build-macos-aarch64
- build-windows-x64
- build-windows-aarch64
- build-windows-x86
steps:
# 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
with:
script: 'return { url: process.env["ACTIONS_RUNTIME_URL"], token: process.env["ACTIONS_RUNTIME_TOKEN"] }'
- name: 'Remove bundle artifacts'
run: |
# Find and remove all bundle artifacts
ALL_ARTIFACT_URLS="$(curl -s \
-H 'Accept: application/json;api-version=6.0-preview' \
-H 'Authorization: Bearer ${{ fromJson(steps.api.outputs.result).token }}' \
'${{ fromJson(steps.api.outputs.result).url }}_apis/pipelines/workflows/${{ github.run_id }}/artifacts?api-version=6.0-preview')"
BUNDLE_ARTIFACT_URLS="$(echo "$ALL_ARTIFACT_URLS" | jq -r -c '.value | map(select(.name|startswith("bundles-"))) | .[].url')"
for url in $BUNDLE_ARTIFACT_URLS; do
echo "Removing $url"
curl -s \
-H 'Accept: application/json;api-version=6.0-preview' \
-H 'Authorization: Bearer ${{ fromJson(steps.api.outputs.result).token }}' \
-X DELETE "$url" \
|| echo "Failed to remove bundle"
done

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,3 @@
[![official JetBrains project](http://jb.gg/badges/official.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
# Welcome to the JDK!
For build instructions please see the

View File

@@ -25,26 +25,7 @@
# Shell script for generating an IDEA project from a given list of modules
usage() {
echo "Usage: $0 [-h|--help] [-q|--quiet] [-a|--absolute-paths] [-r|--root <path>] [-o|--output <path>] [-c|--conf <conf_name>] [modules...]"
echo " -h | --help"
echo " -q | --quiet
No stdout output"
echo " -a | --absolute-paths
Use absolute paths to this jdk, so that generated .idea
project files can be moved independently of jdk sources"
echo " -r | --root <path>
Project content root
Default: $TOPLEVEL_DIR"
echo " -o | --output <path>
Where .idea directory with project files will be generated
(e.g. using '-o .' will place project files in './.idea')
Default: same as --root"
echo " -c | --conf <conf_name>
make configuration (release, slowdebug etc)"
echo " [modules...]
Generate project modules for specific java modules
(e.g. 'java.base java.desktop')
Default: all existing modules (java.* and jdk.*)"
echo "usage: $0 [-h|--help] [-v|--verbose] [-o|--output <path>] [-c|--conf <conf_name>] [modules]+"
exit 1
}
@@ -52,13 +33,10 @@ SCRIPT_DIR=`dirname $0`
#assume TOP is the dir from which the script has been called
TOP=`pwd`
cd $SCRIPT_DIR; SCRIPT_DIR=`pwd`
if [ "x$TOPLEVEL_DIR" = "x" ] ; then
cd .. ; TOPLEVEL_DIR=`pwd`
fi
cd $TOP;
VERBOSE=true
ABSOLUTE_PATHS=false
IDEA_OUTPUT=$TOP/.idea
VERBOSE="false"
CONF_ARG=
while [ $# -gt 0 ]
do
@@ -67,24 +45,14 @@ do
usage
;;
-q | --quiet )
VERBOSE=false
;;
-a | --absolute-paths )
ABSOLUTE_PATHS=true
;;
-r | --root )
TOPLEVEL_DIR="$2"
shift
-v | --vebose )
VERBOSE="true"
;;
-o | --output )
IDEA_OUTPUT="$2/.idea"
IDEA_OUTPUT=$2/.idea
shift
;;
-c | --conf )
CONF_ARG="CONF_NAME=$2"
shift
@@ -101,17 +69,20 @@ do
shift
done
if [ "x$IDEA_OUTPUT" = "x" ] ; then
IDEA_OUTPUT="$TOPLEVEL_DIR/.idea"
if [ -e $IDEA_OUTPUT ] ; then
rm -r $IDEA_OUTPUT
fi
mkdir -p $IDEA_OUTPUT || exit 1
cd $IDEA_OUTPUT; IDEA_OUTPUT=`pwd`
if [ "x$TOPLEVEL_DIR" = "x" ] ; then
cd $SCRIPT_DIR/..
TOPLEVEL_DIR=`pwd`
cd $IDEA_OUTPUT
fi
mkdir -p $IDEA_OUTPUT || exit 1
cd "$TOP" ; cd $TOPLEVEL_DIR; TOPLEVEL_DIR=`pwd`
cd "$TOP" ; cd $IDEA_OUTPUT; IDEA_OUTPUT=`pwd`
cd ..; IDEA_OUTPUT_PARENT=`pwd`
cd "$SCRIPT_DIR/.." ; OPENJDK_DIR=`pwd`
IDEA_MAKE="$OPENJDK_DIR/make/ide/idea/jdk"
MAKE_DIR="$SCRIPT_DIR/../make"
IDEA_MAKE="$MAKE_DIR/ide/idea/jdk"
IDEA_TEMPLATE="$IDEA_MAKE/template"
cp -r "$IDEA_TEMPLATE"/* "$IDEA_OUTPUT"
@@ -123,31 +94,31 @@ if [ -d "$TEMPLATES_OVERRIDE" ] ; then
done
fi
if [ "$VERBOSE" = true ] ; then
echo "Will generate IDEA project files in \"$IDEA_OUTPUT\" for project \"$TOPLEVEL_DIR\""
if [ "$VERBOSE" = "true" ] ; then
echo "output dir: $IDEA_OUTPUT"
echo "idea template dir: $IDEA_TEMPLATE"
fi
cd $TOP ; make -f "$IDEA_MAKE/idea.gmk" -I "$OPENJDK_DIR" idea TOPLEVEL_DIR="$TOPLEVEL_DIR" \
MAKEOVERRIDES= IDEA_OUTPUT_PARENT="$IDEA_OUTPUT_PARENT" OUT="$IDEA_OUTPUT/env.cfg" MODULES="$*" $CONF_ARG || exit 1
cd $TOP ; make -f "$IDEA_MAKE/idea.gmk" -I $MAKE_DIR/.. idea MAKEOVERRIDES= OUT=$IDEA_OUTPUT/env.cfg MODULES="$*" $CONF_ARG || exit 1
cd $SCRIPT_DIR
. $IDEA_OUTPUT/env.cfg
# Expect MODULES, MODULE_NAMES, RELATIVE_PROJECT_DIR, RELATIVE_BUILD_DIR to be set
if [ "xMODULES" = "x" ] ; then
echo "FATAL: MODULES is empty" >&2; exit 1
# Expect MODULE_ROOTS, MODULE_NAMES, BOOT_JDK & SPEC to be set
if [ "x$MODULE_ROOTS" = "x" ] ; then
echo "FATAL: MODULE_ROOTS is empty" >&2; exit 1
fi
if [ "x$MODULE_NAMES" = "x" ] ; then
echo "FATAL: MODULE_NAMES is empty" >&2; exit 1
fi
if [ "x$RELATIVE_PROJECT_DIR" = "x" ] ; then
echo "FATAL: RELATIVE_PROJECT_DIR is empty" >&2; exit 1
if [ "x$BOOT_JDK" = "x" ] ; then
echo "FATAL: BOOT_JDK is empty" >&2; exit 1
fi
if [ "x$RELATIVE_BUILD_DIR" = "x" ] ; then
echo "FATAL: RELATIVE_BUILD_DIR is empty" >&2; exit 1
if [ "x$SPEC" = "x" ] ; then
echo "FATAL: SPEC is empty" >&2; exit 1
fi
if [ -d "$TOPLEVEL_DIR/.hg" ] ; then
@@ -158,43 +129,6 @@ if [ -d "$TOPLEVEL_DIR/.git" ] ; then
VCS_TYPE="Git"
fi
if [ "$ABSOLUTE_PATHS" = true ] ; then
if [ "x$PATHTOOL" != "x" ]; then
PROJECT_DIR="`$PATHTOOL -am $OPENJDK_DIR`"
TOPLEVEL_PROJECT_DIR="`$PATHTOOL -am $TOPLEVEL_DIR`"
else
PROJECT_DIR="$OPENJDK_DIR"
TOPLEVEL_PROJECT_DIR="$TOPLEVEL_DIR"
fi
MODULE_DIR="$PROJECT_DIR"
TOPLEVEL_MODULE_DIR="$TOPLEVEL_PROJECT_DIR"
cd "$IDEA_OUTPUT_PARENT" && cd "$RELATIVE_BUILD_DIR" && BUILD_DIR="`pwd`"
CLION_SCRIPT_TOPDIR="$OPENJDK_DIR"
CLION_PROJECT_DIR="$PROJECT_DIR"
else
if [ "$RELATIVE_PROJECT_DIR" = "." ] ; then
PROJECT_DIR=""
else
PROJECT_DIR="/$RELATIVE_PROJECT_DIR"
fi
if [ "$RELATIVE_TOPLEVEL_PROJECT_DIR" = "." ] ; then
TOPLEVEL_PROJECT_DIR=""
else
TOPLEVEL_PROJECT_DIR="/$RELATIVE_TOPLEVEL_PROJECT_DIR"
fi
MODULE_DIR="\$MODULE_DIR\$$PROJECT_DIR"
PROJECT_DIR="\$PROJECT_DIR\$$PROJECT_DIR"
TOPLEVEL_MODULE_DIR="\$MODULE_DIR\$$TOPLEVEL_PROJECT_DIR"
TOPLEVEL_PROJECT_DIR="\$PROJECT_DIR\$$TOPLEVEL_PROJECT_DIR"
BUILD_DIR="\$PROJECT_DIR\$/$RELATIVE_BUILD_DIR"
CLION_SCRIPT_TOPDIR="$CLION_RELATIVE_PROJECT_DIR"
CLION_PROJECT_DIR="\$PROJECT_DIR\$/$CLION_SCRIPT_TOPDIR"
fi
if [ "$VERBOSE" = true ] ; then
echo "Project root: $PROJECT_DIR"
echo "Generating IDEA project files..."
fi
### Replace template variables
NUM_REPLACEMENTS=0
@@ -218,106 +152,116 @@ add_replacement() {
eval TO$NUM_REPLACEMENTS='$2'
}
add_replacement "###PATHTOOL###" "$PATHTOOL"
add_replacement "###CLION_SCRIPT_TOPDIR###" "$CLION_SCRIPT_TOPDIR"
add_replacement "###CLION_PROJECT_DIR###" "$CLION_PROJECT_DIR"
add_replacement "###PROJECT_DIR###" "$PROJECT_DIR"
add_replacement "###MODULE_DIR###" "$MODULE_DIR"
add_replacement "###TOPLEVEL_PROJECT_DIR###" "$TOPLEVEL_PROJECT_DIR"
add_replacement "###TOPLEVEL_MODULE_DIR###" "$TOPLEVEL_MODULE_DIR"
add_replacement "###MODULE_NAMES###" "$MODULE_NAMES"
add_replacement "###VCS_TYPE###" "$VCS_TYPE"
add_replacement "###BUILD_DIR###" "$BUILD_DIR"
add_replacement "###RELATIVE_BUILD_DIR###" "$RELATIVE_BUILD_DIR"
if [ "x$PATHTOOL" != "x" ]; then
add_replacement "###BASH_RUNNER_PREFIX###" "\$PROJECT_DIR\$/.idea/bash.bat"
else
add_replacement "###BASH_RUNNER_PREFIX###" ""
fi
if [ "x$PATHTOOL" != "x" ]; then
SPEC_DIR=`dirname $SPEC`
if [ "x$CYGPATH" != "x" ]; then
add_replacement "###BUILD_DIR###" "`$CYGPATH -am $SPEC_DIR`"
add_replacement "###IMAGES_DIR###" "`$CYGPATH -am $SPEC_DIR`/images/jdk"
add_replacement "###ROOT_DIR###" "`$CYGPATH -am $TOPLEVEL_DIR`"
add_replacement "###IDEA_DIR###" "`$CYGPATH -am $IDEA_OUTPUT`"
if [ "x$JT_HOME" = "x" ]; then
add_replacement "###JTREG_HOME###" ""
else
add_replacement "###JTREG_HOME###" "`$PATHTOOL -am $JT_HOME`"
add_replacement "###JTREG_HOME###" "`$CYGPATH -am $JT_HOME`"
fi
elif [ "x$WSL_DISTRO_NAME" != "x" ]; then
add_replacement "###BUILD_DIR###" "`wslpath -am $SPEC_DIR`"
add_replacement "###IMAGES_DIR###" "`wslpath -am $SPEC_DIR`/images/jdk"
add_replacement "###ROOT_DIR###" "`wslpath -am $TOPLEVEL_DIR`"
add_replacement "###IDEA_DIR###" "`wslpath -am $IDEA_OUTPUT`"
if [ "x$JT_HOME" = "x" ]; then
add_replacement "###JTREG_HOME###" ""
else
add_replacement "###JTREG_HOME###" "`wslpath -am $JT_HOME`"
fi
else
add_replacement "###BUILD_DIR###" "$SPEC_DIR"
add_replacement "###JTREG_HOME###" "$JT_HOME"
add_replacement "###IMAGES_DIR###" "$SPEC_DIR/images/jdk"
add_replacement "###ROOT_DIR###" "$TOPLEVEL_DIR"
add_replacement "###IDEA_DIR###" "$IDEA_OUTPUT"
fi
MODULE_IMLS=""
TEST_MODULE_DEPENDENCIES=""
for module in $MODULE_NAMES; do
MODULE_IMLS="$MODULE_IMLS<module fileurl=\"file://\$PROJECT_DIR$/.idea/$module.iml\" filepath=\"\$PROJECT_DIR$/.idea/$module.iml\" /> "
TEST_MODULE_DEPENDENCIES="$TEST_MODULE_DEPENDENCIES<orderEntry type=\"module\" module-name=\"$module\" scope=\"TEST\" /> "
SOURCE_PREFIX="<sourceFolder url=\"file://"
SOURCE_POSTFIX="\" isTestSource=\"false\" />"
for root in $MODULE_ROOTS; do
if [ "x$CYGPATH" != "x" ]; then
root=`$CYGPATH -am $root`
elif [ "x$WSL_DISTRO_NAME" != "x" ]; then
root=`wslpath -am $root`
fi
SOURCES=$SOURCES" $SOURCE_PREFIX""$root""$SOURCE_POSTFIX"
done
add_replacement "###MODULE_IMLS###" "$MODULE_IMLS"
add_replacement "###TEST_MODULE_DEPENDENCIES###" "$TEST_MODULE_DEPENDENCIES"
add_replacement "###SOURCE_ROOTS###" "$SOURCES"
replace_template_dir "$IDEA_OUTPUT"
### Generate module project files
### Compile the custom Logger
if [ "$VERBOSE" = true ] ; then
echo "Generating project modules:"
fi
(
DEFAULT_IFS="$IFS"
IFS='#'
for value in $MODULES; do
(
eval "$value"
if [ "$VERBOSE" = true ] ; then
echo " $module"
fi
MAIN_SOURCE_DIRS=""
CONTENT_ROOTS=""
IFS=' '
for dir in $moduleSrcDirs; do
case $dir in
"src/"*) MAIN_SOURCE_DIRS="$MAIN_SOURCE_DIRS <sourceFolder url=\"file://$MODULE_DIR/$dir\" isTestSource=\"false\" />" ;;
*"/support/gensrc/$module") ;; # Exclude generated sources to avoid module-info conflicts, see https://youtrack.jetbrains.com/issue/IDEA-185108
*) CONTENT_ROOTS="$CONTENT_ROOTS <content url=\"file://$MODULE_DIR/$dir\">\
<sourceFolder url=\"file://$MODULE_DIR/$dir\" isTestSource=\"false\" generated=\"true\" /></content>" ;;
esac
done
if [ "x$MAIN_SOURCE_DIRS" != "x" ] ; then
CONTENT_ROOTS="<content url=\"file://$MODULE_DIR/src/$module\">$MAIN_SOURCE_DIRS</content>$CONTENT_ROOTS"
fi
add_replacement "###MODULE_CONTENT_ROOTS###" "$CONTENT_ROOTS"
DEPENDENCIES=""
for dep in $moduleDependencies; do
case $MODULE_NAMES in # Exclude skipped modules from dependencies
*"$dep"*) DEPENDENCIES="$DEPENDENCIES<orderEntry type=\"module\" module-name=\"$dep\" /> "
esac
done
add_replacement "###DEPENDENCIES###" "$DEPENDENCIES"
cp "$IDEA_OUTPUT/module.iml" "$IDEA_OUTPUT/$module.iml"
IFS="$DEFAULT_IFS"
replace_template_file "$IDEA_OUTPUT/$module.iml"
)
done
)
rm "$IDEA_OUTPUT/module.iml"
CLASSES=$IDEA_OUTPUT/classes
### Create shell script runner for Windows
if [ "x$PATHTOOL" != "x" ]; then
echo "@echo off" > "$IDEA_OUTPUT/bash.bat"
if [ "x$WSL_DISTRO_NAME" != "x" ] ; then
echo "wsl -d $WSL_DISTRO_NAME --cd \"%cd%\" -e %*" >> "$IDEA_OUTPUT/bash.bat"
if [ "x$ANT_HOME" = "x" ] ; then
# try some common locations
if [ -f "/usr/share/ant/lib/ant.jar" ] ; then
ANT_HOME="/usr/share/ant"
else
echo "$WINENV_ROOT\bin\bash.exe -l -c \"cd %CD:\=/%/ && %*\"" >> "$IDEA_OUTPUT/bash.bat"
try_ant=$(ls /opt/homebrew/Cellar/ant/*/libexec/lib/ant.jar 2> /dev/null | sort -r | head -n 1)
if [ "x$try_ant" != "x" ] ; then
ANT_HOME=$(cd $(dirname $try_ant)/.. && pwd)
else
try_ant=$(ls /usr/local/Cellar/ant/*/libexec/lib/ant.jar 2> /dev/null | sort -r | head -n 1)
if [ "x$try_ant" != "x" ] ; then
ANT_HOME=$(cd $(dirname $try_ant)/.. && pwd)
fi
fi
fi
else
if [ ! -f "$ANT_HOME/lib/ant.jar" ] ; then
echo "FATAL: ANT_HOME is incorrect. Try removing it and use autodetection, or fix the value" >&2; exit 1
fi
fi
if [ "x$ANT_HOME" = "x" ] ; then
echo "FATAL: cannot find ant. Try setting ANT_HOME." >&2; exit 1
fi
CP=$ANT_HOME/lib/ant.jar
rm -rf $CLASSES; mkdir $CLASSES
# If we have a Windows boot JDK, we need a .exe suffix
if [ -e "$BOOT_JDK/bin/java.exe" ] ; then
JAVAC=javac.exe
else
JAVAC=javac
fi
if [ "$VERBOSE" = true ] ; then
IDEA_PROJECT_DIR="`dirname $IDEA_OUTPUT`"
if [ "x$PATHTOOL" != "x" ]; then
IDEA_PROJECT_DIR="`$PATHTOOL -am $IDEA_PROJECT_DIR`"
fi
echo "
Now you can open \"$IDEA_PROJECT_DIR\" as IDEA project
You can also run 'bash \"$IDEA_OUTPUT/jdk-clion/update-project.sh\"' to generate Clion project"
fi
# If we are on WSL, the boot JDK might be either Windows or Linux,
# and we need to use realpath instead of CYGPATH to make javac work on both.
# We need to handle this case first since CYGPATH might be set on WSL.
if [ "x$WSL_DISTRO_NAME" != "x" ]; then
JAVAC_SOURCE_FILE=`realpath --relative-to=./ $IDEA_OUTPUT/src/idea/IdeaLoggerWrapper.java`
JAVAC_SOURCE_PATH=`realpath --relative-to=./ $IDEA_OUTPUT/src`
JAVAC_CLASSES=`realpath --relative-to=./ $CLASSES`
ANT_TEMP=`mktemp -d -p ./`
cp $ANT_HOME/lib/ant.jar $ANT_TEMP/ant.jar
JAVAC_CP=$ANT_TEMP/ant.jar
elif [ "x$CYGPATH" != "x" ] ; then ## CYGPATH may be set in env.cfg
JAVAC_SOURCE_FILE=`$CYGPATH -am $IDEA_OUTPUT/src/idea/IdeaLoggerWrapper.java`
JAVAC_SOURCE_PATH=`$CYGPATH -am $IDEA_OUTPUT/src`
JAVAC_CLASSES=`$CYGPATH -am $CLASSES`
JAVAC_CP=`$CYGPATH -am $CP`
else
JAVAC_SOURCE_FILE=$IDEA_OUTPUT/src/idea/IdeaLoggerWrapper.java
JAVAC_SOURCE_PATH=$IDEA_OUTPUT/src
JAVAC_CLASSES=$CLASSES
JAVAC_CP=$CP
fi
$BOOT_JDK/bin/$JAVAC -d $JAVAC_CLASSES -sourcepath $JAVAC_SOURCE_PATH -cp $JAVAC_CP $JAVAC_SOURCE_FILE
if [ "x$WSL_DISTRO_NAME" != "x" ]; then
rm -rf $ANT_TEMP
fi

0
configure vendored Executable file → Normal file
View File

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
@@ -862,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
@@ -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:
@@ -685,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
@@ -1944,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

@@ -1,274 +0,0 @@
#!/usr/bin/env python3
import argparse
import os.path
import sys
import subprocess
errors_count = 0
def fatal(msg):
sys.stderr.write(f"[fatal] {msg}\n")
sys.exit(1)
def error(msg):
global errors_count
errors_count += 1
sys.stderr.write(f"[error] {msg}\n")
def verbose(options, *msg):
if options.verbose:
sys.stderr.write(f"[verbose] ")
sys.stderr.write(*msg)
sys.stderr.write('\n')
def first_line(str):
return "" if not str else str.splitlines()[0]
class Options:
def __init__(self):
ap = argparse.ArgumentParser(description="Show commit differences between branches of JBR git repos",
epilog="Example: %(prog)s --from origin/jbr17 --to jbr17.b469 --path "
"src/hotspot --limit 200")
ap.add_argument('--jbr', dest='jbrpath', help='path to JBR git root', required=True)
ap.add_argument('--from', dest='frombranch', help='branch to take commits from', required=True)
ap.add_argument('--to', dest='tobranch', help='branch to apply new commits to', required=True)
ap.add_argument('--path', dest='path', help='limit to changes in this path (relative to git root)')
ap.add_argument('--limit', dest='limit', help='limit to this many log entries in --jdk repo', type=int,
default=-1)
ap.add_argument('--html', dest="ishtml", help="print out HTML rather than plain text", action='store_true')
ap.add_argument('-o', dest="output", help="print the list of missing commits to this file"
" to be used as exclude list later")
ap.add_argument('--exclude', dest='exclude', help='exclude commits listed in the given file '
'(can use edited -o output file as input here)')
ap.add_argument('-v', dest='verbose', help="verbose output", default=False, action='store_true')
args = ap.parse_args()
if not os.path.isdir(args.jbrpath):
fatal(f"{args.jbrpath} not a directory")
if not git_is_available():
fatal("can't run git commands; make sure git is in PATH")
self.frombranch = args.frombranch
self.tobranch = args.tobranch
self.jbrpath = args.jbrpath
self.path = args.path
self.limit = args.limit
self.exclude = args.exclude
self.output = args.output
self.ishtml = args.ishtml
self.verbose = args.verbose
class GitRepo:
def __init__(self, rootpath):
self.rootpath = rootpath
def run_git_cmd(self, git_args):
args = ["git", "-C", self.rootpath]
args.extend(git_args)
# print(f"Runnig git cmd '{' '.join(args)}'")
p = subprocess.run(args, capture_output=True, text=True)
if p.returncode != 0:
fatal(f"git returned non-zero code in {self.rootpath} ({first_line(p.stderr)})")
return p.stdout
def save_git_cmd(self, fname, git_args):
args = ["git", "-C", self.rootpath]
args.extend(git_args)
# print(f"Runnig git cmd '{' '.join(args)}'")
with open(fname, "w") as stdout_file:
p = subprocess.run(args, stdout=stdout_file)
if p.returncode != 0:
fatal(f"git returned non-zero code in {self.rootpath} ({first_line(p.stderr)})")
def current_branch(self):
branch_name = self.run_git_cmd(["branch", "--show-current"]).strip()
return branch_name
def log(self, branch, path=None, limit=None):
cmds = ["log", "--no-decorate", branch]
if limit:
cmds.extend(["-n", str(limit)])
if path:
cmds.append(path)
full_log = self.run_git_cmd(cmds)
return full_log
class Commit:
def __init__(self, lines):
self.sha = lines[0].split()[1]
self.message = ""
self.fullmessage = ""
self.bugid = ""
# Commit message starts after one blank line
read_message = False
for l in lines:
if read_message:
self.fullmessage += l.strip() + "\n"
if not read_message and l == "":
read_message = True
if len(self.fullmessage) > 0:
self.message = first_line(self.fullmessage).strip()
t = self.message.split(' ')
if len(t) > 1:
bugid = t[0]
if bugid.startswith("fixup"):
bugid = t[1]
bugid = bugid.strip(":")
if bugid.startswith("JBR-") or bugid.isnumeric():
self.bugid = bugid
class History:
def __init__(self, log):
log_itr = iter(log.splitlines())
self.commits = []
self.unique_fullmessages = set()
self.duplicates = set()
commit_lines = []
for line in log_itr:
if line.startswith("commit ") and len(commit_lines) > 0:
commit = Commit(commit_lines)
self.add_commit(commit)
commit_lines = []
commit_lines.append(line)
if len(commit_lines) > 0:
commit = Commit(commit_lines)
self.add_commit(commit)
def add_commit(self, commit):
self.commits.append(commit)
if commit.fullmessage in self.unique_fullmessages:
self.duplicates.add(commit.fullmessage)
else:
self.unique_fullmessages.add(commit.fullmessage)
def appears_more_than_once(self, commit):
return commit.fullmessage in self.duplicates
def contains(self, commit):
return commit.fullmessage in self.unique_fullmessages
def size(self):
return len(self.commits)
def print_explanation(options, jbr):
verbose(options, f"Reading history from '{jbr.rootpath}'")
if options.path:
verbose(options, f"\t(only under '{options.path}')")
if options.limit > 0:
verbose(options, f"\t(up to '{options.limit}' commits)")
verbose(options, f"Searching for missing fixes in '{options.tobranch}' compared with '{options.frombranch}'")
def git_is_available():
p = None
try:
p = subprocess.run(["git", "--help"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
except:
pass
return p is not None and p.returncode == 0
def main():
check_python_min_requirements()
options = Options()
jbr = GitRepo(options.jbrpath)
print_explanation(options, jbr)
commits_to_save = []
try:
log_from = jbr.log(options.frombranch, options.path, options.limit)
log_to = jbr.log(options.tobranch, options.path, options.limit)
history_from = History(log_from)
history_to = History(log_to)
verbose(options,
f"Read {history_from.size()} commits from '{options.frombranch}', {history_to.size()} from {options.tobranch}")
exclude_list = []
if options.exclude:
with open(options.exclude, "r") as exclude_file:
l = exclude_file.read().split('\n')
exclude_list = list(filter(lambda line: not line.startswith("#"), l))
warned = set()
for c in history_from.commits:
if c.message:
verbose(options, f"Looking for commit '{c.message}'")
if c.message in exclude_list:
verbose(options, "...nope, in exclude list")
continue
if not history_to.contains(c):
commits_to_save.append(c)
else:
if history_from.appears_more_than_once(c) and c.fullmessage not in warned:
# Not sure which of those seemingly identical commits are present in the target branch
error(f"Commit '{c.message}' appears more than once in branch '{options.frombranch}'. ")
warned.add(c.fullmessage)
except KeyboardInterrupt:
fatal("Interrupted")
print_out_commits(options, commits_to_save)
save_commits_to_file(commits_to_save, options)
if errors_count > 0:
error(f"{errors_count} error(s) generated to stderr. MANUAL CHECK OF COMMITS IS REQUIRED.")
def save_commits_to_file(commits_to_save, options):
if len(commits_to_save) > 0 and options.output:
print()
with open(options.output, "w") as out:
for i, c in enumerate(reversed(commits_to_save)):
print(f"# {c.sha}", file=out)
print(c.message, file=out)
def print_out_commits(options, commits_to_save):
if options.ishtml:
print("<html><body>")
print(f"<p><b>Commits on <code>{options.frombranch}</code>"
f" missing from <code>{options.tobranch}</code></b></p></h1>")
if len(commits_to_save) > 0:
for c in sorted(commits_to_save, key=lambda commit: commit.bugid):
if options.ishtml:
msg = c.message
bugurl = ""
if c.bugid:
if c.bugid.isnumeric():
bugurl = f"https://bugs.openjdk.org/browse/JDK-{c.bugid}"
elif c.bugid.startswith("JBR-"):
bugurl = f"https://youtrack.jetbrains.com/issue/{c.bugid}"
if len(bugurl) > 0:
msg = msg.replace(c.bugid, f"<a href='{bugurl}'>{c.bugid}</a>")
sha = f"<a href='https://jetbrains.team/p/jbre/repositories/jbr/commits?commits={c.sha}'>" \
f"{c.sha[0:8]}</a>"
print(f"<li>{msg} ({sha})</li>")
else:
print(f"{c.message} ({c.sha[0:8]})")
if options.ishtml:
print("</body></html>")
def check_python_min_requirements():
if sys.version_info < (3, 6):
fatal("Minimum version 3.6 is required to run this script")
if __name__ == '__main__':
main()

View File

@@ -1,230 +0,0 @@
#!/usr/bin/env python3
import argparse
import math
import os.path
import sys
import subprocess
def fatal(msg):
sys.stderr.write(f"[fatal] {msg}\n")
sys.exit(1)
def verbose(options, *msg):
if options.verbose:
sys.stdout.write(f"[verbose] ")
sys.stdout.write(*msg)
sys.stdout.write('\n')
def first_line(str):
return "" if not str else str.splitlines()[0]
class Options:
def __init__(self):
ap = argparse.ArgumentParser(description="Show bugfixes differences between JBR and OpenJDK git repos",
epilog="Example: %(prog)s --jdk ./jdk11u/ --jbr ./JetBrainsRuntime/ --path src/hotspot --limit 200")
ap.add_argument('--jdk', dest='jdkpath', help='path to OpenJDK git repo', required=True)
ap.add_argument('--jbr', dest='jbrpath', help='path to JBR git repo', required=True)
ap.add_argument('--path', dest='path', help='limit to changes in this path (relative to git root)')
ap.add_argument('--limit', dest='limit', help='limit to this many log entries in --jdk repo', type=int, default=-1)
ap.add_argument('-o', dest="output_dir", help="save patches to this directory (created if necessary)")
ap.add_argument('-v', dest='verbose', help="verbose output", default=False, action='store_true')
args = ap.parse_args()
if not os.path.isdir(args.jdkpath):
fatal(f"{args.jdkpath} not a directory")
if not os.path.isdir(args.jbrpath):
fatal(f"{args.jbrpath} not a directory")
if not git_is_available():
fatal("can't run git commands; make sure git is in PATH")
self.jdkpath = args.jdkpath
self.jbrpath = args.jbrpath
self.path = args.path
self.limit = args.limit
self.output_dir = args.output_dir
self.verbose = args.verbose
class GitRepo:
def __init__(self, rootpath):
self.rootpath = rootpath
def run_git_cmd(self, git_args):
args = ["git", "-C", self.rootpath]
args.extend(git_args)
# print(f"Runnig git cmd '{' '.join(args)}'")
p = subprocess.run(args, capture_output=True, text=True)
if p.returncode != 0:
fatal(f"git returned non-zero code in {self.rootpath} ({first_line(p.stderr)})")
return p.stdout
def save_git_cmd(self, fname, git_args):
args = ["git", "-C", self.rootpath]
args.extend(git_args)
# print(f"Runnig git cmd '{' '.join(args)}'")
with open(fname, "w") as stdout_file:
p = subprocess.run(args, stdout=stdout_file)
if p.returncode != 0:
fatal(f"git returned non-zero code in {self.rootpath} ({first_line(p.stderr)})")
def current_branch(self):
branch_name = self.run_git_cmd(["branch", "--show-current"]).strip()
return branch_name
def log(self, path=None, limit=None):
cmds = ["log", "--no-decorate"]
if limit:
cmds.extend(["-n", str(limit)])
if path:
cmds.append(path)
full_log = self.run_git_cmd(cmds)
return full_log
class Commit:
def __init__(self, lines):
self.sha = lines[0].split()[1]
self.message = ""
self.bugid = None
# Commit message starts after one blank line
read_message = False
for l in lines:
if read_message:
self.message += l + "\n"
if not read_message and l == "":
read_message = True
if self.message and self.message != "" and ":" in self.message:
maybe_bugid = self.message.split(":")[0].strip()
if 10 >= len(maybe_bugid) >= 4:
self.bugid = maybe_bugid
class History:
def __init__(self, log):
log_itr = iter(log.splitlines())
self.commits = []
commit_lines = []
for line in log_itr:
if line.startswith("commit ") and len(commit_lines) > 0:
commit = Commit(commit_lines)
self.commits.append(commit)
commit_lines = []
commit_lines.append(line)
if len(commit_lines) > 0:
commit = Commit(commit_lines)
self.commits.append(commit)
def contains(self, str):
return any(str in commit.message for commit in self.commits)
def size(self):
return len(self.commits)
def print_explanation(options, jdk, jbr):
verbose(options, f"Reading history from '{jdk.rootpath}' on branch '{jdk.current_branch()}'")
if options.path:
verbose(options, f"\t(only under '{options.path}')")
verbose(options, f"Searching for same fixes in '{jbr.rootpath}' on branch '{jbr.current_branch()}'")
def git_is_available():
p = None
try:
p = subprocess.run(["git", "--help"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
except:
pass
return p is not None and p.returncode == 0
def main():
check_python_min_requirements()
options = Options()
jdk = GitRepo(options.jdkpath)
jbr = GitRepo(options.jbrpath)
print_explanation(options, jdk, jbr)
commits_to_save = []
try:
jdk_log = jdk.log(options.path, options.limit)
jdk_history = History(jdk_log)
jbr_log = jbr.log(options.path)
jbr_history = History(jbr_log)
verbose(options, f"Read {jdk_history.size()} commits in JDK, {jbr_history.size()} in JBR")
for c in jdk_history.commits:
if c.bugid:
verbose(options, f"Looking for bugfix for {c.bugid}")
if not jbr_history.contains(c.bugid):
commits_to_save.append(c)
print(f"[note] Fix for {c.bugid} not found in JBR ({jbr.rootpath})")
print(f" commit {c.sha}")
print(f" {first_line(c.message).strip()}")
except KeyboardInterrupt:
fatal("Interrupted")
if len(commits_to_save) > 0 and options.output_dir:
print()
if not os.path.exists(options.output_dir):
verbose(options, f"Creating output directory {options.output_dir}")
os.makedirs(options.output_dir)
nzeroes = len(str(len(commits_to_save)))
for i, c in enumerate(reversed(commits_to_save)):
fname = os.path.join(options.output_dir, f"{str(i).zfill(nzeroes)}-{c.bugid}.patch")
print(f"[note] {c.bugid} saved as {fname}")
fname = os.path.abspath(fname)
jdk.save_git_cmd(fname, ["format-patch", "-1", c.sha, "--stdout"])
script_fname = os.path.join(options.output_dir, "apply.sh")
with open(script_fname, "w") as script_file:
print(apply_script_code.format(os.path.abspath(jbr.rootpath), os.path.abspath(options.output_dir)),
file=script_file)
print(f"[note] Execute 'bash {script_fname}' to apply patches to {jbr.rootpath}")
def check_python_min_requirements():
if sys.version_info < (3, 6):
fatal("Minimum version 3.6 is required to run this script")
apply_script_code = """
#!/bin/bash
GITROOT={0}
PATCHROOT={1}
cd $PATCHROOT || exit 1
PATCHES=$(find $PATCHROOT -name '*.patch' | sort -n)
for P in $PATCHES; do
git -C $GITROOT am $P
if [ $? != 0 ]; then
mv "$P" "$P.failed"
echo "[ERROR] Patch $P did not apply cleanly. Try applying it manually."
echo "[NOTE] Execute this script to apply the remaining patches."
exit 1
else
mv "$P" "$P.done"
fi
done
echo "[NOTE] Done applying patches; check $PATCHROOT for .patch and .patch.failed to see if all have been applied."
"""
if __name__ == '__main__':
main()

View File

@@ -1,46 +0,0 @@
# NOTE: This Dockerfile is meant to be used from the mkdocker_aarch64.sh script.
# Pull a concrete version of Linux that does NOT recieve updates after it's
# been created. This is so that the image is as stable as possible to make
# image creation reproducible.
# NB: this also means there may be no security-related fixes there, need to
# move the version to the next manually.
# jetbrains/runtime:jbr17env_aarch64
FROM arm64v8/centos:7
# Install the necessary build tools
RUN yum -y update; \
yum -y install centos-release-scl; \
yum -y install devtoolset-10-10.1-0.el7; \
yum -y install \
alsa-lib-devel-1.1.8-1.el7.aarch64 \
autoconf-2.69-11.el7.noarch \
automake-1.13.4-3.el7.noarch \
bzip2-1.0.6-13.el7.aarch64 \
cups-devel-1.6.3-51.el7.aarch64 \
file-5.11-37.el7.aarch64 \
fontconfig-devel-2.13.0-4.3.el7.aarch64 \
freetype-devel-2.8-14.el7_9.1.aarch64 \
giflib-devel-4.1.6-9.el7.aarch64 \
git-1.8.3.1-24.el7_9.aarch64 \
libtool-2.4.2-22.el7_3.aarch64 \
libXi-devel-1.7.9-1.el7.aarch64 \
libXrandr-devel-1.5.1-2.el7.aarch64 \
libXrender-devel-0.9.10-1.el7.aarch64 \
libXt-devel-1.1.5-3.el7.aarch64 \
libXtst-devel-1.2.3-1.el7.aarch64 \
make-3.82-24.el7.aarch64 \
rsync-3.1.2-12.el7_9.aarch64 \
tar-1.26-35.el7.aarch64 \
unzip-6.0-24.el7_9.aarch64 \
wayland-devel-1.15.0-1.el7 \
zip-3.0-11.el7.aarch64; \
yum -y clean all
ENV PATH="/opt/rh/devtoolset-10/root/usr/bin:${PATH}"
ENV LD_LIBRARY_PATH="/opt/rh/devtoolset-10/root/usr/lib64:/opt/rh/devtoolset-10/root/usr/lib:/opt/rh/devtoolset-10/root/usr/lib64/dyninst:/opt/rh/devtoolset-10/root/usr/lib/dyninst:/opt/rh/devtoolset-10/root/usr/lib64:/opt/rh/devtoolset-10/root/usr/lib"
ENV PKG_CONFIG_PATH="/opt/rh/devtoolset-10/root/usr/lib64/pkgconfig"
RUN git config --global user.email "teamcity@jetbrains.com" && \
git config --global user.name "builduser"

View File

@@ -1,22 +0,0 @@
# NOTE: This Dockerfile is meant to be used from the mkdocker_musl_aarch64.sh script.
# Pull a concrete version of Linux that does NOT recieve updates after it's
# been created. This is so that the image is as stable as possible to make
# image creation reproducible.
# NB: this also means there may be no security-related fixes there, need to
# move the version to the next manually.
FROM arm64v8/alpine:3.12
# Install the necessary build tools
RUN apk --no-cache add --update bash grep tar zip bzip2 rsync fontconfig build-base \
git libx11-dev libxext-dev libxrandr-dev libxrender-dev libxt-dev \
libxtst-dev autoconf freetype-dev cups-dev alsa-lib-dev file \
fontconfig fontconfig-dev linux-headers
# Set up boot JDK for building
COPY boot_jdk_musl_aarch64.tar.gz /jdk17/
RUN cd /jdk17 && tar --strip-components=1 -xzf boot_jdk_musl_aarch64.tar.gz && rm /jdk17/boot_jdk_musl_aarch64.tar.gz
ENV BOOT_JDK=/jdk17
RUN git config --global user.email "teamcity@jetbrains.com" && \
git config --global user.name "builduser"

View File

@@ -1,22 +0,0 @@
# NOTE: This Dockerfile is meant to be used from the mkdocker_musl_x64.sh script.
# Pull a concrete version of Linux that does NOT recieve updates after it's
# been created. This is so that the image is as stable as possible to make
# image creation reproducible.
# NB: this also means there may be no security-related fixes there, need to
# move the version to the next manually.
FROM alpine:3.14
# Install the necessary build tools
RUN apk --no-cache add --update bash grep tar zip bzip2 rsync fontconfig build-base \
git libx11-dev libxext-dev libxrandr-dev libxrender-dev libxt-dev \
libxtst-dev autoconf freetype-dev cups-dev alsa-lib-dev file \
fontconfig fontconfig-dev linux-headers
# Set up boot JDK for building
COPY boot_jdk_musl_amd64.tar.gz /jdk17/
RUN cd /jdk17 && tar --strip-components=1 -xzf boot_jdk_musl_amd64.tar.gz && rm /jdk17/boot_jdk_musl_amd64.tar.gz
ENV BOOT_JDK=/jdk17
RUN git config --global user.email "teamcity@jetbrains.com" && \
git config --global user.name "builduser"

View File

@@ -1,55 +0,0 @@
# NOTE: This Dockerfile is meant to be used from the mkdocker_x86.sh script.
# Pull a concrete version of Linux that does NOT receive updates after it's
# been created. This is so that the image is as stable as possible to make
# image creation reproducible.
# NB: this also means there may be no security-related fixes there, need to
# move the version to the next manually.
#FROM i386/ubuntu:xenial
#FROM i386/ubuntu:bionic
FROM i386/ubuntu:focal
RUN linux32 \
apt-get update && apt-get install -y --no-install-recommends apt-utils
RUN export DEBIAN_FRONTEND=noninteractive \
export DEBCONF_NONINTERACTIVE_SEEN=true && \
echo 'tzdata tzdata/Areas select Etc' | debconf-set-selections; \
echo 'tzdata tzdata/Zones/Etc select UTC' | debconf-set-selections; \
linux32 \
apt-get -y install \
autoconf \
build-essential \
curl \
file \
git \
libx11-dev \
libxext-dev \
libxrender-dev \
libxrandr-dev \
libxtst-dev \
libxt-dev \
libcups2-dev \
libasound2-data \
# libpng12-0 \
libasound2 \
libfreetype6 \
libfontconfig1-dev \
libasound2-dev \
rsync \
unzip \
zip
RUN linux32 \
apt-get -y install \
g++-10 \
gcc-10 && \
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10 && \
apt-get clean -qy && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Set up boot JDK for building
COPY boot_jdk_x86.tar.gz /jdk17/
RUN cd /jdk17 && tar --strip-components=1 -xzf boot_jdk_x86.tar.gz && rm /jdk17/boot_jdk_x86.tar.gz
ENV BOOT_JDK=/jdk17
RUN git config --global user.email "teamcity@jetbrains.com" && \
git config --global user.name "builduser"

View File

@@ -1,36 +0,0 @@
# jetbrains/runtime:jbr17env_x86_64
FROM centos:7
RUN yum -y install centos-release-scl; \
yum -y install devtoolset-10-10.1-0.el7; \
yum -y install \
alsa-lib-devel-1.1.8-1.el7 \
autoconf-2.69-11.el7 \
automake-1.13.4-3.el7 \
bzip2-1.0.6-13.el7 \
cups-devel-1.6.3-51.el7 \
file-5.11-37.el7 \
fontconfig-devel-2.13.0-4.3.el7 \
freetype-devel-2.8-14.el7_9.1 \
giflib-devel-4.1.6-9.el7 \
git-1.8.3.1-24.el7_9 \
libtool-2.4.2-22.el7_3 \
libXi-devel-1.7.9-1.el7 \
libXrandr-devel-1.5.1-2.el7 \
libXrender-devel-0.9.10-1.el7 \
libXt-devel-1.1.5-3.el7 \
libXtst-devel-1.2.3-1.el7 \
make-3.82-24.el7 \
tar-1.26-35.el7 \
unzip-6.0-24.el7_9 \
wayland-devel-1.15.0-1.el7 \
wget-1.14-18.el7_6.1 \
which-2.20-7.el7 \
zip-3.0-11.el7
RUN mkdir .git && \
git config user.email "teamcity@jetbrains.com" && \
git config user.name "builduser"
ENV LD_LIBRARY_PATH="/opt/rh/devtoolset-10/root/usr/lib64:/opt/rh/devtoolset-10/root/usr/lib:/opt/rh/devtoolset-10/root/usr/lib64/dyninst:/opt/rh/devtoolset-10/root/usr/lib/dyninst:/opt/rh/devtoolset-10/root/usr/lib64:/opt/rh/devtoolset-10/root/usr/lib"
ENV PATH="/opt/rh/devtoolset-10/root/usr/bin::${PATH}"
ENV PKG_CONFIG_PATH="/opt/rh/devtoolset-10/root/usr/lib64/pkgconfig"

View File

@@ -1,29 +0,0 @@
#!/bin/bash
set -euo pipefail
set -x
# This script creates a Docker image suitable for building AArch64 variant
# of the JetBrains Runtime "dev" version.
BOOT_JDK_REMOTE_FILE=zulu17.30.15-ca-jdk17.0.1-linux_aarch64.tar.gz
BOOT_JDK_SHA=4d9c9116eb0cdd2d7fb220d6d27059f4bf1b7e95cc93d5512bd8ce3791af86c7
BOOT_JDK_LOCAL_FILE=boot_jdk.tar.gz
if [ ! -f $BOOT_JDK_LOCAL_FILE ]; then
# Obtain "boot JDK" from outside of the container.
wget -nc https://cdn.azul.com/zulu/bin/${BOOT_JDK_REMOTE_FILE} -O $BOOT_JDK_LOCAL_FILE
else
echo "boot JDK \"$BOOT_JDK_LOCAL_FILE\" present, skipping download"
fi
# Verify that what we've downloaded can be trusted.
sha256sum -c - <<EOF
$BOOT_JDK_SHA *$BOOT_JDK_LOCAL_FILE
EOF
docker build -t jbrdevenv_arm64v8 -f Dockerfile.aarch64 .
# NB: the resulting container can (and should) be used without the network
# connection (--network none) during build in order to reduce the chance
# of build contamination.

View File

@@ -1,29 +0,0 @@
#!/bin/bash
set -euo pipefail
set -x
# This script creates a Docker image suitable for building musl AArch64 variant
# of the JetBrains Runtime version 17.
BOOT_JDK_REMOTE_FILE=zulu17.32.13-ca-jdk17.0.2-linux_musl_aarch64.tar.gz
BOOT_JDK_SHA=6b920559abafbe9bdef386a20ecf3a2f318bc1f0d8359eb1f95aee26606bbc70
BOOT_JDK_LOCAL_FILE=boot_jdk_musl_aarch64.tar.gz
if [ ! -f $BOOT_JDK_LOCAL_FILE ]; then
# Obtain "boot JDK" from outside of the container.
wget -nc https://cdn.azul.com/zulu/bin/${BOOT_JDK_REMOTE_FILE} -O $BOOT_JDK_LOCAL_FILE
else
echo "boot JDK \"$BOOT_JDK_LOCAL_FILE\" present, skipping download"
fi
# Verify that what we've downloaded can be trusted.
sha256sum -c - <<EOF
$BOOT_JDK_SHA *$BOOT_JDK_LOCAL_FILE
EOF
docker build -t jbr17buildenv -f Dockerfile.musl_aarch64 .
# NB: the resulting container can (and should) be used without the network
# connection (--network none) during build in order to reduce the chance
# of build contamination.

View File

@@ -1,29 +0,0 @@
#!/bin/bash
set -euo pipefail
set -x
# This script creates a Docker image suitable for building musl-x64 variant
# of the JetBrains Runtime version 17.
BOOT_JDK_REMOTE_FILE=zulu17.32.13-ca-jdk17.0.2-linux_musl_x64.tar.gz
BOOT_JDK_SHA=bcc5342011bd9f3643372aadbdfa68d47463ff0d8621668a0bdf2910614d95c6
BOOT_JDK_LOCAL_FILE=boot_jdk_musl_amd64.tar.gz
if [ ! -f $BOOT_JDK_LOCAL_FILE ]; then
# Obtain "boot JDK" from outside of the container.
wget -nc https://cdn.azul.com/zulu/bin/${BOOT_JDK_REMOTE_FILE} -O $BOOT_JDK_LOCAL_FILE
else
echo "boot JDK \"$BOOT_JDK_LOCAL_FILE\" present, skipping download"
fi
# Verify that what we've downloaded can be trusted.
sha256sum -c - <<EOF
$BOOT_JDK_SHA *$BOOT_JDK_LOCAL_FILE
EOF
docker build -t jbr17buildenv -f Dockerfile.musl_x64 .
# NB: the resulting container can (and should) be used without the network
# connection (--network none) during build in order to reduce the chance
# of build contamination.

View File

@@ -1,26 +0,0 @@
#!/bin/bash -x
# This script creates a Docker image suitable for building x86 variant
# of the JetBrains Runtime version 17.
BOOT_JDK_REMOTE_FILE=zulu17.34.19-ca-jdk17.0.3-linux_i686.tar.gz
BOOT_JDK_SHA=1c35c374ba0001e675d6e80819d5be900c4e141636d5e484992a8c550be14481
BOOT_JDK_LOCAL_FILE=boot_jdk_x86.tar.gz
if [ ! -f $BOOT_JDK_LOCAL_FILE ]; then
# Obtain "boot JDK" from outside of the container.
wget -nc https://cdn.azul.com/zulu/bin/${BOOT_JDK_REMOTE_FILE} -O $BOOT_JDK_LOCAL_FILE
else
echo "boot JDK \"$BOOT_JDK_LOCAL_FILE\" present, skipping download"
fi
# Verify that what we've downloaded can be trusted.
sha256sum -c - <<EOF
$BOOT_JDK_SHA *$BOOT_JDK_LOCAL_FILE
EOF
docker build -t jetbrains/runtime:jbr17env_x86 -f Dockerfile.x86 .
# NB: the resulting container can (and should) be used without the network
# connection (--network none) during build in order to reduce the chance
# of build contamination.

View File

@@ -1 +0,0 @@
JetBrainsRuntime

View File

@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="IssueNavigationConfiguration">
<option name="links">
<list>
<IssueNavigationLink>
<option name="issueRegexp" value="(?:^|\s|\p{Punct})([A-Z]+\-\d+)(?=$|\s|\p{Punct})" />
<option name="linkRegexp" value="https://youtrack.jetbrains.com/issue/$1" />
</IssueNavigationLink>
<IssueNavigationLink>
<option name="issueRegexp" value="(?:^|\s|\p{Punct})(?:JDK-)?(\d{7})(?=$|\s|\p{Punct})" />
<option name="linkRegexp" value="https://bugs.openjdk.java.net/browse/JDK-$1" />
</IssueNavigationLink>
</list>
</option>
</component>
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
</component>
</project>

View File

@@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$/src/jetbrains.api">
<sourceFolder url="file://$MODULE_DIR$/src/jetbrains.api/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/jetbrains.api/templates" isTestSource="false" />
</content>
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="inheritedJdk" />
</component>
</module>

View File

@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/jdk.iml" filepath="$PROJECT_DIR$/.idea/jdk.iml" />
###MODULE_IMLS###
<module fileurl="file://$PROJECT_DIR$/.idea/jetbrains.api.iml" filepath="$PROJECT_DIR$/.idea/jetbrains.api.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/test.iml" filepath="$PROJECT_DIR$/.idea/test.iml" />
</modules>
</component>
</project>

View File

@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="IssueNavigationConfiguration">
<option name="links">
<list>
<IssueNavigationLink>
<option name="issueRegexp" value="(?:^|\s|\p{Punct})([A-Z]+\-\d+)(?=$|\s|\p{Punct})" />
<option name="linkRegexp" value="https://youtrack.jetbrains.com/issue/$1" />
</IssueNavigationLink>
<IssueNavigationLink>
<option name="issueRegexp" value="(?:^|\s|\p{Punct})(?:JDK-)?(\d{7})(?=$|\s|\p{Punct})" />
<option name="linkRegexp" value="https://bugs.openjdk.java.net/browse/JDK-$1" />
</IssueNavigationLink>
</list>
</option>
</component>
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@@ -1,135 +0,0 @@
apply plugin: 'java'
import org.gradle.internal.os.OperatingSystem
repositories {
mavenCentral()
}
def test_jvm = {
if (project.hasProperty('jbsdkhome')) {
file(jbsdkhome + (OperatingSystem.current().isWindows()?"/bin/java.exe" : "/bin/java")).absolutePath
} else {
if (OperatingSystem.current().isMacOsX()) {
file('../../../build/macosx-x86_64-normal-server-release/images/jdk-bundle/jdk-11.0.4.jdk/Contents/Home/bin/java').absolutePath
} else if (OperatingSystem.current().isLinux()) {
file('../../../build/linux-x86_64-normal-server-release/images/jdk/bin/java').absolutePath
} else {
file('../../../build/windows-x86_64-normal-server-release/images/jdk/bin/java.exe').absolutePath
}
}
}
dependencies {
testCompile('junit:junit:4.12'){
exclude group: 'org.hamcrest'
}
testCompile 'org.hamcrest:hamcrest-library:1.3'
testCompile 'net.java.dev.jna:jna:4.4.0'
testCompile 'com.twelvemonkeys.imageio:imageio-tiff:3.3.2'
testCompile 'org.apache.commons:commons-lang3:3.0'
}
def jdk_modules = ["java.base", "java.logging", "java.prefs",
"java.se.ee", "java.sql", "java.datatransfer",
"java.management", "java.rmi", "java.security.jgss",
"java.sql.rowset", "java.desktop", "java.management.rmi",
"java.scripting", "java.security.sasl", "java.transaction",
"java.instrument", "java.naming", "java.se",
"java.smartcardio", "java.xml.crypto"]
def jdk_class_dirs = []
jdk_modules.collect(jdk_class_dirs) {
new File("../../../src/" + it + "/share/classes")
}
if (OperatingSystem.current().isMacOsX())
jdk_modules.collect(jdk_class_dirs) {
"../../../src/" + it + "/macosx/classes"
}
else if (OperatingSystem.current().isLinux()) {
jdk_modules.collect(jdk_class_dirs) {
"../../../src/" + it + "/solaris/classes"
}
jdk_modules.collect(jdk_class_dirs) {
"../../../src/" + it + "/unix/classes"
}
} else
jdk_modules.collect(jdk_class_dirs) {
"../../../src/" + it + "/windows/classes"
}
sourceSets.main.java.srcDirs = jdk_class_dirs
sourceSets {
test {
java {
srcDir "../../../test/jdk/jbu"
}
}
}
test.dependsOn.clear()
test.dependsOn tasks.compileTestJava
test {
systemProperty "jb.java2d.metal", "true"
systemProperty "testdata", file('../../../test/jdk/jbu/testdata').absolutePath
// Generate golden images for DroidFontTest and MixedTextTest
// systemProperty "gentestdata", ""
// Enable Java2D logging (https://confluence.jetbrains.com/display/JRE/Java2D+Rendering+Logging)
// systemProperty "sun.java2d.trace", "log"
// systemProperty "sun.java2d.trace", "log,pimpl"
outputs.upToDateWhen { false }
executable = test_jvm()
// Enable async/dtrace profiler
jvmArgs "-XX:+PreserveFramePointer"
// Enable native J2D logging (only in debug build)
// Can be turned on for J2D by adding "#define DEBUG 1" into jdk/src/share/native/sun/java2d/Trace.h
// environment 'J2D_TRACE_LEVEL', '4'
}
def buildDir = project.buildscript.sourceFile.parentFile.parentFile.parentFile.parentFile
def make_cmd = "make"
if (OperatingSystem.current().isWindows()) {
def cyg_make_cmd = new File("c:/cygwin64/bin/make.exe")
if (cyg_make_cmd.exists()) make_cmd = cyg_make_cmd.absolutePath
}
def test_run = false
task make_images {
doLast {
if (!test_run) {
def pb = new ProcessBuilder().command(make_cmd.toString(), "-C", buildDir.absolutePath, "images")
def proc = pb.redirectErrorStream(true).start()
proc.inputStream.eachLine { println it }
assert proc.waitFor() == 0
}
}
}
task make_clean {
doLast {
def pb = new ProcessBuilder().command(make_cmd.toString(), "-C", buildDir.absolutePath, "clean")
def proc = pb.redirectErrorStream(true).start()
proc.inputStream.eachLine { println it }
assert proc.waitFor() == 0
}
}
task run_test {
doLast {
test_run = true
}
}
tasks.cleanTest.dependsOn tasks.run_test
classes.dependsOn.clear()
classes.dependsOn tasks.make_images
tasks.cleanClasses.dependsOn tasks.make_clean

View File

@@ -1,54 +0,0 @@
java.base,
java.compiler,
java.datatransfer,
java.desktop,
java.instrument,
java.logging,
java.management,
java.management.rmi,
java.naming,
java.net.http,
java.prefs,
java.rmi,
java.scripting,
java.se,
java.security.jgss,
java.security.sasl,
java.smartcardio,
java.sql,
java.sql.rowset,
java.transaction.xa,
java.xml,
java.xml.crypto,
jdk.accessibility,
jdk.attach,
jdk.charsets,
jdk.compiler,
jdk.crypto.cryptoki,
jdk.crypto.ec,
jdk.dynalink,
jdk.httpserver,
jdk.internal.ed,
jdk.internal.le,
jdk.internal.vm.ci,
jdk.javadoc,
jdk.jdi,
jdk.jdwp.agent,
jdk.jfr,
jdk.jsobject,
jdk.localedata,
jdk.management,
jdk.management.agent,
jdk.management.jfr,
jdk.naming.dns,
jdk.naming.rmi,
jdk.net,
jdk.sctp,
jdk.security.auth,
jdk.security.jgss,
jdk.unsupported,
jdk.unsupported.desktop,
jdk.xml.dom,
jdk.zipfs,
jdk.hotspot.agent,
jdk.jcmd

View File

@@ -1,18 +0,0 @@
#!/bin//bash
set -euo pipefail
# $1 - Boot JDK
# $2 - JBR part of API version
cd "`dirname "$0"`/../../../../.."
PWD="`pwd`"
CONF="$PWD/build/jbr-api.conf"
./configure --with-debug-level=release --with-boot-jdk=$1 || exit $?
make jbr-api CONF=release MAKEOVERRIDES= "JBR_API_CONF_FILE=$CONF" JBR_API_JBR_VERSION=$2 || exit $?
. $CONF || exit $?
echo "##teamcity[buildNumber '$VERSION']"
cp "$JAR" ./jbr-api-${VERSION}.jar || exit $?
cp "$SOURCES_JAR" ./jbr-api-${VERSION}-sources.jar || exit $?
echo "##teamcity[publishArtifacts '$PWD/jbr-api-${VERSION}.jar']"
echo "##teamcity[publishArtifacts '$PWD/jbr-api-${VERSION}-sources.jar']"

View File

@@ -1,186 +0,0 @@
#!/bin/bash
set -euo pipefail
set -x
function check_bundle_type_maketest() {
# check whether last char is 't', if so remove it
if [ "${bundle_type: -1}" == "t" ] && [ "${bundle_type: -2}" != "ft" ]; then
bundle_type="${bundle_type%?}"
do_maketest=1
else
do_maketest=0
fi
}
function getVersionProp() {
grep "^${1}" make/conf/version-numbers.conf | cut -d'=' -f2
}
while getopts ":i?" o; do
case "${o}" in
i) INC_BUILD=1 ;;
esac
done
shift $((OPTIND-1))
if [[ $# -lt 2 ]]; then
echo "Required at least two arguments: build_number bundle_type"
exit 1
fi
build_number=$1
bundle_type=$2
# shellcheck disable=SC2034
architecture=${3:-x64} # aarch64 or x64
check_bundle_type_maketest
tag_prefix="jdk-"
VERSION_FEATURE=$(getVersionProp "DEFAULT_VERSION_FEATURE")
VERSION_INTERIM=$(getVersionProp "DEFAULT_VERSION_INTERIM")
VERSION_UPDATE=$(getVersionProp "DEFAULT_VERSION_UPDATE")
VERSION_PATCH=$(getVersionProp "DEFAULT_VERSION_PATCH")
[[ $VERSION_UPDATE = 0 ]] && JBSDK_VERSION="$VERSION_FEATURE" || JBSDK_VERSION="${VERSION_FEATURE}.${VERSION_INTERIM}.${VERSION_UPDATE}"
[[ $VERSION_PATCH = 0 ]] || JBSDK_VERSION="${VERSION_FEATURE}.${VERSION_INTERIM}.${VERSION_UPDATE}.${VERSION_PATCH}"
echo "##teamcity[setParameter name='env.JBSDK_VERSION' value='${JBSDK_VERSION}']"
OPENJDK_TAG=$(git tag -l | grep "$tag_prefix$JBSDK_VERSION" | grep -v ga | sort -t "-" -k 2 -g | tail -n 1)
JDK_BUILD_NUMBER=${JDK_BUILD_NUMBER:=$(echo $OPENJDK_TAG | awk -F "-|[+]" '{print $3}')}
[ -z $JDK_BUILD_NUMBER ] && JDK_BUILD_NUMBER=1
re='^[0-9]+$'
if ! [[ $JDK_BUILD_NUMBER =~ $re ]] ; then
echo "error: JDK_BUILD_NUMBER Not a number: $JDK_BUILD_NUMBER"
JDK_BUILD_NUMBER=1
fi
echo "##teamcity[setParameter name='env.JDK_UPDATE_NUMBER' value='${JDK_BUILD_NUMBER}']"
VENDOR_NAME="JetBrains s.r.o."
VENDOR_VERSION_STRING="JBR-${JBSDK_VERSION}+${JDK_BUILD_NUMBER}-${build_number}"
[ -z "$bundle_type" ] || VENDOR_VERSION_STRING="${VENDOR_VERSION_STRING}-${bundle_type}"
do_reset_changes=0
do_reset_dcevm=0
HEAD_REVISION=0
STATIC_CONF_ARGS=""
common_conf_props_file="jb/project/tools/common/static_conf_args.txt"
if [[ -f "$common_conf_props_file" ]]; then
STATIC_CONF_ARGS=$(<$common_conf_props_file)
fi
OS_NAME=$(uname -s)
# Enable reproducible builds
TZ=UTC
export TZ
SOURCE_DATE_EPOCH="$(git log -1 --pretty=%ct)"
export SOURCE_DATE_EPOCH
COPYRIGHT_YEAR=""
BUILD_TIME=""
TOUCH_TIME=""
REPRODUCIBLE_TAR_OPTS=""
case "$OS_NAME" in
Linux)
COPYRIGHT_YEAR="$(date --utc --date=@$SOURCE_DATE_EPOCH +%Y)"
BUILD_TIME="$(date --utc --date=@$SOURCE_DATE_EPOCH +%F)"
REPRODUCIBLE_TAR_OPTS="--mtime=@$SOURCE_DATE_EPOCH --owner=0 --group=0 --numeric-owner --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime"
;;
CYGWIN*)
COPYRIGHT_YEAR="$(date --utc --date=@$SOURCE_DATE_EPOCH +%Y)"
BUILD_TIME="$(date --utc --date=@$SOURCE_DATE_EPOCH +%F)"
REPRODUCIBLE_TAR_OPTS="--mtime=@$SOURCE_DATE_EPOCH --owner=0 --group=0 --numeric-owner --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime"
;;
Darwin)
COPYRIGHT_YEAR="$(date -u -r $SOURCE_DATE_EPOCH +%Y)"
BUILD_TIME="$(date -u -r $SOURCE_DATE_EPOCH +%F)"
TOUCH_TIME="$(date -u -r $SOURCE_DATE_EPOCH +%Y%m%d%H%M.%S)"
REPRODUCIBLE_TAR_OPTS="--uid 0 --gid 0 --numeric-owner"
;;
esac
WITH_ZIPPED_NATIVE_DEBUG_SYMBOLS="--with-native-debug-symbols=zipped"
if [ "$bundle_type" == "nomodft" ]; then
WITH_BUNDLED_FREETYPE="--with-freetype=bundled"
else
WITH_BUNDLED_FREETYPE=""
fi
REPRODUCIBLE_BUILD_OPTS="--with-source-date=$SOURCE_DATE_EPOCH
--with-hotspot-build-time=$BUILD_TIME
--with-copyright-year=$COPYRIGHT_YEAR
--disable-absolute-paths-in-output
--with-build-user=builduser"
function zip_native_debug_symbols() {
image_bundle_path=$(echo $1 | cut -d"/" -f-4)
jdk_name=$(echo $1 | cut -d"/" -f5)
jbr_diz_name=$2
[ -d "dizfiles" ] && rm -rf dizfiles
mkdir dizfiles
rsync_target="../../../../dizfiles"
[ -z "$jdk_name" ] && rsync_target=$rsync_target"/"$jbr_diz_name
(cd $image_bundle_path && find . -name '*.diz' -exec rsync -R {} $rsync_target \;)
[ ! -z "$jdk_name" ] && mv dizfiles/$jdk_name dizfiles/$jbr_diz_name
(cd dizfiles && find $jbr_diz_name -print0 | COPYFILE_DISABLE=1 \
tar --no-recursion --null -T - -czf ../"$jbr_diz_name".tar.gz) || do_exit $?
}
function do_exit() {
exit_code=$1
[ $do_reset_changes -eq 1 ] && git checkout HEAD jb/project/tools/common/modules.list src/java.desktop/share/classes/module-info.java
if [ $do_reset_dcevm -eq 1 ]; then
[ ! -z $HEAD_REVISION ] && git reset --hard $HEAD_REVISION
fi
exit "$exit_code"
}
function update_jsdk_mods() {
__jsdk=$1
__jcef_mods=$2
__orig_jsdk_mods=$3
__updated_jsdk_mods=$4
# re-create java.desktop.jmod with updated module-info.class
tmp=.java.desktop.$$.tmp
mkdir "$tmp" || exit $?
"$__jsdk"/bin/jmod extract --dir "$tmp" "$__orig_jsdk_mods"/java.desktop.jmod || exit $?
"$__jsdk"/bin/javac \
--patch-module java.desktop="$__orig_jsdk_mods"/java.desktop.jmod \
--module-path "$__jcef_mods" -d "$tmp"/classes src/java.desktop/share/classes/module-info.java || exit $?
"$__jsdk"/bin/jmod \
create --class-path "$tmp"/classes --config "$tmp"/conf --header-files "$tmp"/include --legal-notice "$tmp"/legal --libs "$tmp"/lib \
java.desktop.jmod || exit $?
mv java.desktop.jmod "$__updated_jsdk_mods" || exit $?
rm -rf "$tmp"
# re-create java.base.jmod with updated hashes
tmp=.java.base.$$.tmp
mkdir "$tmp" || exit $?
hash_modules=$("$__jsdk"/bin/jmod describe "$__orig_jsdk_mods"/java.base.jmod | grep hashes | awk '{print $2}' | tr '\n' '|' | sed s/\|$//) || exit $?
"$__jsdk"/bin/jmod extract --dir "$tmp" "$__orig_jsdk_mods"/java.base.jmod || exit $?
rm "$__updated_jsdk_mods"/java.base.jmod || exit $? # temp exclude from path
"$__jsdk"/bin/jmod \
create --module-path "$__updated_jsdk_mods" --hash-modules "$hash_modules" \
--class-path "$tmp"/classes --cmds "$tmp"/bin --config "$tmp"/conf --header-files "$tmp"/include --legal-notice "$tmp"/legal --libs "$tmp"/lib \
java.base.jmod || exit $?
mv java.base.jmod "$__updated_jsdk_mods" || exit $?
rm -rf "$tmp"
}
function get_mods_list() {
__mods=$1
echo $(ls $__mods) | sed s/\.jmod/,/g | sed s/,$//g | sed s/' '//g
}
function copy_jmods() {
__mods_list=$1
__jmods_from=$2
__jmods_to=$3
mkdir -p $__jmods_to
echo "${__mods_list}," | while read -d, mod; do cp $__jmods_from/$mod.jmod $__jmods_to/; done
}

View File

@@ -1 +0,0 @@
--with-vendor-vm-bug-url=https://youtrack.jetbrains.com/issues/JBR

View File

@@ -1,169 +0,0 @@
#!/bin/bash
set -euo pipefail
set -x
# The following parameters must be specified:
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built;possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# This script makes test-image along with JDK images when bundle_type is set to "jcef".
# If the character 't' is added at the end of bundle_type then it also makes test-image along with JDK images.
#
# Environment variables:
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument
# to configure
# By default JDK_BUILD_NUMBER is set zero
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_linux_aarch64
source jb/project/tools/common/scripts/common.sh
JCEF_PATH=${JCEF_PATH:=./jcef_linux_aarch64}
function do_configure {
sh configure \
$WITH_DEBUG_LEVEL \
--with-vendor-name="$VENDOR_NAME" \
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
--with-jvm-features=shenandoahgc \
--with-version-pre= \
--with-version-build="$JDK_BUILD_NUMBER" \
--with-version-opt=b"$build_number" \
--with-boot-jdk="$BOOT_JDK" \
--enable-cds=yes \
$STATIC_CONF_ARGS \
$REPRODUCIBLE_BUILD_OPTS \
$WITH_ZIPPED_NATIVE_DEBUG_SYMBOLS \
$WITH_BUNDLED_FREETYPE \
|| do_exit $?
}
function is_musl {
libc=$(ldd /bin/ls | grep 'musl' | head -1 | cut -d ' ' -f1)
if [ -z $libc ]; then
# This is not Musl, return 1 == false
return 1
fi
return 0
}
function create_image_bundle {
__bundle_name=$1
__arch_name=$2
__modules_path=$3
__modules=$4
libc_type_suffix=''
fastdebug_infix=''
if is_musl; then libc_type_suffix='musl-' ; fi
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
JBR=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}aarch64-${fastdebug_infix}b${build_number}
__root_dir=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}aarch64-${fastdebug_infix:-}b${build_number}
echo Running jlink....
[ -d "$IMAGES_DIR"/"$__root_dir" ] && rm -rf "${IMAGES_DIR:?}"/"$__root_dir"
$JSDK/bin/jlink \
--module-path "$__modules_path" --no-man-pages --compress=2 \
--generate-cds-archive --add-modules "$__modules" --output "$IMAGES_DIR"/"$__root_dir"
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$IMAGES_DIR"/"$__root_dir"/release
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' "$IMAGES_DIR"/"$__root_dir"/release > release
mv release "$IMAGES_DIR"/"$__root_dir"/release
cp $IMAGES_DIR/jdk/lib/src.zip "$IMAGES_DIR"/"$__root_dir"/lib
cp $IMAGES_DIR/jdk/lib/server/*.jsa "$IMAGES_DIR"/"$__root_dir"/lib/server
copy_jmods "$__modules" "$__modules_path" "$IMAGES_DIR"/"$__root_dir"/jmods
zip_native_debug_symbols $IMAGES_DIR/jdk "${JBR}_diz"
fi
# jmod does not preserve file permissions (JDK-8173610)
[ -f "$IMAGES_DIR"/"$__root_dir"/lib/jcef_helper ] && chmod a+x "$IMAGES_DIR"/"$__root_dir"/lib/jcef_helper
echo Creating "$JBR".tar.gz ...
(cd "$IMAGES_DIR" &&
find "$__root_dir" -print0 | LC_ALL=C sort -z | \
tar $REPRODUCIBLE_TAR_OPTS \
--no-recursion --null -T - -cf "$JBR".tar) || do_exit $?
mv "$IMAGES_DIR"/"$JBR".tar ./"$JBR".tar
[ -f "$JBR".tar.gz ] && rm "$JBR.tar.gz"
touch -c -d "@$SOURCE_DATE_EPOCH" "$JBR".tar
gzip "$JBR".tar || do_exit $?
rm -rf "${IMAGES_DIR:?}"/"$__root_dir"
}
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=linux-aarch64-server-release
jbr_name_postfix=""
case "$bundle_type" in
"jcef")
do_reset_changes=1
jbr_name_postfix="_${bundle_type}"
do_maketest=1
;;
"nomod" | "")
bundle_type=""
;;
"nomodft" | "")
jbr_name_postfix="_ft"
;;
"fd")
do_reset_changes=1
jbr_name_postfix="_${bundle_type}"
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=linux-aarch64-server-fastdebug
;;
esac
if [ -z "${INC_BUILD:-}" ]; then
do_configure || do_exit $?
make clean CONF=$RELEASE_NAME || do_exit $?
fi
make images CONF=$RELEASE_NAME || do_exit $?
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk
JSDK_MODS_DIR=$IMAGES_DIR/jmods
JBRSDK_BUNDLE=jbrsdk
echo Fixing permissions
chmod -R a+r $JSDK
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module_aarch64.patch || do_exit $?
update_jsdk_mods $JSDK $JCEF_PATH/jmods $JSDK/jmods $JSDK_MODS_DIR || do_exit $?
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed
cat $JCEF_PATH/jcef.version >> $JSDK/release
fi
# create runtime image bundle
modules=$(xargs < jb/project/tools/common/modules.list | sed s/" "//g) || do_exit $?
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
# create sdk image bundle
modules=$(cat $JSDK/release | grep MODULES | sed s/MODULES=//g | sed s/' '/','/g | sed s/\"//g | sed s/\\n//g) || do_exit $?
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
fi
create_image_bundle "$JBRSDK_BUNDLE${jbr_name_postfix}" $JBRSDK_BUNDLE $JSDK_MODS_DIR "$modules" || do_exit $?
if [ $do_maketest -eq 1 ]; then
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-linux-${libc_type_suffix}test-aarch64-b${build_number}
echo Creating "$JBRSDK_TEST" ...
[ $do_reset_changes -eq 1 ] && git checkout HEAD jb/project/tools/common/modules.list src/java.desktop/share/classes/module-info.java
make test-image jbr-api CONF=$RELEASE_NAME JBR_API_JBR_VERSION=TEST || do_exit $?
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test"
tar -pcf "$JBRSDK_TEST".tar -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
[ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz"
gzip "$JBRSDK_TEST".tar || do_exit $?
fi
do_exit 0

View File

@@ -1,172 +0,0 @@
#!/bin/bash
set -euo pipefail
set -x
# The following parameters must be specified:
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built;possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# This script makes test-image along with JDK images when bundle_type is set to "jcef".
# If the character 't' is added at the end of bundle_type then it also makes test-image along with JDK images.
#
# Environment variables:
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument
# to configure
# By default JDK_BUILD_NUMBER is set zero
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_linux_x64
source jb/project/tools/common/scripts/common.sh
JCEF_PATH=${JCEF_PATH:=./jcef_linux_x64}
function do_configure {
sh configure \
$WITH_DEBUG_LEVEL \
--with-vendor-name="$VENDOR_NAME" \
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
--with-jvm-features=shenandoahgc \
--with-version-pre= \
--with-version-build="$JDK_BUILD_NUMBER" \
--with-version-opt=b"$build_number" \
--with-boot-jdk="$BOOT_JDK" \
--enable-cds=yes \
$STATIC_CONF_ARGS \
$REPRODUCIBLE_BUILD_OPTS \
$WITH_ZIPPED_NATIVE_DEBUG_SYMBOLS \
$WITH_BUNDLED_FREETYPE \
|| do_exit $?
}
function is_musl {
libc=$(ldd /bin/ls | grep 'musl' | head -1 | cut -d ' ' -f1)
if [ -z $libc ]; then
# This is not Musl, return 1 == false
return 1
fi
return 0
}
function create_image_bundle {
__bundle_name=$1
__arch_name=$2
__modules_path=$3
__modules=$4
libc_type_suffix=''
fastdebug_infix=''
if is_musl; then libc_type_suffix='musl-' ; fi
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
JBR=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}x64-${fastdebug_infix}b${build_number}
__root_dir=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}x64-${fastdebug_infix:-}b${build_number}
echo Running jlink....
[ -d "$IMAGES_DIR"/"$__root_dir" ] && rm -rf "${IMAGES_DIR:?}"/"$__root_dir"
$JSDK/bin/jlink \
--module-path "$__modules_path" --no-man-pages --compress=2 \
--generate-cds-archive --add-modules "$__modules" --output "$IMAGES_DIR"/"$__root_dir"
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$IMAGES_DIR"/"$__root_dir"/release
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' "$IMAGES_DIR"/"$__root_dir"/release > release
mv release "$IMAGES_DIR"/"$__root_dir"/release
cp $IMAGES_DIR/jdk/lib/src.zip "$IMAGES_DIR"/"$__root_dir"/lib
cp $IMAGES_DIR/jdk/lib/server/*.jsa "$IMAGES_DIR"/"$__root_dir"/lib/server
copy_jmods "$__modules" "$__modules_path" "$IMAGES_DIR"/"$__root_dir"/jmods
zip_native_debug_symbols $IMAGES_DIR/jdk "${JBR}_diz"
fi
# jmod does not preserve file permissions (JDK-8173610)
[ -f "$IMAGES_DIR"/"$__root_dir"/lib/jcef_helper ] && chmod a+x "$IMAGES_DIR"/"$__root_dir"/lib/jcef_helper
echo Creating "$JBR".tar.gz ...
(cd "$IMAGES_DIR" &&
find "$__root_dir" -print0 | LC_ALL=C sort -z | \
tar $REPRODUCIBLE_TAR_OPTS \
--no-recursion --null -T - -cf "$JBR".tar) || do_exit $?
mv "$IMAGES_DIR"/"$JBR".tar ./"$JBR".tar
[ -f "$JBR".tar.gz ] && rm "$JBR.tar.gz"
touch -c -d "@$SOURCE_DATE_EPOCH" "$JBR".tar
gzip "$JBR".tar || do_exit $?
rm -rf "${IMAGES_DIR:?}"/"$__root_dir"
}
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=linux-x86_64-server-release
jbr_name_postfix=""
case "$bundle_type" in
"jcef")
do_reset_changes=1
jbr_name_postfix="_${bundle_type}"
jbrsdk_name_postfix="_${bundle_type}"
do_maketest=1
;;
"nomod" | "")
bundle_type=""
jbrsdk_name_postfix="_${bundle_type}"
;;
"nomodft" | "")
jbr_name_postfix="_ft"
jbrsdk_name_postfix="_ft"
;;
"fd")
do_reset_changes=1
jbr_name_postfix="_${bundle_type}"
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=linux-x86_64-server-fastdebug
;;
esac
if [ -z "${INC_BUILD:-}" ]; then
do_configure || do_exit $?
make clean CONF=$RELEASE_NAME || do_exit $?
fi
make images CONF=$RELEASE_NAME || do_exit $?
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk
JSDK_MODS_DIR=$IMAGES_DIR/jmods
JBRSDK_BUNDLE=jbrsdk
echo Fixing permissions
chmod -R a+r $JSDK
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
update_jsdk_mods $JSDK $JCEF_PATH/jmods $JSDK/jmods $JSDK_MODS_DIR || do_exit $?
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed
cat $JCEF_PATH/jcef.version >> $JSDK/release
fi
# create runtime image bundle
modules=$(xargs < jb/project/tools/common/modules.list | sed s/" "//g) || do_exit $?
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
# create sdk image bundle
modules=$(cat $JSDK/release | grep MODULES | sed s/MODULES=//g | sed s/' '/','/g | sed s/\"//g | sed s/\\n//g) || do_exit $?
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
fi
create_image_bundle "$JBRSDK_BUNDLE${jbr_name_postfix}" $JBRSDK_BUNDLE $JSDK_MODS_DIR "$modules" || do_exit $?
if [ $do_maketest -eq 1 ]; then
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-linux-${libc_type_suffix}test-x64-b${build_number}
echo Creating "$JBRSDK_TEST" ...
[ $do_reset_changes -eq 1 ] && git checkout HEAD jb/project/tools/common/modules.list src/java.desktop/share/classes/module-info.java
make test-image jbr-api CONF=$RELEASE_NAME JBR_API_JBR_VERSION=TEST || do_exit $?
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test"
tar -pcf "$JBRSDK_TEST".tar -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
[ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz"
gzip "$JBRSDK_TEST".tar || do_exit $?
fi
do_exit 0

View File

@@ -1,145 +0,0 @@
#!/bin/bash
set -euo pipefail
set -x
# The following parameters must be specified:
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built;possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
source jb/project/tools/common/scripts/common.sh
function do_configure {
linux32 bash configure \
$WITH_DEBUG_LEVEL \
--with-vendor-name="$VENDOR_NAME" \
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
--with-jvm-features=shenandoahgc \
--with-version-pre= \
--with-version-build="$JDK_BUILD_NUMBER" \
--with-version-opt=b"$build_number" \
--with-boot-jdk="$BOOT_JDK" \
$STATIC_CONF_ARGS \
--enable-cds=yes \
$REPRODUCIBLE_BUILD_OPTS \
$WITH_ZIPPED_NATIVE_DEBUG_SYMBOLS \
|| do_exit $?
}
function is_musl {
libc=$(ldd /bin/ls | grep 'musl' | head -1 | cut -d ' ' -f1)
if [ -z $libc ]; then
# This is not Musl, return 1 == false
return 1
fi
return 0
}
function create_image_bundle {
__bundle_name=$1
__arch_name=$2
__modules_path=$3
__modules=$4
libc_type_suffix=''
fastdebug_infix=''
if is_musl; then libc_type_suffix='musl-' ; fi
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
JBR=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}x86-${fastdebug_infix}b${build_number}
__root_dir=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}x86-${fastdebug_infix:-}b${build_number}
echo Running jlink....
[ -d "$IMAGES_DIR"/"$__root_dir" ] && rm -rf "${IMAGES_DIR:?}"/"$__root_dir"
$JSDK/bin/jlink \
--module-path "$__modules_path" --no-man-pages --compress=2 \
--generate-cds-archive --add-modules "$__modules" --output "$IMAGES_DIR"/"$__root_dir"
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$IMAGES_DIR"/"$__root_dir"/release
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' "$IMAGES_DIR"/"$__root_dir"/release > release
mv release "$IMAGES_DIR"/"$__root_dir"/release
cp $IMAGES_DIR/jdk/lib/src.zip "$IMAGES_DIR"/"$__root_dir"/lib
cp $IMAGES_DIR/jdk/lib/server/*.jsa "$IMAGES_DIR"/"$__root_dir"/lib/server
copy_jmods "$__modules" "$__modules_path" "$IMAGES_DIR"/"$__root_dir"/jmods
zip_native_debug_symbols $IMAGES_DIR/jdk "${JBR}_diz"
fi
# jmod does not preserve file permissions (JDK-8173610)
[ -f "$IMAGES_DIR"/"$__root_dir"/lib/jcef_helper ] && chmod a+x "$IMAGES_DIR"/"$__root_dir"/lib/jcef_helper
echo Creating "$JBR".tar.gz ...
(cd "$IMAGES_DIR" &&
find "$__root_dir" -print0 | LC_ALL=C sort -z | \
tar $REPRODUCIBLE_TAR_OPTS \
--no-recursion --null -T - -cf "$JBR".tar) || do_exit $?
mv "$IMAGES_DIR"/"$JBR".tar ./"$JBR".tar
[ -f "$JBR".tar.gz ] && rm "$JBR.tar.gz"
touch -c -d "@$SOURCE_DATE_EPOCH" "$JBR".tar
gzip "$JBR".tar || do_exit $?
rm -rf "${IMAGES_DIR:?}"/"$__root_dir"
}
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=linux-x86-server-release
case "$bundle_type" in
"jcef")
echo "not implemented" && do_exit 1
;;
"nomod" | "")
bundle_type=""
;;
"fd")
do_reset_changes=1
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=linux-x86-server-fastdebug
;;
esac
if [ -z "${INC_BUILD:-}" ]; then
do_configure || do_exit $?
make clean CONF=$RELEASE_NAME || do_exit $?
fi
make images CONF=$RELEASE_NAME || do_exit $?
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk
JSDK_MODS_DIR=$IMAGES_DIR/jmods
JBRSDK_BUNDLE=jbrsdk
echo Fixing permissions
chmod -R a+r $JSDK
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
jbr_name_postfix="_${bundle_type}"
else
jbr_name_postfix=""
fi
# create runtime image bundle
modules=$(grep -v "jdk.internal.vm" jb/project/tools/common/modules.list | xargs | sed s/" "//g) || do_exit $?
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
# create sdk image bundle
modules=$(cat $JSDK/release | grep MODULES | sed s/MODULES=//g | sed s/' '/','/g | sed s/\"//g | sed s/\\n//g) || do_exit $?
create_image_bundle "$JBRSDK_BUNDLE${jbr_name_postfix}" $JBRSDK_BUNDLE $JSDK_MODS_DIR "$modules" || do_exit $?
if [ $do_maketest -eq 1 ]; then
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-linux-${libc_type_suffix}test-x86-b${build_number}
echo Creating "$JBRSDK_TEST" ...
[ $do_reset_changes -eq 1 ] && git checkout HEAD jb/project/tools/common/modules.list src/java.desktop/share/classes/module-info.java
make test-image jbr-api CONF=$RELEASE_NAME JBR_API_JBR_VERSION=TEST || do_exit $?
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test"
tar -pcf "$JBRSDK_TEST".tar -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
[ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz"
gzip "$JBRSDK_TEST".tar || do_exit $?
fi
do_exit 0

View File

@@ -1,47 +0,0 @@
#!/bin/bash
SCRIPT_DIR="$(cd "$(dirname "$0")" >/dev/null && pwd)"
source "$SCRIPT_DIR/jetsign-common.sh" || exit 1
function isMacOsBinary() {
file "$1" | grep -q 'Mach-O'
}
function isSigned() {
codesign --verify "$1" >/dev/null 2>&1 && ! grep -q Signature=adhoc < <(codesign --display --verbose "$1" 2>&1)
}
# last argument is a path to be signed
pathToBeSigned="$(pwd)/${*: -1}"
jetSignArgs=("${@:1:$#-1}")
if [[ ! -f "$pathToBeSigned" ]]; then
echo "$pathToBeSigned is missing or not a file"
exit 1
elif isSigned "$pathToBeSigned" && ! isForced "${jetSignArgs[@]}" ; then
echo "Already signed: $pathToBeSigned"
elif [[ "$JETSIGN_CLIENT" == "null" ]]; then
echo "JetSign client is missing, cannot proceed with signing"
exit 1
elif ! isMacOsBinary "$pathToBeSigned" && [[ "$pathToBeSigned" != *.sit ]] && [[ "$pathToBeSigned" != *.tar.gz ]]; then
echo "$pathToBeSigned won't be signed, assumed not to be a macOS executable"
else
if isMacOsBinary "$pathToBeSigned" && ! isSigned "$pathToBeSigned" ; then
echo "Unsigned macOS binary: $pathToBeSigned"
fi
workDir=$(dirname "$pathToBeSigned")
pathSigned="$workDir/signed/${pathToBeSigned##*/}"
jetSignExtensions=$(jetSignExtensions "${jetSignArgs[@]}")
contentType=$(jetSignContentType "$pathToBeSigned")
(
cd "$workDir" || exit 1
"$JETSIGN_CLIENT" -log-format text -denoted-content-type "$contentType" -extensions "$jetSignExtensions" "$pathToBeSigned"
# SRE-1223 (Codesign removes execute bits in executable files) workaround
chmod "$(stat -f %A "$pathToBeSigned")" "$pathSigned"
if isMacOsBinary "$pathSigned"; then
isSigned "$pathSigned"
fi
rm "$pathToBeSigned"
mv "$pathSigned" "$pathToBeSigned"
rm -rf "$workDir/signed"
)
fi

View File

@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
<key>com.apple.security.cs.disable-executable-page-protection</key>
<true/>
</dict>
</plist>

View File

@@ -1,63 +0,0 @@
#!/bin/bash
set -euo pipefail
function isForced() {
for arg in "$@"; do
if [[ "$arg" == --force ]]; then
return 0
fi
done
return 1
}
function jetSignExtensions() {
args=("$@")
((lastElementIndex=${#args[@]}-1))
for index in "${!args[@]}"; do
arg=${args[$index]}
case "$arg" in
--sign | -s)
echo -n 'mac_codesign_identity='
continue
;;
--entitlements)
echo -n 'mac_codesign_entitlements='
continue
;;
--options=runtime)
echo -n 'mac_codesign_options=runtime'
;;
--force)
echo -n 'mac_codesign_force=true'
;;
--timestamp | --verbose | -v)
continue
;;
*)
echo -n "$arg"
;;
esac
if [[ $index != "$lastElementIndex" ]]; then
echo -n ","
fi
done
}
# See jetbrains.sign.util.FileUtil.contentType
function jetSignContentType() {
case "${1##*/}" in
*.sit)
echo -n 'application/x-mac-app-zip'
;;
*.tar.gz)
echo -n 'application/x-mac-app-targz'
;;
*.pkg)
echo -n 'application/x-mac-pkg'
;;
*)
echo -n 'application/x-mac-app-bin'
;;
esac
}

View File

@@ -1,169 +0,0 @@
#!/bin/bash
set -euo pipefail
set -x
# The following parameters must be specified:
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built;possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# This script makes test-image along with JDK images when bundle_type is set to "jcef".
# If the character 't' is added at the end of bundle_type then it also makes test-image along with JDK images.
#
# Environment variables:
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument
# to configure
# By default JDK_BUILD_NUMBER is set zero
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_mac
source jb/project/tools/common/scripts/common.sh
JCEF_PATH=${JCEF_PATH:=./jcef_mac}
BOOT_JDK=${BOOT_JDK:=$(/usr/libexec/java_home -v 17)}
function do_configure {
sh configure \
$WITH_DEBUG_LEVEL \
--with-vendor-name="$VENDOR_NAME" \
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
--with-macosx-bundle-name-base=${VENDOR_VERSION_STRING} \
--with-macosx-bundle-id-base="com.jetbrains.jbr" \
--with-jvm-features=shenandoahgc \
--with-version-pre= \
--with-version-build="$JDK_BUILD_NUMBER" \
--with-version-opt=b"$build_number" \
--with-boot-jdk="$BOOT_JDK" \
--enable-cds=yes \
$STATIC_CONF_ARGS \
$REPRODUCIBLE_BUILD_OPTS \
$WITH_ZIPPED_NATIVE_DEBUG_SYMBOLS \
|| do_exit $?
}
function create_image_bundle {
__bundle_name=$1
__arch_name=$2
__modules_path=$3
__modules=$4
fastdebug_infix=''
tmp=.bundle.$$.tmp
mkdir "$tmp" || do_exit $?
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
JBR=${__bundle_name}-${JBSDK_VERSION}-osx-${architecture}-${fastdebug_infix:-}b${build_number}
__root_dir=${__bundle_name}-${JBSDK_VERSION}-osx-${architecture}-${fastdebug_infix:-}b${build_number}
JRE_CONTENTS=$tmp/$__root_dir/Contents
mkdir -p "$JRE_CONTENTS" || do_exit $?
echo Running jlink...
"$JSDK"/bin/jlink \
--module-path "$__modules_path" --no-man-pages --compress=2 \
--generate-cds-archive --add-modules "$__modules" --output "$JRE_CONTENTS/Home" || do_exit $?
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$JRE_CONTENTS/Home/release"
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' $JRE_CONTENTS/Home/release > release
mv release $JRE_CONTENTS/Home/release
cp $IMAGES_DIR/jdk-bundle/jdk-$JBSDK_VERSION.jdk/Contents/Home/lib/src.zip $JRE_CONTENTS/Home/lib
cp $IMAGES_DIR/jdk-bundle/jdk-$JBSDK_VERSION.jdk/Contents/Home/lib/server/*.jsa $JRE_CONTENTS/Home/lib/server
copy_jmods "$__modules" "$__modules_path" "$JRE_CONTENTS"/Home/jmods
zip_native_debug_symbols $IMAGES_DIR/jdk-bundle/jdk-$JBSDK_VERSION.jdk "${JBR}_diz"
fi
if [ "$bundle_type" == "jcef" ]; then
cat $JCEF_PATH/jcef.version >> "$JRE_CONTENTS/Home/release"
fi
cp -R "$JSDK"/../MacOS "$JRE_CONTENTS"
cp "$JSDK"/../Info.plist "$JRE_CONTENTS"
[ -n "$bundle_type" ] && (cp -a $JCEF_PATH/Frameworks "$JRE_CONTENTS" || do_exit $?)
echo Creating "$JBR".tar.gz ...
# Normalize timestamp
#find "$tmp"/"$__root_dir" -print0 | xargs -0 touch -c -h -t "$TOUCH_TIME"
(cd "$tmp" &&
find "$__root_dir" -print0 | LC_ALL=C sort -z | \
COPYFILE_DISABLE=1 tar $REPRODUCIBLE_TAR_OPTS --no-recursion --null -T - \
-czf "$JBR".tar.gz --exclude='*.dSYM' --exclude='man') || do_exit $?
mv "$tmp"/"$JBR".tar.gz "$JBR".tar.gz
rm -rf "$tmp"
}
WITH_DEBUG_LEVEL="--with-debug-level=release"
CONF_ARCHITECTURE=x86_64
if [[ "${architecture}" == *aarch64* ]]; then
CONF_ARCHITECTURE=aarch64
fi
RELEASE_NAME=macosx-${CONF_ARCHITECTURE}-server-release
case "$bundle_type" in
"jcef")
do_reset_changes=1
do_maketest=1
;;
"nomod" | "")
bundle_type=""
;;
"fd")
do_reset_changes=1
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=macosx-${CONF_ARCHITECTURE}-server-fastdebug
JBSDK=macosx-${architecture}-server-release
;;
esac
if [ -z "${INC_BUILD:-}" ]; then
do_configure || do_exit $?
make clean CONF=$RELEASE_NAME || do_exit $?
fi
make images CONF=$RELEASE_NAME || do_exit $?
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk-bundle/jdk-$JBSDK_VERSION.jdk/Contents/Home
JSDK_MODS_DIR=$IMAGES_DIR/jmods
JBRSDK_BUNDLE=jbrsdk
# test/jdk/jb/java/awt/Focus/FullScreenFocusStealing.java test/jdk/java/awt/color/ICC_ColorSpace/MTTransformReplacedProfile.java test/jdk/java/awt/datatransfer/DataFlavor/DataFlavorRemoteTest.java test/jdk/java/awt/Robot/NonEmptyErrorStream.java
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
update_jsdk_mods "$JSDK" "$JCEF_PATH"/jmods "$JSDK"/jmods "$JSDK_MODS_DIR" || do_exit $?
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed
jbr_name_postfix="_${bundle_type}"
else
jbr_name_postfix=""
fi
# create runtime image bundle
modules=$(xargs < jb/project/tools/common/modules.list | sed s/" "//g) || do_exit $?
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
# create sdk image bundle
modules=$(cat "$JSDK"/release | grep MODULES | sed s/MODULES=//g | sed s/' '/','/g | sed s/\"//g | sed s/\\n//g) || do_exit $?
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
fi
create_image_bundle "$JBRSDK_BUNDLE${jbr_name_postfix}" "$JBRSDK_BUNDLE" "$JSDK_MODS_DIR" "$modules" || do_exit $?
if [ $do_maketest -eq 1 ]; then
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-osx-test-${architecture}-b${build_number}
echo Creating "$JBRSDK_TEST" ...
[ $do_reset_changes -eq 1 ] && git checkout HEAD jb/project/tools/common/modules.list src/java.desktop/share/classes/module-info.java
make test-image jbr-api CONF=$RELEASE_NAME JBR_API_JBR_VERSION=TEST || do_exit $?
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test"
[ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz"
COPYFILE_DISABLE=1 tar -pczf "$JBRSDK_TEST".tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
fi
do_exit 0

View File

@@ -1,40 +0,0 @@
#!/bin/bash
#immediately exit script with an error if a command fails
set -euo pipefail
[[ "${SCRIPT_VERBOSE:-}" == "1" ]] && set -x
APP_PATH=$1
if [[ -z "$APP_PATH" ]]; then
echo "Usage: $0 AppPath"
exit 1
fi
if [[ ! -f "$APP_PATH" ]]; then
echo "AppName '$APP_PATH' does not exist or not a file"
exit 1
fi
function log() {
echo "$(date '+[%H:%M:%S]') $*"
}
# check required parameters
: "${APPLE_ISSUER_ID}"
: "${APPLE_KEY_ID}"
: "${APPLE_PRIVATE_KEY}"
# shellcheck disable=SC2064
trap "rm -f \"$PWD/tmp_key\"" INT EXIT RETURN
echo -n "${APPLE_PRIVATE_KEY}" > tmp_key
log "Notarizing $APP_PATH..."
xcrun notarytool submit --key tmp_key --key-id "${APPLE_KEY_ID}" --issuer "${APPLE_ISSUER_ID}" "$APP_PATH" 2>&1 | tee "notarytool.submit.out"
REQUEST_ID="$(grep -e " id: " "notarytool.submit.out" | grep -oE '([0-9a-f-]{36})'| head -n1)"
xcrun notarytool wait "$REQUEST_ID" --key tmp_key --key-id "${APPLE_KEY_ID}" --issuer "${APPLE_ISSUER_ID}" --timeout 6h ||:
xcrun notarytool log "$REQUEST_ID" --key tmp_key --key-id "${APPLE_KEY_ID}" --issuer "${APPLE_ISSUER_ID}" developer_log.json ||:
xcrun notarytool info "$REQUEST_ID" --key tmp_key --key-id "${APPLE_KEY_ID}" --issuer "${APPLE_ISSUER_ID}"
log "Notarizing finished"

View File

@@ -1,41 +0,0 @@
#!/bin/bash
SCRIPT_DIR="$(cd "$(dirname "$0")" >/dev/null && pwd)"
source "$SCRIPT_DIR/jetsign-common.sh" || exit 1
function isSigned() {
pkgutil --check-signature "$1" >/dev/null 2>&1 && grep -q "signed by a developer certificate" < <(pkgutil --check-signature "$1" 2>&1)
}
# second last argument is a path to be signed
pathToBeSigned="$(pwd)/${*:(-2):1}"
# last argument is a path to signed file
pathOut="$(pwd)/${*:(-1)}"
jetSignArgs=("${@:1:$#-2}")
if [[ ! -f "$pathToBeSigned" ]]; then
echo "$pathToBeSigned is missing or not a file"
exit 1
elif isSigned "$pathToBeSigned" && ! isForced "${jetSignArgs[@]}" ; then
echo "Already signed: $pathToBeSigned"
elif [[ "$JETSIGN_CLIENT" == "null" ]]; then
echo "JetSign client is missing, cannot proceed with signing"
exit 1
elif [[ "$pathToBeSigned" != *.pkg ]]; then
echo "$pathToBeSigned won't be signed, assumed not to be a macOS package"
else
if ! isSigned "$pathToBeSigned" ; then
echo "Unsigned macOS package: $pathToBeSigned"
fi
workDir=$(dirname "$pathToBeSigned")
pathSigned="$workDir/signed/${pathToBeSigned##*/}"
jetSignExtensions=$(jetSignExtensions "${jetSignArgs[@]}")
contentType=$(jetSignContentType "$pathToBeSigned")
(
cd "$workDir" || exit 1
"$JETSIGN_CLIENT" -log-format text -denoted-content-type "$contentType" -extensions "$jetSignExtensions" "$pathToBeSigned"
isSigned "$pathSigned"
rm -f "$pathOut"
mv "$pathSigned" "$pathOut"
rm -rf "$workDir/signed"
)
fi

View File

@@ -1,162 +0,0 @@
#!/bin/bash
#immediately exit script with an error if a command fails
set -euo pipefail
[[ "${SCRIPT_VERBOSE:-}" == "1" ]] && set -x
if [[ $# -lt 5 ]]; then
echo "Usage: $0 AppDirectory AppName BundleId CertificateID InstallerCertificateID"
exit 1
fi
APPLICATION_PATH=$1
PKG_NAME=$2
BUNDLE_ID=$3
JB_DEVELOPER_CERT=$4
JB_INSTALLER_CERT=$5
SCRIPT_DIR="$(cd "$(dirname "$0")" >/dev/null && pwd)"
# Use JetBrains sign utility if it's available
if [[ "${JETSIGN_CLIENT:=}" == "null" ]] || [[ "$JETSIGN_CLIENT" == "" ]]; then
JB_SIGN=false
SIGN_UTILITY="codesign"
PRODUCTSIGN_UTILITY="productsign"
else
JB_SIGN=true
SIGN_UTILITY="$SCRIPT_DIR/codesign.sh"
PRODUCTSIGN_UTILITY="$SCRIPT_DIR/productsign.sh"
fi
if [[ ! -d "$APPLICATION_PATH" ]]; then
echo "AppDirectory '$APPLICATION_PATH' does not exist or not a directory"
exit 1
fi
function log() {
echo "$(date '+[%H:%M:%S]') $*"
}
# Cleanup files left from previous sign attempt (if any)
find "$APPLICATION_PATH" -name '*.cstemp' -exec rm '{}' \;
log "Signing libraries and executables..."
# -perm +111 searches for executables
for f in \
"Contents/Home/lib" "Contents/MacOS" \
"Contents/Home/Frameworks" \
"Contents/Frameworks"; do
if [ -d "$APPLICATION_PATH/$f" ]; then
find "$APPLICATION_PATH/$f" \
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -name "*.tbd" -o -name "*.node" -o -perm +111 \) \
-exec "$SIGN_UTILITY" --timestamp \
-v -s "$JB_DEVELOPER_CERT" --options=runtime --force \
--entitlements "$SCRIPT_DIR/entitlements.xml" {} \;
fi
done
log "Signing libraries in jars in $APPLICATION_PATH"
# todo: add set -euo pipefail; into the inner sh -c
# `-e` prevents `grep -q && printf` loginc
# with `-o pipefail` there's no input for 'while' loop
find "$APPLICATION_PATH" -name '*.jar' \
-exec sh -c "set -u; unzip -l \"\$0\" | grep -q -e '\.dylib\$' -e '\.jnilib\$' -e '\.so\$' -e '\.tbd\$' -e '^jattach\$' && printf \"\$0\0\" " {} \; |
while IFS= read -r -d $'\0' file; do
log "Processing libraries in $file"
rm -rf jarfolder jar.jar
mkdir jarfolder
filename="${file##*/}"
log "Filename: $filename"
cp "$file" jarfolder && (cd jarfolder && jar xf "$filename" && rm "$filename")
find jarfolder \
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -name "*.tbd" -o -name "jattach" \) \
-exec "$SIGN_UTILITY" --timestamp \
--force \
-v -s "$JB_DEVELOPER_CERT" --options=runtime \
--entitlements "$SCRIPT_DIR/entitlements.xml" {} \;
(cd jarfolder; zip -q -r -o -0 ../jar.jar .)
mv jar.jar "$file"
done
rm -rf jarfolder jar.jar
log "Signing other files..."
# shellcheck disable=SC2043
for f in \
"Contents/Home/bin"; do
if [ -d "$APPLICATION_PATH/$f" ]; then
find "$APPLICATION_PATH/$f" \
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -name "*.tbd" -o -perm +111 \) \
-exec "$SIGN_UTILITY" --timestamp \
-v -s "$JB_DEVELOPER_CERT" --options=runtime --force \
--entitlements "$SCRIPT_DIR/entitlements.xml" {} \;
fi
done
log "Signing whole frameworks..."
# shellcheck disable=SC2043
if [ "$JB_SIGN" = true ]; then for f in \
"Contents/Frameworks/cef_server.app/Contents/Frameworks" "Contents/Home/Frameworks" "Contents/Frameworks"; do
if [ -d "$APPLICATION_PATH/$f" ]; then
find "$APPLICATION_PATH/$f" \( -name '*.framework' -o -name '*.app' \) -maxdepth 1 | while read -r line
do
log "Signing '$line':"
tar -pczf tmp-to-sign.tar.gz -C "$(dirname "$line")" "$(basename "$line")"
"$SIGN_UTILITY" --timestamp \
-v -s "$JB_DEVELOPER_CERT" --options=runtime \
--force \
--entitlements "$SCRIPT_DIR/entitlements.xml" tmp-to-sign.tar.gz
rm -rf "$line"
tar -xzf tmp-to-sign.tar.gz --directory "$(dirname "$line")"
rm -f tmp-to-sign.tar.gz
done
fi
done; fi
log "Checking framework signatures..."
for f in \
"Contents/Home/Frameworks" "Contents/Frameworks"; do
if [ -d "$APPLICATION_PATH/$f" ]; then
find "$APPLICATION_PATH/$f" -name '*.framework' -maxdepth 1 | while read -r line
do
log "Checking '$line':"
codesign --verify --deep --strict --verbose=4 "$line"
done
fi
done
log "Signing whole app..."
if [ "$JB_SIGN" = true ]; then
tar -pczf tmp-to-sign.tar.gz --exclude='man' -C "$(dirname "$APPLICATION_PATH")" "$(basename "$APPLICATION_PATH")"
"$SIGN_UTILITY" --timestamp \
-v -s "$JB_DEVELOPER_CERT" --options=runtime \
--force \
--entitlements "$SCRIPT_DIR/entitlements.xml" tmp-to-sign.tar.gz
rm -rf "$APPLICATION_PATH"
tar -xzf tmp-to-sign.tar.gz --directory "$(dirname "$APPLICATION_PATH")"
rm -f tmp-to-sign.tar.gz
else
"$SIGN_UTILITY" --timestamp \
-v -s "$JB_DEVELOPER_CERT" --options=runtime \
--force \
--entitlements "$SCRIPT_DIR/entitlements.xml" "$APPLICATION_PATH"
fi
BUILD_NAME="$(basename "$APPLICATION_PATH")"
log "Creating $PKG_NAME..."
rm -rf "$PKG_NAME"
mkdir -p unsigned
pkgbuild --identifier $BUNDLE_ID --root $APPLICATION_PATH \
--install-location /Library/Java/JavaVirtualMachines/${BUILD_NAME} unsigned/${PKG_NAME}
log "Signing $PKG_NAME..."
"$PRODUCTSIGN_UTILITY" --timestamp --sign "$JB_INSTALLER_CERT" unsigned/${PKG_NAME} ${PKG_NAME}
log "Verifying java is not broken"
find "$APPLICATION_PATH" \
-type f -name 'java' -perm +111 -exec {} -version \;

View File

@@ -1,136 +0,0 @@
#!/bin/bash
#immediately exit script with an error if a command fails
set -euo pipefail
[[ "${SCRIPT_VERBOSE:-}" == "1" ]] && set -x
export COPY_EXTENDED_ATTRIBUTES_DISABLE=true
export COPYFILE_DISABLE=true
INPUT_FILE=$1
EXPLODED=$2.exploded
BACKUP_JMODS=$2.backup
USERNAME=$3
PASSWORD=$4
CODESIGN_STRING=$5
JB_INSTALLER_CERT=$6
NOTARIZE=$7
BUNDLE_ID=$8
SCRIPT_DIR="$(cd "$(dirname "$0")" >/dev/null && pwd)"
function log() {
echo "$(date '+[%H:%M:%S]') $*"
}
log "Deleting $EXPLODED ..."
if test -d "$EXPLODED"; then
find "$EXPLODED" -mindepth 1 -maxdepth 1 -exec chmod -R u+wx '{}' \;
fi
rm -rf "$EXPLODED"
mkdir "$EXPLODED"
rm -rf "$BACKUP_JMODS"
mkdir "$BACKUP_JMODS"
log "Unzipping $INPUT_FILE to $EXPLODED ..."
tar -xzvf "$INPUT_FILE" --directory $EXPLODED
BUILD_NAME="$(ls "$EXPLODED")"
#sed -i '' s/BNDL/APPL/ $EXPLODED/$BUILD_NAME/Contents/Info.plist
rm -f $EXPLODED/$BUILD_NAME/Contents/CodeResources
rm "$INPUT_FILE"
if test -d $EXPLODED/$BUILD_NAME/Contents/Home/jmods; then
mv $EXPLODED/$BUILD_NAME/Contents/Home/jmods $BACKUP_JMODS
fi
log "$INPUT_FILE extracted and removed"
APP_NAME=$(basename "$INPUT_FILE" | awk -F".tar" '{ print $1 }')
PKG_NAME="$APP_NAME.pkg"
APPLICATION_PATH=$EXPLODED/$(ls $EXPLODED)
find "$APPLICATION_PATH/Contents/Home/bin" \
-maxdepth 1 -type f -name '*.jnilib' -print0 |
while IFS= read -r -d $'\0' file; do
if [ -f "$file" ]; then
log "Linking $file"
b="$(basename "$file" .jnilib)"
ln -sf "$b.jnilib" "$(dirname "$file")/$b.dylib"
fi
done
find "$APPLICATION_PATH/Contents/" \
-maxdepth 1 -type f -name '*.txt' -print0 |
while IFS= read -r -d $'\0' file; do
if [ -f "$file" ]; then
log "Moving $file"
mv "$file" "$APPLICATION_PATH/Contents/Resources"
fi
done
non_plist=$(find "$APPLICATION_PATH/Contents/" -maxdepth 1 -type f -and -not -name 'Info.plist' | wc -l)
if [[ $non_plist -gt 0 ]]; then
log "Only Info.plist file is allowed in Contents directory but found $non_plist file(s):"
log "$(find "$APPLICATION_PATH/Contents/" -maxdepth 1 -type f -and -not -name 'Info.plist')"
exit 1
fi
if [[ "${JETSIGN_CLIENT:=}" == "null" ]] || [[ "$JETSIGN_CLIENT" == "" ]]; then
log "Unlocking keychain..."
# Make sure *.p12 is imported into local KeyChain
security unlock-keychain -p "$PASSWORD" "/Users/$USERNAME/Library/Keychains/login.keychain"
fi
attempt=1
limit=3
set +e
while [[ $attempt -le $limit ]]; do
log "Signing (attempt $attempt) $APPLICATION_PATH ..."
"$SCRIPT_DIR/sign.sh" "$APPLICATION_PATH" "$PKG_NAME" "$BUNDLE_ID" "$CODESIGN_STRING" "$JB_INSTALLER_CERT"
ec=$?
if [[ $ec -ne 0 ]]; then
((attempt += 1))
if [ $attempt -eq $limit ]; then
set -e
fi
log "Signing failed, wait for 30 sec and try to sign again"
sleep 30
else
log "Signing done"
codesign -v "$APPLICATION_PATH" -vvvvv
log "Check sign done"
spctl -a -v $APPLICATION_PATH
((attempt += limit))
fi
done
set -e
if [ "$NOTARIZE" = "yes" ]; then
log "Notarizing..."
"$SCRIPT_DIR/notarize.sh" "$PKG_NAME"
log "Stapling..."
xcrun stapler staple "$APPLICATION_PATH" ||:
xcrun stapler staple "$PKG_NAME" ||:
else
log "Notarization disabled"
log "Stapling disabled"
fi
log "Zipping $BUILD_NAME to $INPUT_FILE ..."
(
#cd "$EXPLODED"
#ditto -c -k --sequesterRsrc --keepParent "$BUILD_NAME" "../$INPUT_FILE"
if test -d $BACKUP_JMODS/jmods; then
mv $BACKUP_JMODS/jmods $APPLICATION_PATH/Contents/Home
fi
if [[ "$APPLICATION_PATH" != "$EXPLODED/$BUILD_NAME" ]]; then
mv $APPLICATION_PATH $EXPLODED/$BUILD_NAME
else
echo "No move, source == destination: $APPLICATION_PATH"
fi
tar -pczvf $INPUT_FILE --exclude='man' -C $EXPLODED $BUILD_NAME
log "Finished zipping"
)
rm -rf "$EXPLODED"
log "Done"

View File

@@ -1,30 +0,0 @@
diff --git jb/project/tools/common/modules.list jb/project/tools/common/modules.list
index 522acb7cb43..c40e689d5de 100644
--- jb/project/tools/common/modules.list
+++ jb/project/tools/common/modules.list
@@ -51,4 +51,7 @@ jdk.unsupported.desktop,
jdk.xml.dom,
jdk.zipfs,
jdk.hotspot.agent,
-jdk.jcmd
+jdk.jcmd,
+jcef,
+gluegen.rt,
+jogl.all
diff --git src/java.desktop/share/classes/module-info.java src/java.desktop/share/classes/module-info.java
index 897647ee368..781d1809493 100644
--- src/java.desktop/share/classes/module-info.java
+++ src/java.desktop/share/classes/module-info.java
@@ -116,7 +116,11 @@ module java.desktop {
// see make/GensrcModuleInfo.gmk
exports sun.awt to
jdk.accessibility,
- jdk.unsupported.desktop;
+ jdk.unsupported.desktop,
+ jcef,
+ jogl.all;
+
+ exports java.awt.peer to jcef;
exports java.awt.dnd.peer to jdk.unsupported.desktop;
exports sun.awt.dnd to jdk.unsupported.desktop;

View File

@@ -1,30 +0,0 @@
diff --git jb/project/tools/common/modules.list jb/project/tools/common/modules.list
index 522acb7..c40e689 100644
--- jb/project/tools/common/modules.list
+++ jb/project/tools/common/modules.list
@@ -51,4 +51,7 @@ jdk.unsupported.desktop,
jdk.xml.dom,
jdk.zipfs,
jdk.hotspot.agent,
-jdk.jcmd
+jdk.jcmd,
+jcef,
+gluegen.rt,
+jogl.all
diff --git src/java.desktop/share/classes/module-info.java src/java.desktop/share/classes/module-info.java
index 897647e..781d180 100644
--- src/java.desktop/share/classes/module-info.java
+++ src/java.desktop/share/classes/module-info.java
@@ -116,7 +116,11 @@ module java.desktop {
// see make/GensrcModuleInfo.gmk
exports sun.awt to
jdk.accessibility,
- jdk.unsupported.desktop;
+ jdk.unsupported.desktop,
+ jcef,
+ jogl.all;
+
+ exports java.awt.peer to jcef;
exports java.awt.dnd.peer to jdk.unsupported.desktop;
exports sun.awt.dnd to jdk.unsupported.desktop;

View File

@@ -1,162 +0,0 @@
#!/bin/bash
set -euo pipefail
TC_PRINT=0
# Always print TeamCity service messages if running under TeamCity
[[ -n "${TEAMCITY_VERSION:-}" ]] && TC_PRINT=1
while getopts ":t" o; do
case "${o}" in
t) TC_PRINT=1 ;;
*);;
esac
done
shift $((OPTIND-1))
NEWFILEPATH="$1"
CONFIGID="$2"
BUILDID="$3"
TOKEN="$4"
if [ ! -f "$NEWFILEPATH" ]; then
echo "File not found: $NEWFILEPATH"
exit 1
fi
#
# Get the size of new artifact
#
unameOut="$(uname -s)"
case "${unameOut}" in
Linux*)
NEWFILESIZE=$(stat -c%s "$NEWFILEPATH")
;;
Darwin*)
NEWFILESIZE=$(stat -f%z "$NEWFILEPATH")
;;
CYGWIN*)
NEWFILESIZE=$(stat -c%s "$NEWFILEPATH")
;;
MINGW*)
NEWFILESIZE=$(stat -c%s "$NEWFILEPATH")
;;
*)
echo "Unknown machine: ${unameOut}"
exit 1
esac
FILENAME=$(basename "${NEWFILEPATH}")
#
# Get pattern of artifact name
# Base filename pattern: <BUNDLE_TYPE>-<JDK_VERSION>-<OS>-<ARCH>-b<BUILD>.tar.gz: jbr_dcevm-17.0.2-osx-x64-b1234.tar.gz
# BUNDLE_TYPE: jbr, jbrsdk, jbr_dcevm, jbrsdk_jcef etc.
# OS_ARCH_PATTERN - <os_architecture>: osx-x64, linux-aarch64, linux-musl-x64, windows-x64 etc.
BUNDLE_TYPE=jbrsdk
OS_ARCH_PATTERN=""
FILE_EXTENSION=tar.gz
re='(jbr[a-z_]*).*-[0-9_\.]+-(.+)-b[0-9]+(.+)'
if [[ $FILENAME =~ $re ]]; then
BUNDLE_TYPE=${BASH_REMATCH[1]}
OS_ARCH_PATTERN=${BASH_REMATCH[2]}
FILE_EXTENSION=${BASH_REMATCH[3]}
else
echo "File name $FILENAME does not match regex $re"
exit 1
fi
function test_started_msg() {
if [ $TC_PRINT -eq 1 ]; then
echo "##teamcity[testStarted name='$1']"
fi
}
function test_failed_msg() {
if [ $TC_PRINT -eq 1 ]; then
echo "##teamcity[testFailed name='$1' message='$2']"
fi
}
function test_finished_msg() {
if [ $TC_PRINT -eq 1 ]; then
echo "##teamcity[testFinished name='$1']"
fi
}
test_name="${BUNDLE_TYPE}_${OS_ARCH_PATTERN//\-/_}${FILE_EXTENSION//\./_}"
test_started_msg "$test_name"
echo "BUNDLE_TYPE: $BUNDLE_TYPE"
echo "OS_ARCH_PATTERN: $OS_ARCH_PATTERN"
echo "FILE_EXTENSION: $FILE_EXTENSION"
echo "Size of $FILENAME is $NEWFILESIZE bytes"
#
# Get previous successful build ID
# Example:
# CONFIGID=IntellijCustomJdk_Jdk17_Master_LinuxX64jcef
# BUILDID=12345678
#
# expected return value
# id="123".number="567"
#
CURL_RESPONSE=$(curl -sSL --header "Authorization: Bearer $TOKEN" "https://buildserver.labs.intellij.net/app/rest/builds/?locator=buildType:(id:$CONFIGID),status:success,count:1,finishDate:(build:$BUILDID,condition:before)")
re='id=\"([0-9]+)\".+number=\"([0-9\.]+)\"'
# ID: Previous successful build id
ID=0
if [[ $CURL_RESPONSE =~ $re ]]; then
ID=${BASH_REMATCH[1]}
echo "Previous build ID: $ID"
echo "Previous build number: ${BASH_REMATCH[2]}"
else
msg="ERROR: cannot find previous build"
echo "$msg"
echo "$CURL_RESPONSE"
test_failed_msg "$test_name" "$msg"
test_finished_msg "$test_name"
exit 1
fi
#
# Get artifacts from previous successful build
#
# expected return value
# name="jbrsdk_jcef*.tar.gz size="123'
#
CURL_RESPONSE=$(curl -sSL --header "Authorization: Bearer $TOKEN" "https://buildserver.labs.intellij.net/app/rest/builds/$ID?fields=id,number,artifacts(file(name,size))")
echo "Artifacts of the previous build:"
echo "$CURL_RESPONSE"
# Find binary size (in response) with reg exp
re="name=\"(${BUNDLE_TYPE}[^\"]+${OS_ARCH_PATTERN}[^\"]+${FILE_EXTENSION})\" size=\"([0-9]+)\""
if [[ $CURL_RESPONSE =~ $re ]]; then
prevFileName=${BASH_REMATCH[1]}
echo "Previous artifact name: $prevFileName"
prevFileSize=${BASH_REMATCH[2]}
echo "Previous artifact size: $prevFileSize"
((allowedSize=prevFileSize+prevFileSize/20)) # use 5% threshold
echo "Allowed size: $allowedSize"
if [[ "$NEWFILESIZE" -gt "$allowedSize" ]]; then
msg="ERROR: new size is significantly greater than previous size (need to investigate)"
echo "$msg"
test_failed_msg "$test_name" "$msg"
test_finished_msg "$test_name"
exit 1
else
echo "PASSED"
test_finished_msg "$test_name"
fi
else
msg="ERROR: cannot find string with size in xml response:"
echo "Regex: $re"
echo "$msg"
echo "$CURL_RESPONSE"
test_failed_msg "$test_name" "$msg"
test_finished_msg "$test_name"
exit 1
fi

View File

@@ -1,93 +0,0 @@
#!/bin/bash
set -euo pipefail
set -x
usage ()
{
echo "Usage: perfcmp.sh [options] <test_results_cur> <test_results_ref> <results> <test_prefix> <noHeaders>"
echo "Options:"
echo -e " -h, --help\tdisplay this help"
echo -e " -tc\tprint teacmity statistic"
echo -e "test_results_cur - the file with metrics values for the current measuring"
echo -e "test_results_ref - the file with metrics values for the reference measuring"
echo -e "results - results of comaprison"
echo -e "test_prefix - specifys measuring type, makes sense for enabled -tc, by default no prefixes"
echo -e "noHeaders - by default 1-st line contains headers"
echo -e ""
echo -e "test_results_* files content should be in csv format with header and tab separator:"
echo -e "The 1-st column is the test name"
echo -e "The 2-st column is the test value"
echo -e ""
echo -e "Example:"
echo -e "Test Value"
echo -e "Testname 51.54"
}
while [ -n "$1" ]
do
case "$1" in
-h | --help) usage
exit 1 ;;
-tc) tc=1
shift
break ;;
*) break;;
esac
done
if [[ "$#" < "3" ]]; then
echo "Error: Invalid arguments"
usage
exit 1
fi
curFile=$1
refFile=$2
resFile=$3
testNamePrefix=$4
noHeaders=$5
echo $curFile
echo $refFile
echo $resFile
curValues=`cat "$curFile" | cut -f 2 | tr -d '\t'`
if [ -z $noHeaders ]; then
curValuesHeader=`echo "$curValues" | head -n +1`_cur
header=`cat "$refFile" | head -n +1 | awk -F'\t' -v x=$curValuesHeader '{print " "$1"\t"$2"_ref\t"x"\tratio"}'`
testContent=`paste -d '\t' $refFile <(echo "$curValues") | tail -n +2`
else
testContent=`paste -d '\t' $refFile <(echo "$curValues") | tail -n +1`
fi
testContent=`echo "$testContent" | tr "," "." | awk -F'\t' '{
if ($3>$2+$2*0.1) {
print "* "$1"\t"$2"\t"$3"\t"(($2>0)?$3/$2:"-")
} else {
print " "$1"\t"$2"\t"$3"\t"(($2>0)?$3/$2:"-")
}
}'`
if [ -z $noHeaders ]; then
echo "$header" > $resFile
fi
echo "$testContent" >> $resFile
cat "$resFile" | tr '\t' ';' | column -t -s ';' | tee $resFile
if [ -z $tc ]; then
exit 0
fi
failed=0
echo "$testContent" 2>&1 | (
while read -r s; do
testname=`echo "$s" | cut -f 1 | tr -d "[:space:]" | tr -d "*"`
duration=`echo "$s" | cut -f 3`
echo "$s" | cut -c1 | grep -c "*" && failed=1
echo \#\#teamcity[testStarted name=\'$testNamePrefix$testname\']
echo "===>$s"
echo \#\#teamcity[buildStatisticValue key=\'$testNamePrefix$testname\' value=\'$duration\']
[ $failed -eq 1 ] && echo \#\#teamcity[testFailed name=\'$testNamePrefix$testname\' message=\'$s\']
echo \#\#teamcity[testFinished name=\'$testNamePrefix$testname\' duration=\'$duration\']
failed=0
done
)

View File

@@ -1,152 +0,0 @@
#!/bin/bash
set -euo pipefail
set -x
# The following parameters must be specified:
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built;possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# This script makes test-image along with JDK images when bundle_type is set to "jcef".
# If the character 't' is added at the end of bundle_type then it also makes test-image along with JDK images.
#
# Environment variables:
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument
# to configure
# By default JDK_BUILD_NUMBER is set zero
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_win_aarch64
if [ -z "$BUILD_JDK" ]; then
echo "BUILD_JDK environment variable must be specified and point to a JDK built from the current sources" \
" and is able to run on the build system. See OpenJDK documentation for --with-build-jdk for more info."
exit 1
fi
source jb/project/tools/common/scripts/common.sh
WORK_DIR=$(pwd)
JCEF_PATH=${JCEF_PATH:=$WORK_DIR/jcef_win_aarch64}
NVDA_PATH=${NVDA_PATH:=$WORK_DIR/nvda_controllerClient}
function do_configure {
sh ./configure \
--enable-option-checking=fatal \
--openjdk-target=aarch64-unknown-cygwin \
$WITH_DEBUG_LEVEL \
--with-vendor-name="$VENDOR_NAME" \
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
--with-jvm-features=shenandoahgc \
--with-version-pre= \
--with-version-build=$JDK_BUILD_NUMBER \
--with-version-opt=b${build_number} \
--with-toolchain-version=$TOOLCHAIN_VERSION \
--with-boot-jdk=$BOOT_JDK \
--with-build-jdk=$BUILD_JDK \
--with-nvdacontrollerclient=$NVDA_PATH \
--disable-ccache \
--enable-cds=yes \
$STATIC_CONF_ARGS \
$REPRODUCIBLE_BUILD_OPTS \
|| do_exit $?
}
function create_image_bundle {
__bundle_name=$1
__arch_name=$2
__modules_path=$3
__modules=$4
fastdebug_infix=''
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
__root_dir=${__bundle_name}-${JBSDK_VERSION}-windows-aarch64-${fastdebug_infix}b${build_number}
echo Running jlink ...
${BUILD_JDK}/bin/jlink \
--module-path $__modules_path --no-man-pages --compress=2 \
--add-modules $__modules --output $__root_dir || do_exit $?
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> $__root_dir/release
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' $__root_dir/release > release
mv release $__root_dir/release
cp $IMAGES_DIR/jdk/lib/src.zip $__root_dir/lib
cp $IMAGES_DIR/jdk/bin/server/*.jsa $__root_dir/bin/server
for dir in $(ls -d $IMAGES_DIR/jdk/*); do
rsync -amv --include="*/" --include="*.pdb" --exclude="*" $dir $__root_dir
done
copy_jmods "$__modules" "$__modules_path" "$__root_dir"/jmods
fi
}
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=windows-aarch64-server-release
case "$bundle_type" in
"jcef")
do_reset_changes=0
do_maketest=1
;;
"nomod" | "")
bundle_type=""
;;
"fd")
do_reset_changes=0
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=windows-aarch64-server-fastdebug
;;
esac
if [ -z "${INC_BUILD:-}" ]; then
do_configure || do_exit $?
if [ $do_maketest -eq 1 ]; then
make LOG=info CONF=$RELEASE_NAME clean images test-image jbr-api JBR_API_JBR_VERSION=TEST || do_exit $?
else
make LOG=info CONF=$RELEASE_NAME clean images || do_exit $?
fi
else
if [ $do_maketest -eq 1 ]; then
make LOG=info CONF=$RELEASE_NAME images test-image jbr-api JBR_API_JBR_VERSION=TEST || do_exit $?
else
make LOG=info CONF=$RELEASE_NAME images || do_exit $?
fi
fi
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk
JSDK_MODS_DIR=$IMAGES_DIR/jmods
JBRSDK_BUNDLE=jbrsdk
where cygpath
if [ $? -eq 0 ]; then
JCEF_PATH="$(cygpath -w $JCEF_PATH | sed 's/\\/\//g')"
fi
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module_aarch64.patch || do_exit $?
update_jsdk_mods "$BUILD_JDK" "$JCEF_PATH"/jmods "$JSDK"/jmods "$JSDK_MODS_DIR" || do_exit $?
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not unchanged
jbr_name_postfix="_${bundle_type}"
cat $JCEF_PATH/jcef.version >> $JSDK/release
else
jbr_name_postfix=""
fi
# create runtime image bundle
modules=$(xargs < jb/project/tools/common/modules.list | sed s/" "//g) || do_exit $?
modules+=",jdk.crypto.mscapi"
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
# create sdk image bundle
modules=$(cat ${JSDK}/release | grep MODULES | sed s/MODULES=//g | sed s/' '/','/g | sed s/\"//g | sed s/\\r//g | sed s/\\n//g) || do_exit $?
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
fi
create_image_bundle "$JBRSDK_BUNDLE${jbr_name_postfix}" "$JBRSDK_BUNDLE" "$JSDK_MODS_DIR" "$modules" || do_exit $?
do_exit 0

View File

@@ -1,143 +0,0 @@
#!/bin/bash
set -euo pipefail
set -x
# The following parameters must be specified:
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built;possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# This script makes test-image along with JDK images when bundle_type is set to "jcef".
# If the character 't' is added at the end of bundle_type then it also makes test-image along with JDK images.
#
# Environment variables:
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument
# to configure
# By default JDK_BUILD_NUMBER is set zero
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_win_x64
source jb/project/tools/common/scripts/common.sh
WORK_DIR=$(pwd)
JCEF_PATH=${JCEF_PATH:=$WORK_DIR/jcef_win_x64}
NVDA_PATH=${NVDA_PATH:=$WORK_DIR/nvda_controllerClient}
function do_configure {
sh ./configure \
$WITH_DEBUG_LEVEL \
--with-vendor-name="$VENDOR_NAME" \
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
--with-jvm-features=shenandoahgc \
--with-version-pre= \
--with-version-build=$JDK_BUILD_NUMBER \
--with-version-opt=b${build_number} \
--with-toolchain-version=$TOOLCHAIN_VERSION \
--with-boot-jdk=$BOOT_JDK \
--with-nvdacontrollerclient=$NVDA_PATH \
--disable-ccache \
--enable-cds=yes \
$STATIC_CONF_ARGS \
$REPRODUCIBLE_BUILD_OPTS \
|| do_exit $?
}
function create_image_bundle {
__bundle_name=$1
__arch_name=$2
__modules_path=$3
__modules=$4
fastdebug_infix=''
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
__root_dir=${__bundle_name}-${JBSDK_VERSION}-windows-x64-${fastdebug_infix}b${build_number}
echo Running jlink ...
${JSDK}/bin/jlink \
--module-path $__modules_path --no-man-pages --compress=2 \
--generate-cds-archive --add-modules $__modules --output $__root_dir || do_exit $?
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> $__root_dir/release
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' $__root_dir/release > release
mv release $__root_dir/release
cp $IMAGES_DIR/jdk/lib/src.zip $__root_dir/lib
cp $IMAGES_DIR/jdk/bin/server/*.jsa $__root_dir/bin/server
for dir in $(ls -d $IMAGES_DIR/jdk/*); do
rsync -amv --include="*/" --include="*.pdb" --exclude="*" $dir $__root_dir
done
copy_jmods "$__modules" "$__modules_path" "$__root_dir"/jmods
fi
}
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=windows-x86_64-server-release
case "$bundle_type" in
"jcef")
do_reset_changes=0
do_maketest=1
;;
"nomod" | "")
bundle_type=""
;;
"fd")
do_reset_changes=0
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=windows-x86_64-server-fastdebug
;;
esac
if [ -z "${INC_BUILD:-}" ]; then
do_configure || do_exit $?
if [ $do_maketest -eq 1 ]; then
make LOG=info CONF=$RELEASE_NAME clean images test-image jbr-api JBR_API_JBR_VERSION=TEST || do_exit $?
else
make LOG=info CONF=$RELEASE_NAME clean images || do_exit $?
fi
else
if [ $do_maketest -eq 1 ]; then
make LOG=info CONF=$RELEASE_NAME images test-image jbr-api JBR_API_JBR_VERSION=TEST || do_exit $?
else
make LOG=info CONF=$RELEASE_NAME images || do_exit $?
fi
fi
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk
JSDK_MODS_DIR=$IMAGES_DIR/jmods
JBRSDK_BUNDLE=jbrsdk
where cygpath
if [ $? -eq 0 ]; then
JCEF_PATH="$(cygpath -w $JCEF_PATH | sed 's/\\/\//g')"
fi
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
update_jsdk_mods "$JSDK" "$JCEF_PATH"/jmods "$JSDK"/jmods "$JSDK_MODS_DIR" || do_exit $?
cp $JCEF_PATH/jmods/* ${JSDK_MODS_DIR} # $JSDK/jmods is not unchanged
jbr_name_postfix="_${bundle_type}"
cat $JCEF_PATH/jcef.version >> $JSDK/release
else
jbr_name_postfix=""
fi
# create runtime image bundle
modules=$(xargs < jb/project/tools/common/modules.list | sed s/" "//g) || do_exit $?
modules+=",jdk.crypto.mscapi"
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
# create sdk image bundle
modules=$(cat ${JSDK}/release | grep MODULES | sed s/MODULES=//g | sed s/' '/','/g | sed s/\"//g | sed s/\\r//g | sed s/\\n//g)
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
fi
create_image_bundle "$JBRSDK_BUNDLE${jbr_name_postfix}" "$JBRSDK_BUNDLE" "$JSDK_MODS_DIR" "$modules" || do_exit $?
do_exit 0

View File

@@ -1,132 +0,0 @@
#!/bin/bash
set -euo pipefail
set -x
# The following parameters must be specified:
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built;possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
source jb/project/tools/common/scripts/common.sh
WORK_DIR=$(pwd)
NVDA_PATH=${NVDA_PATH:=$WORK_DIR/nvda_controllerClient}
function do_configure {
sh ./configure \
$WITH_DEBUG_LEVEL \
--with-vendor-name="$VENDOR_NAME" \
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
--with-jvm-features=shenandoahgc \
--with-version-pre= \
--with-version-build=$JDK_BUILD_NUMBER \
--with-version-opt=b${build_number} \
--with-toolchain-version=$TOOLCHAIN_VERSION \
--with-boot-jdk=$BOOT_JDK \
--with-nvdacontrollerclient=$NVDA_PATH \
--disable-ccache \
--enable-cds=yes \
$STATIC_CONF_ARGS \
$REPRODUCIBLE_BUILD_OPTS \
|| do_exit $?
}
function create_image_bundle {
__bundle_name=$1
__arch_name=$2
__modules_path=$3
__modules=$4
fastdebug_infix=''
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
__root_dir=${__bundle_name}-${JBSDK_VERSION}-windows-x86-${fastdebug_infix}b${build_number}
echo Running jlink ...
${JSDK}/bin/jlink \
--module-path $__modules_path --no-man-pages --compress=2 \
--generate-cds-archive --add-modules $__modules --output $__root_dir || do_exit $?
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> $__root_dir/release
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' $__root_dir/release > release
mv release $__root_dir/release
cp $IMAGES_DIR/jdk/lib/src.zip $__root_dir/lib
cp $IMAGES_DIR/jdk/bin/server/*.jsa $__root_dir/bin/server
for dir in $(ls -d $IMAGES_DIR/jdk/*); do
rsync -amv --include="*/" --include="*.pdb" --exclude="*" $dir $__root_dir
done
copy_jmods "$__modules" "$__modules_path" "$__root_dir"/jmods
fi
}
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=windows-x86_64-server-release
case "$bundle_type" in
"jcef")
echo "not implemented" && do_exit 1
;;
"nomod" | "")
bundle_type=""
;;
"fd")
do_reset_changes=0
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=windows-x86_64-server-fastdebug
;;
esac
if [ -z "${INC_BUILD:-}" ]; then
do_configure || do_exit $?
if [ $do_maketest -eq 1 ]; then
make LOG=info CONF=$RELEASE_NAME clean images test-image jbr-api JBR_API_JBR_VERSION=TEST || do_exit $?
else
make LOG=info CONF=$RELEASE_NAME clean images || do_exit $?
fi
else
if [ $do_maketest -eq 1 ]; then
make LOG=info CONF=$RELEASE_NAME images test-image jbr-api JBR_API_JBR_VERSION=TEST || do_exit $?
else
make LOG=info CONF=$RELEASE_NAME images || do_exit $?
fi
fi
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk
JSDK_MODS_DIR=$IMAGES_DIR/jmods
JBRSDK_BUNDLE=jbrsdk
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
update_jsdk_mods "$JSDK" "$JCEF_PATH"/jmods "$JSDK"/jmods "$JSDK_MODS_DIR" || do_exit $?
cp $JCEF_PATH/jmods/* ${JSDK_MODS_DIR} # $JSDK/jmods is not unchanged
jbr_name_postfix="_${bundle_type}"
else
jbr_name_postfix=""
fi
# create runtime image bundle
modules=$(grep -v "jdk.internal.vm" jb/project/tools/common/modules.list | xargs | sed s/" "//g) || do_exit $?
modules+=",jdk.crypto.mscapi"
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
# create sdk image bundle
modules=$(cat ${JSDK}/release | grep MODULES | sed s/MODULES=//g | sed s/' '/','/g | sed s/\"//g | sed s/\\r//g | sed s/\\n//g)
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
fi
create_image_bundle "$JBRSDK_BUNDLE${jbr_name_postfix}" "$JBRSDK_BUNDLE" "$JSDK_MODS_DIR" "$modules" || do_exit $?
do_exit 0

View File

@@ -1,57 +0,0 @@
#!/bin/bash
set -euo pipefail
set -x
# The following parameters must be specified:
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built;possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# This script packs test-image along with JDK images when bundle_type is set to "jcef".
# If the character 't' is added at the end of bundle_type then it also makes test-image along with JDK images.
#
source jb/project/tools/common/scripts/common.sh
[ "$bundle_type" == "jcef" ] && do_maketest=1
function pack_jbr {
__bundle_name=$1
__arch_name=$2
fastdebug_infix=''
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
JBR=${__bundle_name}-${JBSDK_VERSION}-windows-aarch64-${fastdebug_infix}b${build_number}
__root_dir=${__bundle_name}-${JBSDK_VERSION}-windows-aarch64-${fastdebug_infix}b${build_number}
echo Creating $JBR.tar.gz ...
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR $__root_dir || do_exit $?
}
[ "$bundle_type" == "nomod" ] && bundle_type=""
JBRSDK_BUNDLE=jbrsdk
RELEASE_NAME=windows-aarch64-server-release
IMAGES_DIR=build/$RELEASE_NAME/images
BASE_DIR=.
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ]; then
jbr_name_postfix="_${bundle_type}"
else
jbr_name_postfix=""
fi
pack_jbr jbr${jbr_name_postfix} jbr
pack_jbr jbrsdk${jbr_name_postfix} jbrsdk
if [ $do_maketest -eq 1 ]; then
JBRSDK_TEST=$JBRSDK_BUNDLE-$JBSDK_VERSION-windows-test-aarch64-b$build_number
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test" || do_exit $?
echo Creating $JBRSDK_TEST.tar.gz ...
/usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
fi

View File

@@ -1,57 +0,0 @@
#!/bin/bash
set -euo pipefail
set -x
# The following parameters must be specified:
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built;possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# This script packs test-image along with JDK images when bundle_type is set to "jcef".
# If the character 't' is added at the end of bundle_type then it also makes test-image along with JDK images.
#
source jb/project/tools/common/scripts/common.sh
[ "$bundle_type" == "jcef" ] && do_maketest=1
function pack_jbr {
__bundle_name=$1
__arch_name=$2
fastdebug_infix=''
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
JBR=${__bundle_name}-${JBSDK_VERSION}-windows-x64-${fastdebug_infix}b${build_number}
__root_dir=${__bundle_name}-${JBSDK_VERSION}-windows-x64-${fastdebug_infix}b${build_number}
echo Creating $JBR.tar.gz ...
chmod -R ug+rwx,o+rx ${BASE_DIR}/$__root_dir
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR $__root_dir || do_exit $?
}
[ "$bundle_type" == "nomod" ] && bundle_type=""
JBRSDK_BUNDLE=jbrsdk
RELEASE_NAME=windows-x86_64-server-release
IMAGES_DIR=build/$RELEASE_NAME/images
BASE_DIR=.
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ]; then
jbr_name_postfix="_${bundle_type}"
else
jbr_name_postfix=""
fi
pack_jbr jbr${jbr_name_postfix} jbr
pack_jbr jbrsdk${jbr_name_postfix} jbrsdk
if [ $do_maketest -eq 1 ]; then
JBRSDK_TEST=$JBRSDK_BUNDLE-$JBSDK_VERSION-windows-test-x64-b$build_number
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test" || do_exit $?
echo Creating $JBRSDK_TEST.tar.gz ...
/usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
fi

View File

@@ -1,53 +0,0 @@
#!/bin/bash
set -euo pipefail
set -x
# The following parameters must be specified:
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built;possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# fd - the fastdebug bundles which also include the jcef module
#
source jb/project/tools/common/scripts/common.sh
[ "$bundle_type" == "jcef" ] && echo "not implemented" && do_exit 1
function pack_jbr {
__bundle_name=$1
__arch_name=$2
fastdebug_infix=''
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
JBR=${__bundle_name}-${JBSDK_VERSION}-windows-x86-${fastdebug_infix}b${build_number}
__root_dir=${__bundle_name}-${JBSDK_VERSION}-windows-x86-${fastdebug_infix}b${build_number}
echo Creating $JBR.tar.gz ...
chmod -R ug+rwx,o+rx ${BASE_DIR}/$__root_dir
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR $__root_dir || do_exit $?
}
[ "$bundle_type" == "nomod" ] && bundle_type=""
JBRSDK_BUNDLE=jbrsdk
RELEASE_NAME=windows-x86_64-server-release
IMAGES_DIR=build/$RELEASE_NAME/images
BASE_DIR=.
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ]; then
jbr_name_postfix="_${bundle_type}"
else
jbr_name_postfix=""
fi
pack_jbr jbr${jbr_name_postfix} jbr
pack_jbr jbrsdk${jbr_name_postfix} jbrsdk
if [ $do_maketest -eq 1 ]; then
JBRSDK_TEST=$JBRSDK_BUNDLE-$JBSDK_VERSION-windows-test-x86-b$build_number
cp "build/${RELEASE_NAME}/jbr-api/jbr-api.jar" "${IMAGES_DIR}/test" || do_exit $?
echo Creating $JBRSDK_TEST.tar.gz ...
/usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $BASE_DIR --exclude='test/jdk/demos' test || do_exit $?
fi

View File

@@ -642,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

@@ -1,93 +0,0 @@
#
# Copyright 2000-2023 JetBrains s.r.o.
# 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.
#
include $(SPEC)
include MakeBase.gmk
include JavaCompilation.gmk
JBR_API_ROOT_DIR := $(TOPDIR)/src/jetbrains.api
JBR_API_TOOLS_DIR := $(JBR_API_ROOT_DIR)/tools
JBR_API_SRC_DIR := $(JBR_API_ROOT_DIR)/src
JBR_API_OUTPUT_DIR := $(OUTPUTDIR)/jbr-api
JBR_API_GENSRC_DIR := $(JBR_API_OUTPUT_DIR)/gensrc
JBR_API_BIN_DIR := $(JBR_API_OUTPUT_DIR)/bin
JBR_API_VERSION_PROPERTIES := $(JBR_API_ROOT_DIR)/version.properties
JBR_API_VERSION_GENSRC := $(JBR_API_OUTPUT_DIR)/jbr-api.version
JBR_API_GENSRC_BATCH := $(JBR_API_VERSION_GENSRC)
JBR_API_SRC_FILES := $(call FindFiles, $(JBR_API_SRC_DIR))
JBR_API_GENSRC_FILES := $(foreach f, $(call FindFiles, $(JBR_API_SRC_DIR)), \
$(JBR_API_GENSRC_DIR)/$(call RelativePath, $f, $(JBR_API_SRC_DIR)))
ifeq ($(JBR_API_JBR_VERSION),)
JBR_API_JBR_VERSION := DEVELOPMENT
JBR_API_FAIL_ON_HASH_MISMATCH := false
else
.PHONY: $(JBR_API_VERSION_PROPERTIES)
JBR_API_FAIL_ON_HASH_MISMATCH := true
endif
ARCHIVE_BUILD_JBR_API_BIN := $(JBR_API_BIN_DIR)
$(eval $(call SetupJavaCompilation, BUILD_JBR_API, \
SMALL_JAVA := true, \
COMPILER := bootjdk, \
SRC := $(JBR_API_GENSRC_DIR), \
EXTRA_FILES := $(JBR_API_GENSRC_FILES), \
BIN := $(JBR_API_BIN_DIR), \
JAR := $(JBR_API_OUTPUT_DIR)/jbr-api.jar, \
))
$(eval $(call SetupJarArchive, BUILD_JBR_API_SOURCES_JAR, \
DEPENDENCIES := $(JBR_API_GENSRC_FILES), \
SRCS := $(JBR_API_GENSRC_DIR), \
JAR := $(JBR_API_OUTPUT_DIR)/jbr-api-sources.jar, \
SUFFIXES := .java, \
BIN := $(JBR_API_BIN_DIR), \
))
# Grouped targets may not be supported, so hack dependencies: sources -> version file -> generated sources
$(JBR_API_VERSION_GENSRC): $(JBR_API_SRC_FILES) $(JBR_API_VERSION_PROPERTIES) $(JBR_API_TOOLS_DIR)/Gensrc.java
$(ECHO) Generating sources for JBR API
$(JAVA_CMD) $(JAVA_FLAGS_SMALL) "$(JBR_API_TOOLS_DIR)/Gensrc.java" \
"$(TOPDIR)/src" "$(JBR_API_OUTPUT_DIR)" "$(JBR_API_JBR_VERSION)"
$(JBR_API_GENSRC_FILES): $(JBR_API_VERSION_GENSRC)
$(TOUCH) $@
jbr-api-check-version: $(JBR_API_GENSRC_FILES) $(JBR_API_VERSION_PROPERTIES)
$(JAVA_CMD) $(JAVA_FLAGS_SMALL) "$(JBR_API_TOOLS_DIR)/CheckVersion.java" \
"$(JBR_API_ROOT_DIR)" "$(JBR_API_GENSRC_DIR)" "$(JBR_API_FAIL_ON_HASH_MISMATCH)"
jbr-api: $(BUILD_JBR_API) $(BUILD_JBR_API_SOURCES_JAR) jbr-api-check-version
.PHONY: jbr-api jbr-api-check-version
ifneq ($(JBR_API_CONF_FILE),)
$(JBR_API_CONF_FILE): $(JBR_API_GENSRC_FILES)
$(ECHO) "VERSION=`$(CAT) $(JBR_API_VERSION_GENSRC)`" > $(JBR_API_CONF_FILE)
$(ECHO) "JAR=$(JBR_API_OUTPUT_DIR)/jbr-api.jar" >> $(JBR_API_CONF_FILE)
$(ECHO) "SOURCES_JAR=$(JBR_API_OUTPUT_DIR)/jbr-api-sources.jar" >> $(JBR_API_CONF_FILE)
jbr-api: $(JBR_API_CONF_FILE)
.PHONY: $(JBR_API_CONF_FILE)
endif

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.
@@ -1460,14 +1468,6 @@ create-main-targets-include:
@$(ECHO) ALL_MAIN_TARGETS := $(sort $(ALL_TARGETS)) > \
$(MAKESUPPORT_OUTPUTDIR)/main-targets.gmk
################################################################################
# JBR API
$(eval $(call SetupTarget, jbr-api, \
MAKEFILE := JBRApi, \
TARGET := jbr-api \
))
################################################################################
# Hook to include the corresponding custom file, if present.
$(eval $(call IncludeCustomExtension, Main-post.gmk))

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

@@ -89,8 +89,8 @@ AC_DEFUN([BASIC_SETUP_PATHS_WINDOWS],
WINENV_TEMP_DIR=$($PATHTOOL -u $($CMD /q /c echo %TEMP% 2> /dev/null) | $TR -d '\r\n')
AC_MSG_RESULT([$WINENV_TEMP_DIR])
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl1" || test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl2"; then
# Don't trust the current directory for WSL, but change to an OK temp dir
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl2"; then
# Don't trust the current directory for WSL2, but change to an OK temp dir
cd "$WINENV_TEMP_DIR"
# Bring along confdefs.h or autoconf gets all confused
cp "$CONFIGURE_START_DIR/confdefs.h" "$WINENV_TEMP_DIR"
@@ -228,7 +228,7 @@ AC_DEFUN([BASIC_WINDOWS_FINALIZE_FIXPATH],
# Platform-specific finalization
AC_DEFUN([BASIC_WINDOWS_FINALIZE],
[
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl1" || test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl2"; then
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl2"; then
# Change back from temp dir
cd $CONFIGURE_START_DIR
fi

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

@@ -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)
])
@@ -122,6 +115,11 @@ AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS],
# 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
@@ -479,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
@@ -543,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

@@ -234,31 +234,6 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS],
fi
AC_SUBST(HOTSPOT_OVERRIDE_LIBPATH)
# Should we build the client for the JAWS screen reader?
if test "x$OPENJDK_TARGET_OS" = xwindows; then
AC_MSG_CHECKING([if JAWS client support is enabled])
A11Y_JAWS_ANNOUNCING_ENABLED=true
AC_ARG_ENABLE(
[jaws-client],
[AS_HELP_STRING([--disable-jaws-client], [Set to disable to exclude the client for the JAWS screen reader from the build])],
[
if test "x$ENABLE_HEADLESS_ONLY" = xtrue; then
AC_MSG_WARN([--[enable|disable]-jaws-client[=*] flags are ignored for headless builds])
elif test "x$enableval" != xyes; then
A11Y_JAWS_ANNOUNCING_ENABLED=false
fi
]
)
if test "x$ENABLE_HEADLESS_ONLY" = xtrue; then
A11Y_JAWS_ANNOUNCING_ENABLED=false
fi
AC_MSG_RESULT([$A11Y_JAWS_ANNOUNCING_ENABLED])
else
A11Y_JAWS_ANNOUNCING_ENABLED=false
fi
AC_SUBST(A11Y_JAWS_ANNOUNCING_ENABLED)
])
###############################################################################

View File

@@ -1,121 +0,0 @@
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2022, JetBrains s.r.o.. 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.
#
################################################################################
# Setup nvdacontrollerclient (The library for communication with
# NVDA - a screen reader for Microsoft Windows)
################################################################################
AC_DEFUN_ONCE([LIB_SETUP_NVDACONTROLLERCLIENT], [
# To enable NVDA, user specifies neither --with-nvdacontrollerclient or
# a pair (--with-nvdacontrollerclient-include, --with-nvdacontrollerclient-lib)
AC_ARG_WITH(nvdacontrollerclient, [AS_HELP_STRING([--with-nvdacontrollerclient],
[specify prefix directory for the NVDA Controller Client library package
(expecting headers and libs under PATH/<target-arch>/)])])
AC_ARG_WITH(nvdacontrollerclient-include, [AS_HELP_STRING([--with-nvdacontrollerclient-include],
[specify directory for the NVDA Controller Client include files])])
AC_ARG_WITH(nvdacontrollerclient-lib, [AS_HELP_STRING([--with-nvdacontrollerclient-lib],
[specify directory for the NVDA Controller Client library])])
NVDACONTROLLERCLIENT_FOUND=no
NVDACONTROLLERCLIENT_LIB=
NVDACONTROLLERCLIENT_DLL=
NVDACONTROLLERCLIENT_CFLAGS=
if test "x${NEEDS_LIB_NVDACONTROLLERCLIENT}" = "xtrue" ; then
if (test "x${with_nvdacontrollerclient_include}" = "x" && test "x${with_nvdacontrollerclient_lib}" != "x") || \
(test "x${with_nvdacontrollerclient_include}" != "x" && test "x${with_nvdacontrollerclient_lib}" = "x") ; then
AC_MSG_ERROR([Must specify both or neither of --with-nvdacontrollerclient-include and --with-nvdacontrollerclient-lib])
elif (test "x${with_nvdacontrollerclient}" != "x" && test "x${with_nvdacontrollerclient_include}" != "x") ; then
AC_MSG_ERROR([Must specify either --with-nvdacontrollerclient or a pair (--with-nvdacontrollerclient-include, --with-nvdacontrollerclient-lib)])
fi
if (test "x${with_nvdacontrollerclient}" != "x") || \
(test "x${with_nvdacontrollerclient_include}" != "x" && test "x${with_nvdacontrollerclient_lib}" != "x") ; then
AC_MSG_CHECKING([for nvdacontrollerclient])
if test "x${OPENJDK_TARGET_OS}" != "xwindows" ; then
AC_MSG_ERROR([--with-nvdacontrollerclient[-*] flags are applicable only to Windows builds])
fi
if test "x${OPENJDK_TARGET_CPU_ARCH}" = "xaarch64" ; then
NVDACONTROLLERCLIENT_BIN_BASENAME="nvdaControllerClient32"
NVDACONTROLLERCLIENT_ARCHDIR="arm64"
elif test "x${OPENJDK_TARGET_CPU_ARCH}" = "xx86" && test "x${OPENJDK_TARGET_CPU_BITS}" = "x64" ; then
NVDACONTROLLERCLIENT_BIN_BASENAME="nvdaControllerClient64"
NVDACONTROLLERCLIENT_ARCHDIR="x64"
elif test "x${OPENJDK_TARGET_CPU_ARCH}" = "xx86" && test "x${OPENJDK_TARGET_CPU_BITS}" = "x32" ; then
NVDACONTROLLERCLIENT_BIN_BASENAME="nvdaControllerClient32"
NVDACONTROLLERCLIENT_ARCHDIR="x86"
else
AC_MSG_ERROR([The nvdacontrollerclient library exists only for x86_32, x86_64, AArch64 architectures])
fi
if test "x${with_nvdacontrollerclient}" != "x" ; then
# NVDACONTROLLERCLIENT_ARCHDIR is used only here
NVDACONTROLLERCLIENT_INC_PATH="${with_nvdacontrollerclient}/${NVDACONTROLLERCLIENT_ARCHDIR}"
NVDACONTROLLERCLIENT_BIN_PATH="${with_nvdacontrollerclient}/${NVDACONTROLLERCLIENT_ARCHDIR}"
else
NVDACONTROLLERCLIENT_INC_PATH="${with_nvdacontrollerclient_include}"
NVDACONTROLLERCLIENT_BIN_PATH="${with_nvdacontrollerclient_lib}"
fi
POTENTIAL_NVDACONTROLLERCLIENT_DLL="${NVDACONTROLLERCLIENT_BIN_PATH}/${NVDACONTROLLERCLIENT_BIN_BASENAME}.dll"
POTENTIAL_NVDACONTROLLERCLIENT_LIB="${NVDACONTROLLERCLIENT_BIN_PATH}/${NVDACONTROLLERCLIENT_BIN_BASENAME}.lib"
POTENTIAL_NVDACONTROLLERCLIENT_EXP="${NVDACONTROLLERCLIENT_BIN_PATH}/${NVDACONTROLLERCLIENT_BIN_BASENAME}.exp"
if ! test -s "${POTENTIAL_NVDACONTROLLERCLIENT_DLL}" || \
! test -s "${POTENTIAL_NVDACONTROLLERCLIENT_LIB}" || \
! test -s "${POTENTIAL_NVDACONTROLLERCLIENT_EXP}" ; then
AC_MSG_ERROR([Could not find ${NVDACONTROLLERCLIENT_BIN_BASENAME}.dll and/or ${NVDACONTROLLERCLIENT_BIN_BASENAME}.lib and/or ${NVDACONTROLLERCLIENT_BIN_BASENAME}.exp inside ${NVDACONTROLLERCLIENT_BIN_PATH}])
fi
if ! test -s "${NVDACONTROLLERCLIENT_INC_PATH}/nvdaController.h" ; then
AC_MSG_ERROR([Could not find the header file nvdaController.h inside ${NVDACONTROLLERCLIENT_INC_PATH}])
fi
NVDACONTROLLERCLIENT_CFLAGS="-I${NVDACONTROLLERCLIENT_INC_PATH}"
NVDACONTROLLERCLIENT_DLL="${POTENTIAL_NVDACONTROLLERCLIENT_DLL}"
NVDACONTROLLERCLIENT_LIB="${POTENTIAL_NVDACONTROLLERCLIENT_LIB}"
NVDACONTROLLERCLIENT_FOUND=yes
AC_MSG_RESULT([includes at ${NVDACONTROLLERCLIENT_INC_PATH} ; binaries at ${NVDACONTROLLERCLIENT_BIN_PATH}])
fi
elif test "x${with_nvdacontrollerclient}" != "x" || \
test "x${with_nvdacontrollerclient_include}" != "x" || test "x${with_nvdacontrollerclient_lib}" != "x" ; then
AC_MSG_WARN([[nvdacontrollerclient is not used, so --with-nvdacontrollerclient[-*] is ignored]])
fi
if test "x${NVDACONTROLLERCLIENT_FOUND}" = "xyes" ; then
A11Y_NVDA_ANNOUNCING_ENABLED=true
else
A11Y_NVDA_ANNOUNCING_ENABLED=false
fi
AC_SUBST(A11Y_NVDA_ANNOUNCING_ENABLED)
AC_SUBST(NVDACONTROLLERCLIENT_CFLAGS)
AC_SUBST(NVDACONTROLLERCLIENT_DLL)
AC_SUBST(NVDACONTROLLERCLIENT_LIB)
])

View File

@@ -1,92 +0,0 @@
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2022, JetBrains s.r.o.. 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.
#
################################################################################
# Setup speechd
################################################################################
AC_DEFUN_ONCE([LIB_SETUP_SPEECHD],
[
AC_ARG_WITH(speechd, [AS_HELP_STRING([--with-speechd],
[specify prefix directory for the libspeechd package
(expecting the headers under PATH/include); required for AccessibleAnnouncer to work])])
AC_ARG_WITH(speechd-include, [AS_HELP_STRING([--with-speechd-include],
[specify directory for the speechd include files])])
if test "x$NEEDS_LIB_SPEECHD" = xfalse || test "x${with_speechd}" = xno || \
test "x${with_speechd_include}" = xno; then
if (test "x${with_speechd}" != x && test "x${with_speechd}" != xno) || \
(test "x${with_speechd_include}" != x && test "x${with_speechd_include}" != xno); then
AC_MSG_WARN([[speechd not used, so --with-speechd[-*] is ignored]])
fi
A11Y_SPEECHD_ANNOUNCING_ENABLED=false
SPEECHD_CFLAGS=
SPEECHD_LIBS=
else
SPEECHD_FOUND=no
if test "x${with_speechd}" != x && test "x${with_speechd}" != xyes; then
AC_MSG_CHECKING([for speechd header and library])
if test -s "${with_speechd}/include/libspeechd.h"; then
SPEECHD_CFLAGS="-I${with_speechd}/include"
SPEECHD_LIBS="-L${with_speechd}/lib -lspeechd"
SPEECHD_FOUND=yes
AC_MSG_RESULT([$SPEECHD_FOUND])
else
AC_MSG_ERROR([Can't find 'include/libspeechd.h' under ${with_speechd} given with the --with-speechd option.])
fi
fi
if test "x${with_speechd_include}" != x; then
AC_MSG_CHECKING([for speechd headers])
if test -s "${with_speechd_include}/libspeechd.h"; then
SPEECHD_CFLAGS="-I${with_speechd_include}"
SPEECHD_FOUND=yes
AC_MSG_RESULT([$SPEECHD_FOUND])
else
AC_MSG_ERROR([Can't find 'include/libspeechd.h' under ${with_speechd} given with the --with-speechd-include option.])
fi
fi
if test "x$SPEECHD_FOUND" = xno; then
# Are the libspeechd headers installed in the default /usr/include location?
AC_CHECK_HEADERS([libspeechd.h],
[ SPEECHD_FOUND=yes ],
[ SPEECHD_FOUND=no; break ]
)
if test "x$SPEECHD_FOUND" = xyes; then
SPEECHD_CFLAGS=
SPEECHD_LIBS="-lspeechd"
fi
fi
if test "x$SPEECHD_FOUND" = xno; then
A11Y_SPEECHD_ANNOUNCING_ENABLED=false
else
A11Y_SPEECHD_ANNOUNCING_ENABLED=true
fi
fi
AC_SUBST(A11Y_SPEECHD_ANNOUNCING_ENABLED)
AC_SUBST(SPEECHD_CFLAGS)
AC_SUBST(SPEECHD_LIBS)
])

View File

@@ -33,9 +33,7 @@ m4_include([lib-freetype.m4])
m4_include([lib-hsdis.m4])
m4_include([lib-std.m4])
m4_include([lib-x11.m4])
m4_include([lib-fontconfig.m4])
m4_include([lib-speechd.m4])
m4_include([lib-nvdacontrollerclient.m4])
m4_include([lib-tests.m4])
################################################################################
@@ -47,16 +45,10 @@ AC_DEFUN_ONCE([LIB_DETERMINE_DEPENDENCIES],
if test "x$OPENJDK_TARGET_OS" = xwindows || test "x$OPENJDK_TARGET_OS" = xmacosx; then
# No X11 support on windows or macosx
NEEDS_LIB_X11=false
NEEDS_LIB_SPEECHD=false
elif test "x$ENABLE_HEADLESS_ONLY" = xtrue; then
# No X11 support needed when building headless only
NEEDS_LIB_X11=false
NEEDS_LIB_SPEECHD=false
else
# All other instances need X11, even if building headless only, libawt still
# needs X11 headers.
NEEDS_LIB_X11=true
NEEDS_LIB_SPEECHD=true
fi
# Check if fontconfig is needed
@@ -95,13 +87,6 @@ AC_DEFUN_ONCE([LIB_DETERMINE_DEPENDENCIES],
else
NEEDS_LIB_FFI=false
fi
# Check if nvdacontrollerclient is needed
if test "x$OPENJDK_TARGET_OS" = xwindows && test "x$ENABLE_HEADLESS_ONLY" != xtrue; then
NEEDS_LIB_NVDACONTROLLERCLIENT=true
else
NEEDS_LIB_NVDACONTROLLERCLIENT=false
fi
])
################################################################################
@@ -141,8 +126,7 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES],
LIB_SETUP_LIBFFI
LIB_SETUP_MISC_LIBS
LIB_SETUP_X11
LIB_SETUP_SPEECHD
LIB_SETUP_NVDACONTROLLERCLIENT
LIB_TESTS_SETUP_GTEST
BASIC_JDKLIB_LIBS=""

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@
@@ -468,20 +468,6 @@ UBSAN_LDFLAGS := @UBSAN_LDFLAGS@
X_CFLAGS := @X_CFLAGS@
X_LIBS := @X_LIBS@
# Linux speechd a11y announcer
A11Y_SPEECHD_ANNOUNCING_ENABLED:=@A11Y_SPEECHD_ANNOUNCING_ENABLED@
SPEECHD_CFLAGS:=@SPEECHD_CFLAGS@
SPEECHD_LIBS:=@SPEECHD_LIBS@
# Windows NVDA a11y announcer
A11Y_NVDA_ANNOUNCING_ENABLED:=@A11Y_NVDA_ANNOUNCING_ENABLED@
NVDACONTROLLERCLIENT_CFLAGS:=@NVDACONTROLLERCLIENT_CFLAGS@
NVDACONTROLLERCLIENT_DLL:=@NVDACONTROLLERCLIENT_DLL@
NVDACONTROLLERCLIENT_LIB:=@NVDACONTROLLERCLIENT_LIB@
# Windows the client for the JAWS screen reader
A11Y_JAWS_ANNOUNCING_ENABLED:=@A11Y_JAWS_ANNOUNCING_ENABLED@
# The lowest required version of macosx
MACOSX_VERSION_MIN := @MACOSX_VERSION_MIN@
# The highest allowed version of macosx
@@ -512,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@
@@ -618,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@
@@ -633,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

@@ -732,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, 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,233 +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
JVM_VirtualThreadDisableSuspend
# Scoped values
JVM_EnsureMaterializedForStackWalk_func
JVM_FindScopedValueBindings
JVM_ScopedValueCache
JVM_SetScopedValueCache
#

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