Compare commits

..

562 Commits

Author SHA1 Message Date
Alexey Semenyuk
2acd8776f2 8371440: jpackage should exit with an error if it finds multiple matching signing certificates
Reviewed-by: almatvee
2025-11-20 01:29:49 +00:00
Alexey Semenyuk
c8e64e7c33 8372118: Test tools/jpackage/macosx/DmgContentTest.java failed
Reviewed-by: almatvee
2025-11-19 23:22:40 +00:00
Ioi Lam
1535d08f0e 8371944: AOT configuration is corrupted when app closes System.out
Reviewed-by: kvn, iveresov
2025-11-19 20:58:23 +00:00
Kim Barrett
f5bc6ee90d 8369187: Add wrapper for <new> that forbids use of global allocation and deallocation functions
Reviewed-by: stefank, erikj, jrose
2025-11-19 20:56:21 +00:00
Kim Barrett
6f1c5733ed 8371923: Update LockFreeStack for Atomic<T>
Reviewed-by: iwalulya, dholmes
2025-11-19 20:05:09 +00:00
Matthew Donovan
223cc64518 8343316: Review and update tests using explicit provider names
Reviewed-by: rhalade
2025-11-19 19:14:33 +00:00
Alexander Matveev
9ea8201b74 8363980: [macos] Add JDK specific keys/values to Info.plist of embedded runtime
Reviewed-by: asemenyuk
2025-11-19 16:07:20 +00:00
Benoît Maillard
3949b0f23c 8371674: C2 fails with Missed optimization opportunity in PhaseIterGVN for MoveL2D
Reviewed-by: epeter, chagedorn
2025-11-19 15:40:57 +00:00
Chen Liang
f0afd89f66 8357728: Avoid caching synthesized names in synthesized parameters
Reviewed-by: jvernee
2025-11-19 15:19:04 +00:00
Anton Seoane Ampudia
0bff5f3dbe 8213762: Deprecate Xmaxjitcodesize
Reviewed-by: kvn, epeter
2025-11-19 13:02:07 +00:00
Kurt Miller
ae4d9c2e6a 8371918: aarch64: Incorrect pointer dereference in TemplateInterpreterGenerator::generate_native_entry
Reviewed-by: aph, shade
2025-11-19 12:14:07 +00:00
Renjith Kannath Pariyangad
0b3df489e9 8372048: Performance improvement on Linux remote desktop
Reviewed-by: azvegint, serb
2025-11-19 12:13:37 +00:00
Evgeny Astigeevich
d2926dfd9a 8371649: ZGC: AArch64: redundant OrderAccess::fence in ZBarrierSetAssembler::patch_barrier_relocation
Reviewed-by: aph
2025-11-19 12:11:23 +00:00
Albert Mingkun Yang
54893dc5c2 8371985: Parallel: Move should_attempt_scavenge to ParallelScavengeHeap
Reviewed-by: fandreuzzi, iwalulya
2025-11-19 11:46:43 +00:00
Aggelos Biboudis
99135d2e05 8359145: Implement JEP 530: Primitive Types in Patterns, instanceof, and switch (Fourth Preview)
Reviewed-by: jlahoda
2025-11-19 08:47:57 +00:00
Ioi Lam
02ff38f2d7 8363986: Heap region in CDS archive is not at deterministic address
Reviewed-by: kvn, asmehra
2025-11-19 05:04:34 +00:00
Alexander Zuev
902aa4dcd2 8372120: Add missing sound keyword to MIDI tests
Reviewed-by: kcr, dholmes
2025-11-18 23:51:32 +00:00
Kim Barrett
152cd4d8ba 8371956: Convert OopStorage to use Atomic<T>
Reviewed-by: stefank, tschatzl
2025-11-18 23:43:22 +00:00
John Engebretson
aeea849756 8371164: ArrayList.addAll() optimizations
Reviewed-by: smarks, ogillespie
2025-11-18 23:37:06 +00:00
Vladimir Ivanov
256a9beffc 8280469: C2: CHA support for interface calls when inlining through method handle linker
Reviewed-by: kvn, roland
2025-11-18 22:29:37 +00:00
Ioi Lam
b086e34f71 8371771: CDS test SharedStringsStress.java failed with insufficient heap
Reviewed-by: kvn
2025-11-18 21:51:54 +00:00
Jan Kratochvil
66fb015267 8357579: Compilation error: first argument in call to 'memset' is a pointer to non-trivially copyable type
Co-authored-by: Ioi Lam <iklam@openjdk.org>
Reviewed-by: iklam, asmehra
2025-11-18 21:51:28 +00:00
Chad Rakoczy
27a38d9093 8371121: compiler/whitebox/DeoptimizeRelocatedNMethod.java fails with C1
Reviewed-by: thartmann, chagedorn
2025-11-18 20:28:33 +00:00
Naoto Sato
4a975637a1 8346944: Update Unicode Data Files to 17.0.0
8346947: Update ICU4J to Version 78.1

Reviewed-by: joehw
2025-11-18 18:35:01 +00:00
Ioi Lam
b3e408c078 8372045: AOT assembly phase asserts with old class if AOT class linking is disabled
Reviewed-by: shade, mgronlun
2025-11-18 18:12:07 +00:00
Hannes Wallnöfer
0e6c7e8664 8371896: Links in snippets can not be highlighted
Reviewed-by: liach
2025-11-18 17:55:43 +00:00
Hannes Wallnöfer
ac6f5e9651 8366094: Sealed graph for nested types creates broken links
Reviewed-by: liach
2025-11-18 16:52:12 +00:00
Nityanand Rai
713de231a6 8371854: Shenandoah: Simplify WALK_FORWARD_IN_BLOCK_START use
Reviewed-by: shade, ysr, xpeng
2025-11-18 15:47:54 +00:00
Chen Liang
1f99cf9424 8372002: VarHandle for receiver's superclass instance fields fails describeConstable
Reviewed-by: psandoz, jvernee
2025-11-18 15:14:49 +00:00
Chen Liang
b6d83eda6b 8371960: Missing null check in AnnotatedType annotation accessor methods
Reviewed-by: alanb
2025-11-18 15:14:20 +00:00
Brian Burkhalter
43040f30a7 8372012: java/nio/file/attribute/BasicFileAttributeView/SetTimesNanos.java should check ability to create links
Reviewed-by: alanb, jpai
2025-11-18 15:11:45 +00:00
Yasumasa Suenaga
dcba014ad5 8371967: Add Visual Studio 2026 to build toolchain for Windows
Reviewed-by: erikj
2025-11-18 14:44:14 +00:00
Jan Lahoda
2e68b79a39 8364991: Incorrect not-exhaustive error
Reviewed-by: vromero
2025-11-18 13:55:42 +00:00
Johan Sjölen
36b66e13c8 8371778: Make MallocMemorySummary::_snapshot a DeferredStatic
Reviewed-by: phubner, azafari
2025-11-18 13:05:57 +00:00
Per Minborg
f946449997 8366178: Implement JEP 526: Lazy Constants (Second Preview)
8371882: Improve documentation for JEP 526: Lazy Constants

Reviewed-by: jvernee, mcimadamore
2025-11-18 12:20:23 +00:00
Stefan Karlsson
df5b105bbb 8371698: ZGC: Call GTEST_SKIP when OS is unsupported
Reviewed-by: aboldtch, jsikstro, mdoerr
2025-11-18 11:57:58 +00:00
Jonas Norlinder
28d94d6ab4 8372008: TestGetTotalGcCpuTime test failures on Windows (Some GC CPU time must have been reported)
Reviewed-by: kevinw, alanb, cjplummer, dholmes
2025-11-18 10:08:17 +00:00
Francesco Andreuzzi
3a2845f334 8037914: Add JFR event for string deduplication
Reviewed-by: ayang, egahlin
2025-11-18 09:43:28 +00:00
Severin Gehwolf
72ebca8a0b 8365606: Container code should not be using jlong/julong
Reviewed-by: stuefe, cnorrbin, fitzsim
2025-11-18 09:42:28 +00:00
Albert Mingkun Yang
50a3049737 8371643: Remove ThreadLocalAllocBuffer::_reserve_for_allocation_prefetch
Reviewed-by: mdoerr, kvn, tschatzl
2025-11-18 09:37:20 +00:00
Jan Lahoda
8af5943719 8370334: javadoc NPE with "import module" statement
Reviewed-by: vromero
2025-11-18 08:13:58 +00:00
Alan Bateman
26460b6f12 8353835: Implement JEP 500: Prepare to Make Final Mean Final
Reviewed-by: liach, vlivanov, dholmes, vyazici
2025-11-18 08:06:18 +00:00
Nityanand Rai
8cdfec8d1c 8371852: Shenandoah: Unused ShenandoahFreeSet::_allocated_since_gc_start field
Reviewed-by: shade, fandreuzzi
2025-11-18 06:49:28 +00:00
Vishal Chand
1655773979 8371881: C2: Fix potential SEGV in VTransformReductionVectorNode tracing
Reviewed-by: shade, epeter
2025-11-18 06:49:03 +00:00
Anjian Wen
695a4abd5f 8371966: RISC-V: Incorrect pointer dereference in TemplateInterpreterGenerator::generate_native_entry
Reviewed-by: fyang, fjiang
2025-11-18 03:37:11 +00:00
SendaoYan
46b5e588ab 8371697: test/jdk/java/nio/file/FileStore/Basic.java fails after 8360887 on linux
Reviewed-by: alanb
2025-11-18 03:18:36 +00:00
Ramkumar Sunderbabu
696821670e 8293484: AArch64: TestUseSHA512IntrinsicsOptionOnSupportedCPU.java fails on CPU with SHA512 feature support
Reviewed-by: haosun, aph
2025-11-18 00:59:14 +00:00
Damon Nguyen
e067038796 8150564: Migrate useful ExtendedRobot methods into awt.Robot
Reviewed-by: kizune, prr, liach
2025-11-17 21:21:03 +00:00
Leonid Mesnik
e5f6332610 8371650: Add CMakeLists.txt and compile_commands.json into .gitignore
Reviewed-by: erikj
2025-11-17 21:00:22 +00:00
Kim Barrett
6c09529cd6 8369188: Update link-time check for HotSpot uses of allocation and deallocation functions
Reviewed-by: jwaters, erikj
2025-11-17 20:53:10 +00:00
Brian Burkhalter
9ec773ad27 8371689: (fs) CopyMoveHelper.copyToForeignTarget use of sourcePosixView is confusing
Reviewed-by: alanb
2025-11-17 16:48:40 +00:00
Mark Powers
52ffe8a096 8371156: PBKDF2 default values should not be DER encoded
Reviewed-by: weijun
2025-11-17 14:59:30 +00:00
Paul Hübner
6385c663dc 8371607: Remove GCSharedStringsDuringDumpWb.java after JDK-8362561
Reviewed-by: ayang, jsikstro
2025-11-17 14:06:41 +00:00
SendaoYan
44087ea5d6 8371682: Suppress javac warning from ThreadPoolExecutorSubclassTest.java
Reviewed-by: jpai
2025-11-17 13:48:52 +00:00
Kevin Walls
960987e8c1 8371991: Build failure in docs for MemoryMXBean
Reviewed-by: alanb
2025-11-17 13:40:36 +00:00
Albert Mingkun Yang
8301d9917e 8371825: G1: Use more precise filler API in fill_range_with_dead_objects
Reviewed-by: shade, tschatzl
2025-11-17 12:28:39 +00:00
Matthew Donovan
cebb03ef24 8371349: Update NSS library to 3.117
Reviewed-by: weijun, myankelevich, hchao
2025-11-17 12:13:39 +00:00
Zihao Lin
df35412db1 8368961: Remove redundant checks in ciField.cpp
Reviewed-by: bmaillard, aseoane, thartmann
2025-11-17 11:49:01 +00:00
Daniel Fuchs
d19e072f97 8371916: Questionable volatile decrement in AckFrameSpliterator
Reviewed-by: vyazici, jpai, djelinski
2025-11-17 11:01:32 +00:00
Jonas Norlinder
812add27ab 8368527: JMX: Add an MXBeans method to query GC CPU time
Reviewed-by: phh, kevinw
2025-11-17 10:42:02 +00:00
Albert Mingkun Yang
09b25cd0a2 8371465: Parallel: Revise asserts around heap expansion
Reviewed-by: aboldtch, tschatzl
2025-11-17 09:38:17 +00:00
Andrey Turbanov
69e30244c0 8349157: Unnecessary Hashtable usage in XKeysym.javaKeycode2KeysymHash
Reviewed-by: aivanov, serb
2025-11-17 09:08:21 +00:00
Johan Sjölen
970533d41d 8371779: Replace MemTagBitmap with ResourceBitMap
Reviewed-by: azafari, phubner
2025-11-17 09:06:32 +00:00
Joel Sikström
d032b28d9d 8371894: Minor style fixes in AOT/CDS code
Reviewed-by: stefank, kvn, iklam
2025-11-17 08:50:50 +00:00
Christian Stein
8690d263d9 8268613: jar --validate should check inital entries of a JAR file
Reviewed-by: lancea, jvernee
2025-11-17 07:53:32 +00:00
Axel Boldt-Christmas
ce1adf63ea 8371672: G1: G1YoungGenSizer handling of NewRatio, NewSize and MaxNewSize
8370494: G1: NewSize not bounded by InitialHeapSize or MaxHeapSize

Reviewed-by: tschatzl, iwalulya
2025-11-17 07:33:33 +00:00
David Briemann
7738131835 8371642: TestNumberOfContinuousZeros.java fails on PPC64
Reviewed-by: mdoerr, epeter
2025-11-17 06:49:12 +00:00
Tobias Hartmann
7d35a283cf 8371958: [BACKOUT] 8371709: Add CTW to hotspot_compiler testing
Reviewed-by: ayang
2025-11-16 10:31:23 +00:00
Quan Anh Mai
f510b4a3ba 8355574: Fatal error in abort_verify_int_in_range due to Invalid CastII
Reviewed-by: vlivanov, roland
2025-11-15 12:59:04 +00:00
Alan Bateman
f6c90fe8f9 8371226: Thread class description needs section on Thread Interruption
Reviewed-by: prappo, vklang, liach, rriggs
2025-11-15 08:15:50 +00:00
Anthony Scarpino
6042c9a6f0 8371934: EncryptedPrivateKeyInfo methods need @since updates
Reviewed-by: jnimeh
2025-11-15 02:46:30 +00:00
Serguei Spitsyn
f971ee5ea0 8349192: jvmti/scenarios/contention/TC05/tc05t001 fails: ERROR: tc05t001.cpp, 281: (waitedThreadCpuTime - waitThreadCpuTime) < (EXPECTED_ACCURACY * 1000000)
Reviewed-by: cjplummer, lmesnik
2025-11-15 01:50:47 +00:00
Harshitha Onkar
7c169c9814 8365426: [macos26] Graphics2D tests fail on new macOS 26
Reviewed-by: kizune, dnguyen
2025-11-14 23:53:44 +00:00
Archie Cobbs
bc928c814b 5038439: Warning message for literal shift amounts outside the canonical domain
Reviewed-by: darcy, jlahoda
2025-11-14 23:53:31 +00:00
Chen Liang
7aff8e15ba 8371319: java.lang.reflect.Method#equals doesn't short-circuit with same instances
Reviewed-by: jvernee
2025-11-14 22:55:28 +00:00
Anthony Scarpino
ad3dfaf1fc 8360564: Implement JEP 524: PEM Encodings of Cryptographic Objects (Second Preview)
Reviewed-by: weijun, mullan
2025-11-14 21:08:36 +00:00
Roger Riggs
cc05530b81 8371732: [redo] Change java.time month/day field types to 'byte'
Reviewed-by: darcy, alanb
2025-11-14 20:57:20 +00:00
Kim Barrett
91b97a49d4 8371922: Remove unused NonblockingQueue class
Reviewed-by: coleenp
2025-11-14 20:32:12 +00:00
Alex Menkov
3924a28a22 8371083: FollowReferences reports non-class objects as JVMTI_HEAP_REFERENCE_SYSTEM_CLASS
Reviewed-by: lmesnik, sspitsyn
2025-11-14 19:39:26 +00:00
Ioi Lam
58b601ac42 8371874: AOTLinkedClassBulkLoader::preload_classes() should not allocate heap objects
Reviewed-by: shade, ayang
2025-11-14 18:41:50 +00:00
David Beaumont
6e7eaf40d1 8371591: VerifyJimage test incorrectly skips all tests when comparing directory structure
Reviewed-by: rriggs
2025-11-14 18:24:04 +00:00
Aleksey Shipilev
10f262a6ad 8371804: C2: Tighten up LoadNode::Value comments after JDK-8346184
Reviewed-by: kvn, vlivanov
2025-11-14 15:31:28 +00:00
Thomas Stuefe
466cb38314 8371885: Mark UseCompressedClassPointers as obsolete for JDK 27
Reviewed-by: mdoerr, coleenp
2025-11-14 14:53:19 +00:00
Coleen Phillimore
36daa2650d 8371860: Make non-public methods in java_lang_Class private
Reviewed-by: kbarrett, fparain
2025-11-14 14:12:27 +00:00
Severin Gehwolf
5d65c23cd9 8370492: [Linux] Update cpu shares to cpu.weight mapping function
Reviewed-by: cnorrbin, ayang, syan
2025-11-14 13:13:09 +00:00
Thomas Schatzl
4cc655a2f4 8371791: G1: Improve accuracy of G1CollectedHeap::non_young_occupancy_after_allocation()
Reviewed-by: ayang, iwalulya
2025-11-14 12:49:46 +00:00
Aleksey Shipilev
ff851de852 8371709: Add CTW to hotspot_compiler testing
Reviewed-by: thartmann, epeter
2025-11-14 12:06:13 +00:00
Dhamoder Nalla
00f2c38e37 8371161: [AArch64] Enable CPU feature UseSHA3Intrinsics for the Qualcomm processor family
Reviewed-by: aph, haosun
2025-11-14 10:54:39 +00:00
Daniel Fuchs
8a7af77e99 8371366: java/net/httpclient/whitebox/RawChannelTestDriver.java fails intermittently in jtreg timeout
Reviewed-by: djelinski, vyazici
2025-11-14 10:10:03 +00:00
Afshin Zafari
9eaa364a52 8361487: [ubsan] test_committed_virtualmemory.cpp check_covered_pages shows overflow
Reviewed-by: jsjolen, phubner
2025-11-14 09:03:11 +00:00
Paul Hübner
81e0c87f28 8371320: runtime/ErrorHandling/PrintVMInfoAtExitTest.java fails with unexpected amount for Java Heap reserved memory
Reviewed-by: azafari, jsikstro
2025-11-14 08:29:57 +00:00
Anton Seoane Ampudia
f4305923fb 8369002: Extract the loop->is_member(get_loop(get_ctrl(node))) pattern in a new function
Reviewed-by: bmaillard, rcastanedalo
2025-11-14 07:26:03 +00:00
Anton Seoane Ampudia
0829c6acde 8356761: IGV: dump escape analysis information
Reviewed-by: rcastanedalo, chagedorn
2025-11-14 07:25:44 +00:00
Daniel Skantz
1baf5164d6 8371628: C2: add a test case for the arraycopy changes in JDK-8297933
Reviewed-by: rcastanedalo, shade
2025-11-14 07:09:05 +00:00
Alexey Semenyuk
7733632f90 8369206: jpackage should not set R/O permission on app launchers
Reviewed-by: almatvee
2025-11-14 02:08:45 +00:00
Fei Yang
eaddefb475 8371753: compiler/c2/cr7200264/TestIntVect.java fails IR verification
Reviewed-by: chagedorn, fjiang
2025-11-14 01:10:11 +00:00
Alexey Semenyuk
0d8b5188bb 8364560: The default value of --linux-menu-group option is invalid
8356574: Test --linux-menu-group option

Reviewed-by: almatvee
2025-11-14 01:07:05 +00:00
Leonid Mesnik
155d7df555 8371749: New test serviceability/jvmti/events/VMDeath/AllocatingInVMDeath/TestAllocatingInVMDeath.java fails with -Xcheck:jni
Reviewed-by: sspitsyn, amenkov, cjplummer
2025-11-13 23:54:07 +00:00
Roger Riggs
6322aaba63 8371821: Duplicate export of jdk.internal.util to java.net.http
Reviewed-by: naoto, alanb
2025-11-13 19:08:35 +00:00
Brian Burkhalter
db3a8386d4 8371436: (fs) java/nio/file/FileStore/Basic.java fails on macOS platform due to assertTrue(!store.equals(prev));
Reviewed-by: alanb
2025-11-13 18:59:34 +00:00
Sergey Bylokhov
d09a8cb81b 8371746: Some imports in Integer.java and Long.java became unused after JDK-8370503
Reviewed-by: liach, darcy, iris
2025-11-13 18:39:49 +00:00
Rui Li
2199b5fef4 8371381: [Shenandoah] Setting ergo flags should use FLAG_SET_ERGO
Reviewed-by: xpeng, wkemper, ysr, cslucas
2025-11-13 18:01:58 +00:00
Matthias Baesken
bfc048aba6 8371608: Jtreg test jdk/internal/vm/Continuation/Fuzz.java sometimes fails with (fast)debug binaries
Reviewed-by: mdoerr, rrich
2025-11-13 16:26:17 +00:00
Vicente Romero
8102f436f5 8371480: VerifyError after JDK-8369654
Reviewed-by: mcimadamore
2025-11-13 15:28:08 +00:00
Thomas Schatzl
7d78818ae6 8274178: G1: Occupancy value in IHOP logging and JFR event is inaccurate
8371635: G1: Young gen allocations should never be considered when comparing against IHOP threshold

Reviewed-by: ayang, iwalulya
2025-11-13 13:55:25 +00:00
Thomas Schatzl
bbc0f9ef30 8371788: Fix documentation for CollectedHeap::collect(GCCause)
Reviewed-by: ayang, iwalulya
2025-11-13 13:53:09 +00:00
Ramesh Bhagavatam Gangadhar
6b6fdf1d92 8357874: UNLIMTED_CRYPTO typo in class description of JceSecurity.java.template
Reviewed-by: wetmore
2025-11-13 12:57:16 +00:00
Daniel Fuchs
48c59faf58 8371722: java/net/httpclient/BufferSizePropertyClampTest.java should use Locale.ROOT
Reviewed-by: djelinski, jpai, vyazici
2025-11-13 10:46:00 +00:00
Benoît Maillard
9d6a61fda6 8371558: C2: Missing optimization opportunity in AbsNode::Ideal
Reviewed-by: thartmann, rcastanedalo, chagedorn
2025-11-13 09:24:51 +00:00
Kim Barrett
10220ed06e 8367013: Add Atomic<T> to package/replace idiom of volatile var plus AtomicAccess:: operations
Reviewed-by: stefank, aboldtch, jsjolen
2025-11-13 08:43:59 +00:00
Kim Barrett
795ec5c1e9 8370333: hotspot-unit-tests.md specifies wrong directory structure for tests
Reviewed-by: stefank, ayang
2025-11-13 08:33:15 +00:00
Shawn M Emery
436b3357e9 8371450: AES performance improvements for key schedule generation
Reviewed-by: valeriep, jnimeh
2025-11-13 08:10:12 +00:00
Axel Boldt-Christmas
279f39f14a 8371681: Remove unused VMOp type CollectForCodeCacheAllocation
Reviewed-by: stefank, ayang, tschatzl
2025-11-13 06:17:52 +00:00
Axel Boldt-Christmas
42aecc4070 8371680: JVMTI: Remove unused VMOp type JvmtiPostObjectFree
Reviewed-by: stefank, lmesnik
2025-11-13 06:17:35 +00:00
Axel Boldt-Christmas
d91480b9b0 8371675: ZGC: Remove leftover X VMOp symbols
Reviewed-by: jsikstro, stefank, tschatzl
2025-11-13 06:17:16 +00:00
Chen Liang
5f42c77085 8370839: Tests to verify peculiar Proxy dispatching behaviors
Reviewed-by: jvernee
2025-11-13 04:33:00 +00:00
Yasumasa Suenaga
b6ba1ac9aa 8371093: Assert "section header string table should be loaded" failed on debug VM
Reviewed-by: phubner, jsjolen
2025-11-13 04:29:22 +00:00
Xiaohong Gong
676e6fd8d5 8367292: VectorAPI: Optimize VectorMask.fromLong/toLong() for SVE
Reviewed-by: epeter, psandoz, haosun, sviswanathan
2025-11-13 01:33:21 +00:00
Prasanta Sadhukhan
bc66d3e65d 8370467: BorderFactory.createBevelBorder and createSoftBevelBorder throws NPE for null highlight and shadow
Reviewed-by: aivanov, tr, honkar
2025-11-13 01:19:37 +00:00
Naoto Sato
d2571ea76a 8371339: Illegal pattern char 'B' with locale.providers as HOST on macOS for Taiwanese
Reviewed-by: jlu, rriggs
2025-11-13 00:31:10 +00:00
Leonid Mesnik
705bd6fbdc 8367902: Allocation after Universe::before_exit() in the VM shutdown sequence
Reviewed-by: ayang, stefank, iwalulya, aboldtch, sspitsyn
2025-11-12 18:54:55 +00:00
Harshitha Onkar
78db38f140 8371365: Update javax/swing/JFileChooser/bug4759934.java to use Util.findComponent()
Reviewed-by: aivanov, dnguyen, azvegint
2025-11-12 17:56:19 +00:00
David Beaumont
e5c72937af 8371645: BasicImageReader getEntryNames() is stateful and cannot be called more than once
Reviewed-by: alanb, rriggs
2025-11-12 15:41:40 +00:00
Daniel Lundén
56a27d1197 8341039: compiler/cha/TypeProfileFinalMethod.java fails with assertEquals expected: 0 but was: 2
Reviewed-by: rcastanedalo, dfenacci
2025-11-12 14:45:22 +00:00
Daniel Gredler
4042e821c6 8371066: Remove unused class TextSourceLabel and associated class hierarchy
Reviewed-by: prr, psadhukhan
2025-11-12 14:42:30 +00:00
Vicente Romero
e5a272a590 8369517: Compilation mismatch for equivalent lambda and method reference
Reviewed-by: mcimadamore
2025-11-12 14:30:08 +00:00
Daniel Jeliński
1f1f7bb448 8370024: HttpClient: QUIC congestion controller doesn't implement pacing
Reviewed-by: dfuchs
2025-11-12 12:32:05 +00:00
Ivan Walulya
400a83da89 8371625: G1: G1HeapRegion::print_on misalignment
Reviewed-by: ayang, tschatzl
2025-11-12 08:48:07 +00:00
Jan Lahoda
76a0732ba5 8366691: JShell should support a more convenient completion
Reviewed-by: asotona
2025-11-12 07:14:45 +00:00
Emanuel Peter
6df78c4585 8371065: C2 SuperWord: VTransformLoopPhiNode::apply setting type leads to assert/wrong result
Co-authored-by: Roland Westrelin <roland@openjdk.org>
Reviewed-by: qamai, chagedorn
2025-11-12 07:10:29 +00:00
Jayathirth D V
15dcbf0bc8 8363950: Incorrect jtreg header in TestLayoutVsICU.java
Reviewed-by: azvegint
2025-11-12 04:44:37 +00:00
Kelvin Nilsen
8531fa146b 8358735: GenShen: block_start() may be incorrect after class unloading
Co-authored-by: Y. Srinivas Ramakrishna <ysr@openjdk.org>
Reviewed-by: wkemper
2025-11-11 21:07:34 +00:00
Dan Smith
c6a8027b94 8370154: Update @jls and @jvms taglets to point to local specs dir
Reviewed-by: liach
2025-11-11 17:11:44 +00:00
Benoît Maillard
f5eacbeb5f 8371534: C2: Missed Ideal optimization opportunity with AndL and URShiftL
Reviewed-by: thartmann, mhaessig
2025-11-11 16:33:15 +00:00
Ashutosh Mehra
bbeb6bf0ac 8371493: Simplify search for AdapterHandlerEntry
Reviewed-by: kvn, adinn
2025-11-11 15:07:10 +00:00
Hamlin Li
405d5f7a68 8371297: C2: assert triggered in BoolTest::BoolTest
Reviewed-by: dlong, luhenry, epeter
2025-11-11 14:56:20 +00:00
Martin Doerr
cbd77fc9f3 8370244: [PPC64] Several vector tests fail on Power8
Reviewed-by: dbriemann, rrich
2025-11-11 14:26:58 +00:00
Stefan Johansson
2902436fb1 8371019: G1: Support heap expansion during startup
Reviewed-by: eosterlund, tschatzl
2025-11-11 13:00:22 +00:00
Severin Gehwolf
291003208c 8370966: Create regression test for the hierarchical memory limit fix in JDK-8370572
Reviewed-by: shade, syan
2025-11-11 09:18:27 +00:00
GennadiyKrivoshein
76a1109d6f 8251928: [macos] the printer DPI always be 72, cause some content lost when print out
Reviewed-by: psadhukhan, prr
2025-11-11 03:49:39 +00:00
Rui Li
e1c952608d 8361339: Test gc/shenandoah/TestLargeObjectAlignment.java#generational fails on macOS aarch64 with OOM: Java heap space
Reviewed-by: shade, syan
2025-11-11 03:35:42 +00:00
Kelvin Nilsen
43afce54a7 8371573: Shenandoah: Remove unnecessary include after JDK-8351091
Reviewed-by: wkemper, shade
2025-11-10 18:52:00 +00:00
Ashutosh Mehra
cc54d2c06b 8371418: Methods in AdapterHandlerLibrary use HashtableBase iterate method incorrectly
Reviewed-by: kvn, adinn
2025-11-10 18:21:13 +00:00
Daniel Fuchs
8a911aed26 8371471: HttpClient: Log HTTP/3 handshake failures if logging errors is enabled
Reviewed-by: djelinski, jpai
2025-11-10 17:56:52 +00:00
Kerem Kat
1327aa6090 8369949: Fix TestWaste.java stack overflow
Reviewed-by: egahlin, shade
2025-11-10 17:38:25 +00:00
Alan Bateman
0bae56b614 8367857: Implement JEP 525: Structured Concurrency (Sixth Preview)
Reviewed-by: vklang
2025-11-10 16:34:31 +00:00
Emanuel Peter
72989e0fac 8340093: C2 SuperWord: implement cost model
Reviewed-by: kvn, qamai
2025-11-10 15:56:49 +00:00
Jorn Vernee
6e838d6f9a 8371474: Wrong object class or methodID passed to JNI call in TestSharedCloseJvmti with -Xshare:off
Reviewed-by: alanb, mdoerr
2025-11-10 14:57:27 +00:00
Weijun Wang
2d4f2fde22 8349732: Add support for JARs signed with ML-DSA
Reviewed-by: mullan
2025-11-10 14:39:22 +00:00
Michael McMahon
1877ff996b 8331195: Improve com.sun.net.httpserver.HttpExchange usability
Reviewed-by: jpai, dfuchs
2025-11-10 14:34:29 +00:00
Albert Mingkun Yang
9d2fa8fe22 8371321: Remove unused last arg of BarrierSetAssembler::arraycopy_epilogue
Reviewed-by: fandreuzzi, tschatzl
2025-11-10 14:29:35 +00:00
Daniel Fuchs
1142d29943 8369920: HttpClient QuicSelectorThread could be a VirtualThread
Reviewed-by: vyazici, djelinski
2025-11-10 13:05:07 +00:00
Kerem Kat
98f40e4575 8371425: Include folder names in vscode workspace virtual folders
Reviewed-by: erikj, jvernee, shade
2025-11-10 11:33:56 +00:00
Erik Gahlin
681dab7205 8365972: JFR: ThreadDump and ClassLoaderStatistics events may cause back to back rotations
Reviewed-by: mgronlun
2025-11-10 10:22:59 +00:00
Hannes Wallnöfer
49f51f9450 8370612: Simplify implementation of dark theme
8371021: Tab order in theme picker is broken

Reviewed-by: jlamperth, liach
2025-11-10 10:06:09 +00:00
Joel Sikström
c0b82ff2e5 8370843: Deprecate AlwaysActAsServerClassMachine and NeverActAsServerClassMachine
Reviewed-by: ayang, kvn
2025-11-10 09:41:55 +00:00
Paul Hübner
f48ad21ecc 8371216: oopDesc::print_value_on breaks if klass is garbage
Reviewed-by: coleenp, mdoerr
2025-11-10 09:24:45 +00:00
Joel Sikström
2c378e26d7 8370813: Deprecate AggressiveHeap
Reviewed-by: ayang, shade
2025-11-10 08:54:04 +00:00
Benoît Maillard
0c1b7267e3 8366990: C2: Compilation hits the memory limit when verifying loop opts in Split-If code
Reviewed-by: chagedorn, dfenacci
2025-11-10 08:41:13 +00:00
Benoît Maillard
5e8bf7a283 8369646: Detection of redundant conversion patterns in add_users_of_use_to_worklist is too restrictive
Reviewed-by: chagedorn, epeter
2025-11-10 08:39:21 +00:00
Matthias Baesken
79fee607fd 8371473: Problem list TestEmergencyDumpAtOOM.java on ppc64 platforms related to JDK-8371014
Reviewed-by: mdoerr, phubner
2025-11-10 07:58:13 +00:00
Axel Boldt-Christmas
d570765e27 8367149: Add convenient construction for creating ad-hoc VMErrorCallback
Reviewed-by: ayang, stefank
2025-11-10 06:19:27 +00:00
Jasmine Karthikeyan
f77a5117db 8350468: x86: Improve implementation of vectorized numberOfLeadingZeros for int and long
Co-authored-by: Raffaello Giulietti <rgiulietti@openjdk.org>
Reviewed-by: sviswanathan, qamai, vlivanov
2025-11-10 06:16:02 +00:00
Axel Boldt-Christmas
4e4cced710 8371341: ZGC: Improve gtest interoperability with instrumented builds (ASAN)
Reviewed-by: stefank, eosterlund
2025-11-10 05:55:34 +00:00
Axel Boldt-Christmas
a8b35bf5a6 8367317: ZGC: ZVirtualMemoryReserver::force_reserve_discontiguous arithmetic underflow
Reviewed-by: jsikstro, eosterlund
2025-11-10 05:53:55 +00:00
Axel Boldt-Christmas
66e5a68a33 8371343: ZGC: Remove dependency on test execution order for gtests
Reviewed-by: stefank, eosterlund
2025-11-10 05:53:36 +00:00
Prasanta Sadhukhan
4a14c81a06 8299304: Test "java/awt/print/PrinterJob/PageDialogTest.java" fails on macOS 13 x64 because the Page Dialog blocks the Toolkit
Reviewed-by: tr
2025-11-09 07:23:10 +00:00
Prasanta Sadhukhan
ebd1c03829 8371163: Make GlyphView/TestGlyphBGHeight.java headless
8371377: javax/swing/text/GlyphView/TestGlyphBGHeight.java fails in Ubuntu 24.04 X11

Reviewed-by: aivanov
2025-11-09 07:22:45 +00:00
Leonid Mesnik
88c4678eed 8371103: vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t006/TestDescription.java failing
Reviewed-by: amenkov, sspitsyn
2025-11-08 21:30:58 +00:00
Lawrence Andrews
066810c877 8371485: ProblemList awt/Mixing/AWT_Mixing/JTableInGlassPaneOverlapping.java for linux
Reviewed-by: azvegint
2025-11-07 20:36:13 +00:00
Naoto Sato
2c3c4707c0 8354548: Update CLDR to Version 48.0
Reviewed-by: joehw, jlu
2025-11-07 19:33:21 +00:00
Harshitha Onkar
9bc23608fb 8371364: Refactor javax/swing/JFileChooser/FileSizeCheck.java to use Util.findComponent()
Reviewed-by: aivanov
2025-11-07 18:41:43 +00:00
Roger Riggs
a90fc2661a 8371421: [AIX] new test ProcessCloseTest fails
Reviewed-by: mdoerr
2025-11-07 17:48:49 +00:00
Harshitha Onkar
354910381a 8353755: Add a helper method to Util - findComponent()
Reviewed-by: aivanov, tr
2025-11-07 17:48:27 +00:00
Erik Österlund
c8656449c2 8365932: Implementation of JEP 516: Ahead-of-Time Object Caching with Any GC
Co-authored-by: Axel Boldt-Christmas <aboldtch@openjdk.org>
Co-authored-by: Joel Sikström <jsikstro@openjdk.org>
Co-authored-by: Stefan Karlsson <stefank@openjdk.org>
Reviewed-by: aboldtch, iklam, kvn
2025-11-07 15:28:51 +00:00
Jorn Vernee
d5803aa78a 8371315: java/foreign/sharedclosejfr/TestSharedCloseJFR.java failed with -XX:-TieredCompilation
Reviewed-by: mcimadamore, syan
2025-11-07 14:06:37 +00:00
Albert Mingkun Yang
167c952bb0 8371369: Parallel: Relax precondition of PSOldGen::expand_and_allocate
Reviewed-by: eosterlund, fandreuzzi
2025-11-07 10:48:07 +00:00
Fei Yang
59d2309578 8371385: compiler/escapeAnalysis/TestRematerializeObjects.java fails in case of -XX:-UseUnalignedAccesses
Reviewed-by: chagedorn, dfenacci
2025-11-07 10:10:14 +00:00
Christian Stein
428b553ad4 8278856: javac documentation does not mention use of Manifest class-path attribute
Reviewed-by: jlahoda
2025-11-07 09:55:16 +00:00
Jayathirth D V
4233178af2 8368729: Add appropriate checks in java.awt.image.Kernel constructor
Reviewed-by: azvegint, prr, kizune
2025-11-07 09:45:48 +00:00
Tobias Hartmann
3d6824e802 8371432: [BACKOUT] 8359256: AArch64: Use SHA3 GPR intrinsic where it's faster
Reviewed-by: mchevalier, epeter, syan
2025-11-07 09:19:18 +00:00
Tobias Hartmann
48bbc950f1 8371388: [BACKOUT] JDK-8365047: Remove exception handler stub code in C2
Reviewed-by: chagedorn, epeter
2025-11-07 09:17:21 +00:00
Jan Lahoda
205a163a90 8340840: jshell ClassFormatError when making inner class static
8368999: jshell crash when existing sealed class is updated to also be abstract

Reviewed-by: mcimadamore, asotona, liach
2025-11-07 09:06:51 +00:00
Volkan Yazici
866faa9d40 8366577: Deprecate java.net.Socket::setPerformancePreferences
Reviewed-by: dfuchs, alanb, jpai
2025-11-07 08:15:42 +00:00
Rui Li
e34a831814 8261743: Shenandoah: enable String deduplication with compact heuristics
Reviewed-by: shade, wkemper
2025-11-06 23:46:50 +00:00
Matias Saavedra Silva
8796611206 8272160: Avoid using 32-bit counters in CDS code
Reviewed-by: iklam, kvn
2025-11-06 21:03:54 +00:00
Alexander Zvegintsev
8a0c47d4ba 8371225: Missing release of GDK lock in Java_sun_awt_X11_GtkFileDialogPeer_run()
Reviewed-by: aivanov, serb
2025-11-06 20:24:20 +00:00
Leonid Mesnik
90ccdf2986 8371367: Replace remaining JvmtiJavaThreadEventTransition with JVMTI_JAVA_THREAD_EVENT_CALLBACK_BLOCK
Reviewed-by: sspitsyn, cjplummer
2025-11-06 20:20:22 +00:00
William Kemper
cad73d3976 8370041: GenShen: Filter young pointers from thread local SATB buffers when only marking old
Reviewed-by: ysr, kdnilsen
2025-11-06 19:37:44 +00:00
Xiaolong Peng
9cc542ebcb 8370850: Shenandoah: Simplify collector allocation to save unnecessary region iteration
Reviewed-by: wkemper
2025-11-06 18:57:52 +00:00
Nityanand Rai
4445a8e3f5 8369323: Fix typos in vmTestbase/.../Concurrent.java
Reviewed-by: wkemper, phh, lmesnik, shade, syan
2025-11-06 17:25:59 +00:00
Justin Lu
0026967e03 8370420: HostLocaleProviderAdapter_md.c from libjava can use GetLocaleInfoEx, GetCalendarInfoEx, EnumCalendarInfoExEx directly
Reviewed-by: naoto, mbaesken, bpb
2025-11-06 17:12:49 +00:00
EunHyunsu
c272aca8a0 8371091: Improve the exception message of NullPointerException thrown by the methods in the default implementation of HttpRequest.Builder
Reviewed-by: dfuchs
2025-11-06 16:13:34 +00:00
Brian Burkhalter
1f08a3ede2 8355342: File.getCanonicalPath on Java 24 resolves paths on network drives to UNC format
Reviewed-by: alanb
2025-11-06 16:01:37 +00:00
Brian Burkhalter
1321186547 8367943: PipedOutputStream write(0, 0) successful after close()
Reviewed-by: rriggs, jpai
2025-11-06 16:01:10 +00:00
Archie Cobbs
a5864582da 8155591: Misleading warning when not overriding close method in interface extending AutoCloseable
Reviewed-by: jlahoda
2025-11-06 15:28:01 +00:00
Kerem Kat
2d924ad358 8351194: Clean up Hotspot SA after 32-bit x86 removal
Reviewed-by: cjplummer, shade, ayang, dholmes
2025-11-06 15:00:37 +00:00
Erik Gahlin
df414e0d19 8370884: JFR: Overflow in aggregators
Reviewed-by: mgronlun
2025-11-06 13:39:57 +00:00
Boris Ulasevich
c173d416f7 8359256: AArch64: Use SHA3 GPR intrinsic where it's faster
Reviewed-by: eastigeevich, phh
2025-11-06 12:56:37 +00:00
Fredrik Bredberg
3930b1d4dd 8367982: Unify ObjectSynchronizer and LightweightSynchronizer
Reviewed-by: pchilanomate, coleenp
2025-11-06 12:16:19 +00:00
Qizheng Xing
093e128771 8347499: C2: Make PhaseIdealLoop eliminate more redundant safepoints in loops
Reviewed-by: epeter, roland
2025-11-06 10:56:48 +00:00
Kim Barrett
913c973ca0 8371104: gtests should use wrappers for <limits> and <type_traits>
Reviewed-by: jrose, tschatzl
2025-11-06 10:14:21 +00:00
Matthias Baesken
1b3889a470 8354937: Cleanup some sparc related coding in os_linux
Reviewed-by: ayang, mdoerr, lucy
2025-11-06 08:27:32 +00:00
Matthias Baesken
db76479a10 8371316: Adjust assertion (GC pause time cannot be smaller than the sum of each phase) in G1GCPhaseTimes::print
Reviewed-by: ayang, tschatzl
2025-11-06 08:06:34 +00:00
Zihao Lin
ac9cf5d572 8370878: C1: Clean up unnecessary ConversionStub constructor
Reviewed-by: chagedorn
2025-11-06 07:19:14 +00:00
Volkan Yazici
c754e3e095 8368528: HttpClient.Builder.connectTimeout should accept arbitrarily large values
Reviewed-by: dfuchs
2025-11-06 06:22:32 +00:00
Ioi Lam
3f40f4c362 8370975: OutputAnalyzer.matches() should use Matcher with Pattern.MULTILINE
Reviewed-by: stefank
2025-11-06 04:48:29 +00:00
Jaikiran Pai
188da51f30 8365699: Remove jdk.internal.javac.PreviewFeature.Feature enum values for features finalized in Java 25 or earlier
Reviewed-by: vromero, liach
2025-11-06 04:42:20 +00:00
Peyang
d5831ed866 8357880: Code formatting typo in Cipher.getMaxAllowedParameterSpec
Reviewed-by: fandreuzzi, mullan
2025-11-05 22:26:03 +00:00
Ashutosh Mehra
1357be98fc 8371178: Preserve fast version of getfield and putfield in AOTCache
Reviewed-by: adinn, iklam
2025-11-05 21:38:34 +00:00
Jeremy Wood
acc8a76db2 8357034: GifImageDecoder can produce wrong transparent pixels
Reviewed-by: jdv, prr
2025-11-05 18:57:03 +00:00
Phil Race
5a37374dca 8368576: PrintJob.getGraphics() does not specify behavior after PrintJob.end()
Reviewed-by: psadhukhan, tr, serb
2025-11-05 18:55:07 +00:00
Dmitry Kulikov
2872f815fd 8360120: Bundled macOS applications not receiving OpenURL events when launched as subprocess
Reviewed-by: kizune, prr
2025-11-05 18:54:34 +00:00
Phil Race
7d93cb73c4 8370637: [Windows] Crash if use Graphics after PrintJob.end
Reviewed-by: azvegint, psadhukhan, aivanov
2025-11-05 18:52:26 +00:00
Chris Plummer
cf45e09c38 8371354: Problem list serviceability/sa/TestJhsdbJstackMixedWithXComp.java due to JDK-8371194
Reviewed-by: kevinw
2025-11-05 18:03:22 +00:00
Chris Plummer
b0536f9c2a 8370201: Test serviceability/sa/TestJhsdbJstackWithVirtualThread.java fails due to VM warnings
Reviewed-by: kevinw, amenkov, sspitsyn
2025-11-05 15:56:08 +00:00
EunHyunsu
973dc3fc47 8371009: HttpClient javadoc synchronous example missing HttpRequest variable declaration
Reviewed-by: dfuchs, michaelm
2025-11-05 14:57:05 +00:00
Magnus Ihse Bursie
2dd15cf5bf 8346719: Add relaunchers to the static JDK image for missing executables
Reviewed-by: alanb, erikj
2025-11-05 13:57:18 +00:00
Samuel Chee
c9a98169cb 8371205: AArch64: Remove unused cmpxchg* methods
Co-authored-by: Samuel Chee <samche01@arm.com>
Reviewed-by: aph, kbarrett, haosun
2025-11-05 13:56:26 +00:00
Volkan Yazici
f6f87bb675 8371133: Clarify the purpose of "src/jdk.compiler/share/classes/com/sun/tools/javac/resources/ct.properties"
Reviewed-by: jlahoda
2025-11-05 13:01:51 +00:00
Ruben Ayrapetyan
3e3822ad7e 8365047: Remove exception handler stub code in C2
Co-authored-by: Martin Doerr <mdoerr@openjdk.org>
Reviewed-by: mdoerr, dlong, dfenacci, adinn, fyang, aph
2025-11-05 11:55:02 +00:00
Albert Mingkun Yang
6a51b51ba1 8371197: G1: Use void for return type of G1RegionsOnNodes::add
Reviewed-by: tschatzl, iwalulya, fandreuzzi
2025-11-05 10:12:47 +00:00
Robbin Ehn
0737a56252 8370708: RISC-V: Add VerifyStackAtCalls
Reviewed-by: fyang, fjiang
2025-11-05 09:21:57 +00:00
Afshin Zafari
f5d8bd0dd5 8370874: [asan] ASAN build fails after JDK-8368365
Reviewed-by: haosun, dholmes, syan, stuefe
2025-11-05 08:57:02 +00:00
Kerem Kat
dddfcd03aa 8334866: Improve Speed of ElfDecoder source search
Reviewed-by: shade, chagedorn
2025-11-05 08:33:14 +00:00
Christian Stein
a0e70c4e94 8370175: State engine terminates when throwing self-caused exception
Reviewed-by: jlahoda, fandreuzzi
2025-11-05 06:23:26 +00:00
Jan Lahoda
8b536b5428 8369489: Marker annotation on inner class access crashes javac compiler
Reviewed-by: vromero
2025-11-05 05:44:09 +00:00
Phil Race
d89c6a77f2 8371304: mismatch in file name and class name for ByteInterleavedRasterOffsetsTest.java
Reviewed-by: psadhukhan
2025-11-05 03:25:40 +00:00
erifan
4e6cadf455 8369456: [TESTBUG] Fix the test failure of TestSelectFromTwoVectorOp.java on sve2 platforms
Reviewed-by: epeter, bkilambi, xgong, haosun
2025-11-05 02:19:29 +00:00
Kelvin Nilsen
87c2091cd0 8371141: Shenandoah: Many test timeouts with -XX:-UseTLAB
Reviewed-by: xpeng, ysr, wkemper
2025-11-05 00:25:16 +00:00
Patricio Chilano Mateo
c6a88155b5 8369238: Allow virtual thread preemption on some common class initialization paths
Co-authored-by: Alan Bateman <alanb@openjdk.org>
Co-authored-by: Fei Yang <fyang@openjdk.org>
Co-authored-by: Richard Reingruber <rrich@openjdk.org>
Reviewed-by: sspitsyn, dholmes, coleenp, fbredberg
2025-11-04 23:32:41 +00:00
Alexey Semenyuk
c8f5fd6ff3 8371184: Improve jpackage test coverage for "--app-image" option
Reviewed-by: almatvee
2025-11-04 22:41:17 +00:00
Koushik Thirupattur
463f5dc112 8371296: Refactor tests to use PEM API (Phase 1) - Fix WriteP12Test failure
Reviewed-by: ascarpino
2025-11-04 22:08:33 +00:00
Phil Race
146f8a83f9 4954405: Data buffers created with an offset are unusable
Reviewed-by: avu, psadhukhan, jdv
2025-11-04 21:49:41 +00:00
Phil Race
984c87cf76 8370719: [Linux] Use /etc/os-release values for font configuration file names
Reviewed-by: kizune, psadhukhan
2025-11-04 21:47:58 +00:00
Phil Race
245eeb41bc 8357252: sun/awt/font/TestArabicHebrew.java fails in OEL 9 and 10 x64
Reviewed-by: serb, psadhukhan, kizune
2025-11-04 21:47:40 +00:00
Phil Race
8585b46c12 8364583: ColorConvertOp fails for CMYK → RGB conversion
Reviewed-by: serb, psadhukhan, honkar
2025-11-04 21:40:50 +00:00
Roger Riggs
3250823022 8364361: [process] java.lang.Process should implement Closeable
Reviewed-by: lancea, darcy, naoto, jpai, alanb, prappo
2025-11-04 20:40:38 +00:00
Alexey Semenyuk
0555f6228c 8371094: --mac-signing-key-user-name no longer works
Reviewed-by: almatvee
2025-11-04 19:44:04 +00:00
Koushik Thirupattur
8224292ba5 8365069: Refactor tests to use PEM API (Phase 1)
Reviewed-by: ascarpino
2025-11-04 18:42:52 +00:00
Vicente Romero
4c6af03f81 8337142: StackOverflowError in Types.containsTypeRecursive with deeply nested type hierarchy
Reviewed-by: mcimadamore
2025-11-04 16:47:33 +00:00
Peyang
2f455ed146 8371092: NullPointerException in AltServiceUsageTest.afterClass() test
Reviewed-by: dfuchs
2025-11-04 16:08:15 +00:00
Leonid Mesnik
7d3c66f379 8371114: Problemlist vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t006/TestDescription.java
Reviewed-by: amenkov, syan, sspitsyn
2025-11-04 15:58:19 +00:00
Jorn Vernee
a51a0bf57f 8370344: Arbitrary Java frames on stack during scoped access
Reviewed-by: pchilanomate, dholmes, liach
2025-11-04 15:40:40 +00:00
Fernando Guallini
c0c76703bc 8366817: test/jdk/javax/net/ssl/TLSCommon/interop/JdkProcServer.java and JdkProcClient.java should not delete logs
Reviewed-by: syan, rhalade
2025-11-04 15:20:22 +00:00
Jonas Norlinder
d4622b2cea 8371130: Remove String template leftovers
Reviewed-by: redestad, rriggs
2025-11-04 14:27:14 +00:00
Kieran Farrell
642ba4cfd1 8334015: Add Support for UUID Version 7 (UUIDv7) defined in RFC 9562
Reviewed-by: rriggs, jpai, alanb
2025-11-04 14:02:24 +00:00
Roland Westrelin
e6546683a8 8327963: C2: fix construction of memory graph around Initialize node to prevent incorrect execution if allocation is removed
Co-authored-by: Emanuel Peter <epeter@openjdk.org>
Co-authored-by: Roberto Castañeda Lozano <rcastanedalo@openjdk.org>
Reviewed-by: epeter, rcastanedalo
2025-11-04 11:17:56 +00:00
Matthias Baesken
a840dc22c5 8364741: [asan] runtime/ErrorHandling/PrintVMInfoAtExitTest.java fails because output differs slightly
Reviewed-by: syan, phubner, jsikstro
2025-11-04 09:54:50 +00:00
Benoît Maillard
a98b9e7cfa 8362832: compiler/macronodes/TestTopInMacroElimination.java hits assert(false) failed: unexpected node
Reviewed-by: dlunden, epeter, kvn
2025-11-04 09:42:18 +00:00
Joel Sikström
19cca0a2a8 8371131: Cleanup Thread parameter in CollectedHeap TLAB methods
Reviewed-by: ayang, tschatzl
2025-11-04 09:35:46 +00:00
Albert Mingkun Yang
21f41c5f49 8370774: Merge ModRefBarrierSet into CardTableBarrierSet
Reviewed-by: tschatzl, iwalulya
2025-11-04 09:22:47 +00:00
Thomas Schatzl
e4aed95cac 8370682: G1: Survivor regions not in young gen cset group
Reviewed-by: iwalulya, ayang
2025-11-04 08:48:48 +00:00
Volkan Yazici
c1476fca9d 8366575: Remove SDP support
Reviewed-by: alanb, erikj, jpai, michaelm
2025-11-04 08:03:30 +00:00
Emanuel Peter
75e37b06c3 8370332: C2 SuperWord: SIGSEGV because PhaseIdealLoop::split_thru_phi left dead nodes in loop _body
Reviewed-by: chagedorn, roland
2025-11-04 07:39:11 +00:00
Amit Kumar
50bb92a33b 8370871: [s390x] consistently update top_frame_sp
Reviewed-by: rrich, lucy
2025-11-04 04:59:32 +00:00
Serhiy Sachkov
576f9694b0 8361106: [TEST] com/sun/net/httpserver/Test9.java fails with java.nio.file.FileSystemException
Reviewed-by: dfuchs
2025-11-04 01:58:54 +00:00
Mohamed Issa
dadbad0bef 8371088: Build fails when trying hsdis option
Reviewed-by: erikj
2025-11-04 01:58:34 +00:00
Vicente Romero
9f972008ff 8369654: javac OutOfMemoryError for complex intersection type
Reviewed-by: liach, mcimadamore
2025-11-03 18:32:06 +00:00
Matias Saavedra Silva
1922c4fd6f 8365940: Misleading macro in jvm_md.h:57
Reviewed-by: dholmes, kbarrett
2025-11-03 16:34:41 +00:00
Artur Barashev
02a7217491 8366364: Return enabled signature schemes with SSLConfiguration#getSSLParameters() call
Reviewed-by: mullan
2025-11-03 15:05:16 +00:00
Thomas Schatzl
18e8873cad 8369111: G1: Determining concurrent start uses inconsistent predicates
Reviewed-by: iwalulya, ayang
2025-11-03 14:44:15 +00:00
Yasumasa Suenaga
20ff33cbdf 8370260: Test jdk/jfr/event/oldobject/TestEmergencyDumpAtOOM.java timed out
Reviewed-by: syan, egahlin
2025-11-03 14:26:07 +00:00
Yasumasa Suenaga
045018d5f3 8370176: Mixed mode jhsdb jstack cannot unwind call stack with -Xcomp
Co-authored-by: Fei Yang <fyang@openjdk.org>
Reviewed-by: cjplummer, kevinw
2025-11-03 14:25:45 +00:00
Igor Rudenko
8dbefc53a9 8370822: Improve performance for MemorySegment::fill
Reviewed-by: pminborg
2025-11-03 14:17:56 +00:00
Afshin Zafari
ef464d6939 8371142: [BACKOUT] [ubsan] add non-zero offset to nullptr in cds/archiveBuilder.cpp
Reviewed-by: coleenp
2025-11-03 12:57:19 +00:00
Sergey Nazarkin
4520983e8e 8368882: NPE during text drawing on machine with JP locale
Reviewed-by: serb, prr, psadhukhan
2025-11-03 12:56:42 +00:00
Coleen Phillimore
6f452ac46f 8364360: Defining hidden class with no room in constant pool crashes the VM
Reviewed-by: matsaave, liach, dholmes
2025-11-03 12:37:00 +00:00
Jan Lahoda
abf4f3da76 8370865: Incorrect parser error for compact source files and multi-variable declarations
Reviewed-by: vromero
2025-11-03 12:02:54 +00:00
Jan Lahoda
15fd52925a 8366196: Crash in AbstractMethodCheck.getMethodCheckFailure
Reviewed-by: liach, mcimadamore
2025-11-03 11:41:30 +00:00
Hamlin Li
667744c353 8370794: C2 SuperWord: Long/Integer.compareUnsigned return wrong value for EQ/NE in SLP
Reviewed-by: epeter, luhenry
2025-11-03 10:36:24 +00:00
Raffaello Giulietti
deb7edb151 8366017: Extend the set of inputs handled by fast paths in FloatingDecimal
Reviewed-by: darcy
2025-11-03 09:48:55 +00:00
Albert Mingkun Yang
400f51f7ab 8369913: Parallel: Refactor PSAdjustTask
Reviewed-by: fandreuzzi, jsikstro
2025-11-03 09:39:11 +00:00
Albert Mingkun Yang
89b492f41b 8371018: Remove unused CollectedHeap::fill_with_object
Reviewed-by: iwalulya, fandreuzzi, tschatzl
2025-11-03 09:38:53 +00:00
Joel Sikström
10ea585b5c 8370345: Parallel: Rework TLAB accounting in MutableNUMASpace
Reviewed-by: ayang, iwalulya
2025-11-03 09:30:55 +00:00
Afshin Zafari
4e63c0412e 8366062: [ubsan] add non-zero offset to nullptr in cds/archiveBuilder.cpp
Reviewed-by: iklam, dholmes
2025-11-03 09:28:35 +00:00
Emanuel Peter
09a047f00c 8370405: C2: mismatched store from MergeStores wrongly scalarized in allocation elimination
Co-authored-by: Olivier Mattmann <olivier.mattmann@bluewin.ch>
Co-authored-by: Quan Anh Mai <qamai@openjdk.org>
Reviewed-by: kvn, qamai
2025-11-03 06:55:32 +00:00
Emanuel Peter
0ca0852d78 8370459: C2: CompressBitsNode::Value produces wrong result on Windows (1UL vs 1ULL), found by ExpressionFuzzer
Reviewed-by: dlong, jbhateja, thartmann
2025-11-03 06:45:48 +00:00
Saint Wesonga
4cfabd605c 8370974: Command-line Hotspot debugger tests fail on Windows AArch64
Reviewed-by: dholmes, cjplummer
2025-11-03 02:21:54 +00:00
Simon Tooke
05efc1fa99 8370578: SystemMapTest.java#normal fails intermittendly on macOS aarch64
Reviewed-by: cjplummer, sspitsyn, stuefe
2025-11-03 02:20:17 +00:00
Kim Barrett
e8a1a8707e 8369186: HotSpot Style Guide should permit some uses of the C++ Standard Library
Reviewed-by: jrose, lkorinth, iwalulya, kvn, stefank
2025-11-02 07:02:06 +00:00
Alexey Semenyuk
7c900da198 8371076: jpackage will wrongly overwrite the plist file in the embedded runtime when executed with the "--app-image" option
Reviewed-by: almatvee
2025-11-02 02:19:11 +00:00
Alexey Semenyuk
f7f4f903cf 8370969: --launcher-as-service option is ignored when used with --app-image option
Reviewed-by: almatvee
2025-11-01 23:29:48 +00:00
Mikhail Yankelevich
13b3d2fca1 8368625: com/sun/net/httpserver/ServerStopTerminationTest.java fails intermittently
Reviewed-by: dfuchs
2025-11-01 10:06:14 +00:00
Yasumasa Suenaga
d226023643 8369994: Mixed mode jhsdb jstack cannot resolve symbol in function ending in call
Reviewed-by: kevinw, cjplummer
2025-11-01 02:33:16 +00:00
SendaoYan
54fe50210e 8370732: Use WhiteBox.getWhiteBox().fullGC() to provoking gc for nsk/jvmti tests
Reviewed-by: cjplummer, lmesnik, sspitsyn
2025-11-01 02:04:43 +00:00
Leonid Mesnik
2fc4cbe426 8370663: Incorrect synchronization in nsk/jvmti/RedefineClasses when expected events are not received
Reviewed-by: sspitsyn
2025-10-31 23:33:49 +00:00
Kelvin Nilsen
ec059c0e85 8365880: Shenandoah: Unify memory usage accounting in ShenandoahFreeSet
Reviewed-by: wkemper
2025-10-31 21:02:28 +00:00
Mark Powers
1781b186b5 8343232: PKCS#12 KeyStore support for RFC 9879: Use of Password-Based Message Authentication Code 1 (PBMAC1)
Reviewed-by: weijun, mullan
2025-10-31 17:52:48 +00:00
Chad Rakoczy
8236800deb 8370527: Memory leak after 8316694: Implement relocation of nmethod within CodeCache
Reviewed-by: shade, eastigeevich, kvn
2025-10-31 14:11:13 +00:00
Matthias Baesken
16dafc00ec 8370393: Cleanup handling of ancient Windows versions from GetJavaProperties java_props_md
Reviewed-by: clanger, rriggs
2025-10-31 14:10:52 +00:00
Sergey Kuksenko
2158719aab 8370150: Add StrictMath microbenchmarks to cover FDLIBM algorithms
Reviewed-by: rgiulietti
2025-10-31 14:00:55 +00:00
Albert Mingkun Yang
67a81c476f 8370943: Support heap expansion during startup in Serial and Parallel
Reviewed-by: fandreuzzi, eosterlund, tschatzl
2025-10-31 13:33:11 +00:00
Marc Chevalier
8ca485cf98 8370077: C2: make Compile::_major_progress a boolean
Reviewed-by: chagedorn, kvn, dlong, epeter
2025-10-31 11:02:29 +00:00
Marc Chevalier
02f8874c2d 8361608: C2: assert(opaq->outcnt() == 1 && opaq->in(1) == limit) failed
Co-authored-by: Christian Hagedorn <chagedorn@openjdk.org>
Reviewed-by: chagedorn, rcastanedalo
2025-10-31 11:00:06 +00:00
Liam Miller-Cushon
8e3620a344 8370237: AssertionError in Annotate.fromAnnotations with -Xdoclint and type annotations
Reviewed-by: jlahoda
2025-10-31 09:52:02 +00:00
Mikhail Yankelevich
4ca88aa2e8 8370852: Test sun/security/ssl/SSLLogger/DebugPropertyValuesTest.java fails after JDK-8369995
Reviewed-by: coffeys, wetmore
2025-10-31 09:51:45 +00:00
Albert Mingkun Yang
4913b548a7 8370950: Inline CollectedHeap::fill_args_check
Reviewed-by: fandreuzzi, tschatzl
2025-10-31 08:46:59 +00:00
Thomas Schatzl
c47ea12111 8370889: G1: Inline G1PrepareEvacuationTask::sample_card_set_size()
Reviewed-by: fandreuzzi, ayang, iwalulya
2025-10-31 06:38:42 +00:00
Tagir F. Valeev
c6cc7a7b2a 8368178: Add specialization of SequencedCollection methods to standard list factories
Reviewed-by: smarks
2025-10-31 05:33:59 +00:00
Prasanta Sadhukhan
fc5df4ac8f 8370465: Right to Left Orientation Issues with MenuItem Component
Reviewed-by: kizune, honkar
2025-10-31 03:33:45 +00:00
Leonid Mesnik
4f9f086847 8224852: JVM crash on watched field access from native code
Reviewed-by: amenkov, sspitsyn
2025-10-31 01:40:06 +00:00
William Kemper
6347f10bf1 8370521: GenShen: Various code cleanup related to promotion
Reviewed-by: fandreuzzi, kdnilsen, ysr
2025-10-31 00:07:47 +00:00
Kelvin Nilsen
3c1010b57f 8370646: TestLargeUTF8Length.java needs lots of memory
Reviewed-by: phh, wkemper, ysr
2025-10-31 00:05:59 +00:00
Kelvin Nilsen
dfa04f4aa5 8370653: Fix race in CompressedClassSpaceSizeInJmapHeap.java
Reviewed-by: phh, wkemper, ysr
2025-10-31 00:04:11 +00:00
Alexey Semenyuk
a926c216e0 8370965: Remove SigningPackageFromTwoStepAppImageTest test
Reviewed-by: almatvee
2025-10-30 22:45:49 +00:00
Kevin Walls
0e05466730 8370955: Remove test javax/management/remote/mandatory/connection/ConnectionTest.java from ProblemList-Virtual
Reviewed-by: sspitsyn
2025-10-30 21:42:43 +00:00
Alexey Semenyuk
a5f3a6f21b 8370956: ShortcutHintTest test fails when executed locally on Linux
Reviewed-by: almatvee
2025-10-30 21:14:31 +00:00
Alexey Semenyuk
e293166e44 8370963: Errors in jpackage jtreg test descriptions
Reviewed-by: almatvee
2025-10-30 21:14:09 +00:00
William Kemper
c6eea8acf6 8370667: GenShen: Only make assertions about region pinning for collected generation
Reviewed-by: xpeng, ysr
2025-10-30 21:10:01 +00:00
William Kemper
c69e0eb2f9 8370726: GenShen: Misplaced assertion that old referent is marked during young collection
Reviewed-by: xpeng, ysr
2025-10-30 20:40:29 +00:00
Chen Liang
566aa1267c 8370971: Problemlist jdkDoctypeBadcharsCheck.java and jdkCheckHtml.java
Reviewed-by: dholmes
2025-10-30 20:38:30 +00:00
Aleksey Shipilev
c49a94bf89 8370572: Cgroups hierarchical memory limit is not honored after JDK-8322420
Reviewed-by: simonis, sgehwolf
2025-10-30 19:09:34 +00:00
Phil Race
414e728698 8370141: [macOS] Crash after PrinterJob ends when Graphics.create() is used.
Reviewed-by: serb, psadhukhan
2025-10-30 19:09:06 +00:00
Phil Race
4b31511149 8370160: NumericShaper allows illegal ranges
Reviewed-by: serb, psadhukhan, kizune
2025-10-30 18:03:21 +00:00
Koushik Thirupattur
d18e815b94 8368301: sun/security/util/math/intpoly compiler warnings
Reviewed-by: mullan
2025-10-30 17:24:11 +00:00
Chen Liang
a2196e2060 4397513: Misleading "interface method" in InvocationHandler specification
Reviewed-by: alanb, jpai
2025-10-30 16:51:36 +00:00
Leonid Mesnik
ed36b9bb6f 8370851: Mark hotspot and jdk tests incompatible with test thread factory
Reviewed-by: alanb, kevinw, sspitsyn
2025-10-30 15:34:46 +00:00
Kevin Walls
bb9aeedd88 8370908: Remove test javax/management/remote/mandatory/connection/DeadLockTest.java from ProblemList-Virtual
Reviewed-by: cjplummer
2025-10-30 15:22:28 +00:00
Serguei Spitsyn
a33aa65fbc 8369609: calls from Continuations to invalidate_jvmti_stack must be more accurate
Reviewed-by: pchilanomate, dholmes
2025-10-30 14:24:00 +00:00
Francesco Andreuzzi
b166b0d082 8370730: Test serviceability/attach/EarlyDynamicLoad/EarlyDynamicLoad.java needs to be resilient about warnings
Reviewed-by: sspitsyn, cjplummer
2025-10-30 14:23:31 +00:00
Anton Seoane Ampudia
795bf9f6d1 8351159: Remaining cleanups in cpu/x86 after 32-bit x86 removal
Reviewed-by: stefank, kvn
2025-10-30 11:31:29 +00:00
Roland Westrelin
80fcfaf41a 8369435: C2: transform (LShiftX (SubX con0 a), con1) into (SubX con0<<con1 (LShiftX a con1))
Reviewed-by: epeter, qamai
2025-10-30 10:34:37 +00:00
Thomas Schatzl
87e5341d78 8370804: G1: Make G1HeapRegionAttr::remset_is_tracked() conform to coding style
Reviewed-by: iwalulya, sjohanss, fandreuzzi, ayang
2025-10-30 09:22:11 +00:00
Afshin Zafari
d565c45e61 8370261: Test runtime/NMT/NMTPrintMallocSiteOfCorruptedMemory.java timed out
Reviewed-by: dholmes, shade
2025-10-30 08:14:54 +00:00
Matthias Baesken
5096dc8972 8368739: [AIX] java/net/httpclient/http3/H3SimpleGet.java#useNioSelector and #with-continuations fail
Reviewed-by: mdoerr, dfuchs
2025-10-30 08:05:35 +00:00
Thomas Schatzl
17fd801b24 8370807: G1: Improve region attribute table method naming
Reviewed-by: ayang, sjohanss, iwalulya
2025-10-30 07:35:26 +00:00
Jan Lahoda
87a4772198 8366968: Exhaustive switch expression rejected by for not covering all possible values
Reviewed-by: abimpoudis
2025-10-30 07:08:18 +00:00
Rui Li
f3dfdfa3fd 8369013: Shenandoah: passive mode should support enabling ShenandoahCardBarrier
Reviewed-by: wkemper
2025-10-29 21:40:36 +00:00
Alexander Zvegintsev
d62553d8dc 8316274: javax/swing/ButtonGroup/TestButtonGroupFocusTraversal.java fails in Ubuntu 23.10 with Motif LAF
Reviewed-by: honkar, prr
2025-10-29 20:17:05 +00:00
Ioi Lam
6080ccd232 8370797: Test runtime/ErrorHandling/AccessZeroNKlassHitsProtectionZone.java failed on macos 26
Reviewed-by: stuefe, kvn
2025-10-29 18:40:14 +00:00
Artur Barashev
436dc687ba 8367059: DTLS: loss of NewSessionTicket message results in handshake failure
Reviewed-by: jnimeh, djelinski
2025-10-29 17:25:31 +00:00
Pavel Rappo
28f2591bad 8370568: Refer to Thread.interrupted as "interrupted status" consistently
Reviewed-by: jpai, rriggs, alanb
2025-10-29 15:36:43 +00:00
Hamlin Li
eab5644a96 8370481: C2 SuperWord: Long/Integer.compareUnsigned return wrong value in SLP
Reviewed-by: epeter, tonyp
2025-10-29 15:00:16 +00:00
Volkan Yazici
2c07214d7c 8368249: HttpClient: Translate exceptions thrown by sendAsync
Reviewed-by: jpai
2025-10-29 13:12:58 +00:00
Paul Hübner
0f34b0203a 8365896: Remove unnecessary explicit buffer nul-termination after using os::snprintf
Reviewed-by: dholmes, coleenp
2025-10-29 12:57:06 +00:00
Joel Sikström
6964cede02 8369346: Remove default value of and deprecate the MaxRAM flag
Reviewed-by: ayang, lkorinth
2025-10-29 12:47:18 +00:00
Jaikiran Pai
4a0200caf9 8367561: Getting some "header" property from a file:// URL causes a file descriptor leak
Reviewed-by: dfuchs, vyazici
2025-10-29 11:19:53 +00:00
Matthew Donovan
3cbcda5ff3 8359978: Test javax/net/ssl/SSLSocket/Tls13PacketSize.java failed again with java.net.SocketException: An established connection was aborted by the software in your host machine
Reviewed-by: jnimeh, djelinski
2025-10-29 11:05:06 +00:00
Maheshkumar Bollapragada
78f1c449da 8370678: Update the Problemlisting for java/awt/Mixing/AWT_Mixing/OpaqueOverlapping.java
Reviewed-by: honkar
2025-10-29 10:58:09 +00:00
Roberto Castañeda Lozano
05ef8f4611 8370853: IGV: SEGV in IdealGraphPrinter::print after JDK-8370569
Reviewed-by: dfenacci, aseoane, thartmann
2025-10-29 10:49:30 +00:00
Joel Sikström
d8515f084d 8369983: Remove expired ZGC flags for JDK 26
Reviewed-by: ayang, aboldtch
2025-10-29 09:58:28 +00:00
Volkan Yazici
bbe5e83c39 8363925: Remove unused sun.nio.cs.ArrayEncoder::encode
Reviewed-by: liach
2025-10-29 09:58:10 +00:00
Anton Seoane Ampudia
8457f38f14 8347463: jdk/jfr/threading/TestManyVirtualThreads.java crashes with assert(oopDesc::is_oop_or_null(val))
Reviewed-by: dlong, rcastanedalo, mgronlun
2025-10-29 09:37:34 +00:00
Pavel Rappo
2758c6fda2 8368856: Add a method that performs saturating addition of a Duration to an Instant
Reviewed-by: naoto, rriggs, scolebourne
2025-10-29 09:11:02 +00:00
Roland Westrelin
5a2b0ca7fe 8339526: C2: store incorrectly removed for clone() transformed to series of loads/stores
Reviewed-by: rcastanedalo, chagedorn
2025-10-29 09:03:34 +00:00
Jaikiran Pai
20bcf0edda 6400876: (bf) Remove sun.nio.ByteBuffered and related obsolete code
Reviewed-by: djelinski, vyazici, alanb
2025-10-29 08:59:12 +00:00
Liam Miller-Cushon
c97d50d793 8369508: Type annotations on anonymous new class creation expressions can't be retrieved
Reviewed-by: vromero
2025-10-29 07:26:00 +00:00
Ioi Lam
0687f120cc 8368199: Add @AOTSafeClassInitializer to jdk.internal.access.SharedSecrets
Reviewed-by: liach, heidinga
2025-10-29 03:23:38 +00:00
David Holmes
297a625f19 8370854: Add sun/security/ssl/SSLLogger/DebugPropertyValuesTest.java to the ProblemList
Reviewed-by: weijun
2025-10-29 02:30:20 +00:00
Jaikiran Pai
769950674e 8370775: ModulePatcher$JarResourceFinder.getByteBuffer() does not close the InputStream after reading the bytes
Reviewed-by: alanb, fandreuzzi
2025-10-29 01:33:26 +00:00
Shaojin Wen
a588c120fc 8368172: Make java.time.format.DateTimePrintContext immutable
Reviewed-by: liach
2025-10-29 01:28:20 +00:00
Leonid Mesnik
723d6f83a2 8355631: The events might be generated after VM_DEATH event
Reviewed-by: sspitsyn, dholmes
2025-10-28 23:50:04 +00:00
Chad Rakoczy
73f93920b9 8369147: Various issues with new tests added by JDK-8316694
Reviewed-by: kvn, dlong
2025-10-28 21:07:11 +00:00
Leonid Mesnik
d186037063 8370636: com/sun/jdi/TwoThreadsTest.java should wait for completion of all threads
Reviewed-by: cjplummer, syan, sspitsyn
2025-10-28 20:59:49 +00:00
Weijun Wang
012b4eb6ce 8370082: Intermediate objects clean up in ECDH, EdDSA, XDH, DHKEM, and HKDF
Reviewed-by: ascarpino, abarashev, fandreuzzi
2025-10-28 19:56:56 +00:00
Chen Liang
20e55fafb3 8370687: Improve before constructor has been called error message
Reviewed-by: vromero
2025-10-28 17:58:42 +00:00
Anton Seoane Ampudia
86f60f6081 8351149: Remove dead IA32/X32/!AMD64 code blocks after 32-bit x86 removal
Reviewed-by: stefank, ayang, kvn
2025-10-28 17:49:23 +00:00
Mikhail Yankelevich
5ebc2c7212 8369995: Fix StringIndexOutOfBoundsException and implement extra logging and/or propagate errors in X509KeyManagerImpl
Co-authored-by: Daniel Jeliński <djelinski@openjdk.org>
Reviewed-by: wetmore, djelinski, abarashev
2025-10-28 16:51:15 +00:00
Paul Hübner
289f421f0f 8366488: JVM_FindClassFromClass should assert that from class is never null
Reviewed-by: coleenp, dholmes
2025-10-28 16:47:16 +00:00
Matthias Baesken
69a9b4ceaf 8370064: Test runtime/NMT/CheckForProperDetailStackTrace.java fails on Windows when using stripped pdb files
Reviewed-by: dholmes, clanger
2025-10-28 16:42:54 +00:00
Erik Österlund
c3c0a676e5 8370500: Change windows x64 implementation of os::current_stack_pointer()
Reviewed-by: aboldtch, dholmes, kvn, adinn
2025-10-28 13:41:38 +00:00
Ashutosh Mehra
5dd8a33396 8334898: Resolve static field/method references at CDS dump time
Reviewed-by: iklam, adinn
2025-10-28 13:37:19 +00:00
Roberto Castañeda Lozano
5c5367c312 8370569: IGV: dump more graph properties at bytecode parsing
Reviewed-by: chagedorn, snatarajan
2025-10-28 13:31:12 +00:00
Albert Mingkun Yang
307637a497 8370806: Parallel: Revise logs in PSYoungGen::compute_desired_sizes
Reviewed-by: tschatzl
2025-10-28 13:21:45 +00:00
Albert Mingkun Yang
19920df81d 8370417: Parallel: TestAlwaysPreTouchBehavior.java fails with NUMA
Reviewed-by: iveresov, jsikstro, tschatzl
2025-10-28 12:17:19 +00:00
Manuel Hässig
9625993611 8370579: PPC: fix inswri immediate argument order
Reviewed-by: mdoerr, mbaesken
2025-10-28 08:59:08 +00:00
Liam Miller-Cushon
f82cc22bfe 8369428: Include method name in 'does not override or implement' diagnostics
Reviewed-by: vromero, liach
2025-10-28 08:53:43 +00:00
Emanuel Peter
d5ce66698d 8370220: C2: rename methods and improve documentation around get_ctrl and idom lazy updating/forwarding of ctrl and idom via dead ctrl nodes
Reviewed-by: chagedorn, thartmann
2025-10-28 06:42:05 +00:00
Francesco Andreuzzi
05ee55efcf 8369219: JNI::RegisterNatives causes a memory leak in CodeCache
Reviewed-by: shade, apangin, dlong
2025-10-28 06:33:41 +00:00
Alexey Semenyuk
327b7c3cd8 8370100: Redundant .png files in Linux app-image cause unnecessary bloat
Reviewed-by: almatvee
2025-10-28 03:10:19 +00:00
Prasanta Sadhukhan
460a69bd50 8017266: Background is painted taller than needed for styled text.
Reviewed-by: kizune, dnguyen
2025-10-28 02:41:21 +00:00
SendaoYan
b3e63aeab3 8370649: Add intermittent tag for gc/shenandoah/generational/TestOldGrowthTriggers.java
Reviewed-by: wkemper
2025-10-28 01:21:26 +00:00
Brian Burkhalter
2f613911d5 8370387: Remove handling of InterruptedIOException from java.io classes
Reviewed-by: alanb
2025-10-27 21:14:13 +00:00
Brian Burkhalter
4e8e55db60 8370633: Remove dead code for Windows file path canonicalization functions
Reviewed-by: alanb, iris
2025-10-27 21:13:51 +00:00
William Kemper
70aa3678fc 8370520: GenShen: Track and report on promotion failures
Reviewed-by: shade, fandreuzzi
2025-10-27 20:58:33 +00:00
Vicente Romero
e4e457f696 8366871: (javac) legacy.properties seems to be an obsolete file
Reviewed-by: liach
2025-10-27 20:11:54 +00:00
Joe Darcy
8151251fa6 8370370: Add still more cases to WorstCaseTests
Reviewed-by: rgiulietti
2025-10-27 18:46:44 +00:00
Daniel Hu
c25f35205a 8341735: Rewrite the build/AbsPathsInImage.java test to not load the entire file at once
Reviewed-by: erikj
2025-10-27 16:48:51 +00:00
Justin Lu
ebf9c5bfc1 8370250: Locale should mention the behavior for duplicate subtags
Reviewed-by: naoto
2025-10-27 16:40:17 +00:00
Vladimir Ivanov
583ff202b1 8370251: C2: Inlining checks for method handle intrinsics are too strict
Reviewed-by: kvn, roland
2025-10-27 16:15:10 +00:00
Igor Veresov
1e49376ece 8368321: Rethink compilation delay strategy for lukewarm methods
Reviewed-by: kvn, vlivanov
2025-10-27 15:09:59 +00:00
Johannes Bechberger
5ed6c201ba 8370681: [BACKOUT] Improve memory ordering in new CPU Time Profiler
Reviewed-by: mdoerr
2025-10-27 12:29:22 +00:00
Aleksey Shipilev
7bb490c4bf 8370318: AES-GCM vector intrinsic may read out of bounds (x86_64, AVX-512)
Reviewed-by: kvn, roland
2025-10-27 10:35:02 +00:00
Johny Jose
6f8d07ae21 8368500: ContextClassLoader cannot be reset on threads in ForkJoinPool.commonPool()
Reviewed-by: vklang, alanb
2025-10-27 10:23:48 +00:00
Albert Mingkun Yang
91e1dcb108 8366781: Parallel: Include OS free memory in GC selection heuristics
Reviewed-by: gli, iwalulya
2025-10-27 10:07:55 +00:00
Raffaello Giulietti
e9479b517a 8370628: Rename BigInteger::nthRoot to rootn, and similarly for nthRootAndRemainder
Reviewed-by: darcy
2025-10-27 08:15:00 +00:00
Sergey Bylokhov
f5ef01d4bf 8370368: Apply java.io.Serial annotations in java.security.jgss
Reviewed-by: mullan
2025-10-27 07:38:28 +00:00
Thomas Schatzl
3d2ce8045f 8212084: G1: Implement UseGCOverheadLimit
Reviewed-by: ayang, iwalulya, fandreuzzi
2025-10-27 06:53:08 +00:00
Prasanta Sadhukhan
bfc1db7ed6 8370560: Remove non-public API reference from public API javadoc
Reviewed-by: prr
2025-10-27 05:17:43 +00:00
Sergey Bylokhov
e7c7892b9f 8370197: Add missing @Override annotations in com.sun.beans package
Reviewed-by: prr
2025-10-26 06:04:02 +00:00
Mikhail Yankelevich
c3449de23f 8360395: sun/security/tools/keytool/i18n.java user country is current user location instead of the language
Reviewed-by: rhalade
2025-10-25 15:27:03 +00:00
SendaoYan
32697bf652 8370501: vmTestbase/vm/gc/compact/Humongous_NonbranchyTree5M/TestDescription.java intermittent timed out
Reviewed-by: tschatzl
2025-10-25 01:54:03 +00:00
Josiah Noel
35fdda0889 7105350: HttpExchange's attributes are the same as HttpContext's attributes
Reviewed-by: michaelm, jpai, dfuchs
2025-10-24 23:03:50 +00:00
Phil Race
a4eaeb47c9 6453640: BandedSampleModel.createCompatibleSampleModel() API docs are wrong
Reviewed-by: azvegint, serb
2025-10-24 22:24:28 +00:00
Mikhailo Seledtsov
97e5ac6e72 8370514: Problemlist nio/channels/AsyncCloseAndInterrupt until JDK-8368290 is resolved
Reviewed-by: bpb
2025-10-24 18:04:32 +00:00
Francesco Andreuzzi
2ee34391c1 8368975: Windows ProcessImpl.java has dead code
Reviewed-by: ayang, rriggs
2025-10-24 17:43:41 +00:00
Anass Baya
13adcd99db 8274082: Wrong test name in jtreg run tag for java/awt/print/PrinterJob/SwingUIText.java
Co-authored-by: Lawrence Andrews <landrews@openjdk.org>
Reviewed-by: honkar, dnguyen
2025-10-24 17:04:28 +00:00
Shaojin Wen
fd23a61cd4 8370503: Use String.newStringWithLatin1Bytes to simplify Integer/Long toString method
Reviewed-by: rgiulietti, rriggs
2025-10-24 16:43:57 +00:00
Matthew Donovan
cc9483b4da 8366182: Some PKCS11Tests are being skipped when they shouldn't
Reviewed-by: rhalade
2025-10-24 11:10:59 +00:00
Alexander Zvegintsev
470eedb1e9 8370511: test/jdk/javax/swing/JSlider/bug4382876.java does not release previously pressed keys
Reviewed-by: psadhukhan, serb, honkar
2025-10-24 09:46:00 +00:00
Mikhail Yankelevich
f73e56e24f 8361894: sun/security/krb5/config/native/TestDynamicStore.java ensure that the test is run with sudo
Reviewed-by: rhalade
2025-10-24 09:14:04 +00:00
Johannes Bechberger
b7a4c9ced8 8366240: Improve memory ordering in new CPU Time Profiler
Reviewed-by: jbachorik, krk, zgu
2025-10-24 08:55:17 +00:00
Martin Doerr
b31bbfcf2f 8368787: Error reporting: hs_err files should show instructions when referencing code in nmethods
Reviewed-by: stuefe, aph, mbaesken, shade
2025-10-24 08:26:24 +00:00
Prasanta Sadhukhan
26eed3b61e 8068293: [TEST_BUG] Test closed/com/sun/java/swing/plaf/motif/InternalFrame/4150591/bug4150591.java fails with GTKLookAndFeel
Reviewed-by: serb, tr
2025-10-24 07:25:53 +00:00
Amit Kumar
87645afa05 8370389: JavaFrameAnchor on s390 has unnecessary barriers
Reviewed-by: lucy, aph
2025-10-24 05:43:16 +00:00
Shaojin Wen
5862358965 8370013: Refactor Double.toHexString to eliminate regex and StringBuilder
Reviewed-by: rgiulietti, darcy
2025-10-24 00:40:13 +00:00
Alexey Semenyuk
d720a8491b 8343220: Add test cases to AppContentTest jpackage test
Reviewed-by: almatvee
2025-10-24 00:16:18 +00:00
Shawn M Emery
62f11cd407 8326609: New AES implementation with updates specified in FIPS 197
Reviewed-by: valeriep
2025-10-23 19:36:49 +00:00
William Kemper
b2e431a1cb 8369068: GenShen: Generations still aren't reconciled assertion failure
Reviewed-by: ysr, kdnilsen
2025-10-23 19:06:47 +00:00
Mikhail Yankelevich
b0721e2859 8368982: Test sun/security/tools/jarsigner/EC.java completed and timed out
Reviewed-by: rhalade
2025-10-23 17:08:53 +00:00
Joe Darcy
a0e0b2d365 8370057: Correct scale handling of BigDecimal.sqrt
Reviewed-by: rgiulietti
2025-10-23 17:02:44 +00:00
Prasanta Sadhukhan
869112ef65 8026776: Broken API names in API doc
Reviewed-by: aivanov, tr, ayang, prr
2025-10-23 16:24:48 +00:00
Patricio Chilano Mateo
6e898e2113 8369944: Notification can be lost due to interrupt in Object.wait
Reviewed-by: dholmes, fbredberg
2025-10-23 15:46:34 +00:00
Thomas Stuefe
aaa9fbf6b5 8368365: ASAN errors should produce hs-err files and core dumps
Reviewed-by: mbaesken, asmehra
2025-10-23 13:03:31 +00:00
Matthias Baesken
b597b6556d 8370065: Windows perfmemory coding - use SetSecurityDescriptorControl directly
Reviewed-by: dholmes, stuefe
2025-10-23 13:03:13 +00:00
Coleen Phillimore
3fdb15fc52 8369622: GlobalChunkPoolMutex is recursively locked during error handling
Co-authored-by: Johan Sjölen <jsjolen@openjdk.org>
Co-authored-by: Afshin Zafari <azafari@openjdk.org>
Reviewed-by: dholmes, azafari, phubner
2025-10-23 11:46:01 +00:00
Albert Mingkun Yang
5a83d6a835 8370406: Parallel: Refactor ParCompactionManager::mark_and_push
Reviewed-by: fandreuzzi, iwalulya
2025-10-23 11:09:33 +00:00
Claes Redestad
da968dc645 8370227: Migrate micros-javac benchmarks from jmh-jdk-microbenchmarks
Reviewed-by: asotona, erikj, ecaspole
2025-10-23 10:02:03 +00:00
Casper Norrbin
aec138886e 8313770: jdk/internal/platform/docker/TestSystemMetrics.java fails on Ubuntu
Reviewed-by: sgehwolf, mbaesken, syan
2025-10-23 09:06:00 +00:00
Joel Sikström
dcf46a0a19 8369658: Client emulation mode sets MaxRAM too late
Reviewed-by: aboldtch, stefank
2025-10-23 08:22:32 +00:00
Thomas Schatzl
027aea9d2e 8370325: G1: Disallow GC for TLAB allocation
Reviewed-by: iwalulya, ayang
2025-10-23 07:05:08 +00:00
Anass Baya
ffcb1585ed 8320677: Printer tests use invalid '@run main/manual=yesno
Reviewed-by: aivanov, dnguyen
2025-10-23 06:28:50 +00:00
Alexey Semenyuk
3e20a9392f 8370156: Fix jpackage IconTest
Reviewed-by: almatvee
2025-10-22 23:50:39 +00:00
Damon Nguyen
be18e7ecfd 8064922: [macos] Test javax/swing/JTabbedPane/4624207/bug4624207.java fails
Reviewed-by: tr, honkar, psadhukhan
2025-10-22 22:42:46 +00:00
Dean Long
0744db8366 8367002: Missing compiled exception handler for "recursive" exception
Reviewed-by: thartmann, kvn
2025-10-22 22:01:31 +00:00
Francesco Andreuzzi
2a8cbd944b 8359472: JVM crashes when attaching a dynamic agent before JVMTI_PHASE_LIVE
Reviewed-by: lmesnik, sspitsyn, amenkov
2025-10-22 21:47:06 +00:00
Matias Saavedra Silva
45e145fac2 8359057: AbstractInterpreter::is_not_reached returns incorrectly with invokedynamic
Reviewed-by: vlivanov
2025-10-22 21:06:25 +00:00
Koushik Thirupattur
4377e7c9e8 8367008: Algorithm identifiers for HmacSHA* should always have NULL as params
Reviewed-by: weijun
2025-10-22 21:00:18 +00:00
Ashutosh Mehra
d8ebe38759 8370377: Avoid resolving constant pool entries during preimage generation in the training run
Reviewed-by: adinn, iklam
2025-10-22 19:11:37 +00:00
Alexey Semenyuk
a925461395 8370442: Compilation error in jpackage EntitlementsTest test
Reviewed-by: almatvee
2025-10-22 18:08:19 +00:00
Markus Grönlund
afba636869 8369991: Thread blocking during JFR emergency dump must be in safepoint safe state
Reviewed-by: fandreuzzi, egahlin
2025-10-22 17:39:41 +00:00
Coleen Phillimore
92e380c59c 8361451: Test vmTestbase/metaspace/stressHierarchy/stressHierarchy012/TestDescription.java fails with OutOfMemoryError: Metaspace
Reviewed-by: dholmes, lmesnik, iklam, syan
2025-10-22 12:34:17 +00:00
Erik Gahlin
65b3239418 8370242: JFR: Clear event reference eagerly when using EventStream
Reviewed-by: mgronlun
2025-10-22 11:27:11 +00:00
Volkan Yazici
cbbb0a8630 8367976: Validate and clamp jdk.httpclient.bufsize
Reviewed-by: dfuchs
2025-10-22 11:20:43 +00:00
Matthias Baesken
763d4252f8 8368781: PerfMemory - make issues more transparent
Reviewed-by: dholmes, goetz
2025-10-22 11:11:42 +00:00
Tobias Hartmann
60104575b2 8370378: Some compiler tests inadvertently exclude particular platforms
Reviewed-by: chagedorn, mchevalier
2025-10-22 10:36:23 +00:00
Francesco Andreuzzi
b8d3c9049c 8370229: Remove unused method declarations after JDK-8322630
Reviewed-by: ayang, dholmes
2025-10-22 09:35:24 +00:00
Anton Seoane Ampudia
bdfd5e843a 8367690: C2: Unneeded branch in reduce_phi
Reviewed-by: rcastanedalo, chagedorn
2025-10-22 09:08:26 +00:00
Martin Doerr
6bf3581bba 8369946: Bytecode rewriting causes Java heap corruption on PPC
Reviewed-by: rrich, dbriemann
2025-10-22 08:35:05 +00:00
Hamlin Li
27c83c730d 8370225: RISC-V: cleanup verify_xxx in interp_masm_riscv.hpp
Reviewed-by: fyang
2025-10-22 08:12:10 +00:00
Mikhail Yankelevich
8d9b2fa6af 8365072: Refactor tests to use PEM API (Phase 2)
Reviewed-by: ascarpino
2025-10-22 07:50:38 +00:00
Saint Wesonga
eff4b11033 8369322: Implement native stack printing for Windows-AArch64
Reviewed-by: dholmes, karianna
2025-10-22 07:45:40 +00:00
Ioi Lam
70e786154f 8370248: AOTMapLogger should check if pointer is in AOTMetaspace
Reviewed-by: kvn, adinn
2025-10-22 06:01:11 +00:00
Alexey Semenyuk
94c0611b95 8370122: jpackage test lib improvements
Reviewed-by: almatvee
2025-10-22 02:41:27 +00:00
Sergey Bylokhov
ed153ee2c4 8369032: Add test to ensure serialized ICC_Profile stores only necessary optional data
Reviewed-by: honkar
2025-10-21 22:10:01 +00:00
Alexander Matveev
cac2519fc6 8356578: Test --mac-entitlements
Reviewed-by: asemenyuk
2025-10-21 21:34:38 +00:00
David Holmes
aab3fc54e6 8370207: Test sun/misc/SunMiscSignalTest.java crashes after JDK-8369631
Reviewed-by: kbarrett, coleenp
2025-10-21 20:49:53 +00:00
Chen Liang
43e036ba89 8366424: Missing type profiling in generated Record Object methods
Reviewed-by: jvernee
2025-10-21 19:00:51 +00:00
Brent Christian
b68fa4354c Merge
Reviewed-by: kcr, prr
2025-10-21 18:40:24 +00:00
Ana Maria Mihalceanu
d55e1b4a11 8370222: Wrong output for a command in jlink man page
Reviewed-by: alanb
2025-10-21 16:46:50 +00:00
Andrew Haley
9a88d7f468 8369211: AArch64: Devirtualize class RelocActions
Reviewed-by: adinn, asmehra
2025-10-21 14:27:02 +00:00
Sorna Sarathi N
b77b9103c3 8369349: Add missing CPE headers
Reviewed-by: asemenyuk
2025-10-21 14:09:33 +00:00
Albert Mingkun Yang
0529a58a73 8370326: Parallel: Remove unused ParCompactionManager::push
Reviewed-by: fandreuzzi, tschatzl
2025-10-21 13:43:48 +00:00
Daniel Lundén
2af4d20abf 8370031: Make RegMask copy constructor explicit and replace RegMask operator= with named function
Reviewed-by: mhaessig, rcastanedalo
2025-10-21 13:17:14 +00:00
Albert Mingkun Yang
517d54373f 8370234: Remove CardTableBarrierSet::write_region
Reviewed-by: tschatzl, fandreuzzi
2025-10-21 13:01:50 +00:00
David Briemann
d4c0239746 8370240: [PPC64] jhsdb jstack cannot handle continuation stub
Reviewed-by: mdoerr, rrich
2025-10-21 12:54:59 +00:00
Gennadiy Krivoshein
ea7186a87f 8020207: jconsole fails connecting over SSL using service:jmx:rmi://...jndi...
Reviewed-by: kevinw
2025-10-21 10:33:19 +00:00
Albert Mingkun Yang
a0c4124432 8370078: Remove unnecessary argument in ContiguousSpace::initialize
Reviewed-by: fandreuzzi, jsikstro
2025-10-21 09:01:27 +00:00
Albert Mingkun Yang
2be273f20f 8346005: Parallel: Incorrect page size calculation with UseLargePages
Co-authored-by: Joel Sikström <jsikstro@openjdk.org>
Reviewed-by: jsikstro, fandreuzzi
2025-10-21 08:13:06 +00:00
Pavel Rappo
ec13c283c4 8366829: Add java.time.Duration constants MIN and MAX
Reviewed-by: rriggs, naoto, scolebourne
2025-10-21 07:47:57 +00:00
Jan Lahoda
430041d366 8367499: Refactor exhaustiveness computation from Flow into a separate class
Reviewed-by: vromero
2025-10-21 07:21:53 +00:00
David Holmes
b6b0f051d5 8370262: Add jdk/javadoc/doccheck/checks/jdkCheckLinks.java to the ProblemList
Reviewed-by: jpai
2025-10-21 06:31:55 +00:00
Alexey Semenyuk
2aa0efd425 8370126: Improve jpackage signing testing
Reviewed-by: almatvee
2025-10-21 06:21:11 +00:00
Emanuel Peter
634746a0f1 8369898: C2 SuperWord: assert(has_ctrl(i)) failed: should be control, not loop
Reviewed-by: chagedorn, kvn
2025-10-21 05:43:08 +00:00
Emanuel Peter
207fe55d90 8369902: C2 SuperWord: wrong result because filterin NaN instead of zero in MemPointerParser::canonicalize_raw_summands
Co-authored-by: Manuel Hässig <mhaessig@openjdk.org>
Reviewed-by: mhaessig, kvn
2025-10-21 05:42:50 +00:00
David Holmes
eee2908853 8370257: Remove ProblemListed tests from ProblemList.txt
Reviewed-by: cjplummer
2025-10-21 04:04:50 +00:00
erifan
2de8d58552 8366333: AArch64: Enhance SVE subword type implementation of vector compress
Co-authored-by: Jatin Bhateja <jbhateja@openjdk.org>
Reviewed-by: jbhateja, xgong, galder, vlivanov
2025-10-21 01:20:38 +00:00
Alexey Semenyuk
0522cf2ed9 8370123: Minor jpackage refactoring
Reviewed-by: almatvee
2025-10-21 01:02:34 +00:00
Alexey Semenyuk
c781a2ff31 8370136: Support async execution of jpackage tests
Reviewed-by: almatvee
2025-10-21 00:07:12 +00:00
Sean Mullan
e1d1fa91cf 8360937: Enhance certificate handling
Reviewed-by: ahgross, rhalade, jnibedita, ascarpino, naoto
2025-10-20 16:42:01 -07:00
Raffaello Giulietti
c448505914 8359454: Enhance String handling
Reviewed-by: rhalade, rriggs
2025-10-20 16:42:01 -07:00
Joe Wang
d9dad578b8 8356294: Enhance Path Factories
Reviewed-by: ahgross, rriggs, rhalade, lancea, naoto
2025-10-20 16:42:01 -07:00
Matias Saavedra Silva
8145cfac8c 8352637: Enhance bytecode verification
Reviewed-by: rhalade, mschoene, dlong, coleenp
2025-10-20 16:42:00 -07:00
Alexey Ivanov
a1302e5fbc 8365625: Can't change accelerator colors in Windows L&F
Reviewed-by: psadhukhan, kizune
2025-10-20 18:16:49 +00:00
Brian Burkhalter
a1be297911 8369854: (ch) Refine specification of behavior of {Gathering,Writable}ByteChannel.write
Reviewed-by: alanb
2025-10-20 15:25:49 +00:00
Albert Mingkun Yang
257bb2b279 8370079: Re-enable vmTestbase/gc/vector/CircularListLow and LinearListLow with SerialGC
Reviewed-by: tschatzl
2025-10-20 15:21:41 +00:00
Afshin Zafari
dc6858f336 8370230: Bad copyright in NMTPrintMallocSiteOfCorruptedMemory.java after JDK-8369527
Reviewed-by: thartmann
2025-10-20 15:09:43 +00:00
Afshin Zafari
c867971340 8369527: NMT: print malloc-site when a malloc'd memory detected as corrupted
Reviewed-by: dholmes, jsjolen
2025-10-20 11:32:48 +00:00
Joel Sikström
73923601d8 8369811: ZGC: Robust NUMA configuration detection
Co-authored-by: Axel Boldt-Christmas <aboldtch@openjdk.org>
Reviewed-by: aboldtch, sjohanss
2025-10-20 10:29:21 +00:00
Sean Coffey
ee353201d1 8370071: Clarify jcmd Thread.print help message
Reviewed-by: kevinw
2025-10-20 09:47:34 +00:00
Albert Mingkun Yang
8c775e299d 8370074: Remove unused code in AbstractDebuggeeTest.java
Reviewed-by: fandreuzzi, cjplummer, lmesnik
2025-10-20 09:20:03 +00:00
Nizar Benalla
f158451c25 8361366: Allow sorting of member details in lexicographical order
Reviewed-by: hannesw
2025-10-20 08:51:42 +00:00
Vladimir Petko
5609ee11a2 8370049: [s390x] G1 barrier compareAndExchange does not return old value when compareExchange fails
Reviewed-by: amitkumar, aph, rcastanedalo
2025-10-20 08:05:51 +00:00
Daniel Lundén
39211e7fac 8369569: Rename methods in regmask.hpp to conform with HotSpot coding style
Reviewed-by: aseoane, rcastanedalo, epeter
2025-10-20 07:49:01 +00:00
David Holmes
2148dbbe75 8370213: Add sun/misc/SunMiscSignalTest.java to ProblemList
Reviewed-by: alanb
2025-10-20 07:29:49 +00:00
SendaoYan
7e068cc8d5 8343340: Swapping checking do not work for MetricsMemoryTester failcount
Reviewed-by: sgehwolf
2025-10-20 07:16:00 +00:00
David Holmes
680414d0f9 8369631: Assess and remedy any unsafe usage of the sr_semaphore Semaphore in the Posix signal code
Reviewed-by: stefank, kbarrett
2025-10-20 00:07:08 +00:00
Anass Baya
c2fde517b4 8357390: java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java Test failing on Ubuntu 24.04 Vm Hosts used by Oracle's internal CI system
Reviewed-by: honkar, serb
2025-10-19 11:47:55 +00:00
Alexey Semenyuk
eff6439e75 8370120: Make jpackage tests output more stable
Reviewed-by: almatvee
2025-10-18 01:14:42 +00:00
Alexey Semenyuk
b0af41d667 8370134: Fix minor jpackage issues
Reviewed-by: almatvee
2025-10-18 01:11:19 +00:00
Feilong Jiang
4625199358 8369947: Bytecode rewriting causes Java heap corruption on RISC-V
Reviewed-by: aph, jcking, fyang
2025-10-18 01:09:41 +00:00
Leonid Mesnik
181657084a 8321687: Test vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t002/TestDescription.java failed: JVMTI_ERROR_THREAD_NOT_ALIVE
Reviewed-by: amenkov, cjplummer, sspitsyn
2025-10-18 00:50:38 +00:00
William Kemper
926f61f2e3 8369447: GenShen: Regulator thread may observe inconsistent states
Reviewed-by: kdnilsen, ysr
2025-10-17 23:50:06 +00:00
Alexey Semenyuk
49b17dd5c9 8356575: Test order in which jpackage fills app image
Reviewed-by: almatvee
2025-10-17 22:58:26 +00:00
Joe Darcy
0cc88e4ad4 8370028: Remove author tags from mathematical classes
Reviewed-by: bpb, rriggs
2025-10-17 20:38:37 +00:00
Ioi Lam
6cd7f30d8d 8369742: Link AOT-linked classes at JVM bootstrap
Reviewed-by: kvn, asmehra
2025-10-17 19:50:04 +00:00
Chad Rakoczy
0cb8ccd89a 8369642: [ubsan] nmethod::nmethod null pointer passed as argument 2 to memcpy
Reviewed-by: kvn, mbaesken
2025-10-17 18:03:01 +00:00
Phil Race
0103f21635 8365077: java.awt.font.NumericShaper violates equals/hashCode contract
Reviewed-by: kizune, psadhukhan
2025-10-17 17:57:21 +00:00
Kelvin Nilsen
a3e41ea6c6 8368681: Shenandoah: Add documentation comments for ShenandoahAllocationRate
Reviewed-by: wkemper, xpeng
2025-10-17 17:17:03 +00:00
William Kemper
f84be36dd5 8241066: Shenandoah: fix or cleanup SH::do_full_collection
Reviewed-by: shade
2025-10-17 16:54:20 +00:00
Justin Lu
1e5e17a10a 8369590: LocaleEnhanceTest has incorrectly passing test case
Reviewed-by: naoto
2025-10-17 16:19:35 +00:00
Leonid Mesnik
28bf9176b8 8348844: Remove remaining JVMTI tests from ProblemList-Virtual, use requires instead
Reviewed-by: dholmes, alanb, syan, sspitsyn
2025-10-17 16:03:24 +00:00
Brian Burkhalter
cc6f8f1307 8369997: Tests that use custom scheduler should use jdk.test.lib.thread.VThreadScheduler
Reviewed-by: sspitsyn, alanb
2025-10-17 15:12:27 +00:00
Francesco Andreuzzi
b159ca097a 8369980: Use ThreadsClaimTokenScope in ShenandoahThreadRoots
Reviewed-by: ayang, wkemper
2025-10-17 14:19:21 +00:00
Hamlin Li
e8e2aadd9e 8369685: RISC-V: refactor code related to RVFeatureValue::enabled
Reviewed-by: fyang, rehn
2025-10-17 11:22:23 +00:00
Albert Mingkun Yang
0a97bef840 8369814: G1: Relax card mark and store ordering
Reviewed-by: tschatzl, fandreuzzi
2025-10-17 09:32:40 +00:00
Albert Mingkun Yang
e62a7fa383 8342659: Test vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects002/referringObjects002.java failed: Class nsk.share.jdi.TestClass1 was not unloaded
Co-authored-by: Chris Plummer <cjplummer@openjdk.org>
Reviewed-by: sspitsyn, cjplummer
2025-10-17 09:02:09 +00:00
David Briemann
9b9559a2e3 8369979: Flag UsePopCountInstruction was accidentally disabled on PPC64
Reviewed-by: aph, mdoerr
2025-10-17 08:59:55 +00:00
Kevin Walls
a22438ddc5 8369924: Remove test/jdk/javax/management/remote/mandatory/loading/MissingClassTest.java from problemlist
Reviewed-by: sspitsyn
2025-10-17 08:16:59 +00:00
Laurent Bourgès
46c23bb1a2 8341381: Random lines appear in graphic causing by the fix of JDK-8297230
Reviewed-by: prr
2025-10-17 05:43:10 +00:00
Prasanta Sadhukhan
31beb7d3b3 8068310: [TEST_BUG] Test javax/swing/JColorChooser/Test4234761.java fails with GTKL&F
Reviewed-by: serb
2025-10-17 01:33:30 +00:00
Prasanta Sadhukhan
55787fe5f5 8342401: [TESTBUG] javax/swing/JSpinner/8223788/JSpinnerButtonFocusTest.java test fails in ubuntu 22.04 on SBR Hosts
Reviewed-by: honkar, serb
2025-10-17 01:31:39 +00:00
Ioi Lam
bd7315648f 8369856: AOT map does not include unregistered classes
Co-authored-by: Ashutosh Mehra <asmehra@openjdk.org>
Reviewed-by: kvn, matsaave
2025-10-17 00:36:54 +00:00
William Kemper
4d20f7696c 8370050: Shenandoah: Obsolete ShenandoahPacing option
Reviewed-by: ysr
2025-10-17 00:15:37 +00:00
Francesco Andreuzzi
0bdd6f0640 8369734: JvmtiExport::post_class_file_load_hook return value is never used
Reviewed-by: dholmes, sspitsyn
2025-10-16 22:04:40 +00:00
Patricio Chilano Mateo
0c1c86e68e 8370036: TestJhsdbJstackWithVirtualThread.java fails when run with -showversion
Reviewed-by: ayang, cjplummer
2025-10-16 21:20:42 +00:00
Justin King
18fd047702 8369506: Bytecode rewriting causes Java heap corruption on AArch64
Co-authored-by: Man Cao <manc@openjdk.org>
Co-authored-by: Chuck Rasbold <rasbold@openjdk.org>
Reviewed-by: shade, aph, manc
2025-10-16 19:59:13 +00:00
Albert Mingkun Yang
1392a0b460 8368740: Serial: Swap eden and survivor spaces position in young generation
Reviewed-by: gli, fandreuzzi
2025-10-16 19:55:07 +00:00
Chen Liang
3248aaf3c4 8356548: Use ClassFile API instead of ASM to transform classes in tests
Reviewed-by: sspitsyn, lmesnik, coleenp, iklam
2025-10-16 19:45:57 +00:00
Mikael Vidstedt
9589a29d25 8355752: Bump minimum boot jdk to JDK 25
Reviewed-by: darcy, shade, ihse, iris
2025-10-16 19:43:44 +00:00
William Kemper
d4472979c4 8367709: GenShen: Dirty cards for objects that get promoted by safepoint that intervenes between allocation and stores
Reviewed-by: ysr
2025-10-16 17:49:08 +00:00
Phil Race
844118a9d8 8369146: java/awt/PrintJob/GetGraphicsTest.java: Parse Exception: Invalid or unrecognized bugid: 50510568367702
Reviewed-by: syan, azvegint, kizune, jdv
2025-10-16 16:58:56 +00:00
Phil Race
d7b525ab99 8364673: Remove duplicate font mapping for itcavantgarde in psfontj2d.properties
Reviewed-by: azvegint, kizune
2025-10-16 16:58:38 +00:00
Chris Plummer
873666d157 8369451: Debug agent support for USE_ITERATE_THROUGH_HEAP is broken and should be removed
Reviewed-by: sspitsyn, amenkov
2025-10-16 16:53:47 +00:00
Joe Darcy
7e03240974 8369858: Remove darcy author tags from jdk tests
Reviewed-by: rriggs, iris, lancea
2025-10-16 16:38:18 +00:00
Christian Hagedorn
e56db37734 8369232: testlibrary_tests/ir_framework/tests/TestScenariosCrossProduct.java timed out
Reviewed-by: dfenacci, epeter
2025-10-16 16:02:26 +00:00
Roger Riggs
95380e1ea5 8362637: Convert java.nio.ByteOrder to an enum
Reviewed-by: alanb, liach, bpb
2025-10-16 15:54:22 +00:00
Arno Zeller
87092ef1d9 8183336: Better cleanup for jdk/test/java/lang/module/customfs/ModulesInCustomFileSystem.java
Reviewed-by: alanb, syan
2025-10-16 15:15:19 +00:00
Daniel Lundén
303eb1096c 8369573: Add missing compile commands help documentation for the signature part of method patterns
Reviewed-by: rcastanedalo, aseoane, thartmann
2025-10-16 15:02:32 +00:00
Emanuel Peter
f2a998326a 8369804: TestGenerators.java fails with IllegalArgumentException: bound must be greater than origin
Reviewed-by: chagedorn, thartmann
2025-10-16 14:22:15 +00:00
Emanuel Peter
5dfe115ce1 8369912: [TESTBUG] testlibrary_tests/template_framework/examples/TestExpressions.java fails with ArithmeticException: / by zero - forgot to respect Expression.info
Reviewed-by: kvn, mhaessig
2025-10-16 14:10:14 +00:00
Hamlin Li
f475eb8ee7 8368950: RISC-V: fail to catch out of order declarations among dependent cpu extensions/flags
Reviewed-by: fyang, luhenry
2025-10-16 14:04:45 +00:00
Yasumasa Suenaga
1653999871 8369505: jhsdb jstack cannot handle continuation stub
Reviewed-by: cjplummer, pchilanomate
2025-10-16 12:45:05 +00:00
Stefan Karlsson
5fc3904bfe 8369491: Temporarily revert default TIMEOUT_FACTOR back to 4
Reviewed-by: lkorinth, cstein, jpai, syan, serb, prr
2025-10-16 11:16:05 +00:00
Daniel Jeliński
ead35a754b 8358942: HttpClient adds Content-Length: 0 for a GET request with a BodyPublishers.noBody()
Reviewed-by: dfuchs, vyazici
2025-10-16 11:05:13 +00:00
Erik Gahlin
d6c122b3ff 8369982: ProblemList jdk/jfr/jvm/TestWaste.java
Reviewed-by: tschatzl, dholmes
2025-10-16 09:57:11 +00:00
Martin Doerr
6e911d819e 8368205: [TESTBUG] VectorMaskCompareNotTest.java crashes when MaxVectorSize=8
Reviewed-by: dzhang, epeter, rrich
2025-10-16 09:40:55 +00:00
Viktor Klang
b5b83247da 8369656: Calling CompletableFuture.join() could execute task in common pool
Reviewed-by: alanb, dl
2025-10-16 08:28:22 +00:00
Christoph Langer
17c13e53af 8369683: Exclude runtime/Monitor/MonitorWithDeadObjectTest.java#DumpThreadsBeforeDetach on Alpine Linux debug
Reviewed-by: mbaesken, dholmes
2025-10-16 07:54:23 +00:00
Roland Westrelin
ff6a0170f0 8369258: C2: enable ReassociateInvariants for all loop types
Reviewed-by: epeter, qamai
2025-10-16 07:35:41 +00:00
Artem Semenov
aed42a16ba 8365609: Fix several potential NULL native pointer dereferences in the desktop module
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Signed-off-by: Artem Semenov Artem Semenov <savoptik@altlinux.org>

Reviewed-by: azvegint, prr, serb
2025-10-16 07:28:13 +00:00
Roland Westrelin
7fe0665730 8369167: C2: refactor LShiftINode/LShiftLNode Value/Identity/Ideal
Reviewed-by: epeter, mchevalier
2025-10-16 07:23:41 +00:00
Emanuel Peter
aa194c6a5a 8369881: C2: Unexpected node in SuperWord truncation: ReverseBytesS, ReverseBytesUS
Reviewed-by: chagedorn, kvn
2025-10-16 06:45:10 +00:00
Jan Lahoda
5696d60663 8357809: Test jdk/jshell/JdiListeningExecutionControlTest.java failed with com.sun.jdi.connect.TransportTimeoutException
Reviewed-by: asotona
2025-10-16 06:21:26 +00:00
Thomas Schatzl
0168687fc3 8368940: Missing ResourceMark when stalling for shutdown
Reviewed-by: shade, syan
2025-10-16 05:32:00 +00:00
Prasanta Sadhukhan
4ed364033d 8369251: Opensource few tests
Reviewed-by: honkar
2025-10-16 02:02:16 +00:00
Weijun Wang
a7a3a660e3 8354469: Keytool exposes the password in plain text when command is piped using | grep
Reviewed-by: mullan, smarks, naoto, hchao
2025-10-15 20:47:46 +00:00
David Briemann
c9cbd31f85 8307495: Specialize atomic bitset functions for aix-ppc
Reviewed-by: mdoerr, rrich
2025-10-15 18:29:23 +00:00
David Briemann
bfe6937244 8369444: JavaFrameAnchor on PPC64 has unnecessary barriers
Reviewed-by: mdoerr, dlong
2025-10-15 18:28:56 +00:00
Matias Saavedra Silva
1bd814c3b2 8364660: ClassVerifier::ends_in_athrow() should be removed
Reviewed-by: liach, dlong
2025-10-15 14:34:38 +00:00
Matias Saavedra Silva
784af438ef 8351595: JVM_FindClassFromCaller: unused var may be removed
Reviewed-by: dholmes, alanb, liach, fandreuzzi
2025-10-15 14:09:22 +00:00
Kevin Walls
5191d72092 8369894: Remove javax/management/remote/mandatory/loading/RMIDownloadTest.java from problemlist
Reviewed-by: alanb
2025-10-15 14:06:38 +00:00
Thomas Schatzl
1af37e5c3f 8369793: G1: Remove unused G1FreeIdSet
Reviewed-by: stefank, sjohanss, kbarrett
2025-10-15 11:27:18 +00:00
Thomas Schatzl
159452e85a 8369809: G1: Merge G1CollectedHeap::do_collection_pause_at_safepoint[_helper]
Reviewed-by: ayang, iwalulya
2025-10-15 11:25:31 +00:00
Thomas Schatzl
c53ab10dae 8369818: G1: Add missing region types in gc+heap=debug heap output
Reviewed-by: ayang, iwalulya
2025-10-15 11:25:09 +00:00
Albert Mingkun Yang
9d11787799 8369681: Parallel: Remove conditional check in ParallelScavengeHeap::verify
Reviewed-by: fandreuzzi, tschatzl
2025-10-15 09:18:46 +00:00
Martin Doerr
112d88523d 8334247: [PPC64] Consider trap based nmethod entry barriers
Reviewed-by: ssarathi, rrich
2025-10-15 09:18:22 +00:00
Francesco Andreuzzi
008d8d914c 8369817: [TESTBUG] EmptyPath::toString is ignored
Reviewed-by: jpai, ayang
2025-10-15 09:17:49 +00:00
María Arias de Reyna Domínguez
355cb45943 8369559: Identify owning method for MethodTrainingData and CompileTrainingData in AOT map output
Reviewed-by: adinn, iklam
2025-10-15 09:17:25 +00:00
Jaikiran Pai
42b2999c31 8369812: HttpClient doesn't handle H3_REQUEST_REJECTED correctly
Reviewed-by: dfuchs, djelinski
2025-10-15 02:01:11 +00:00
Erik Gahlin
c82c892063 8282427: jdk/jfr/jvm/TestWaste.java is failing with "exit code 139"
Reviewed-by: mgronlun
2025-10-15 00:58:34 +00:00
4020 changed files with 227023 additions and 295049 deletions

265
.github/README.md vendored
View File

@@ -1,265 +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)
* [jbr21](https://github.com/JetBrains/JetBrainsRuntime/tree/jbr21) (JDK 21)
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 21
| IDE Version | Latest JBR | Date Released |
|-------------|---------------------------------------------------------------------------------------------------------|---------------|
| 2025.3 | [21.0.8-b1163.59](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-21.0.8b1163.59)| 14-Oct-2025 |
| 2025.2 | [21.0.8-b1038.73](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-21.0.8b1038.73)| 13-Oct-2025 |
| 2025.1 | [21.0.7-b895.130](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-21.0.7b895.130)| 15-May-2025 |
| 2024.3 | [21.0.6-b631.52](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-21.0.7b631.52) | 15-May-2025 |
| 2024.2 | [21.0.4-b509.40](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-21.0.7b509.40) | 15-May-2025 |
| 2024.1 | [21.0.2-b346.3](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-21.0.2b346.3) | 30-Jan-2024 |
## Releases based on JDK 17
| IDE Version | Latest JBR | Date Released |
|-------------|--------------------------------------------------------------------------------------------------------|---------------|
| 2024.2 | [17.0.11-b1312.2](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.11b1312.2) | 18-Jun-2024|
| 2024.1 | [17.0.12-b1207.37](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.12b1207.37) | 15-Oct-2024|
| 2023.3 | [17.0.12-b1087.25](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.12b1087.25) | 02-Sep-2024|
| 2023.2 | [17.0.12-b1000.54](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.12b1000.54) | 02-Sep-2024|
| 2023.1 | [17.0.10-b829.27](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.10b829.27) | 21-Mar-2024 |
| 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 |
## Release Flavours
There are many kinds of JBR bundles available on the [Releases page](https://github.com/JetBrains/JetBrainsRuntime/releases):
| Flavour | Description |
|---------------|---------------------------------------------------------------------------------------------------------------|
| JBR | Contains the Java Runtime Environment (JRE) suitable to _run_ JVM-based programs. |
| JBRSDK | Contains the Software Developmet Kit (SDK) suitable to _develop_ and _run_ JVM-based programs. |
| JBR with JCEF | Contains both JBR and JCEF; this flavour is bundled by default with all IntelliJ IDEs. |
| vanilla | Contains just JBR. |
| fastdebug | The native binaries in this bundle are less optimized and are easier to debug. They also run much slower. |
| FreeType | The bundle includes the freetype library built from sources; normally, the library is provided by the system. |
| Vulkan | The bundle includes experimental Vulkan support. | |
| debug symbols | In addition to the usual contents of the bundle the debug information is also included. |
## 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.
* Additional capabilities that are made available to applications through
[JBR API](https://github.com/JetBrains/JetBrainsRuntimeApi) services such as, for example,
the ability to wrap a native graphics texture into `java.awt.Image`.
## 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)
Download an image from [Docker Hub](https://hub.docker.com/repository/docker/jetbrains/runtime/general) related to your architecture:
```
$ docker pull jetbrains/runtime:oraclelinux8_aarch64
```
or
```
$ docker pull jetbrains/runtime:oraclelinux8_x64
```
Create and run a new container from the downloaded image
```
$ docker run -v $JetBrainsRuntime:/JetBrainsRuntime -it jetbrains/runtime:oraclelinux8_[arch]
```
where `$JetBrainsRuntime` is a full path to the directory where the repository was cloned to.
Run these commands in the container:
```
# cd /JetBrainsRuntime
# sh ./configure
# make images
```
### 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 libspeechd-dev libwayland-dev \
wayland-protocols libxkbcommon-x11-0 libdbus-1-dev
```
Get Java 23 (for instance, [Azul Zulu Builds of OpenJDK 23](https://www.azul.com/downloads/?version=java-23&os=linux&package=jdk#zulu)).
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 21 (for instance, [Azul Zulu Builds of OpenJDK 21](https://www.azul.com/downloads/?version=java-21-lts&os=windows&package=jdk#zulu)).
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/`.
#### Enable optional NVDA screen reader support
If you want to add support of a11y announcing via [NVDA screen reader](https://www.nvaccess.org/about-nvda/),
you will need to bundle the NVDA Controller Client library.
You can do it with the following steps:
1. Download the NVDA Controller Client library. You can find the link in its official README [here](https://github.com/nvaccess/nvda/blob/master/extras/controllerClient/readme.md)
2. Pass the path to the unpacked package to `configure` via an additional flag `--with-nvdacontrollerclient=<path>`.
The build system will search the required library files under `<path>/<target-arch>`.
#### Disable optional JAWS screen reader support
JBR is built with built-in support of JAWS screen reader.
If you want to disable it, run `configure` with the additional flag `--disable-jaws-client`.
### macOS
Install the following:
* Xcode command line developer tools and `autoconf` via [Homebrew](https://brew.sh/).
* Java 21 (for instance, [Azul Zulu Builds of OpenJDK 21](https://www.azul.com/downloads/?version=java-21-lts&os=macos&package=jdk#zulu)).
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

@@ -29,7 +29,6 @@ on:
push:
branches-ignore:
- pr/*
- main
workflow_dispatch:
inputs:
platforms:

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

7
.gitignore vendored
View File

@@ -25,4 +25,9 @@ NashornProfile.txt
**/core.[0-9]*
*.rej
*.orig
/jbr-api/
test/benchmarks/**/target
/src/hotspot/CMakeLists.txt
/src/hotspot/compile_commands.json
/src/hotspot/cmake-build-debug/
/src/hotspot/.cache/
/src/hotspot/.idea/

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 idea-gen-config ALLOW=TOPLEVEL_DIR,IDEA_OUTPUT_PARENT,IDEA_OUTPUT,MODULES TOPLEVEL_DIR="$TOPLEVEL_DIR" \
IDEA_OUTPUT_PARENT="$IDEA_OUTPUT_PARENT" IDEA_OUTPUT="$IDEA_OUTPUT" MODULES="$*" $CONF_ARG || exit 1
cd $TOP ; make idea-gen-config ALLOW=IDEA_OUTPUT,MODULES IDEA_OUTPUT=$IDEA_OUTPUT 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
@@ -159,43 +130,6 @@ if [ -d "$TOPLEVEL_DIR/.git" -o -f "$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
@@ -219,106 +153,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 [ "$VERBOSE" = true ] ; then
IDEA_PROJECT_DIR="`dirname $IDEA_OUTPUT`"
if [ "x$PATHTOOL" != "x" ]; then
IDEA_PROJECT_DIR="`$PATHTOOL -am $IDEA_PROJECT_DIR`"
if [ "x$ANT_HOME" = "x" ] ; then
echo "FATAL: cannot find ant. Try setting ANT_HOME." >&2; exit 1
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"
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 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

@@ -668,7 +668,7 @@ update.</p>
(Note that this version is often presented as "MSVC 14.28", and reported
by cl.exe as 19.28.) Older versions will not be accepted by
<code>configure</code> and will not work. The maximum accepted version
of Visual Studio is 2022.</p>
of Visual Studio is 2026.</p>
<p>If you have multiple versions of Visual Studio installed,
<code>configure</code> will by default pick the latest. You can request
a specific version to be used by setting

View File

@@ -468,7 +468,7 @@ available for this update.
The minimum accepted version is Visual Studio 2019 version 16.8. (Note that
this version is often presented as "MSVC 14.28", and reported by cl.exe as
19.28.) Older versions will not be accepted by `configure` and will not work.
The maximum accepted version of Visual Studio is 2022.
The maximum accepted version of Visual Studio is 2026.
If you have multiple versions of Visual Studio installed, `configure` will by
default pick the latest. You can request a specific version to be used by

View File

@@ -114,7 +114,7 @@ id="toc-compatibility-with-c11">Compatibility with C11</a></li>
id="toc-additional-permitted-features">Additional Permitted
Features</a></li>
</ul></li>
<li><a href="#excluded-features" id="toc-excluded-features">Excluded
<li><a href="#forbidden-features" id="toc-forbidden-features">Forbidden
Features</a>
<ul>
<li><a href="#structured-bindings"
@@ -123,8 +123,8 @@ id="toc-structured-bindings">Structured Bindings</a></li>
System Library</a></li>
<li><a href="#aggregate-extensions"
id="toc-aggregate-extensions">Aggregate Extensions</a></li>
<li><a href="#additional-excluded-features"
id="toc-additional-excluded-features">Additional Excluded
<li><a href="#additional-forbidden-features"
id="toc-additional-forbidden-features">Additional Forbidden
Features</a></li>
</ul></li>
<li><a href="#undecided-features" id="toc-undecided-features">Undecided
@@ -506,19 +506,19 @@ uses a subset. (Backports to JDK versions lacking support for more
recent Standards must of course stick with the original C++98/03
subset.)</p>
<p>This section describes that subset. Features from the C++98/03
language may be used unless explicitly excluded here. Features from
language may be used unless explicitly forbidden here. Features from
C++11, C++14, and C++17 may be explicitly permitted or explicitly
excluded, and discussed accordingly here. There is a third category,
forbidden, and discussed accordingly here. There is a third category,
undecided features, about which HotSpot developers have not yet reached
a consensus, or perhaps have not discussed at all. Use of these features
is also excluded.</p>
is also forbidden.</p>
<p>(The use of some features may not be immediately obvious and may slip
in anyway, since the compiler will accept them. The code review process
is the main defense against this.)</p>
<p>Some features are discussed in their own subsection, typically to
provide more extensive discussion or rationale for limitations. Features
that don't have their own subsection are listed in omnibus feature
sections for permitted, excluded, and undecided features.</p>
sections for permitted, forbidden, and undecided features.</p>
<p>Lists of new features for C++11, C++14, and C++17, along with links
to their descriptions, can be found in the online documentation for some
of the compilers and libraries. The C++17 Standard is the definitive
@@ -594,14 +594,15 @@ title="Runtime Type Information">RTTI</a> are deemed not worthwhile,
given the alternatives.</p>
<h3 id="memory-allocation">Memory Allocation</h3>
<p>Do not use the standard global allocation and deallocation functions
(operator new and related functions). Use of these functions by HotSpot
code is disabled for some platforms.</p>
(global <code>operator new</code> and related functions), other than the
non-allocating forms of those functions. Use of these functions by
HotSpot code is disabled for some platforms.</p>
<p>Rationale: HotSpot often uses "resource" or "arena" allocation. Even
where heap allocation is used, the standard global functions are avoided
in favor of wrappers around malloc and free that support the VM's Native
Memory Tracking (NMT) feature. Typically, uses of the global operator
new are inadvertent and therefore often associated with memory
leaks.</p>
in favor of wrappers around <code>malloc</code> and <code>free</code>
that support the JVM's Native Memory Tracking (NMT) feature. Typically,
uses of the global <code>operator new</code> are inadvertent and
therefore often associated with memory leaks.</p>
<p>Native memory allocation failures are often treated as
non-recoverable. The place where "out of memory" is (first) detected may
be an innocent bystander, unrelated to the actual culprit.</p>
@@ -648,7 +649,39 @@ for anonymous namespaces.</p>
class="uri">https://sourceware.org/bugzilla/show_bug.cgi?id=16874</a><br>
Bug for similar gdb problems.</p>
<h3 id="c-standard-library">C++ Standard Library</h3>
<p>Avoid using the C++ Standard Library.</p>
<p>Only curated parts of the C++ Standard Library may be used by HotSpot
code.</p>
<p>Functions that may throw exceptions must not be used. This is in
accordance with the HotSpot policy of <a href="#error-handling">not
using exceptions</a>.</p>
<p>Also in accordance with HotSpot policy, the <a
href="#memory-allocation">standard global allocator must not be
used</a>. This means that uses of standard container classes cannot
presently be used, as doing so requires specialization on some allocator
type that is integrated with the existing HotSpot allocation mechanisms.
(Such allocators may be provided in the future.)</p>
<p>Standard Library identifiers should usually be fully qualified;
<code>using</code> directives must not be used to bring Standard Library
identifiers into scope just to remove the need for namespace
qualification. Requiring qualification makes it easy to distinguish
between references to external libraries and code that is part of
HotSpot.</p>
<p>As with language features, Standard Library facilities are either
permitted, explicitly forbidden, or undecided (and so implicitly
forbidden).</p>
<p>Most HotSpot code should not directly <code>#include</code> C++
Standard Library headers. HotSpot provides a set of wrapper headers for
the Standard Library headers containing permitted definitions. These
wrappers are in the <code>cppstdlib</code> directory, with the same name
as the corresponding Standard Library header and a <code>.hpp</code>
extension. These wrappers provide a place for any additional code (some
of which may be platform-specific) needed to support HotSpot usage.</p>
<p>These wrappers also provide a place to document HotSpot usage,
including any restrictions. The set of wrappers and the usage
documentation should be considered part of HotSpot style. Any changes
are subject to the same process as applies to this document. (For
historical reasons, there may be many direct inclusions of some C++
Standard Library headers.)</p>
<p>Historically, HotSpot has mostly avoided use of the Standard
Library.</p>
<p>(It used to be impossible to use most of it in shared code, because
@@ -661,46 +694,60 @@ in mid-2017. Support for Solaris was removed in 2020.)</p>
of Standard Library facilities is exceptions. HotSpot does not use
exceptions and, for platforms which allow doing so, builds with them
turned off. Many Standard Library facilities implicitly or explicitly
use exceptions.</p></li>
use exceptions. On the other hand, many don't, and can be used without
concern for this issue. Others may have a useful subset that doesn't use
exceptions.</p></li>
<li><p><code>assert</code>. An issue that is quickly encountered is the
<code>assert</code> macro name collision (<a
href="https://bugs.openjdk.org/browse/JDK-8007770">JDK-8007770</a>).
Some mechanism for addressing this would be needed before much of the
Standard Library could be used. (Not all Standard Library
implementations use assert in header files, but some do.)</p></li>
(Not all Standard Library implementations use <code>assert</code> in
header files, but some do.) HotSpot provides a mechanism for addressing
this, by establishing a scope around the include of a library header
where the HotSpot <code>assert</code> macro is suppressed. One of the
reasons for using wrapper headers rather than directly including
standard headers is to provide a central place to deal with this issue
for each header.</p></li>
<li><p>Memory allocation. HotSpot requires explicit control over where
allocations occur. The C++98/03 <code>std::allocator</code> class is too
limited to support our usage. (Changes in more recent Standards may
remove this limitation.)</p></li>
limited to support our usage. But changes to the allocator concept in
more recent Standards removed some of the limitations, supporting
stateful allocators. HotSpot may, in the future, provide
standard-conforming allocators that are integrated with HotSpot's
existing allocation mechanisms.</p></li>
<li><p>Implementation vagaries. Bugs, or simply different implementation
choices, can lead to different behaviors among the various Standard
Libraries we need to deal with.</p></li>
Libraries we need to deal with. But only selected parts of the Standard
Library are being permitted, and one of the selection criteria is
maturity. Some of these facilities are among the most heavily tested and
used C++ codes that exist.</p></li>
<li><p>Inconsistent naming conventions. HotSpot and the C++ Standard use
different naming conventions. The coexistence of those different
conventions might appear jarring and reduce readability.</p></li>
</ul>
<p>There are a few exceptions to this rule.</p>
conventions might appear jarring and reduce readability. However,
experience in some other code bases suggests this isn't a significant
problem, so long as Standard Library names are namespace-qualified. It
is tempting to bring the Standard Library names into scope via a
<code>using std;</code> directive. Doing so makes writing code using
those names easier, since the qualifiers don't need to be included. But
there are several reasons not to do that.</p>
<ul>
<li><code>#include &lt;new&gt;</code> to use placement <code>new</code>,
<code>std::nothrow</code>, and <code>std::nothrow_t</code>.</li>
<li><code>#include &lt;limits&gt;</code> to use
<code>std::numeric_limits</code>.</li>
<li><code>#include &lt;type_traits&gt;</code> with some restrictions,
listed below.</li>
<li><code>#include &lt;cstddef&gt;</code> to use
<code>std::nullptr_t</code> and <code>std::max_align_t</code>.</li>
<li><p>There is a risk of future name collisions. Additional Standard
Library headers may be included, adding to the list of names being used.
Also, future versions of the Standard Library may add currently unknown
names to the headers already being included.</p></li>
<li><p>It may harm readability. Code where this is relevant is a mixture
of the local HotSpot naming conventions and the Standard Library's (or
other 3rd-party library's) naming conventions. With only unqualified
names, any distinctions from the naming conventions for the different
code sources are lost. Instead one may end up with an undifferentiated
mess, where it's not obvious whether an identifier is from local code
that is inconsistent with HotSpot style (and there's a regretable amount
of that for historical reasons), or is following some other convention.
Having the qualifiers disambiguates that.</p></li>
<li><p>It can be helpful to know, at a glance, whether the definition is
in HotSpot or elsewhere, for purposes of looking up the definition or
documentation.</p></li>
</ul></li>
</ul>
<p>Certain restrictions apply to the declarations provided by
<code>&lt;type_traits&gt;</code>.</p>
<ul>
<li>The <code>alignof</code> operator should be used rather than
<code>std::alignment_of&lt;&gt;</code>.</li>
</ul>
<p>TODO: Rather than directly #including (permitted) Standard Library
headers, use a convention of #including wrapper headers (in some
location like hotspot/shared/stdcpp). This provides a single place for
dealing with issues we might have for any given header, esp.
platform-specific issues.</p>
<h3 id="type-deduction">Type Deduction</h3>
<p>Use type deduction only if it makes the code clearer or safer. Do not
use it merely to avoid the inconvenience of writing an explicit type,
@@ -1577,10 +1624,10 @@ href="http://wg21.link/p0138r2">p0138r2</a>)</p></li>
<li><p>Allow <code>typename</code> in template template parameter (<a
href="http://wg21.link/n4051">n4051</a>) — template template parameters
are barely used (if at all) in HotSpot, but there's no reason to
artificially disallow this syntactic regularization in any such
artificially forbid this syntactic regularization in any such
uses.</p></li>
</ul>
<h2 id="excluded-features">Excluded Features</h2>
<h2 id="forbidden-features">Forbidden Features</h2>
<h3 id="structured-bindings">Structured Bindings</h3>
<p>The use of structured bindings <a
href="http://wg21.link/p0217r3">p0217r3</a> is forbidden. Preferred
@@ -1622,8 +1669,33 @@ initialization for classes with base classes (<a
href="https://wg21.link/p0017r1">p0017r1</a>). HotSpot makes very little
use of aggregate classes, preferring explicit constructors even for very
simple classes.</p>
<h3 id="additional-excluded-features">Additional Excluded Features</h3>
<h3 id="additional-forbidden-features">Additional Forbidden
Features</h3>
<ul>
<li><p><code>&lt;algorithm&gt;</code>, <code>&lt;iterator&gt;</code>,
<code>&lt;numeric&gt;</code><br> Not useful without standard containers
or similar classes in HotSpot.</p></li>
<li><p><code>&lt;bitset&gt;</code> - Overlap with HotSpot
<code>BitMap</code>.</p></li>
<li><p><code>&lt;cassert&gt;</code>, <code>assert.h</code> - HotSpot has
its own <code>assert</code> macro.</p></li>
<li><p><code>&lt;exception&gt;</code>, <code>&lt;stdexcept&gt;</code> -
Use of <a href="#error-handling">exceptions</a> is not
permitted.</p></li>
<li><p>Thread support - <code>&lt;thread&gt;</code>,
<code>&lt;mutex&gt;</code>, <code>&lt;shared_mutex&gt;</code>,
<code>&lt;condition_varible&gt;</code>, <code>&lt;future&gt;</code><br>
HotSpot has its own threading support.</p></li>
<li><p>Streams - HotSpot doesn't use the C++ I/O library.</p></li>
<li><p><code>&lt;scoped_allocator&gt;</code> - Not useful without
specialized allocators.</p></li>
<li><p><code>&lt;string&gt;</code> - Requires allocator support, similar
to standard containers.</p></li>
<li><p><code>&lt;typeinfo&gt;</code>, <code>&lt;typeindex&gt;</code><br>
Use of <a href="#runtime-type-information">runtime type information</a>
is not permitted.</p></li>
<li><p><code>&lt;valarray&gt;</code> - May allocate, but is not
allocator-aware.</p></li>
<li><p>New string and character literals</p>
<ul>
<li>New character types (<a
@@ -1881,8 +1953,43 @@ that developers should need to know about this feature. But if someone
does come up with a good use-case, it's likely that the alternatives are
significantly worse, because pack manipulation without this can be
complicated.</p></li>
<li><p><a
href="https://en.cppreference.com/w/cpp/header/tuple.html"><code>&lt;tuple&gt;</code></a>
— Prefer named access to class objects, rather than indexed access to
anonymous heterogeneous sequences. In particular, a standard-layout
class is preferred to a tuple.</p></li>
<li><p><code>std::invoke&lt;&gt;()</code> (<a
href="http://wg21.link/n4169">n4169</a>)</p></li>
<li><p><a
href="https://en.cppreference.com/w/cpp/header/chrono.html"><code>&lt;chrono&gt;</code></a>
— The argument for chrono is that our existing APIs aren't serving us
well. chrono provides strong type safety. We've had multiple cases of
mistakes like a double seconds being treated as double milliseconds or
vice versa, and other similar errors. But it would be a large effort to
adopt chrono. We'd also need to decide whether to use the predefined
clocks or hook up chrono to our clocks. It may be that using the
predefined clocks is fine, but it's a question that needs careful
study.</p></li>
<li><p><a
href="https://en.cppreference.com/w/cpp/header/initializer_list.html"><code>&lt;initializer_list&gt;</code></a>
— The potential ambiguity between some forms of direct initialization
and initializer list initialization, and the resolution of that
ambiguity, is unfortunate.</p></li>
<li><p><a
href="https://en.cppreference.com/w/cpp/header/ratio.html"><code>&lt;ratio&gt;</code></a>
<code>&lt;ratio&gt;</code> is a <em>compile-time</em> rational
arithmetic package. It's also fixed (though parameterized) precision.
It's not a general purpose rational arithmetic facility. It appears to
have started out as an implementation detail of chrono, and was
extracted and promoted to a public facility in the belief that it has
broader utility.</p></li>
<li><p><a
href="https://en.cppreference.com/w/cpp/header/system_error.html"><code>&lt;system_error&gt;</code></a>
— We don't really have a generally agreed upon mechanism for managing
errors. Instead, we have a plethora of bespoke ad hoc mechanisms.
Managing errors is a topic of substantial discussion.
<code>&lt;system_error&gt;</code> might end up being a part of a result
from that discussion.</p></li>
</ul>
</body>
</html>

View File

@@ -413,12 +413,12 @@ support for more recent Standards must of course stick with the
original C++98/03 subset.)
This section describes that subset. Features from the C++98/03
language may be used unless explicitly excluded here. Features from
C++11, C++14, and C++17 may be explicitly permitted or explicitly excluded,
language may be used unless explicitly forbidden here. Features from
C++11, C++14, and C++17 may be explicitly permitted or explicitly forbidden,
and discussed accordingly here. There is a third category, undecided
features, about which HotSpot developers have not yet reached a
consensus, or perhaps have not discussed at all. Use of these
features is also excluded.
features is also forbidden.
(The use of some features may not be immediately obvious and may slip
in anyway, since the compiler will accept them. The code review
@@ -427,7 +427,7 @@ process is the main defense against this.)
Some features are discussed in their own subsection, typically to provide
more extensive discussion or rationale for limitations. Features that
don't have their own subsection are listed in omnibus feature sections
for permitted, excluded, and undecided features.
for permitted, forbidden, and undecided features.
Lists of new features for C++11, C++14, and C++17, along with links to their
descriptions, can be found in the online documentation for some of the
@@ -494,15 +494,16 @@ worthwhile, given the alternatives.
### Memory Allocation
Do not use the standard global allocation and deallocation functions
(operator new and related functions). Use of these functions by HotSpot
code is disabled for some platforms.
Do not use the standard global allocation and deallocation functions (global
`operator new` and related functions), other than the non-allocating forms of
those functions. Use of these functions by HotSpot code is disabled for some
platforms.
Rationale: HotSpot often uses "resource" or "arena" allocation. Even
where heap allocation is used, the standard global functions are
avoided in favor of wrappers around malloc and free that support the
VM's Native Memory Tracking (NMT) feature. Typically, uses of the global
operator new are inadvertent and therefore often associated with memory
avoided in favor of wrappers around `malloc` and `free` that support the
JVM's Native Memory Tracking (NMT) feature. Typically, uses of the global
`operator new` are inadvertent and therefore often associated with memory
leaks.
Native memory allocation failures are often treated as non-recoverable.
@@ -560,7 +561,39 @@ Bug for similar gdb problems.
### C++ Standard Library
Avoid using the C++ Standard Library.
Only curated parts of the C++ Standard Library may be used by HotSpot code.
Functions that may throw exceptions must not be used. This is in accordance
with the HotSpot policy of [not using exceptions](#error-handling).
Also in accordance with HotSpot policy, the
[standard global allocator must not be used](#memory-allocation). This means
that uses of standard container classes cannot presently be used, as doing so
requires specialization on some allocator type that is integrated with the
existing HotSpot allocation mechanisms. (Such allocators may be provided in
the future.)
Standard Library identifiers should usually be fully qualified; `using`
directives must not be used to bring Standard Library identifiers into scope
just to remove the need for namespace qualification. Requiring qualification
makes it easy to distinguish between references to external libraries and code
that is part of HotSpot.
As with language features, Standard Library facilities are either permitted,
explicitly forbidden, or undecided (and so implicitly forbidden).
Most HotSpot code should not directly `#include` C++ Standard Library headers.
HotSpot provides a set of wrapper headers for the Standard Library headers
containing permitted definitions. These wrappers are in the `cppstdlib`
directory, with the same name as the corresponding Standard Library header and
a `.hpp` extension. These wrappers provide a place for any additional code
(some of which may be platform-specific) needed to support HotSpot usage.
These wrappers also provide a place to document HotSpot usage, including any
restrictions. The set of wrappers and the usage documentation should be
considered part of HotSpot style. Any changes are subject to the same process
as applies to this document. (For historical reasons, there may be many direct
inclusions of some C++ Standard Library headers.)
Historically, HotSpot has mostly avoided use of the Standard
Library.
@@ -577,43 +610,59 @@ Some reasons for this include
Standard Library facilities is exceptions. HotSpot does not use
exceptions and, for platforms which allow doing so, builds with them
turned off. Many Standard Library facilities implicitly or explicitly
use exceptions. On the other hand, many don't, and can be used without
concern for this issue. Others may have a useful subset that doesn't
use exceptions.
* `assert`. An issue that is quickly encountered is the `assert` macro name
collision ([JDK-8007770](https://bugs.openjdk.org/browse/JDK-8007770)).
Some mechanism for addressing this would be needed before much of the
Standard Library could be used. (Not all Standard Library implementations
use assert in header files, but some do.)
(Not all Standard Library implementations use `assert` in header files, but
some do.) HotSpot provides a mechanism for addressing this, by establishing a
scope around the include of a library header where the HotSpot `assert` macro
is suppressed. One of the reasons for using wrapper headers rather than
directly including standard headers is to provide a central place to deal with
this issue for each header.
* Memory allocation. HotSpot requires explicit control over where
allocations occur. The C++98/03 `std::allocator` class is too limited
to support our usage. (Changes in more recent Standards may remove
this limitation.)
* Memory allocation. HotSpot requires explicit control over where allocations
occur. The C++98/03 `std::allocator` class is too limited to support our
usage. But changes to the allocator concept in more recent Standards removed
some of the limitations, supporting stateful allocators. HotSpot may, in the
future, provide standard-conforming allocators that are integrated with
HotSpot's existing allocation mechanisms.
* Implementation vagaries. Bugs, or simply different implementation choices,
can lead to different behaviors among the various Standard Libraries we need
to deal with.
to deal with. But only selected parts of the Standard Library are being
permitted, and one of the selection criteria is maturity. Some of these
facilities are among the most heavily tested and used C++ codes that exist.
* Inconsistent naming conventions. HotSpot and the C++ Standard use
different naming conventions. The coexistence of those different conventions
might appear jarring and reduce readability.
* Inconsistent naming conventions. HotSpot and the C++ Standard use different
naming conventions. The coexistence of those different conventions might
appear jarring and reduce readability. However, experience in some other code
bases suggests this isn't a significant problem, so long as Standard Library
names are namespace-qualified. It is tempting to bring the Standard Library
names into scope via a `using std;` directive. Doing so makes writing code
using those names easier, since the qualifiers don't need to be included. But
there are several reasons not to do that.
There are a few exceptions to this rule.
* There is a risk of future name collisions. Additional Standard Library
headers may be included, adding to the list of names being used. Also,
future versions of the Standard Library may add currently unknown names to
the headers already being included.
* `#include <new>` to use placement `new`, `std::nothrow`, and `std::nothrow_t`.
* `#include <limits>` to use `std::numeric_limits`.
* `#include <type_traits>` with some restrictions, listed below.
* `#include <cstddef>` to use `std::nullptr_t` and `std::max_align_t`.
* It may harm readability. Code where this is relevant is a mixture of the
local HotSpot naming conventions and the Standard Library's (or other
3rd-party library's) naming conventions. With only unqualified names, any
distinctions from the naming conventions for the different code sources
are lost. Instead one may end up with an undifferentiated mess, where it's
not obvious whether an identifier is from local code that is inconsistent
with HotSpot style (and there's a regretable amount of that for historical
reasons), or is following some other convention. Having the qualifiers
disambiguates that.
Certain restrictions apply to the declarations provided by `<type_traits>`.
* The `alignof` operator should be used rather than `std::alignment_of<>`.
TODO: Rather than directly \#including (permitted) Standard Library
headers, use a convention of \#including wrapper headers (in some
location like hotspot/shared/stdcpp). This provides a single place
for dealing with issues we might have for any given header, esp.
platform-specific issues.
* It can be helpful to know, at a glance, whether the definition is in
HotSpot or elsewhere, for purposes of looking up the definition or
documentation.
### Type Deduction
@@ -1529,9 +1578,9 @@ single-argument form are permitted.
* Allow `typename` in template template parameter
([n4051](http://wg21.link/n4051)) &mdash; template template parameters are
barely used (if at all) in HotSpot, but there's no reason to artificially
disallow this syntactic regularization in any such uses.
forbid this syntactic regularization in any such uses.
## Excluded Features
## Forbidden Features
### Structured Bindings
@@ -1581,7 +1630,32 @@ initialization for classes with base classes
aggregate classes, preferring explicit constructors even for very simple
classes.
### Additional Excluded Features
### Additional Forbidden Features
* `<algorithm>`, `<iterator>`, `<numeric>`<br>
Not useful without standard containers or similar classes in HotSpot.
* `<bitset>` - Overlap with HotSpot `BitMap`.
* `<cassert>`, `assert.h` - HotSpot has its own `assert` macro.
* `<exception>`, `<stdexcept>` - Use of [exceptions](#error-handling) is not
permitted.
* Thread support - `<thread>`, `<mutex>`, `<shared_mutex>`,
`<condition_varible>`, `<future>`<br>
HotSpot has its own threading support.
* Streams - HotSpot doesn't use the C++ I/O library.
* `<scoped_allocator>` - Not useful without specialized allocators.
* `<string>` - Requires allocator support, similar to standard containers.
* `<typeinfo>`, `<typeindex>`<br>
Use of [runtime type information](#runtime-type-information) is not permitted.
* `<valarray>` - May allocate, but is not allocator-aware.
* New string and character literals
* New character types
@@ -1880,9 +1954,40 @@ should need to know about this feature. But if someone does come up with a
good use-case, it's likely that the alternatives are significantly worse,
because pack manipulation without this can be complicated.
* [`<tuple>`](https://en.cppreference.com/w/cpp/header/tuple.html) &mdash;
Prefer named access to class objects, rather than indexed access
to anonymous heterogeneous sequences. In particular, a standard-layout
class is preferred to a tuple.
* `std::invoke<>()`
([n4169](http://wg21.link/n4169))
* [`<chrono>`](https://en.cppreference.com/w/cpp/header/chrono.html) &mdash;
The argument for chrono is that our existing APIs aren't serving us well.
chrono provides strong type safety. We've had multiple cases of mistakes like
a double seconds being treated as double milliseconds or vice versa, and other
similar errors. But it would be a large effort to adopt chrono. We'd also need
to decide whether to use the predefined clocks or hook up chrono to our
clocks. It may be that using the predefined clocks is fine, but it's a
question that needs careful study.
* [`<initializer_list>`](https://en.cppreference.com/w/cpp/header/initializer_list.html) &mdash;
The potential ambiguity between some forms of direct initialization and
initializer list initialization, and the resolution of that ambiguity, is
unfortunate.
* [`<ratio>`](https://en.cppreference.com/w/cpp/header/ratio.html) &mdash;
`<ratio>` is a *compile-time* rational arithmetic package. It's also fixed
(though parameterized) precision. It's not a general purpose rational
arithmetic facility. It appears to have started out as an implementation
detail of chrono, and was extracted and promoted to a public facility in the
belief that it has broader utility.
* [`<system_error>`](https://en.cppreference.com/w/cpp/header/system_error.html) &mdash;
We don't really have a generally agreed upon mechanism for managing
errors. Instead, we have a plethora of bespoke ad hoc mechanisms. Managing
errors is a topic of substantial discussion. `<system_error>` might end up
being a part of a result from that discussion.
[ADL]: https://en.cppreference.com/w/cpp/language/adl

View File

@@ -305,11 +305,11 @@ recognize your tests.</p>
the product.</p>
<ul>
<li><p>All unit tests for a class from <code>foo/bar/baz.cpp</code>
should be placed <code>foo/bar/test_baz.cpp</code> in
<code>hotspot/test/native/</code> directory. Having all tests for a
class in one file is a common practice for unit tests, it helps to see
all existing tests at once, share functions and/or resources without
losing encapsulation.</p></li>
should be placed <code>foo/bar/test_baz.cpp</code> in the
<code>test/hotspot/gtest/</code> directory. Having all tests for a class
in one file is a common practice for unit tests, it helps to see all
existing tests at once, share functions and/or resources without losing
encapsulation.</p></li>
<li><p>For tests which test more than one class, directory hierarchy
should be the same as product hierarchy, and file name should reflect
the name of the tested subsystem/functionality. For example, if a
@@ -319,7 +319,7 @@ placed in <code>gc/g1</code> directory.</p></li>
<p>Please note that framework prepends directory name to a test group
name. For example, if <code>TEST(foo, check_this)</code> and
<code>TEST(bar, check_that)</code> are defined in
<code>hotspot/test/native/gc/shared/test_foo.cpp</code> file, they will
<code>test/hotspot/gtest/gc/shared/test_foo.cpp</code> file, they will
be reported as <code>gc/shared/foo::check_this</code> and
<code>gc/shared/bar::check_that</code>.</p>
<h3 id="test-names">Test names</h3>

View File

@@ -241,7 +241,7 @@ recognize your tests.
Test file location should reflect a location of the tested part of the product.
* All unit tests for a class from `foo/bar/baz.cpp` should be placed
`foo/bar/test_baz.cpp` in `hotspot/test/native/` directory. Having all
`foo/bar/test_baz.cpp` in the `test/hotspot/gtest/` directory. Having all
tests for a class in one file is a common practice for unit tests, it
helps to see all existing tests at once, share functions and/or
resources without losing encapsulation.
@@ -254,7 +254,7 @@ sub-system under tests belongs to `gc/g1`, tests should be placed in
Please note that framework prepends directory name to a test group
name. For example, if `TEST(foo, check_this)` and `TEST(bar, check_that)`
are defined in `hotspot/test/native/gc/shared/test_foo.cpp` file, they
are defined in `test/hotspot/gtest/gc/shared/test_foo.cpp` file, they
will be reported as `gc/shared/foo::check_this` and
`gc/shared/bar::check_that`.

View File

@@ -450,7 +450,7 @@ itself (<code>-timeoutFactor</code>). Also, some test cases that
programmatically wait a certain amount of time will apply this factor.
If we run in forced compilation mode (<code>-Xcomp</code>), the build
system will automatically adjust this factor to compensate for less
performance. Defaults to 1.</p>
performance. Defaults to 4.</p>
<h4 id="failure_handler_timeout">FAILURE_HANDLER_TIMEOUT</h4>
<p>Sets the argument <code>-timeoutHandlerTimeout</code> for JTReg. The
default value is 0. This is only valid if the failure handler is

View File

@@ -387,7 +387,7 @@ The `TIMEOUT_FACTOR` is forwarded to JTReg framework itself
(`-timeoutFactor`). Also, some test cases that programmatically wait a
certain amount of time will apply this factor. If we run in forced
compilation mode (`-Xcomp`), the build system will automatically
adjust this factor to compensate for less performance. Defaults to 1.
adjust this factor to compensate for less performance. Defaults to 4.
#### FAILURE_HANDLER_TIMEOUT

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,12 +0,0 @@
#!/bin/bash
if [[ -z "$1" ]]; then
SCANNER=wayland-scanner
else
SCANNER="$1"
fi
set -ex
"$SCANNER" client-header src/java.desktop/share/native/libwakefield/protocol/wakefield.xml src/java.desktop/unix/native/libawt_wlawt/wakefield-client-protocol.h
"$SCANNER" private-code src/java.desktop/share/native/libwakefield/protocol/wakefield.xml src/java.desktop/unix/native/libawt_wlawt/wakefield-client-protocol.c

View File

@@ -1 +0,0 @@
1.0.2

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 +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,11 +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/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,53 +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.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,190 +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
}
DISABLE_WARNINGS_AS_ERRORS=""
CONTINUOUS_INTEGRATION=""
while getopts ":iwc?" o; do
case "${o}" in
i) INC_BUILD=1 ;;
w) DISABLE_WARNINGS_AS_ERRORS="--disable-warnings-as-errors" ;;
c) CONTINUOUS_INTEGRATION=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
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}']"
tag_prefix="jdk-"
OPENJDK_TAG=$(git tag -l | grep "$tag_prefix$JBSDK_VERSION" | grep -v ga | sort -t "-" -k 2 -V -f | tail -n 1)
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,4 +0,0 @@
--with-vendor-url=https://www.jetbrains.com/
--with-vendor-bug-url=https://youtrack.jetbrains.com/issues/JBR
--with-vendor-vm-bug-url=https://youtrack.jetbrains.com/issues/JBR

View File

@@ -1,185 +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 {
GTK_SHELL_PATH=/gtk-shell.xml
if [ ! -e $GTK_SHELL_PATH ]; then
echo $GTK_SHELL_PATH" does not exist"
GTK_SHELL_PATH=`pwd`/gtk-shell.xml
if [ ! -e $GTK_SHELL_PATH ]; then
echo $GTK_SHELL_PATH" does not exist"
curl -O https://raw.githubusercontent.com/GNOME/gtk/refs/heads/main/gdk/wayland/protocol/gtk-shell.xml
fi
fi
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 \
--with-gtk-shell1-protocol=$GTK_SHELL_PATH \
--with-vulkan \
$DISABLE_WARNINGS_AS_ERRORS \
$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=''
__cds_opt=''
if is_musl; then libc_type_suffix='musl-' ; fi
__cds_opt="--generate-cds-archive"
[ "$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 \
$__cds_opt --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
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
[ -f "$IMAGES_DIR"/"$__root_dir"/lib/cef_server ] && chmod a+x "$IMAGES_DIR"/"$__root_dir"/lib/cef_server
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" ]; 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" == "$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 CONF=$RELEASE_NAME JBR_API_JBR_VERSION=TEST || do_exit $?
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,210 +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 {
if is_musl; then
LINUX_TARGET=""
else
LINUX_TARGET="\
--build=x86_64-unknown-linux-gnu \
--openjdk-target=x86_64-unknown-linux-gnu"
fi
GTK_SHELL_PATH=/gtk-shell.xml
if [ ! -e $GTK_SHELL_PATH ]; then
echo $GTK_SHELL_PATH" does not exist"
GTK_SHELL_PATH=`pwd`/gtk-shell.xml
if [ ! -e $GTK_SHELL_PATH ]; then
echo $GTK_SHELL_PATH" does not exist"
curl -O https://raw.githubusercontent.com/GNOME/gtk/refs/heads/main/gdk/wayland/protocol/gtk-shell.xml
fi
fi
if [ -n "${JCEF_BUILD_LEGACY:-}" ]; then
WITH_VULKAN=""
else
WITH_VULKAN="--with-vulkan"
fi
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 \
--with-gtk-shell1-protocol=$GTK_SHELL_PATH \
$WITH_VULKAN \
$LINUX_TARGET \
$DISABLE_WARNINGS_AS_ERRORS \
$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=''
__cds_opt=''
if is_musl; then
libc_type_suffix='musl-'
else
LINUX_TARGET="\
--build=x86_64-unknown-linux-gnu \
--openjdk-target=x86_64-unknown-linux-gnu"
fi
__cds_opt="--generate-cds-archive"
[ "$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 \
$__cds_opt --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
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
if [ ! -n "${JCEF_BUILD_LEGACY:-}" ]; then
[ -f "$IMAGES_DIR"/"$__root_dir"/lib/cef_server ] && chmod a+x "$IMAGES_DIR"/"$__root_dir"/lib/cef_server
fi
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" ]; 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" == "$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 CONF=$RELEASE_NAME JBR_API_JBR_VERSION=TEST || do_exit $?
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,146 +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 \
$DISABLE_WARNINGS_AS_ERRORS \
$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=''
__cds_opt=''
if is_musl; then libc_type_suffix='musl-' ; fi
__cds_opt="--generate-cds-archive"
[ "$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 \
$__cds_opt --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
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 CONF=$RELEASE_NAME JBR_API_JBR_VERSION=TEST || do_exit $?
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,63 +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
max_attempts=3
attempt=1
while [ $attempt -le $max_attempts ]; do
if "$JETSIGN_CLIENT" -log-format text -max-wait 1m -denoted-content-type "$contentType" -extensions "$jetSignExtensions" "$pathToBeSigned"; then
break
else
if [ $attempt -eq $max_attempts ]; then
echo "Failed to sign after $max_attempts attempts"
exit 1
fi
echo "Attempt $attempt failed, retrying in 5 seconds..."
sleep 5
((attempt++))
fi
done
# 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,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>
<false/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<false/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<false/>
<key>com.apple.security.cs.disable-library-validation</key>
<false/>
<key>com.apple.security.cs.disable-executable-page-protection</key>
<false/>
</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,192 +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)}
XCODE_PATH=${XCODE_PATH:-}
if [ -d "$XCODE_PATH" ]; then
WITH_XCODE_PATH="--with-xcode-path=$XCODE_PATH"
else
if [ -z "${CONTINUOUS_INTEGRATION:-}" ]; then
WITH_XCODE_PATH=""
if [ -n "${XCODE_PATH}" ]; then
echo "XCode not found in the directory: ${XCODE_PATH}"
echo "default XCode will be used"
fi
else
if [ -z "${XCODE_PATH}" ]; then
echo "specify XCode via setting XCODE_PATH"
else
echo "XCode not found in the directory: ${XCODE_PATH}"
fi
do_exit 1
fi
fi
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 \
$DISABLE_WARNINGS_AS_ERRORS \
$STATIC_CONF_ARGS \
$REPRODUCIBLE_BUILD_OPTS \
$WITH_ZIPPED_NATIVE_DEBUG_SYMBOLS \
$WITH_XCODE_PATH \
|| do_exit $?
}
function create_image_bundle {
__bundle_name=$1
__arch_name=$2
__modules_path=$3
__modules=$4
fastdebug_infix=''
__cds_opt=''
__cds_opt="--generate-cds-archive"
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 \
$__cds_opt --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
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
if [ "$bundle_type" == "jcef" ]; 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
fi
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" == "$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 CONF=$RELEASE_NAME JBR_API_JBR_VERSION=TEST || do_exit $?
[ -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,63 +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 --wait| tee "notarytool.submit.out"
REQUEST_ID="$(grep -e " id: " "notarytool.submit.out" | grep -oE '([0-9a-f-]{36})'| head -n1)"
waitOutput=$(xcrun notarytool wait "$REQUEST_ID" --key tmp_key --key-id "${APPLE_KEY_ID}" --issuer "${APPLE_ISSUER_ID}" --timeout 6h)
if [ $? -ne 0 ]; then
log "Notarizing failed (wait command)"
echo "$waitOutput"
exit 1
else
echo "$waitOutput"
fi
logOutout=$(xcrun notarytool log "$REQUEST_ID" --key tmp_key --key-id "${APPLE_KEY_ID}" --issuer "${APPLE_ISSUER_ID}" developer_log.json)
if [ $? -ne 0 ]; then
log "Notarizing failed (log command)"
echo "$logOutout"
exit 1
else
echo "$logOutout"
fi
infoOUtput=$(xcrun notarytool info "$REQUEST_ID" --key tmp_key --key-id "${APPLE_KEY_ID}" --issuer "${APPLE_ISSUER_ID}")
if [ $? -ne 0 ]; then
log "Notarizing failed (info command)"
echo "$infoOUtput"
exit 1
else
echo "$infoOUtput"
fi
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,241 +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"; 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 sh -c '"$1" --timestamp -v -s "$2" --options=runtime --force --entitlements "$3" "$4" || exit 1' sh "$SIGN_UTILITY" "$JB_DEVELOPER_CERT" "$SCRIPT_DIR/entitlements.xml" {} \;
fi
done
log "Signing JCEF libraries and executables..."
if [ -d "$APPLICATION_PATH/Contents/Frameworks" ]; then
find "$APPLICATION_PATH/Contents/Frameworks" \
-type f \( -name "*.dylib" -o -perm +111 \) \
-exec sh -c '"$1" --timestamp -v -s "$2" --options=runtime --force --entitlements "$3" "$4" || exit 1' sh "$SIGN_UTILITY" "$JB_DEVELOPER_CERT" "$SCRIPT_DIR/entitlements_jcef.xml" {} \;
fi
log "Signing jmod files"
JMODS_DIR="$APPLICATION_PATH/Contents/Home/jmods"
JMOD_EXE="$APPLICATION_PATH/Contents/Home/bin/jmod"
if [ -d "$JMODS_DIR" ]; then
log "processing jmods"
for jmod_file in "$JMODS_DIR"/*.jmod; do
log "Processing $jmod_file"
TMP_DIR="$JMODS_DIR/tmp"
rm -rf "$TMP_DIR"
mkdir "$TMP_DIR"
log "Unzipping $jmod_file"
$JMOD_EXE extract --dir "$TMP_DIR" "$jmod_file" >/dev/null
log "Signing dylibs in $TMP_DIR"
find "$TMP_DIR" \
-type f \( -name "*.dylib" -o -name "*.so"-o -perm +111 -o -name jarsigner -o -name jnativescan -o -name jdeps -o -name jpackageapplauncher -o -name jspawnhelper -o -name jar -o -name javap -o -name jdeprscan -o -name jfr -o -name rmiregistry -o -name java -o -name jhsdb -o -name jstatd -o -name jstatd -o -name jpackage -o -name keytool -o -name jmod -o -name jlink -o -name jimage -o -name jstack -o -name jcmd -o -name jps -o -name jmap -o -name jstat -o -name jinfo -o -name jshell -o -name jwebserver -o -name javac -o -name serialver -o -name jrunscript -o -name jdb -o -name jconsole -o -name javadoc \) \
-exec sh -c '"$1" --timestamp -v -s "$2" --options=runtime --force --entitlements "$3" "$4" || exit 1' sh "$SIGN_UTILITY" "$JB_DEVELOPER_CERT" "$SCRIPT_DIR/entitlements.xml" {} \;
log "Removing $jmod_file"
rm -f "$jmod_file"
cmd="$JMOD_EXE create --class-path $TMP_DIR/classes"
# Check each directory and add to the command if it exists
[ -d "$TMP_DIR/bin" ] && cmd="$cmd --cmds $TMP_DIR/bin"
[ -d "$TMP_DIR/conf" ] && cmd="$cmd --config $TMP_DIR/conf"
[ -d "$TMP_DIR/lib" ] && cmd="$cmd --libs $TMP_DIR/lib"
[ -d "$TMP_DIR/include" ] && cmd="$cmd --header-files $TMP_DIR/include"
[ -d "$TMP_DIR/legal" ] && cmd="$cmd --legal-notices $TMP_DIR/legal"
[ -d "$TMP_DIR/man" ] && cmd="$cmd --man-pages $TMP_DIR/man"
log "Creating jmod file"
log "$cmd"
# Add the output file
cmd="$cmd $jmod_file"
# Execute the command
eval $cmd
log "Removing $TMP_DIR"
rm -rf "$TMP_DIR"
done
log "Repack java.base.jmod with new hashes of modules"
hash_modules=$($JMOD_EXE describe $JMODS_DIR/java.base.jmod | grep hashes | awk '{print $2}' | tr '\n' '|' | sed s/\|$//) || exit $?
TMP_DIR="$JMODS_DIR/tmp"
rm -rf "$TMP_DIR"
mkdir "$TMP_DIR"
jmod_file="$JMODS_DIR/java.base.jmod"
log "Unzipping $jmod_file"
$JMOD_EXE extract --dir "$TMP_DIR" "$jmod_file" >/dev/null
log "Removing java.base.jmod"
rm -f "$jmod_file"
cmd="$JMOD_EXE create --class-path $TMP_DIR/classes --hash-modules \"$hash_modules\" --module-path $JMODS_DIR"
# Check each directory and add to the command if it exists
[ -d "$TMP_DIR/bin" ] && cmd="$cmd --cmds $TMP_DIR/bin"
[ -d "$TMP_DIR/conf" ] && cmd="$cmd --config $TMP_DIR/conf"
[ -d "$TMP_DIR/lib" ] && cmd="$cmd --libs $TMP_DIR/lib"
[ -d "$TMP_DIR/include" ] && cmd="$cmd --header-files $TMP_DIR/include"
[ -d "$TMP_DIR/legal" ] && cmd="$cmd --legal-notices $TMP_DIR/legal"
[ -d "$TMP_DIR/man" ] && cmd="$cmd --man-pages $TMP_DIR/man"
log "Creating jmod file"
log "$cmd"
# Add the output file
cmd="$cmd $jmod_file"
# Execute the command
eval $cmd
log "Removing $TMP_DIR"
rm -rf "$TMP_DIR"
else
echo "Directory '$JMODS_DIR' does not exist. Skipping signing of jmod files."
fi
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 sh -c '"$1" --timestamp --force -v -s "$2" --options=runtime --entitlements "$3" "$4" || exit 1' sh "$SIGN_UTILITY" "$JB_DEVELOPER_CERT" "$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 sh -c '"$1" --timestamp -v -s "$2" --options=runtime --force --entitlements "$3" "$4" || exit 1' sh "$SIGN_UTILITY" "$JB_DEVELOPER_CERT" "$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/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_jcef.xml" tmp-to-sign.tar.gz || exit 1
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..."
if [ -d "$APPLICATION_PATH/Contents/Frameworks" ]; then
find "$APPLICATION_PATH/Contents/Frameworks" -name '*.framework' -maxdepth 1 | while read -r line
do
log "Checking '$line':"
codesign --verify --deep --strict --verbose=4 "$line"
done
fi
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 || exit 1
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" || exit 1
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,155 +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
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"
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
mv "$INPUT_FILE" "$INPUT_FILE".origin
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=1
ec=0
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=$?
((attempt += 1))
if [[ $ec -ne 0 ]]; then
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
fi
done
set -e
if [[ $ec -ne 0 ]]; then
log "Signing failed, restore original input file"
mv "$INPUT_FILE".origin "$INPUT_FILE"
fi
if [ "$NOTARIZE" = "yes" ]; then
log "Notarizing..."
"$SCRIPT_DIR/notarize.sh" "$PKG_NAME"
log "Stapling..."
appStaplerOutput=$(xcrun stapler staple "$APPLICATION_PATH")
if [ $? -ne 0 ]; then
log "Stapling application failed"
echo "$appStaplerOutput"
exit 1
else
echo "$appStaplerOutput"
fi
log "Stapling package..."
pkgStaplerOutput=$(xcrun stapler staple "$PKG_NAME")
if [ $? -ne 0 ]; then
log "Stapling package failed"
echo "$pkgStaplerOutput"
exit 1
else
echo "$pkgStaplerOutput"
fi
# Verify stapling
log "Verifying stapling..."
if ! stapler validate "$APPLICATION_PATH"; then
log "Stapling verification failed for application"
exit 1
fi
if ! stapler validate "$PKG_NAME"; then
log "Stapling verification failed for package"
exit 1
fi
else
log "Notarization disabled"
log "Stapling disabled"
fi
log "Zipping $BUILD_NAME to $INPUT_FILE ..."
(
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,267 +0,0 @@
prog.verbose=disabled
prog.printresults=enabled
global.env.outputwidth=640
global.env.outputheight=480
global.env.runcount=5
global.env.repcount=0
global.env.testtime=2500
global.results.workunits=units
global.results.timeunits=sec
global.results.ratio=unitspersec
global.dest.offscreen=disabled
global.dest.frame.defaultframe=enabled
global.dest.frame.transframe=disabled
global.dest.frame.shapedframe=disabled
global.dest.frame.shapedtransframe=disabled
global.dest.compatimg.compatimg=disabled
global.dest.compatimg.opqcompatimg=disabled
global.dest.compatimg.bmcompatimg=disabled
global.dest.compatimg.transcompatimg=disabled
global.dest.volimg.volimg=disabled
global.dest.volimg.opqvolimg=disabled
global.dest.volimg.bmvolimg=disabled
global.dest.volimg.transvolimg=disabled
global.dest.bufimg.IntXrgb=disabled
global.dest.bufimg.IntArgb=disabled
global.dest.bufimg.IntArgbPre=disabled
global.dest.bufimg.3ByteBgr=disabled
global.dest.bufimg.ByteIndexed=disabled
global.dest.bufimg.ByteGray=disabled
global.dest.bufimg.4ByteAbgr=disabled
global.dest.bufimg.4ByteAbgrPre=disabled
global.dest.bufimg.custom=disabled
graphics.opts.anim=2
graphics.opts.sizes=250
graphics.opts.alpharule=SrcOver
graphics.opts.transform=ident
graphics.opts.extraalpha=Off
graphics.opts.xormode=Off
graphics.opts.clip=Off
graphics.opts.renderhint=Default
graphics.render.opts.paint=random
graphics.render.opts.alphacolor=Off
graphics.render.opts.antialias=On
graphics.render.opts.stroke=width1
graphics.render.tests.drawLine=disabled
graphics.render.tests.drawLineHoriz=disabled
graphics.render.tests.drawLineVert=disabled
graphics.render.tests.fillRect=disabled
graphics.render.tests.drawRect=disabled
graphics.render.tests.fillOval=disabled
graphics.render.tests.drawOval=disabled
graphics.render.tests.fillPoly=disabled
graphics.render.tests.drawPoly=enabled
graphics.render.tests.shape.fillCubic=disabled
graphics.render.tests.shape.drawCubic=disabled
graphics.render.tests.shape.fillEllipse2D=disabled
graphics.render.tests.shape.drawEllipse2D=disabled
graphics.imaging.src.offscr.opaque=disabled
graphics.imaging.src.offscr.bitmask=disabled
graphics.imaging.src.offscr.translucent=disabled
graphics.imaging.src.opqcompatimg.opaque=disabled
graphics.imaging.src.opqcompatimg.bitmask=disabled
graphics.imaging.src.opqcompatimg.translucent=disabled
graphics.imaging.src.bmcompatimg.opaque=disabled
graphics.imaging.src.bmcompatimg.bitmask=disabled
graphics.imaging.src.bmcompatimg.translucent=disabled
graphics.imaging.src.transcompatimg.opaque=disabled
graphics.imaging.src.transcompatimg.bitmask=disabled
graphics.imaging.src.transcompatimg.translucent=disabled
graphics.imaging.src.opqvolimg.opaque=disabled
graphics.imaging.src.opqvolimg.bitmask=disabled
graphics.imaging.src.opqvolimg.translucent=disabled
graphics.imaging.src.bmvolimg.opaque=disabled
graphics.imaging.src.bmvolimg.bitmask=disabled
graphics.imaging.src.bmvolimg.translucent=disabled
graphics.imaging.src.transvolimg.opaque=disabled
graphics.imaging.src.transvolimg.bitmask=disabled
graphics.imaging.src.transvolimg.translucent=disabled
graphics.imaging.src.bufimg.IntXrgb.opaque=disabled
graphics.imaging.src.bufimg.IntXrgb.bitmask=disabled
graphics.imaging.src.bufimg.IntXrgb.translucent=disabled
graphics.imaging.src.bufimg.IntArgb.opaque=disabled
graphics.imaging.src.bufimg.IntArgb.bitmask=disabled
graphics.imaging.src.bufimg.IntArgb.translucent=disabled
graphics.imaging.src.bufimg.IntArgbPre.opaque=disabled
graphics.imaging.src.bufimg.IntArgbPre.bitmask=disabled
graphics.imaging.src.bufimg.IntArgbPre.translucent=disabled
graphics.imaging.src.bufimg.ByteGray.opaque=disabled
graphics.imaging.src.bufimg.ByteGray.bitmask=disabled
graphics.imaging.src.bufimg.ByteGray.translucent=disabled
graphics.imaging.src.bufimg.3ByteBgr.opaque=disabled
graphics.imaging.src.bufimg.3ByteBgr.bitmask=disabled
graphics.imaging.src.bufimg.3ByteBgr.translucent=disabled
graphics.imaging.src.bufimg.4ByteAbgr.opaque=disabled
graphics.imaging.src.bufimg.4ByteAbgr.bitmask=disabled
graphics.imaging.src.bufimg.4ByteAbgr.translucent=disabled
graphics.imaging.src.bufimg.4ByteAbgrPre.opaque=disabled
graphics.imaging.src.bufimg.4ByteAbgrPre.bitmask=disabled
graphics.imaging.src.bufimg.4ByteAbgrPre.translucent=disabled
graphics.imaging.src.bufimg.ByteIndexedBm.opaque=disabled
graphics.imaging.src.bufimg.ByteIndexedBm.bitmask=disabled
graphics.imaging.src.bufimg.ByteIndexedBm.translucent=disabled
graphics.imaging.src.bufimg.unmanagedIntXrgb.opaque=disabled
graphics.imaging.src.bufimg.unmanagedIntXrgb.bitmask=disabled
graphics.imaging.src.bufimg.unmanagedIntXrgb.translucent=disabled
graphics.imaging.src.bufimg.unmanagedIntArgb.opaque=disabled
graphics.imaging.src.bufimg.unmanagedIntArgb.bitmask=disabled
graphics.imaging.src.bufimg.unmanagedIntArgb.translucent=disabled
graphics.imaging.src.bufimg.unmanagedIntArgbPre.opaque=disabled
graphics.imaging.src.bufimg.unmanagedIntArgbPre.bitmask=disabled
graphics.imaging.src.bufimg.unmanagedIntArgbPre.translucent=disabled
graphics.imaging.src.bufimg.unmanaged3ByteBgr.opaque=disabled
graphics.imaging.src.bufimg.unmanaged3ByteBgr.bitmask=disabled
graphics.imaging.src.bufimg.unmanaged3ByteBgr.translucent=disabled
graphics.imaging.benchmarks.opts.interpolation=Nearest neighbor
graphics.imaging.benchmarks.opts.touchsrc=Off
graphics.imaging.benchmarks.tests.drawimage=disabled
graphics.imaging.benchmarks.tests.drawimagebg=disabled
graphics.imaging.benchmarks.tests.drawimagescaleup=disabled
graphics.imaging.benchmarks.tests.drawimagescaledown=disabled
graphics.imaging.benchmarks.tests.drawimagescalesplit=disabled
graphics.imaging.benchmarks.tests.drawimagetxform=disabled
graphics.imaging.imageops.opts.op=convolve3x3zero
graphics.imaging.imageops.tests.graphics2d.drawimageop=disabled
graphics.imaging.imageops.tests.bufimgop.filternull=disabled
graphics.imaging.imageops.tests.bufimgop.filtercached=disabled
graphics.imaging.imageops.tests.rasterop.filternull=disabled
graphics.imaging.imageops.tests.rasterop.filtercached=disabled
graphics.misc.copytests.copyAreaVert=disabled
graphics.misc.copytests.copyAreaHoriz=disabled
graphics.misc.copytests.copyAreaDiag=disabled
pixel.opts.renderto=Off
pixel.opts.renderfrom=Off
pixel.src.1BitBinary=disabled
pixel.src.2BitBinary=disabled
pixel.src.4BitBinary=disabled
pixel.src.ByteIndexed=disabled
pixel.src.ByteGray=disabled
pixel.src.Short555=disabled
pixel.src.Short565=disabled
pixel.src.ShortGray=disabled
pixel.src.3ByteBgr=disabled
pixel.src.4ByteAbgr=disabled
pixel.src.IntXrgb=disabled
pixel.src.IntXbgr=disabled
pixel.src.IntArgb=disabled
pixel.bimgtests.getrgb=disabled
pixel.bimgtests.setrgb=disabled
pixel.rastests.getdataelem=disabled
pixel.rastests.setdataelem=disabled
pixel.rastests.getpixel=disabled
pixel.rastests.setpixel=disabled
pixel.dbtests.getelem=disabled
pixel.dbtests.setelem=disabled
text.opts.data.tlength=16
text.opts.data.tscript=english
text.opts.font.fname=serif,physical
text.opts.font.fstyle=0
text.opts.font.fsize=13.0
text.opts.font.ftx=Identity
text.opts.graphics.textaa=Off
text.opts.graphics.tfm=Off
text.opts.graphics.gaa=Off
text.opts.graphics.gtx=Identity
text.opts.advopts.gvstyle=0
text.opts.advopts.tlruns=1
text.opts.advopts.maptype=FONT
text.Rendering.tests.drawString=disabled
text.Rendering.tests.drawChars=disabled
text.Rendering.tests.drawBytes=disabled
text.Rendering.tests.drawGlyphVectors=disabled
text.Rendering.tests.drawTextLayout=disabled
text.Measuring.tests.stringWidth=disabled
text.Measuring.tests.stringBounds=disabled
text.Measuring.tests.charsWidth=disabled
text.Measuring.tests.charsBounds=disabled
text.Measuring.tests.fontcandisplay=disabled
text.Measuring.tests.gvWidth=disabled
text.Measuring.tests.gvLogicalBounds=disabled
text.Measuring.tests.gvVisualBounds=disabled
text.Measuring.tests.gvPixelBounds=disabled
text.Measuring.tests.gvOutline=disabled
text.Measuring.tests.gvGlyphLogicalBounds=disabled
text.Measuring.tests.gvGlyphVisualBounds=disabled
text.Measuring.tests.gvGlyphPixelBounds=disabled
text.Measuring.tests.gvGlyphOutline=disabled
text.Measuring.tests.gvGlyphTransform=disabled
text.Measuring.tests.gvGlyphMetrics=disabled
text.Measuring.tests.tlAdvance=disabled
text.Measuring.tests.tlAscent=disabled
text.Measuring.tests.tlBounds=disabled
text.Measuring.tests.tlGetCaretInfo=disabled
text.Measuring.tests.tlGetNextHit=disabled
text.Measuring.tests.tlGetCaretShape=disabled
text.Measuring.tests.tlGetLogicalHighlightShape=disabled
text.Measuring.tests.tlHitTest=disabled
text.Measuring.tests.tlOutline=disabled
text.construction.tests.gvfromfontstring=disabled
text.construction.tests.gvfromfontchars=disabled
text.construction.tests.gvfromfontci=disabled
text.construction.tests.gvfromfontglyphs=disabled
text.construction.tests.gvfromfontlayout=disabled
text.construction.tests.tlfromfont=disabled
text.construction.tests.tlfrommap=disabled
imageio.opts.size=250
imageio.opts.content=photo
imageio.input.opts.general.source.file=disabled
imageio.input.opts.general.source.url=disabled
imageio.input.opts.general.source.byteArray=disabled
imageio.input.opts.imageio.useCache=Off
imageio.input.image.toolkit.opts.format=
imageio.input.image.toolkit.tests.createImage=disabled
imageio.input.image.imageio.opts.format=
imageio.input.image.imageio.tests.imageioRead=disabled
imageio.input.image.imageio.reader.opts.seekForwardOnly=On
imageio.input.image.imageio.reader.opts.ignoreMetadata=On
imageio.input.image.imageio.reader.opts.installListener=Off
imageio.input.image.imageio.reader.tests.read=disabled
imageio.input.image.imageio.reader.tests.getImageMetadata=disabled
imageio.input.stream.tests.construct=disabled
imageio.input.stream.tests.read=disabled
imageio.input.stream.tests.readByteArray=disabled
imageio.input.stream.tests.readFullyByteArray=disabled
imageio.input.stream.tests.readBit=disabled
imageio.input.stream.tests.readByte=disabled
imageio.input.stream.tests.readUnsignedByte=disabled
imageio.input.stream.tests.readShort=disabled
imageio.input.stream.tests.readUnsignedShort=disabled
imageio.input.stream.tests.readInt=disabled
imageio.input.stream.tests.readUnsignedInt=disabled
imageio.input.stream.tests.readFloat=disabled
imageio.input.stream.tests.readLong=disabled
imageio.input.stream.tests.readDouble=disabled
imageio.input.stream.tests.skipBytes=disabled
imageio.output.opts.general.dest.file=disabled
imageio.output.opts.general.dest.byteArray=disabled
imageio.output.opts.imageio.useCache=Off
imageio.output.image.imageio.opts.format=
imageio.output.image.imageio.tests.imageioWrite=disabled
imageio.output.image.imageio.writer.opts.installListener=Off
imageio.output.image.imageio.writer.tests.write=disabled
imageio.output.stream.tests.construct=disabled
imageio.output.stream.tests.write=disabled
imageio.output.stream.tests.writeByteArray=disabled
imageio.output.stream.tests.writeBit=disabled
imageio.output.stream.tests.writeByte=disabled
imageio.output.stream.tests.writeShort=disabled
imageio.output.stream.tests.writeInt=disabled
imageio.output.stream.tests.writeFloat=disabled
imageio.output.stream.tests.writeLong=disabled
imageio.output.stream.tests.writeDouble=disabled
cmm.opts.profiles=1001
cmm.colorconv.data.fromRGB=disabled
cmm.colorconv.data.toRGB=disabled
cmm.colorconv.data.fromCIEXYZ=disabled
cmm.colorconv.data.toCIEXYZ=disabled
cmm.colorconv.ccop.ccopOptions.size=250
cmm.colorconv.ccop.ccopOptions.content=photo
cmm.colorconv.ccop.ccopOptions.srcType=INT_RGB
cmm.colorconv.ccop.ccopOptions.dstType=INT_RGB
cmm.colorconv.ccop.op_img=disabled
cmm.colorconv.ccop.op_rst=disabled
cmm.colorconv.ccop.op_draw=disabled
cmm.colorconv.embed.embedOptions.Images=512x512
cmm.colorconv.embed.embd_img_read=disabled
cmm.profiles.getHeader=disabled
cmm.profiles.getNumComponents=disabled

View File

@@ -1,267 +0,0 @@
prog.verbose=disabled
prog.printresults=enabled
global.env.outputwidth=640
global.env.outputheight=480
global.env.runcount=5
global.env.repcount=0
global.env.testtime=2500
global.results.workunits=units
global.results.timeunits=sec
global.results.ratio=unitspersec
global.dest.offscreen=disabled
global.dest.frame.defaultframe=enabled
global.dest.frame.transframe=disabled
global.dest.frame.shapedframe=disabled
global.dest.frame.shapedtransframe=disabled
global.dest.compatimg.compatimg=disabled
global.dest.compatimg.opqcompatimg=disabled
global.dest.compatimg.bmcompatimg=disabled
global.dest.compatimg.transcompatimg=disabled
global.dest.volimg.volimg=disabled
global.dest.volimg.opqvolimg=disabled
global.dest.volimg.bmvolimg=disabled
global.dest.volimg.transvolimg=disabled
global.dest.bufimg.IntXrgb=disabled
global.dest.bufimg.IntArgb=disabled
global.dest.bufimg.IntArgbPre=disabled
global.dest.bufimg.3ByteBgr=disabled
global.dest.bufimg.ByteIndexed=disabled
global.dest.bufimg.ByteGray=disabled
global.dest.bufimg.4ByteAbgr=disabled
global.dest.bufimg.4ByteAbgrPre=disabled
global.dest.bufimg.custom=disabled
graphics.opts.anim=2
graphics.opts.sizes=250
graphics.opts.alpharule=SrcOver
graphics.opts.transform=ident
graphics.opts.extraalpha=Off
graphics.opts.xormode=Off
graphics.opts.clip=Off
graphics.opts.renderhint=Default
graphics.render.opts.paint=random
graphics.render.opts.alphacolor=Off
graphics.render.opts.antialias=Off
graphics.render.opts.stroke=width1
graphics.render.tests.drawLine=disabled
graphics.render.tests.drawLineHoriz=disabled
graphics.render.tests.drawLineVert=disabled
graphics.render.tests.fillRect=disabled
graphics.render.tests.drawRect=disabled
graphics.render.tests.fillOval=disabled
graphics.render.tests.drawOval=disabled
graphics.render.tests.fillPoly=disabled
graphics.render.tests.drawPoly=enabled
graphics.render.tests.shape.fillCubic=disabled
graphics.render.tests.shape.drawCubic=disabled
graphics.render.tests.shape.fillEllipse2D=disabled
graphics.render.tests.shape.drawEllipse2D=disabled
graphics.imaging.src.offscr.opaque=disabled
graphics.imaging.src.offscr.bitmask=disabled
graphics.imaging.src.offscr.translucent=disabled
graphics.imaging.src.opqcompatimg.opaque=disabled
graphics.imaging.src.opqcompatimg.bitmask=disabled
graphics.imaging.src.opqcompatimg.translucent=disabled
graphics.imaging.src.bmcompatimg.opaque=disabled
graphics.imaging.src.bmcompatimg.bitmask=disabled
graphics.imaging.src.bmcompatimg.translucent=disabled
graphics.imaging.src.transcompatimg.opaque=disabled
graphics.imaging.src.transcompatimg.bitmask=disabled
graphics.imaging.src.transcompatimg.translucent=disabled
graphics.imaging.src.opqvolimg.opaque=disabled
graphics.imaging.src.opqvolimg.bitmask=disabled
graphics.imaging.src.opqvolimg.translucent=disabled
graphics.imaging.src.bmvolimg.opaque=disabled
graphics.imaging.src.bmvolimg.bitmask=disabled
graphics.imaging.src.bmvolimg.translucent=disabled
graphics.imaging.src.transvolimg.opaque=disabled
graphics.imaging.src.transvolimg.bitmask=disabled
graphics.imaging.src.transvolimg.translucent=disabled
graphics.imaging.src.bufimg.IntXrgb.opaque=disabled
graphics.imaging.src.bufimg.IntXrgb.bitmask=disabled
graphics.imaging.src.bufimg.IntXrgb.translucent=disabled
graphics.imaging.src.bufimg.IntArgb.opaque=disabled
graphics.imaging.src.bufimg.IntArgb.bitmask=disabled
graphics.imaging.src.bufimg.IntArgb.translucent=disabled
graphics.imaging.src.bufimg.IntArgbPre.opaque=disabled
graphics.imaging.src.bufimg.IntArgbPre.bitmask=disabled
graphics.imaging.src.bufimg.IntArgbPre.translucent=disabled
graphics.imaging.src.bufimg.ByteGray.opaque=disabled
graphics.imaging.src.bufimg.ByteGray.bitmask=disabled
graphics.imaging.src.bufimg.ByteGray.translucent=disabled
graphics.imaging.src.bufimg.3ByteBgr.opaque=disabled
graphics.imaging.src.bufimg.3ByteBgr.bitmask=disabled
graphics.imaging.src.bufimg.3ByteBgr.translucent=disabled
graphics.imaging.src.bufimg.4ByteAbgr.opaque=disabled
graphics.imaging.src.bufimg.4ByteAbgr.bitmask=disabled
graphics.imaging.src.bufimg.4ByteAbgr.translucent=disabled
graphics.imaging.src.bufimg.4ByteAbgrPre.opaque=disabled
graphics.imaging.src.bufimg.4ByteAbgrPre.bitmask=disabled
graphics.imaging.src.bufimg.4ByteAbgrPre.translucent=disabled
graphics.imaging.src.bufimg.ByteIndexedBm.opaque=disabled
graphics.imaging.src.bufimg.ByteIndexedBm.bitmask=disabled
graphics.imaging.src.bufimg.ByteIndexedBm.translucent=disabled
graphics.imaging.src.bufimg.unmanagedIntXrgb.opaque=disabled
graphics.imaging.src.bufimg.unmanagedIntXrgb.bitmask=disabled
graphics.imaging.src.bufimg.unmanagedIntXrgb.translucent=disabled
graphics.imaging.src.bufimg.unmanagedIntArgb.opaque=disabled
graphics.imaging.src.bufimg.unmanagedIntArgb.bitmask=disabled
graphics.imaging.src.bufimg.unmanagedIntArgb.translucent=disabled
graphics.imaging.src.bufimg.unmanagedIntArgbPre.opaque=disabled
graphics.imaging.src.bufimg.unmanagedIntArgbPre.bitmask=disabled
graphics.imaging.src.bufimg.unmanagedIntArgbPre.translucent=disabled
graphics.imaging.src.bufimg.unmanaged3ByteBgr.opaque=disabled
graphics.imaging.src.bufimg.unmanaged3ByteBgr.bitmask=disabled
graphics.imaging.src.bufimg.unmanaged3ByteBgr.translucent=disabled
graphics.imaging.benchmarks.opts.interpolation=Nearest neighbor
graphics.imaging.benchmarks.opts.touchsrc=Off
graphics.imaging.benchmarks.tests.drawimage=disabled
graphics.imaging.benchmarks.tests.drawimagebg=disabled
graphics.imaging.benchmarks.tests.drawimagescaleup=disabled
graphics.imaging.benchmarks.tests.drawimagescaledown=disabled
graphics.imaging.benchmarks.tests.drawimagescalesplit=disabled
graphics.imaging.benchmarks.tests.drawimagetxform=disabled
graphics.imaging.imageops.opts.op=convolve3x3zero
graphics.imaging.imageops.tests.graphics2d.drawimageop=disabled
graphics.imaging.imageops.tests.bufimgop.filternull=disabled
graphics.imaging.imageops.tests.bufimgop.filtercached=disabled
graphics.imaging.imageops.tests.rasterop.filternull=disabled
graphics.imaging.imageops.tests.rasterop.filtercached=disabled
graphics.misc.copytests.copyAreaVert=disabled
graphics.misc.copytests.copyAreaHoriz=disabled
graphics.misc.copytests.copyAreaDiag=disabled
pixel.opts.renderto=Off
pixel.opts.renderfrom=Off
pixel.src.1BitBinary=disabled
pixel.src.2BitBinary=disabled
pixel.src.4BitBinary=disabled
pixel.src.ByteIndexed=disabled
pixel.src.ByteGray=disabled
pixel.src.Short555=disabled
pixel.src.Short565=disabled
pixel.src.ShortGray=disabled
pixel.src.3ByteBgr=disabled
pixel.src.4ByteAbgr=disabled
pixel.src.IntXrgb=disabled
pixel.src.IntXbgr=disabled
pixel.src.IntArgb=disabled
pixel.bimgtests.getrgb=disabled
pixel.bimgtests.setrgb=disabled
pixel.rastests.getdataelem=disabled
pixel.rastests.setdataelem=disabled
pixel.rastests.getpixel=disabled
pixel.rastests.setpixel=disabled
pixel.dbtests.getelem=disabled
pixel.dbtests.setelem=disabled
text.opts.data.tlength=16
text.opts.data.tscript=english
text.opts.font.fname=serif,physical
text.opts.font.fstyle=0
text.opts.font.fsize=13.0
text.opts.font.ftx=Identity
text.opts.graphics.textaa=Off
text.opts.graphics.tfm=Off
text.opts.graphics.gaa=Off
text.opts.graphics.gtx=Identity
text.opts.advopts.gvstyle=0
text.opts.advopts.tlruns=1
text.opts.advopts.maptype=FONT
text.Rendering.tests.drawString=disabled
text.Rendering.tests.drawChars=disabled
text.Rendering.tests.drawBytes=disabled
text.Rendering.tests.drawGlyphVectors=disabled
text.Rendering.tests.drawTextLayout=disabled
text.Measuring.tests.stringWidth=disabled
text.Measuring.tests.stringBounds=disabled
text.Measuring.tests.charsWidth=disabled
text.Measuring.tests.charsBounds=disabled
text.Measuring.tests.fontcandisplay=disabled
text.Measuring.tests.gvWidth=disabled
text.Measuring.tests.gvLogicalBounds=disabled
text.Measuring.tests.gvVisualBounds=disabled
text.Measuring.tests.gvPixelBounds=disabled
text.Measuring.tests.gvOutline=disabled
text.Measuring.tests.gvGlyphLogicalBounds=disabled
text.Measuring.tests.gvGlyphVisualBounds=disabled
text.Measuring.tests.gvGlyphPixelBounds=disabled
text.Measuring.tests.gvGlyphOutline=disabled
text.Measuring.tests.gvGlyphTransform=disabled
text.Measuring.tests.gvGlyphMetrics=disabled
text.Measuring.tests.tlAdvance=disabled
text.Measuring.tests.tlAscent=disabled
text.Measuring.tests.tlBounds=disabled
text.Measuring.tests.tlGetCaretInfo=disabled
text.Measuring.tests.tlGetNextHit=disabled
text.Measuring.tests.tlGetCaretShape=disabled
text.Measuring.tests.tlGetLogicalHighlightShape=disabled
text.Measuring.tests.tlHitTest=disabled
text.Measuring.tests.tlOutline=disabled
text.construction.tests.gvfromfontstring=disabled
text.construction.tests.gvfromfontchars=disabled
text.construction.tests.gvfromfontci=disabled
text.construction.tests.gvfromfontglyphs=disabled
text.construction.tests.gvfromfontlayout=disabled
text.construction.tests.tlfromfont=disabled
text.construction.tests.tlfrommap=disabled
imageio.opts.size=250
imageio.opts.content=photo
imageio.input.opts.general.source.file=disabled
imageio.input.opts.general.source.url=disabled
imageio.input.opts.general.source.byteArray=disabled
imageio.input.opts.imageio.useCache=Off
imageio.input.image.toolkit.opts.format=
imageio.input.image.toolkit.tests.createImage=disabled
imageio.input.image.imageio.opts.format=
imageio.input.image.imageio.tests.imageioRead=disabled
imageio.input.image.imageio.reader.opts.seekForwardOnly=On
imageio.input.image.imageio.reader.opts.ignoreMetadata=On
imageio.input.image.imageio.reader.opts.installListener=Off
imageio.input.image.imageio.reader.tests.read=disabled
imageio.input.image.imageio.reader.tests.getImageMetadata=disabled
imageio.input.stream.tests.construct=disabled
imageio.input.stream.tests.read=disabled
imageio.input.stream.tests.readByteArray=disabled
imageio.input.stream.tests.readFullyByteArray=disabled
imageio.input.stream.tests.readBit=disabled
imageio.input.stream.tests.readByte=disabled
imageio.input.stream.tests.readUnsignedByte=disabled
imageio.input.stream.tests.readShort=disabled
imageio.input.stream.tests.readUnsignedShort=disabled
imageio.input.stream.tests.readInt=disabled
imageio.input.stream.tests.readUnsignedInt=disabled
imageio.input.stream.tests.readFloat=disabled
imageio.input.stream.tests.readLong=disabled
imageio.input.stream.tests.readDouble=disabled
imageio.input.stream.tests.skipBytes=disabled
imageio.output.opts.general.dest.file=disabled
imageio.output.opts.general.dest.byteArray=disabled
imageio.output.opts.imageio.useCache=Off
imageio.output.image.imageio.opts.format=
imageio.output.image.imageio.tests.imageioWrite=disabled
imageio.output.image.imageio.writer.opts.installListener=Off
imageio.output.image.imageio.writer.tests.write=disabled
imageio.output.stream.tests.construct=disabled
imageio.output.stream.tests.write=disabled
imageio.output.stream.tests.writeByteArray=disabled
imageio.output.stream.tests.writeBit=disabled
imageio.output.stream.tests.writeByte=disabled
imageio.output.stream.tests.writeShort=disabled
imageio.output.stream.tests.writeInt=disabled
imageio.output.stream.tests.writeFloat=disabled
imageio.output.stream.tests.writeLong=disabled
imageio.output.stream.tests.writeDouble=disabled
cmm.opts.profiles=1001
cmm.colorconv.data.fromRGB=disabled
cmm.colorconv.data.toRGB=disabled
cmm.colorconv.data.fromCIEXYZ=disabled
cmm.colorconv.data.toCIEXYZ=disabled
cmm.colorconv.ccop.ccopOptions.size=250
cmm.colorconv.ccop.ccopOptions.content=photo
cmm.colorconv.ccop.ccopOptions.srcType=INT_RGB
cmm.colorconv.ccop.ccopOptions.dstType=INT_RGB
cmm.colorconv.ccop.op_img=disabled
cmm.colorconv.ccop.op_rst=disabled
cmm.colorconv.ccop.op_draw=disabled
cmm.colorconv.embed.embedOptions.Images=512x512
cmm.colorconv.embed.embd_img_read=disabled
cmm.profiles.getHeader=disabled
cmm.profiles.getNumComponents=disabled

View File

@@ -1,267 +0,0 @@
prog.verbose=disabled
prog.printresults=enabled
global.env.outputwidth=640
global.env.outputheight=480
global.env.runcount=5
global.env.repcount=0
global.env.testtime=2500
global.results.workunits=units
global.results.timeunits=sec
global.results.ratio=unitspersec
global.dest.offscreen=disabled
global.dest.frame.defaultframe=enabled
global.dest.frame.transframe=disabled
global.dest.frame.shapedframe=disabled
global.dest.frame.shapedtransframe=disabled
global.dest.compatimg.compatimg=disabled
global.dest.compatimg.opqcompatimg=disabled
global.dest.compatimg.bmcompatimg=disabled
global.dest.compatimg.transcompatimg=disabled
global.dest.volimg.volimg=disabled
global.dest.volimg.opqvolimg=disabled
global.dest.volimg.bmvolimg=disabled
global.dest.volimg.transvolimg=disabled
global.dest.bufimg.IntXrgb=disabled
global.dest.bufimg.IntArgb=disabled
global.dest.bufimg.IntArgbPre=disabled
global.dest.bufimg.3ByteBgr=disabled
global.dest.bufimg.ByteIndexed=disabled
global.dest.bufimg.ByteGray=disabled
global.dest.bufimg.4ByteAbgr=disabled
global.dest.bufimg.4ByteAbgrPre=disabled
global.dest.bufimg.custom=disabled
graphics.opts.anim=2
graphics.opts.sizes=250
graphics.opts.alpharule=SrcOver
graphics.opts.transform=ident
graphics.opts.extraalpha=Off
graphics.opts.xormode=Off
graphics.opts.clip=Off
graphics.opts.renderhint=Default
graphics.render.opts.paint=single
graphics.render.opts.alphacolor=Off
graphics.render.opts.antialias=Off
graphics.render.opts.stroke=width1
graphics.render.tests.drawLine=disabled
graphics.render.tests.drawLineHoriz=disabled
graphics.render.tests.drawLineVert=disabled
graphics.render.tests.fillRect=disabled
graphics.render.tests.drawRect=disabled
graphics.render.tests.fillOval=disabled
graphics.render.tests.drawOval=disabled
graphics.render.tests.fillPoly=disabled
graphics.render.tests.drawPoly=enabled
graphics.render.tests.shape.fillCubic=disabled
graphics.render.tests.shape.drawCubic=disabled
graphics.render.tests.shape.fillEllipse2D=disabled
graphics.render.tests.shape.drawEllipse2D=disabled
graphics.imaging.src.offscr.opaque=disabled
graphics.imaging.src.offscr.bitmask=disabled
graphics.imaging.src.offscr.translucent=disabled
graphics.imaging.src.opqcompatimg.opaque=disabled
graphics.imaging.src.opqcompatimg.bitmask=disabled
graphics.imaging.src.opqcompatimg.translucent=disabled
graphics.imaging.src.bmcompatimg.opaque=disabled
graphics.imaging.src.bmcompatimg.bitmask=disabled
graphics.imaging.src.bmcompatimg.translucent=disabled
graphics.imaging.src.transcompatimg.opaque=disabled
graphics.imaging.src.transcompatimg.bitmask=disabled
graphics.imaging.src.transcompatimg.translucent=disabled
graphics.imaging.src.opqvolimg.opaque=disabled
graphics.imaging.src.opqvolimg.bitmask=disabled
graphics.imaging.src.opqvolimg.translucent=disabled
graphics.imaging.src.bmvolimg.opaque=disabled
graphics.imaging.src.bmvolimg.bitmask=disabled
graphics.imaging.src.bmvolimg.translucent=disabled
graphics.imaging.src.transvolimg.opaque=disabled
graphics.imaging.src.transvolimg.bitmask=disabled
graphics.imaging.src.transvolimg.translucent=disabled
graphics.imaging.src.bufimg.IntXrgb.opaque=disabled
graphics.imaging.src.bufimg.IntXrgb.bitmask=disabled
graphics.imaging.src.bufimg.IntXrgb.translucent=disabled
graphics.imaging.src.bufimg.IntArgb.opaque=disabled
graphics.imaging.src.bufimg.IntArgb.bitmask=disabled
graphics.imaging.src.bufimg.IntArgb.translucent=disabled
graphics.imaging.src.bufimg.IntArgbPre.opaque=disabled
graphics.imaging.src.bufimg.IntArgbPre.bitmask=disabled
graphics.imaging.src.bufimg.IntArgbPre.translucent=disabled
graphics.imaging.src.bufimg.ByteGray.opaque=disabled
graphics.imaging.src.bufimg.ByteGray.bitmask=disabled
graphics.imaging.src.bufimg.ByteGray.translucent=disabled
graphics.imaging.src.bufimg.3ByteBgr.opaque=disabled
graphics.imaging.src.bufimg.3ByteBgr.bitmask=disabled
graphics.imaging.src.bufimg.3ByteBgr.translucent=disabled
graphics.imaging.src.bufimg.4ByteAbgr.opaque=disabled
graphics.imaging.src.bufimg.4ByteAbgr.bitmask=disabled
graphics.imaging.src.bufimg.4ByteAbgr.translucent=disabled
graphics.imaging.src.bufimg.4ByteAbgrPre.opaque=disabled
graphics.imaging.src.bufimg.4ByteAbgrPre.bitmask=disabled
graphics.imaging.src.bufimg.4ByteAbgrPre.translucent=disabled
graphics.imaging.src.bufimg.ByteIndexedBm.opaque=disabled
graphics.imaging.src.bufimg.ByteIndexedBm.bitmask=disabled
graphics.imaging.src.bufimg.ByteIndexedBm.translucent=disabled
graphics.imaging.src.bufimg.unmanagedIntXrgb.opaque=disabled
graphics.imaging.src.bufimg.unmanagedIntXrgb.bitmask=disabled
graphics.imaging.src.bufimg.unmanagedIntXrgb.translucent=disabled
graphics.imaging.src.bufimg.unmanagedIntArgb.opaque=disabled
graphics.imaging.src.bufimg.unmanagedIntArgb.bitmask=disabled
graphics.imaging.src.bufimg.unmanagedIntArgb.translucent=disabled
graphics.imaging.src.bufimg.unmanagedIntArgbPre.opaque=disabled
graphics.imaging.src.bufimg.unmanagedIntArgbPre.bitmask=disabled
graphics.imaging.src.bufimg.unmanagedIntArgbPre.translucent=disabled
graphics.imaging.src.bufimg.unmanaged3ByteBgr.opaque=disabled
graphics.imaging.src.bufimg.unmanaged3ByteBgr.bitmask=disabled
graphics.imaging.src.bufimg.unmanaged3ByteBgr.translucent=disabled
graphics.imaging.benchmarks.opts.interpolation=Nearest neighbor
graphics.imaging.benchmarks.opts.touchsrc=Off
graphics.imaging.benchmarks.tests.drawimage=disabled
graphics.imaging.benchmarks.tests.drawimagebg=disabled
graphics.imaging.benchmarks.tests.drawimagescaleup=disabled
graphics.imaging.benchmarks.tests.drawimagescaledown=disabled
graphics.imaging.benchmarks.tests.drawimagescalesplit=disabled
graphics.imaging.benchmarks.tests.drawimagetxform=disabled
graphics.imaging.imageops.opts.op=convolve3x3zero
graphics.imaging.imageops.tests.graphics2d.drawimageop=disabled
graphics.imaging.imageops.tests.bufimgop.filternull=disabled
graphics.imaging.imageops.tests.bufimgop.filtercached=disabled
graphics.imaging.imageops.tests.rasterop.filternull=disabled
graphics.imaging.imageops.tests.rasterop.filtercached=disabled
graphics.misc.copytests.copyAreaVert=disabled
graphics.misc.copytests.copyAreaHoriz=disabled
graphics.misc.copytests.copyAreaDiag=disabled
pixel.opts.renderto=Off
pixel.opts.renderfrom=Off
pixel.src.1BitBinary=disabled
pixel.src.2BitBinary=disabled
pixel.src.4BitBinary=disabled
pixel.src.ByteIndexed=disabled
pixel.src.ByteGray=disabled
pixel.src.Short555=disabled
pixel.src.Short565=disabled
pixel.src.ShortGray=disabled
pixel.src.3ByteBgr=disabled
pixel.src.4ByteAbgr=disabled
pixel.src.IntXrgb=disabled
pixel.src.IntXbgr=disabled
pixel.src.IntArgb=disabled
pixel.bimgtests.getrgb=disabled
pixel.bimgtests.setrgb=disabled
pixel.rastests.getdataelem=disabled
pixel.rastests.setdataelem=disabled
pixel.rastests.getpixel=disabled
pixel.rastests.setpixel=disabled
pixel.dbtests.getelem=disabled
pixel.dbtests.setelem=disabled
text.opts.data.tlength=16
text.opts.data.tscript=english
text.opts.font.fname=serif,physical
text.opts.font.fstyle=0
text.opts.font.fsize=13.0
text.opts.font.ftx=Identity
text.opts.graphics.textaa=Off
text.opts.graphics.tfm=Off
text.opts.graphics.gaa=Off
text.opts.graphics.gtx=Identity
text.opts.advopts.gvstyle=0
text.opts.advopts.tlruns=1
text.opts.advopts.maptype=FONT
text.Rendering.tests.drawString=disabled
text.Rendering.tests.drawChars=disabled
text.Rendering.tests.drawBytes=disabled
text.Rendering.tests.drawGlyphVectors=disabled
text.Rendering.tests.drawTextLayout=disabled
text.Measuring.tests.stringWidth=disabled
text.Measuring.tests.stringBounds=disabled
text.Measuring.tests.charsWidth=disabled
text.Measuring.tests.charsBounds=disabled
text.Measuring.tests.fontcandisplay=disabled
text.Measuring.tests.gvWidth=disabled
text.Measuring.tests.gvLogicalBounds=disabled
text.Measuring.tests.gvVisualBounds=disabled
text.Measuring.tests.gvPixelBounds=disabled
text.Measuring.tests.gvOutline=disabled
text.Measuring.tests.gvGlyphLogicalBounds=disabled
text.Measuring.tests.gvGlyphVisualBounds=disabled
text.Measuring.tests.gvGlyphPixelBounds=disabled
text.Measuring.tests.gvGlyphOutline=disabled
text.Measuring.tests.gvGlyphTransform=disabled
text.Measuring.tests.gvGlyphMetrics=disabled
text.Measuring.tests.tlAdvance=disabled
text.Measuring.tests.tlAscent=disabled
text.Measuring.tests.tlBounds=disabled
text.Measuring.tests.tlGetCaretInfo=disabled
text.Measuring.tests.tlGetNextHit=disabled
text.Measuring.tests.tlGetCaretShape=disabled
text.Measuring.tests.tlGetLogicalHighlightShape=disabled
text.Measuring.tests.tlHitTest=disabled
text.Measuring.tests.tlOutline=disabled
text.construction.tests.gvfromfontstring=disabled
text.construction.tests.gvfromfontchars=disabled
text.construction.tests.gvfromfontci=disabled
text.construction.tests.gvfromfontglyphs=disabled
text.construction.tests.gvfromfontlayout=disabled
text.construction.tests.tlfromfont=disabled
text.construction.tests.tlfrommap=disabled
imageio.opts.size=250
imageio.opts.content=photo
imageio.input.opts.general.source.file=disabled
imageio.input.opts.general.source.url=disabled
imageio.input.opts.general.source.byteArray=disabled
imageio.input.opts.imageio.useCache=Off
imageio.input.image.toolkit.opts.format=
imageio.input.image.toolkit.tests.createImage=disabled
imageio.input.image.imageio.opts.format=
imageio.input.image.imageio.tests.imageioRead=disabled
imageio.input.image.imageio.reader.opts.seekForwardOnly=On
imageio.input.image.imageio.reader.opts.ignoreMetadata=On
imageio.input.image.imageio.reader.opts.installListener=Off
imageio.input.image.imageio.reader.tests.read=disabled
imageio.input.image.imageio.reader.tests.getImageMetadata=disabled
imageio.input.stream.tests.construct=disabled
imageio.input.stream.tests.read=disabled
imageio.input.stream.tests.readByteArray=disabled
imageio.input.stream.tests.readFullyByteArray=disabled
imageio.input.stream.tests.readBit=disabled
imageio.input.stream.tests.readByte=disabled
imageio.input.stream.tests.readUnsignedByte=disabled
imageio.input.stream.tests.readShort=disabled
imageio.input.stream.tests.readUnsignedShort=disabled
imageio.input.stream.tests.readInt=disabled
imageio.input.stream.tests.readUnsignedInt=disabled
imageio.input.stream.tests.readFloat=disabled
imageio.input.stream.tests.readLong=disabled
imageio.input.stream.tests.readDouble=disabled
imageio.input.stream.tests.skipBytes=disabled
imageio.output.opts.general.dest.file=disabled
imageio.output.opts.general.dest.byteArray=disabled
imageio.output.opts.imageio.useCache=Off
imageio.output.image.imageio.opts.format=
imageio.output.image.imageio.tests.imageioWrite=disabled
imageio.output.image.imageio.writer.opts.installListener=Off
imageio.output.image.imageio.writer.tests.write=disabled
imageio.output.stream.tests.construct=disabled
imageio.output.stream.tests.write=disabled
imageio.output.stream.tests.writeByteArray=disabled
imageio.output.stream.tests.writeBit=disabled
imageio.output.stream.tests.writeByte=disabled
imageio.output.stream.tests.writeShort=disabled
imageio.output.stream.tests.writeInt=disabled
imageio.output.stream.tests.writeFloat=disabled
imageio.output.stream.tests.writeLong=disabled
imageio.output.stream.tests.writeDouble=disabled
cmm.opts.profiles=1001
cmm.colorconv.data.fromRGB=disabled
cmm.colorconv.data.toRGB=disabled
cmm.colorconv.data.fromCIEXYZ=disabled
cmm.colorconv.data.toCIEXYZ=disabled
cmm.colorconv.ccop.ccopOptions.size=250
cmm.colorconv.ccop.ccopOptions.content=photo
cmm.colorconv.ccop.ccopOptions.srcType=INT_RGB
cmm.colorconv.ccop.ccopOptions.dstType=INT_RGB
cmm.colorconv.ccop.op_img=disabled
cmm.colorconv.ccop.op_rst=disabled
cmm.colorconv.ccop.op_draw=disabled
cmm.colorconv.embed.embedOptions.Images=512x512
cmm.colorconv.embed.embd_img_read=disabled
cmm.profiles.getHeader=disabled
cmm.profiles.getNumComponents=disabled

View File

@@ -1,49 +0,0 @@
#!/bin/bash
#set -euo pipefail
set -x
BASE_DIR=$(dirname "$0")
source $BASE_DIR/run_inc.sh
if [ -z "$DACAPOTEST_DIR" ]; then
DACAPOTEST_DIR="./"
fi
DACAPOTEST=${DACAPOTEST:='dacapo-9.12-bach.jar'}
if [ -z "$DACAPOTEST" ]; then
if [ ! -f "$DACAPOTEST_DIR/$DACAPOTEST" ]; then
echo "ERR### cannot find $DACAPOTEST_DIR/$DACAPOTEST"
exit 2
fi
fi
TRACE=false
if [[ ($# -eq 1 && "$1" == "-help") ]] ; then
echo "Usage: run_dc.sh [rendering_options]"
echo "$RENDER_OPS_DOC"
exit 3
fi
OPTS=""
# use time + repeat
OPTS="$OPTS -no-validation $1"
echo "OPTS: $OPTS"
echo "Unit: Milliseconds (not FPS), lower is better"
for i in `seq $N` ; do
if [ $i -eq 1 ]; then
echo x
fi
$JAVA \
-jar $DACAPOTEST $OPTS 2>&1 | tee dacapo_$1$MODE_$i.log | grep "PASSED" | awk '{print $7 }'
if [ $i -ne $N ]; then
sleep $ST
fi
done | $DATAMASH_CMD | expand -t12 > dacapo_$1.log

View File

@@ -1,127 +0,0 @@
export LC_ALL=C
ST=1 # sleep between iterations
# number of iterations (jvm spawned)
N=5
# number of repeats (within jvm)
R=3
type datamash 2>&1 > /dev/null ; ec=$?
if [ $ec -ne 0 ] ; then
echo "Missing datamash utility"
exit 1
fi
DATAMASH_CMD="datamash --format=%.2f -H count x min x q1 x median x q3 x max x mad x"
J2D_OPTS=""
OS=""
case "$OSTYPE" in
linux*) echo "Linux"
;;
darwin*) echo "OSX"
;;
*) echo "unknown: $OSTYPE"
exit 1
;;
esac
read -r -d '' RENDER_OPS_DOC << EOM
rendering_options:
-opengl # OpenGL pipeline (windows, linux, macOS)
-metal # Metal pipeline (macOS)
-vulkan # Vulkan pipeline (WLToolkit)
-accelsd # Vulkan full acceleration (WLToolkit, Vulkan)
-tk tk_name # AWT toolkit (linux: WLToolkit|XToolkit)
-scale # UI scale
-N num # Number of iterations (JVM runs)
-R num # Number of repeats in the test
EOM
while [ $# -ge 1 ] ; do
case "$1" in
-opengl) J2D_OPTS=$J2D_OPTS" -Dsun.java2d.opengl=true"
shift
;;
-metal) J2D_OPTS=$J2D_OPTS" -Dsun.java2d.metal=true"
shift
;;
-vulkan) J2D_OPTS=$J2D_OPTS" -Dsun.java2d.vulkan=true"
shift
;;
-accelsd) J2D_OPTS=$J2D_OPTS" -Dsun.java2d.vulkan.accelsd=true"
shift
;;
-tk) shift
if [ $# -ge 1 ] ; then
J2D_OPTS=$J2D_OPTS" -Dawt.toolkit.name="$1
shift
else
echo "Invalid parameters for -tk option. Use: -tk tkname"
exit 1
fi
;;
-N) shift
if [ $# -ge 1 ] ; then
N=$1
shift
else
echo "Invalid parameters for -N option. Use: -N <number>"
exit 1
fi
;;
-R) shift
if [ $# -ge 1 ] ; then
R=$1
shift
else
echo "Invalid parameters for -R option. Use: -R <number>"
exit 1
fi
;;
-scale) shift
if [ $# -ge 1 ] ; then
J2D_OPTS=$J2D_OPTS" -Dsun.java2d.uiScale="$1
shift
else
echo "Invalid parameters for -scale option. Use: -scale scale"
exit 1
fi
;;
-dSync) shift
if [ $# -ge 1 ] ; then
J2D_OPTS=$J2D_OPTS" -Dsun.java2d.metal.displaySync="$1
shift
else
echo "Invalid parameters for -dSync option. Use: -dSync [true|false]"
exit 1
fi
;;
-jdk) shift
if [ $# -ge 1 ] ; then
JAVA=$1/bin/java
shift
else
echo "Invalid parameters for -jdk option"
exit 1
fi
;;
*) break
;;
esac
done
if [ -z "$JAVA" ] ; then
BUILD_DIR=`find $BASE_DIR/../../../../build -name '*-release' -type d | head -n 1`
JAVA=`find $BUILD_DIR/images/jdk -name java -type f | head -n 1`
fi
JAVA_HOME=`dirname $JAVA`/../
"$JAVA" -version
LANG=C
WS_ROOT=$BASE_DIR/../../../..
echo "N: $N"
echo "R: $R"
echo "J2D_OPTS: $J2D_OPTS"

View File

@@ -1,53 +0,0 @@
#!/bin/bash
BASE_DIR=$(dirname "$0")
source $BASE_DIR/run_inc.sh
J2DBENCH_DIR=$WS_ROOT/src/demo/share/java2d/J2DBench
if [ -z "$J2DBENCH" ]; then
if [ ! -f "$J2DBENCH_DIR/dist/J2DBench.jar" ]; then
PATH=$JAVA_HOME/bin:$PATH make -C $J2DBENCH_DIR
fi
if [ ! -f "$J2DBENCH_DIR/dist/J2DBench.jar" ]; then
echo "Cannot build J2DBench. You may use J2DBench env variable instead pointing to the J2DBench.jar."
exit 1
fi
J2DBENCH=$J2DBENCH_DIR/dist/J2DBench.jar
fi
if [ $# -ne 1 ] ; then
echo "Usage: run_j2b.sh [rendering_options] bench_name"
echo
echo "bench_name: poly250 poly250-rand_col poly250-AA-rand_col"
echo ""
echo "$RENDER_OPS_DOC"
exit 2
fi
if [ ! -f "$BASE_DIR/j2dbopts_$1.txt" ]; then
echo "Unknown test: $1"
exit 1
fi
OPTS="j2dbopts_$1.txt"
#OPTS=j2dbopts_poly250.txt
#OPTS=j2dbopts_poly250-rand_col.txt
#OPTS=j2dbopts_poly250-AA-rand_col.txt
echo "OPTS: $OPTS"
for i in `seq $N`; do
if [ $i -eq 1 ]; then
echo x
fi
echo `$JAVA $J2D_OPTS -jar $J2DBENCH \
-batch -loadopts $BASE_DIR/$OPTS -saveres pl.res \
-title pl -desc pl | awk '/averaged/{print $3}' | head -n1`
if [ $i -ne $N ]; then
sleep $ST
fi
done | $DATAMASH_CMD | expand -t12

View File

@@ -1,88 +0,0 @@
#!/bin/bash
#set -euo pipefail
#set -x
BASE_DIR=$(dirname "$0")
source $BASE_DIR/run_inc.sh
RENDERPERFTEST_DIR=$WS_ROOT/test/jdk/performance/client/RenderPerfTest
RENDERPERFTEST=""
if [ -z "$RENDERPERFTEST" ]; then
if [ ! -f "$RENDERPERFTEST_DIR/dist/RenderPerfTest.jar" ]; then
PATH=$JAVA_HOME/bin:$PATH make -C $RENDERPERFTEST_DIR
fi
if [ ! -f "$RENDERPERFTEST_DIR/dist/RenderPerfTest.jar" ]; then
echo "Cannot build RenderPerfTest. You may use RENDERPERFTEST env variable instead pointing to the RenderPerfTest.jar."
exit 1
fi
RENDERPERFTEST=$RENDERPERFTEST_DIR/dist/RenderPerfTest.jar
fi
TRACE=false
# removes leading hyphen
mode_param="${1/-}"
MODE="Robot"
while [ $# -ge 1 ] ; do
case "$1" in
-onscreen) MODE="Robot"
shift
;;
-volatile) MODE="Volatile"
shift
;;
-buffer) MODE="Buffer"
shift
;;
*) break
;;
esac
done
if [[ ($# -eq 1 && "$1" == "-help") || ($# -eq 0) ]] ; then
echo "Usage: run_rp.sh [rp_rendering_mode] [rendering_options] bench_name"
echo
echo "bench_name: ArgbSurfaceBlitImage ArgbSwBlitImage BgrSurfaceBlitImage BgrSwBlitImage"
echo " Image ImageAA Image_XOR VolImage VolImageAA"
echo " ClipFlatBox ClipFlatBoxAA ClipFlatOval ClipFlatOvalAA"
echo " FlatBox FlatBoxAA FlatOval FlatOvalAA FlatOval_XOR FlatQuad FlatQuadAA"
echo " RotatedBox RotatedBoxAA RotatedBox_XOR RotatedOval RotatedOvalAA"
echo " WiredBox WiredBoxAA WiredBubbles WiredBubblesAA WiredQuad WiredQuadAA"
echo " Lines LinesAA Lines_XOR"
echo " TextGray TextLCD TextLCD_XOR TextNoAA TextNoAA_XOR"
echo " LargeTextGray LargeTextLCD LargeTextNoAA WhiteTextGray WhiteTextLCD WhiteTextNoAA"
echo " LinGrad3RotatedOval LinGrad3RotatedOvalAA LinGradRotatedOval LinGradRotatedOvalAA"
echo " RadGrad3RotatedOval RadGrad3RotatedOvalAA"
echo ""
echo "rp_rendering_mode: "
echo " -onscreen : rendering to the window and check it using Robot"
echo " -volatile : rendering to volatile image (default)"
echo " -buffer : rendering to buffered image"
echo "$RENDER_OPS_DOC"
exit 2
fi
OPTS=""
# use time + repeat
OPTS="$OPTS -t -n=$N -e$MODE $1"
echo "OPTS: $OPTS"
echo "Unit: Milliseconds (not FPS), lower is better"
for i in `seq $R` ; do
if [ $i -eq 1 ]; then
echo x
fi
# echo "[debug] " + "test run"
# $JAVA $J2D_OPTS -DTRACE=$TRACE \
# -jar $RENDERPERFTEST $OPTS 2>&1 | awk '/'$1'/{print $3 }' | tee test_run.log
$JAVA $J2D_OPTS -DTRACE=$TRACE \
-jar $RENDERPERFTEST $OPTS -v 2>&1 | tee render_$1_${mode_param}_$i.log | grep -v "^#" | tail -n 1 | \
awk '{print $3 }'
if [ $i -ne $N ]; then
sleep $ST
fi
done | $DATAMASH_CMD | expand -t12 | tee render_$1_${mode_param}.log

View File

@@ -1,39 +0,0 @@
#!/bin/bash
BASE_DIR=$(dirname "$0")
source $BASE_DIR/run_inc.sh
SWINGMARK_DIR=$WS_ROOT/test/jdk/performance/client/SwingMark
if [ -z "$SWINGMARK" ]; then
if [ ! -f "$SWINGMARK_DIR/dist/SwingMark.jar" ]; then
PATH=$JAVA_HOME/bin:$PATH make -C $SWINGMARK_DIR
fi
if [ ! -f "$SWINGMARK_DIR/dist/SwingMark.jar" ]; then
echo "Cannot build SwingMark. You may use SWINGMARK env variable instead pointing to the SwingMark.jar."
exit 1
fi
SWINGMARK=$SWINGMARK_DIR/dist/SwingMark.jar
fi
if [ $# -eq 1 -a "$1" == "--help" ] ; then
shift
echo "Usage: run_sm [rendering_options]"
echo ""
echo "$RENDER_OPS_DOC"
exit 0
fi
for i in `seq $N` ; do
if [ $i -eq 1 ]; then
echo x
fi
# SwingMark gives 1 global 'Score: <value>'
echo `$JAVA $J2D_OPTS -jar $BASE_DIR/../../../../test/jdk/performance/client/SwingMark/dist/SwingMark.jar \
-r $R -q -lf javax.swing.plaf.metal.MetalLookAndFeel | awk '/Score/{print $2}'`
if [ $i -ne $N ]; then
sleep $ST
fi
done | $DATAMASH_CMD | expand -t12

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,155 +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 \
$DISABLE_WARNINGS_AS_ERRORS \
$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
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 || do_exit $?
make LOG=info CONF=$RELEASE_NAME images test-image JBR_API_JBR_VERSION=TEST || do_exit $?
else
make LOG=info CONF=$RELEASE_NAME clean || do_exit $?
make LOG=info CONF=$RELEASE_NAME images || do_exit $?
fi
else
if [ $do_maketest -eq 1 ]; then
make LOG=info CONF=$RELEASE_NAME images test-image 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
if [ "$bundle_type" == "jcef" ]; 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
cat $JCEF_PATH/jcef.version >> $JSDK/release
fi
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 $?
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" == "$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,148 +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 \
$DISABLE_WARNINGS_AS_ERRORS \
$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=''
__cds_opt=''
__cds_opt="--generate-cds-archive"
[ "$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 \
$__cds_opt --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
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 || do_exit $?
make LOG=info CONF=$RELEASE_NAME images test-image JBR_API_JBR_VERSION=TEST || do_exit $?
else
make LOG=info CONF=$RELEASE_NAME clean || do_exit $?
make LOG=info CONF=$RELEASE_NAME images || do_exit $?
fi
else
if [ $do_maketest -eq 1 ]; then
make LOG=info CONF=$RELEASE_NAME images test-image 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
if [ "$bundle_type" == "jcef" ]; 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
cat $JCEF_PATH/jcef.version >> $JSDK/release
fi
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 $?
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" == "$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,138 +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 \
$DISABLE_WARNINGS_AS_ERRORS \
$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=''
__cds_opt=''
__cds_opt="--generate-cds-archive"
[ "$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 \
$__cds_opt --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
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 || do_exit $?
make LOG=info CONF=$RELEASE_NAME images test-image JBR_API_JBR_VERSION=TEST || do_exit $?
else
make LOG=info CONF=$RELEASE_NAME clean || do_exit $?
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_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
if [ "$bundle_type" == "jcef" ]; 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
fi
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,59 +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 ...
chmod -R ug+rwx,o+rx ${BASE_DIR}/$__root_dir
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR $__root_dir || do_exit $?
echo Creating $JBR.zip ...
/usr/bin/zip -r $JBR.zip $__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
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,59 +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 $?
echo Creating $JBR.zip ...
/usr/bin/zip -r $JBR.zip $__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
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,55 +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 $?
echo Creating $JBR.zip ...
/usr/bin/zip -r $JBR.zip $__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
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

@@ -107,7 +107,6 @@ $(eval $(call SetupJavaCompilation, $(MODULE), \
BIN := $(if $($(MODULE)_BIN), $($(MODULE)_BIN), $(JDK_OUTPUTDIR)/modules), \
HEADERS := $(SUPPORT_OUTPUTDIR)/headers, \
CREATE_API_DIGEST := true, \
PROCESS_JBR_API := true, \
CLEAN := $(CLEAN), \
CLEAN_FILES := $(CLEAN_FILES), \
COPY := $(COPY), \

View File

@@ -80,7 +80,7 @@ $(eval $(call SetupJavaCompilation, COMPILE_DEPEND, \
TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \
SRC := $(TOPDIR)/make/jdk/src/classes, \
INCLUDES := build/tools/depend, \
BIN := $(BUILDTOOLS_OUTPUTDIR)/plugins, \
BIN := $(BUILDTOOLS_OUTPUTDIR)/depend, \
DISABLED_WARNINGS := options, \
JAVAC_FLAGS := \
--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \
@@ -93,21 +93,13 @@ $(eval $(call SetupJavaCompilation, COMPILE_DEPEND, \
--add-exports jdk.internal.opt/jdk.internal.opt=jdk.javadoc.interim, \
))
$(eval $(call SetupJavaCompilation, COMPILE_JBR_API_PLUGIN, \
TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \
SRC := $(TOPDIR)/make/jdk/src/classes, \
INCLUDES := build/tools/jbrapi, \
BIN := $(BUILDTOOLS_OUTPUTDIR)/plugins, \
))
DEPEND_SERVICE_PROVIDER := $(BUILDTOOLS_OUTPUTDIR)/depend/META-INF/services/com.sun.source.util.Plugin
PLUGINS_SERVICE_PROVIDER := $(BUILDTOOLS_OUTPUTDIR)/plugins/META-INF/services/com.sun.source.util.Plugin
$(PLUGINS_SERVICE_PROVIDER):
$(call MakeDir, $(BUILDTOOLS_OUTPUTDIR)/plugins/META-INF/services)
$(DEPEND_SERVICE_PROVIDER):
$(call MakeDir, $(BUILDTOOLS_OUTPUTDIR)/depend/META-INF/services)
$(ECHO) build.tools.depend.Depend > $@
$(ECHO) build.tools.jbrapi.JBRApiPlugin >> $@
TARGETS += $(COMPILE_DEPEND) $(COMPILE_JBR_API_PLUGIN) $(PLUGINS_SERVICE_PROVIDER)
TARGETS += $(COMPILE_DEPEND) $(DEPEND_SERVICE_PROVIDER)
################################################################################

View File

@@ -291,8 +291,7 @@ define SetupApiDocsGenerationBody
$1_INDIRECT_EXPORTS := $$(call FindTransitiveIndirectDepsForModules, $$($1_MODULES))
$1_ALL_MODULES := $$(sort $$($1_MODULES) $$($1_INDIRECT_EXPORTS))
$1_JAVA_ARGS := -Dextlink.spec.version=$$(VERSION_SPECIFICATION) \
-Djspec.version=$$(VERSION_SPECIFICATION)
$1_JAVA_ARGS := -Dextlink.spec.version=$$(VERSION_SPECIFICATION)
ifeq ($$(ENABLE_FULL_DOCS), true)
$1_SEALED_GRAPHS_DIR := $$(SUPPORT_OUTPUTDIR)/docs/$1-sealed-graphs

View File

@@ -148,7 +148,6 @@ define CreateCDSArchive
$1_$2_DUMP_EXTRA_ARG := $$($1_$2_COOPS_OPTION) $$($1_$2_COH_OPTION)
$1_$2_DUMP_TYPE := $(if $(findstring _nocoops, $2),-NOCOOPS,)$(if $(findstring _coh, $2),-COH,)
# Only G1 supports dumping the shared heap, so explicitly use G1 if the JVM supports it.
$1_$2_CDS_DUMP_FLAGS := $(CDS_DUMP_FLAGS) $(if $(filter g1gc, $(JVM_FEATURES_$1)), -XX:+UseG1GC)
ifeq ($(OPENJDK_TARGET_OS), windows)

View File

@@ -1,74 +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 Utils.gmk
JBR_API_ORIGIN := https://github.com/JetBrains/JetBrainsRuntimeApi.git
JBR_API_DIR := $(TOPDIR)/jbr-api
ARTIFACT_NAME := jbr-api-SNAPSHOT
ifeq ($(call isBuildOsEnv, windows.cygwin windows.msys2), true)
HOME := $$USERPROFILE
M2_REPO := $(shell $(PATHTOOL) $(HOME))/.m2/repository
else ifeq ($(call isBuildOsEnv, windows.wsl1 windows.wsl2), true)
HOME := `cmd.exe /C "echo %USERPROFILE%" 2> /dev/null`
M2_REPO := $(shell $(PATHTOOL) $(HOME))/.m2/repository
else
M2_REPO := $(HOME)/.m2/repository
endif
M2_ARTIFACT := $(M2_REPO)/org/jetbrains/runtime/jbr-api/SNAPSHOT
M2_POM_CONTENT := \
<?xml version="1.0" encoding="UTF-8"?> \
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" \
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> \
<modelVersion>4.0.0</modelVersion> \
<groupId>org.jetbrains.runtime</groupId> \
<artifactId>jbr-api</artifactId> \
<version>SNAPSHOT</version> \
</project> \
jbr-api:
if [ -d "$(JBR_API_DIR)" ]; then \
$(GIT) -C "$(JBR_API_DIR)" fetch; \
$(GIT) -C "$(JBR_API_DIR)" merge-base --is-ancestor origin/main HEAD || \
$(ECHO) "!!! Current JBR API revision is outdated, update the branch in $(JBR_API_DIR) !!!"; \
else \
$(ECHO) "JBR API directory does not exist. Initializing..."; \
$(GIT) clone "$(JBR_API_ORIGIN)" "$(JBR_API_DIR)" --config core.autocrlf=false; \
fi
$(BASH) "$(JBR_API_DIR)/tools/build.sh" dev "$(BOOT_JDK)"
if [ -d "$(M2_REPO)" ]; then \
$(MKDIR) -p $(M2_ARTIFACT); \
$(ECHO) '$(M2_POM_CONTENT)' > $(M2_ARTIFACT)/$(ARTIFACT_NAME).pom; \
$(CP) "$(JBR_API_DIR)/out/$(ARTIFACT_NAME).jar" "$(M2_ARTIFACT)"; \
$(ECHO) "Installed into local Maven repository as org.jetbrains.runtime:jbr-api:SNAPSHOT"; \
cd "$(M2_ARTIFACT)" && sha256sum --binary "$(ARTIFACT_NAME).jar"; \
else \
$(ECHO) "No Maven repository found at $(M2_REPO) - skipping local installation"; \
fi
.PHONY: jbr-api

View File

@@ -358,7 +358,7 @@ $(eval $(call SetupTarget, vscode-project-ccls, \
$(eval $(call SetupTarget, idea-gen-config, \
MAKEFILE := ide/idea/jdk/IdeaGenConfig, \
ARGS := IDEA_OUTPUT="$(IDEA_OUTPUT)" MODULES="$(MODULES)" TOPLEVEL_DIR="$(TOPLEVEL_DIR)" IDEA_OUTPUT_PARENT="$(IDEA_OUTPUT_PARENT)", \
ARGS := IDEA_OUTPUT="$(IDEA_OUTPUT)" MODULES="$(MODULES)", \
))
################################################################################
@@ -461,9 +461,9 @@ $(eval $(call SetupTarget, symbols-image, \
TARGET := symbols, \
))
$(eval $(call SetupTarget, static-launcher, \
$(eval $(call SetupTarget, static-launchers, \
MAKEFILE := StaticLibs, \
TARGET := static-launcher, \
TARGET := static-launchers, \
DEPS := hotspot-static-libs static-libs, \
))
@@ -1290,7 +1290,7 @@ ifeq ($(call isTargetOs, macosx), true)
legacy-images: mac-legacy-jre-bundle
endif
static-exploded-image: static-launcher exploded-image
static-exploded-image: static-launchers exploded-image
# These targets build the various documentation images
docs-jdk-image: docs-jdk
@@ -1500,14 +1500,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 \
))
.PHONY: $(ALL_TARGETS)
FRC: # Force target

View File

@@ -946,8 +946,8 @@ define SetupRunJtregTestBody
JTREG_ALL_OPTIONS := $$(JTREG_JAVA_OPTIONS) $$(JTREG_VM_OPTIONS)
JTREG_AUTO_PROBLEM_LISTS :=
# Please reach consensus before changing this. It was not easy changing it to a `1`.
JTREG_AUTO_TIMEOUT_FACTOR := 1
# Please reach consensus before changing this.
JTREG_AUTO_TIMEOUT_FACTOR := 4
ifneq ($$(findstring -Xcomp, $$(JTREG_ALL_OPTIONS)), )
JTREG_AUTO_PROBLEM_LISTS += ProblemList-Xcomp.txt

View File

@@ -48,8 +48,8 @@ ifneq ($(word 2, $(wildcard $(HOTSPOT_STATIC_LIB_PATH))), )
endif
# Find all modules with static libraries
STATIC_LIB_MODULES := $(patsubst $(SUPPORT_OUTPUTDIR)/modules_static-libs/%, \
%, $(wildcard $(SUPPORT_OUTPUTDIR)/modules_static-libs/*))
STATIC_LIB_MODULES := $(sort $(patsubst $(SUPPORT_OUTPUTDIR)/modules_static-libs/%, \
%, $(wildcard $(SUPPORT_OUTPUTDIR)/modules_static-libs/*)))
# Filter out known broken libraries. This is a temporary measure until
# proper support for these libraries can be provided.
@@ -123,13 +123,18 @@ else
$(error Unsupported platform)
endif
################################################################################
# Build the java static launcher
################################################################################
$(eval $(call SetupBuildLauncher, java, \
ENABLE_ARG_FILES := true, \
EXPAND_CLASSPATH_WILDCARDS := true, \
EXTRA_RCFLAGS := $(JAVA_RCFLAGS), \
VERSION_INFO_RESOURCE := $(JAVA_VERSION_INFO_RESOURCE), \
OPTIMIZATION := HIGH, \
MACOSX_PRIVILEGED := true, \
STATIC_LAUNCHER := true, \
CFLAGS := -DSTATIC_BUILD, \
LDFLAGS := $(LDFLAGS_STATIC_JDK), \
LIBS := $(STATIC_LIBS) $(EXTERNAL_LIBS), \
LINK_TYPE := C++, \
@@ -146,7 +151,53 @@ TARGETS += $(java)
JAVA_LAUNCHER := $(BUILD_LAUNCHER_java_TARGET)
static-launcher: $(java)
static-launchers: $(java)
################################################################################
# Build relaunchers (thin wrappers calling the java binary) for all other
# JDK launchers.
################################################################################
RELAUNCHER_SRC := $(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/launcher
# $1: The module name
# $2: The launcher name
define SetupRelauncher
$1_$2_LAUNCHER_ARGS_LINE := $$(call ReadFile, $$(SUPPORT_OUTPUTDIR)/static-native/relaunchers/$1/$2-relauncher-arguments.txt)
# Restore |||| with space
$1_$2_LAUNCHER_ARGS := '{ $$(subst ||||,$(SPACE),$$(strip $$(foreach a, $$($1_$2_LAUNCHER_ARGS_LINE), "-J$$a"$$(COMMA) )) ) }'
$$(eval $$(call SetupJdkExecutable, BUILD_relauncher_$2, \
NAME := $2, \
EXTRA_FILES := $$(RELAUNCHER_SRC)/relauncher.c, \
CFLAGS := -DLAUNCHER_ARGS=$$($1_$2_LAUNCHER_ARGS), \
LIBS_windows := shlwapi.lib, \
OUTPUT_DIR := $$(STATIC_LAUNCHER_OUTPUT_DIR), \
OBJECT_DIR := $$(STATIC_LAUNCHER_OUTPUT_DIR)/relaunchers/$2, \
))
TARGETS += $$(BUILD_relauncher_$2)
RELAUNCHERS += $$(BUILD_relauncher_$2_TARGET)
static-launchers: $$(BUILD_relauncher_$2)
endef
# Find all modules with launchers
LAUNCHER_MODULES := $(sort $(patsubst $(SUPPORT_OUTPUTDIR)/modules_static-launchers/%, \
%, $(wildcard $(SUPPORT_OUTPUTDIR)/modules_static-launchers/*)))
# Find launchers for each module
$(foreach module, $(LAUNCHER_MODULES), \
$(eval LAUNCHERS_$(module) := $(if $(wildcard \
$(SUPPORT_OUTPUTDIR)/modules_static-launchers/$(module)/module-included-launchers.txt), \
$(shell cat \
$(SUPPORT_OUTPUTDIR)/modules_static-launchers/$(module)/module-included-launchers.txt))) \
)
# For all launchers (except java and javaw), setup a relauncher build
$(foreach module, $(LAUNCHER_MODULES), \
$(foreach launcher, $(filter-out java javaw, $(LAUNCHERS_$(module))), \
$(eval $(call SetupRelauncher,$(module),$(launcher)))))
################################################################################
#
@@ -188,26 +239,72 @@ TARGETS += $(copy-from-jdk-image)
$(copy-from-jdk-image): | static-jdk-info
$(eval $(call SetupCopyFiles, copy-static-launcher, \
FILES := $(JAVA_LAUNCHER), \
$(eval $(call SetupCopyFiles, copy-static-launchers, \
FILES := $(JAVA_LAUNCHER) $(RELAUNCHERS), \
DEST := $(STATIC_JDK_IMAGE_DIR)/bin, \
))
TARGETS += $(copy-static-launcher)
TARGETS += $(copy-static-launchers)
$(eval $(call SetupCopyFiles, copy-static-launcher-debuginfo, \
$(eval $(call SetupCopyFiles, copy-static-launchers-debuginfo, \
SRC := $(STATIC_LAUNCHER_OUTPUT_DIR), \
DEST := $(STATIC_JDK_IMAGE_DIR)/bin, \
FILES := $(call FindDebuginfoFiles, $(STATIC_LAUNCHER_OUTPUT_DIR)), \
))
TARGETS += $(copy-static-launcher-debuginfo)
TARGETS += $(copy-static-launchers-debuginfo)
static-jdk-image: $(copy-from-jdk-image) $(copy-static-launcher) $(copy-static-launcher-debuginfo)
# Copy the microsoft runtime libraries on windows
ifeq ($(call isTargetOs, windows), true)
# Chmod to avoid permission issues if bundles are unpacked on unix platforms.
# Use separate macro calls in case the source files are not in the same
# directory.
$(eval $(call SetupCopyFiles, copy-windows-msvcr, \
DEST := $(STATIC_JDK_IMAGE_DIR)/bin, \
FILES := $(MSVCR_DLL), \
MACRO := copy-and-chmod-executable, \
))
TARGETS += $(copy-windows-msvcr)
$(eval $(call SetupCopyFiles, copy-windows-vcruntime, \
DEST := $(STATIC_JDK_IMAGE_DIR)/bin, \
FILES := $(VCRUNTIME_1_DLL), \
MACRO := copy-and-chmod-executable, \
))
TARGETS += $(copy-windows-vcruntime)
$(eval $(call SetupCopyFiles, copy-windows-msvcp, \
DEST := $(STATIC_JDK_IMAGE_DIR)/bin, \
FILES := $(MSVCP_DLL), \
MACRO := copy-and-chmod-executable, \
))
TARGETS += $(copy-windows-msvcp)
copy-windows-libs := $(copy-windows-msvcr) $(copy-windows-vcruntime) $(copy-windows-msvcp)
ifneq ($(UCRT_DLL_DIR), )
$(eval $(call SetupCopyFiles, copy-windows-ucrt, \
DEST := $(STATIC_JDK_IMAGE_DIR)/bin, \
SRC := $(UCRT_DLL_DIR), \
FILES := $(wildcard $(UCRT_DLL_DIR)/*.dll), \
MACRO := copy-and-chmod-executable, \
))
TARGETS += $(copy-windows-ucrt)
copy-windows-libs += $(copy-windows-ucrt)
endif
endif
static-jdk-image: $(copy-from-jdk-image) $(copy-static-launchers) \
$(copy-static-launchers-debuginfo) $(copy-windows-libs)
TARGETS += static-jdk-image
.PHONY: static-launcher static-jdk-image
.PHONY: static-launchers static-jdk-image
################################################################################

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

@@ -244,31 +244,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,55 +0,0 @@
#
# Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2024, 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.
#
################################################################################
# Check if a potential dbus library match is correct and usable
################################################################################
AC_DEFUN_ONCE([LIB_SETUP_DBUS],
[
AC_ARG_WITH(dbus-includes, [AS_HELP_STRING([--with-dbus-includes],
[specify include directories for the dbus files as list separated by space])])
if test "x$NEEDS_LIB_DBUS" = xfalse; then
DBUS_CFLAGS=
DBUS_FOUND=false
else
if test "x${with_dbus_includes}" != x; then
DBUS_FOUND=true
DBUS_CFLAGS=""
for include in $with_dbus_includes; do
DBUS_CFLAGS="${DBUS_CFLAGS}-I${include} "
done
else
PKG_CHECK_MODULES(DBUS, dbus-1, [DBUS_FOUND=true], [
DBUS_FOUND=false
AC_MSG_NOTICE([Can't find dbus-1 library. This library is needed to use some features. You can install dbus-1 library or specify include directories manually by giving --with-dbus-includes option.])
])
fi
fi
AC_SUBST(DBUS_CFLAGS)
AC_SUBST(DBUS_FOUND)
])

View File

@@ -304,6 +304,8 @@ AC_DEFUN([LIB_SETUP_HSDIS_BINUTILS],
# If we have libsframe add it.
if test -e $BINUTILS_INSTALL_DIR/lib/libsframe.a; then
HSDIS_LIBS="$HSDIS_LIBS $BINUTILS_INSTALL_DIR/lib/libsframe.a"
elif test -e $BINUTILS_INSTALL_DIR/lib64/libsframe.a; then
HSDIS_LIBS="$HSDIS_LIBS $BINUTILS_INSTALL_DIR/lib64/libsframe.a"
fi
AC_CHECK_LIB(z, deflate, [ HSDIS_LIBS="$HSDIS_LIBS -lz" ], AC_MSG_ERROR([libz not found]))
else

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

@@ -1,115 +0,0 @@
#
# Copyright (c) 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2025, 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 vulkan
################################################################################
AC_DEFUN_ONCE([LIB_SETUP_VULKAN],
[
AC_ARG_WITH(vulkan, [AS_HELP_STRING([--with-vulkan],
[specify whether we use vulkan])])
AC_ARG_WITH(vulkan-include, [AS_HELP_STRING([--with-vulkan-include],
[specify directory for the vulkan include files ({with-vulkan-include}/vulkan/vulkan.h)])])
AC_ARG_WITH(vulkan-shader-compiler, [AS_HELP_STRING([--with-vulkan-shader-compiler],
[specify which shader compiler to use: glslc/glslangValidator])])
VULKAN_ENABLED=false
VULKAN_FLAGS=
# Find Vulkan SDK
if test "x$NEEDS_LIB_VULKAN" = xtrue || test "x${with_vulkan}" = xyes || test "x${with_vulkan_include}" != x ; then
# Check custom directory
if test "x${with_vulkan_include}" != x; then
AC_MSG_CHECKING([for ${with_vulkan_include}/vulkan/vulkan.h])
if test -s "${with_vulkan_include}/vulkan/vulkan.h"; then
VULKAN_ENABLED=true
VULKAN_FLAGS="-I${with_vulkan_include}"
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
AC_MSG_ERROR([Can't find 'vulkan/vulkan.h' under '${with_vulkan_include}'])
fi
fi
# Check $VULKAN_SDK
if test "x$VULKAN_ENABLED" = xfalse && test "x${VULKAN_SDK}" != x; then
AC_MSG_CHECKING([for ${VULKAN_SDK}/include/vulkan/vulkan.h])
if test -s "${VULKAN_SDK}/include/vulkan/vulkan.h"; then
VULKAN_ENABLED=true
VULKAN_FLAGS="-I${VULKAN_SDK}/include"
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
fi
fi
# Check default /usr/include location
if test "x$VULKAN_ENABLED" = xfalse; then
AC_CHECK_HEADERS([vulkan/vulkan.h],
[ VULKAN_ENABLED=true ], [ break ]
)
fi
if test "x$VULKAN_ENABLED" = xfalse; then
# Vulkan SDK not found
HELP_MSG_MISSING_DEPENDENCY([vulkan])
AC_MSG_ERROR([Could not find vulkan! $HELP_MSG ])
fi
fi
# Find shader compiler - glslc or glslangValidator
if test "x$VULKAN_ENABLED" = xtrue; then
SHADER_COMPILER=
# Check glslc
if (test "x${with_vulkan_shader_compiler}" = x || test "x${with_vulkan_shader_compiler}" = xglslc); then
UTIL_LOOKUP_PROGS(GLSLC, glslc)
SHADER_COMPILER="$GLSLC"
VULKAN_SHADER_COMPILER="glslc --target-env=vulkan1.2 -mfmt=num"
fi
# Check glslangValidator
if (test "x${with_vulkan_shader_compiler}" = x || test "x${with_vulkan_shader_compiler}" = xglslangValidator) && \
test "x$SHADER_COMPILER" = x; then
UTIL_LOOKUP_PROGS(GLSLANG, glslangValidator)
SHADER_COMPILER="$GLSLANG"
# Newer glslangValidator could use -P\"\#extension GL_GOOGLE_include_directive: require\"
VULKAN_SHADER_COMPILER="glslangValidator --target-env vulkan1.2 -x"
fi
if test "x$SHADER_COMPILER" = x; then
# Compiler not found
VULKAN_ENABLED=false
VULKAN_FLAGS=
AC_MSG_ERROR([Can't find vulkan shader compiler])
fi
fi
AC_SUBST(VULKAN_ENABLED)
AC_SUBST(VULKAN_FLAGS)
AC_SUBST(VULKAN_SHADER_COMPILER)
])

View File

@@ -1,130 +0,0 @@
#
# Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2023, 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 wayland
################################################################################
AC_DEFUN_ONCE([LIB_SETUP_WAYLAND],
[
AC_ARG_WITH(wayland, [AS_HELP_STRING([--with-wayland],
[specify prefix directory for the wayland package
(expecting the headers under PATH/include)])])
AC_ARG_WITH(wayland-include, [AS_HELP_STRING([--with-wayland-include],
[specify directory for the wayland include files])])
AC_ARG_WITH(wayland-lib, [AS_HELP_STRING([--with-wayland-lib],
[specify directory for the wayland library files])])
AC_ARG_WITH(wayland-protocols, [AS_HELP_STRING([--with-wayland-protocols],
[specify the root directory for the wayland protocols xml files])])
AC_ARG_WITH(gtk-shell1-protocol, [AS_HELP_STRING([--with-gtk-shell1-protocol],
[specify the path to the gtk-shell1 Wayland protocol xml file])])
if test "x$NEEDS_LIB_WAYLAND" = xfalse; then
if (test "x${with_wayland}" != x && test "x${with_wayland}" != xno) || \
(test "x${with_wayland_include}" != x && test "x${with_wayland_include}" != xno); then
AC_MSG_WARN([[wayland not used, so --with-wayland[-*] is ignored]])
fi
WAYLAND_CFLAGS=
WAYLAND_LIBS=
else
WAYLAND_FOUND=no
WAYLAND_INCLUDES=
WAYLAND_DEFINES=
if test "x${with_wayland}" = xno || test "x${with_wayland_include}" = xno; then
AC_MSG_ERROR([It is not possible to disable the use of wayland. Remove the --without-wayland option.])
fi
if test "x${with_wayland}" != x; then
AC_MSG_CHECKING([for wayland headers])
if test -s "${with_wayland}/include/wayland-client.h" && test -s "${with_wayland}/include/wayland-cursor.h"; then
WAYLAND_INCLUDES="-I${with_wayland}/include"
WAYLAND_LIBS="-L${with_wayland}/lib -lwayland-client -lwayland-cursor"
WAYLAND_FOUND=yes
AC_MSG_RESULT([$WAYLAND_FOUND])
else
AC_MSG_ERROR([Can't find 'include/wayland-client.h' and 'include/wayland-cursor.h' under ${with_wayland} given with the --with-wayland option.])
fi
fi
if test "x${with_wayland_include}" != x; then
AC_MSG_CHECKING([for wayland headers])
if test -s "${with_wayland_include}/wayland-client.h" && test -s "${with_wayland_include}/wayland-cursor.h"; then
WAYLAND_INCLUDES="-I${with_wayland_include}"
WAYLAND_FOUND=yes
AC_MSG_RESULT([$WAYLAND_FOUND])
else
AC_MSG_ERROR([Can't find 'wayland-client.h' and 'wayland-cursor.h' under ${with_wayland_include} given with the --with-wayland-include option.])
fi
fi
UTIL_REQUIRE_PROGS(WAYLAND_SCANNER, wayland-scanner)
if test "x${with_wayland_protocols}" != x; then
WAYLAND_PROTOCOLS_ROOT=${with_wayland_protocols}
else
WAYLAND_PROTOCOLS_ROOT=/usr/share/wayland-protocols/
fi
AC_MSG_CHECKING([for wayland-protocols])
if test -d "$WAYLAND_PROTOCOLS_ROOT"; then
AC_MSG_RESULT([yes])
else
AC_MSG_ERROR([Can't find 'wayland-protocols' under $WAYLAND_PROTOCOLS_ROOT.])
fi
GTK_SHELL1_PROTOCOL_PATH=
if test "x${with_gtk_shell1_protocol}" != x && test "x${with_gtk_shell1_protocol}" != xno; then
AC_MSG_CHECKING([for the gtk-shell1 Wayland protocol])
if test -s "${with_gtk_shell1_protocol}"; then
WAYLAND_DEFINES="${WAYLAND_DEFINES} -DHAVE_GTK_SHELL1"
GTK_SHELL1_PROTOCOL_PATH="${with_gtk_shell1_protocol}"
AC_MSG_RESULT([yes])
else
AC_MSG_ERROR([Can't find gtk-shell1 protocol in ${with_gtk_shell1_protocol} given with the --with-gtk-shell1-protocol option.])
fi
fi
if test "x${with_wayland_lib}" != x; then
WAYLAND_LIBS="-L${with_wayland_lib} -lwayland-client -lwayland-cursor"
fi
if test "x$WAYLAND_FOUND" = xno; then
# Are the wayland headers installed in the default /usr/include location?
AC_CHECK_HEADERS([wayland-client.h wayland-cursor.h],
[ WAYLAND_FOUND=yes ],
[ WAYLAND_FOUND=no; break ]
)
if test "x$WAYLAND_FOUND" = xyes; then
WAYLAND_INCLUDES=
WAYLAND_LIBS="-lwayland-client -lwayland-cursor"
DEFAULT_WAYLAND=yes
fi
fi
if test "x$WAYLAND_FOUND" = xno; then
HELP_MSG_MISSING_DEPENDENCY([wayland])
AC_MSG_ERROR([Could not find wayland! $HELP_MSG ])
fi
WAYLAND_CFLAGS="${WAYLAND_INCLUDES} ${WAYLAND_DEFINES}"
fi
AC_SUBST(WAYLAND_CFLAGS)
AC_SUBST(WAYLAND_LIBS)
AC_SUBST(WAYLAND_PROTOCOLS_ROOT)
AC_SUBST(GTK_SHELL1_PROTOCOL_PATH)
])

View File

@@ -33,11 +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-speechd.m4])
m4_include([lib-nvdacontrollerclient.m4])
m4_include([lib-dbus.m4])
m4_include([lib-vulkan.m4])
m4_include([lib-wayland.m4])
m4_include([lib-tests.m4])
################################################################################
@@ -45,28 +41,15 @@ m4_include([lib-tests.m4])
################################################################################
AC_DEFUN_ONCE([LIB_DETERMINE_DEPENDENCIES],
[
# Check if X11, wayland and vulkan is needed
# Check if X11 is needed
if test "x$OPENJDK_TARGET_OS" = xwindows || test "x$OPENJDK_TARGET_OS" = xmacosx; then
# No X11 and wayland support on windows or macosx
# No X11 support on windows or macosx
NEEDS_LIB_X11=false
NEEDS_LIB_SPEECHD=false
NEEDS_LIB_WAYLAND=false
else
# All other instances need X11, even if building headless only, libawt still
# needs X11 headers.
NEEDS_LIB_X11=true
if test "x$ENABLE_HEADLESS_ONLY" = xtrue; then
NEEDS_LIB_SPEECHD=false
NEEDS_LIB_WAYLAND=false
else
NEEDS_LIB_SPEECHD=true
NEEDS_LIB_WAYLAND=true
fi
fi
# Vulkan is not built by default
NEEDS_LIB_VULKAN=false
# Check if fontconfig is needed
if test "x$OPENJDK_TARGET_OS" = xwindows || test "x$OPENJDK_TARGET_OS" = xmacosx; then
@@ -91,13 +74,11 @@ AC_DEFUN_ONCE([LIB_DETERMINE_DEPENDENCIES],
NEEDS_LIB_FREETYPE=true
fi
# Check if alsa and dbus is needed
# Check if alsa is needed
if test "x$OPENJDK_TARGET_OS" = xlinux; then
NEEDS_LIB_ALSA=true
NEEDS_LIB_DBUS=true
else
NEEDS_LIB_ALSA=false
NEEDS_LIB_DBUS=false
fi
# Check if ffi is needed
@@ -106,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
])
################################################################################
@@ -146,11 +120,7 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES],
LIB_SETUP_LIBFFI
LIB_SETUP_MISC_LIBS
LIB_SETUP_X11
LIB_SETUP_SPEECHD
LIB_SETUP_NVDACONTROLLERCLIENT
LIB_SETUP_DBUS
LIB_SETUP_VULKAN
LIB_SETUP_WAYLAND
LIB_TESTS_SETUP_GTEST
# Math library
@@ -179,7 +149,7 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES],
if test "x$OPENJDK_TARGET_OS" = xwindows; then
BASIC_JVM_LIBS="$BASIC_JVM_LIBS kernel32.lib user32.lib gdi32.lib winspool.lib \
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib powrprof.lib uuid.lib \
ws2_32.lib winmm.lib version.lib psapi.lib Synchronization.lib"
ws2_32.lib winmm.lib version.lib psapi.lib"
fi
LIB_SETUP_JVM_LIBS(BUILD)
LIB_SETUP_JVM_LIBS(TARGET)

View File

@@ -483,33 +483,6 @@ UBSAN_LDFLAGS := @UBSAN_LDFLAGS@
X_CFLAGS := @X_CFLAGS@
X_LIBS := @X_LIBS@
# Necessary additional compiler flags to compile dbus
DBUS_CFLAGS := @DBUS_CFLAGS@
DBUS_FOUND := @DBUS_FOUND@
# 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@
WAYLAND_CFLAGS:=@WAYLAND_CFLAGS@
WAYLAND_LIBS:=@WAYLAND_LIBS@
WAYLAND_PROTOCOLS_ROOT:=@WAYLAND_PROTOCOLS_ROOT@
WAYLAND_SCANNER:=@WAYLAND_SCANNER@
GTK_SHELL1_PROTOCOL_PATH:=@GTK_SHELL1_PROTOCOL_PATH@
VULKAN_ENABLED:=@VULKAN_ENABLED@
VULKAN_FLAGS:=@VULKAN_FLAGS@
VULKAN_SHADER_COMPILER:=@VULKAN_SHADER_COMPILER@
# The lowest required version of macosx
MACOSX_VERSION_MIN := @MACOSX_VERSION_MIN@
# The highest allowed version of macosx

View File

@@ -25,7 +25,7 @@
################################################################################
# The order of these defines the priority by which we try to find them.
VALID_VS_VERSIONS="2022 2019"
VALID_VS_VERSIONS="2022 2019 2026"
VS_DESCRIPTION_2019="Microsoft Visual Studio 2019"
VS_VERSION_INTERNAL_2019=142
@@ -57,6 +57,21 @@ VS_SDK_PLATFORM_NAME_2022=
VS_SUPPORTED_2022=true
VS_TOOLSET_SUPPORTED_2022=true
VS_DESCRIPTION_2026="Microsoft Visual Studio 2026"
VS_VERSION_INTERNAL_2026=145
VS_MSVCR_2026=vcruntime140.dll
VS_VCRUNTIME_1_2026=vcruntime140_1.dll
VS_MSVCP_2026=msvcp140.dll
VS_ENVVAR_2026="VS180COMNTOOLS"
VS_USE_UCRT_2026="true"
VS_VS_INSTALLDIR_2026="Microsoft Visual Studio/18"
VS_EDITIONS_2026="BuildTools Community Professional Enterprise"
VS_SDK_INSTALLDIR_2026=
VS_VS_PLATFORM_NAME_2026="v145"
VS_SDK_PLATFORM_NAME_2026=
VS_SUPPORTED_2026=true
VS_TOOLSET_SUPPORTED_2026=true
################################################################################
AC_DEFUN([TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT],

View File

@@ -168,7 +168,6 @@ endef
# CREATE_API_DIGEST Set to true to use a javac plugin to generate a public API
# hash which can be used for down stream dependencies to only rebuild
# when the API changes.
# PROCESS_JBR_API Set to true to use an annotation processor to generate JBR API bindings.
# KEEP_ALL_TRANSLATIONS Set to true to skip translation filtering
SetupJavaCompilation = $(NamedParamsMacroTemplate)
define SetupJavaCompilationBody
@@ -299,20 +298,11 @@ define SetupJavaCompilationBody
"-XDLOG_LEVEL=$(LOG_LEVEL)" \
#
$1_EXTRA_DEPS := $$(BUILDTOOLS_OUTPUTDIR)/plugins/_the.COMPILE_DEPEND_batch
endif
ifeq ($$($1_PROCESS_JBR_API), true)
# Automatic path conversion doesn't work for two arguments, so call fixpath manually
$1_JBR_API_FLAGS := -Xplugin:"jbr-api $$(call FixPath, $$($1_BIN)/java.base/META-INF/jbrapi.registry) $$(call FixPath, $(TOPDIR)/jb/jbr-api.version)"
$1_EXTRA_DEPS := $$($1_EXTRA_DEPS) $$(BUILDTOOLS_OUTPUTDIR)/plugins/_the.COMPILE_JBR_API_PLUGIN_batch
endif
ifeq ($$(call Or, $$($1_CREATE_API_DIGEST) $$($1_PROCESS_JBR_API)), true)
$1_EXTRA_DEPS := $$(BUILDTOOLS_OUTPUTDIR)/depend/_the.COMPILE_DEPEND_batch
# including the compilation output on the classpath, so that incremental
# compilations in unnamed module can refer to other classes from the same
# source root, which are not being recompiled in this compilation:
$1_AUGMENTED_CLASSPATH += $$(BUILDTOOLS_OUTPUTDIR)/plugins $$($1_BIN)
$1_AUGMENTED_CLASSPATH += $$(BUILDTOOLS_OUTPUTDIR)/depend $$($1_BIN)
endif
ifneq ($$($1_AUGMENTED_CLASSPATH), )
@@ -522,7 +512,7 @@ define SetupJavaCompilationBody
$$(call MakeDir, $$(@D))
$$(call ExecuteWithLog, $$($1_BIN)$$($1_MODULE_SUBDIR)/_the.$$($1_SAFE_NAME)_batch, \
$$($1_JAVAC_CMD) $$($1_FLAGS) \
$$($1_API_DIGEST_FLAGS) $$($1_JBR_API_FLAGS) \
$$($1_API_DIGEST_FLAGS) \
-XDmodifiedInputs=$$($1_MODFILELIST_FIXED) \
-d $$($1_BIN) $$($1_HEADERS_ARG) @$$($1_FILELIST)) && \
$(TOUCH) $$@

View File

@@ -43,6 +43,9 @@ LAUNCHER_CFLAGS += -I$(TOPDIR)/src/java.base/share/native/launcher \
MACOSX_PLIST_DIR := $(TOPDIR)/src/java.base/macosx/native/launcher
JAVA_MANIFEST := $(TOPDIR)/src/java.base/windows/native/launcher/java.manifest
INCLUDED_LAUNCHERS_FILE := $(SUPPORT_OUTPUTDIR)/modules_static-launchers/$(MODULE)/module-included-launchers.txt
INCLUDED_LAUNCHERS :=
################################################################################
# Build standard launcher.
@@ -74,19 +77,30 @@ define SetupBuildLauncherBody
$1_MAIN_MODULE := $(MODULE)
$1_RELAUNCHER_ARGUMENTS :=
ifneq ($$($1_MAIN_CLASS), )
$1_JAVA_ARGS += -Xms8m
$1_LAUNCHER_CLASS := -m $$($1_MAIN_MODULE)/$$($1_MAIN_CLASS)
endif
ifeq ($$($1_EXPAND_CLASSPATH_WILDCARDS), true)
$1_CFLAGS += -DEXPAND_CLASSPATH_WILDCARDS
ifeq ($$($1_ENABLE_ARG_FILES), true)
$1_CFLAGS += -DDISABLE_ARGFILE=JNI_FALSE
else
$1_CFLAGS += -DDISABLE_ARGFILE=JNI_TRUE
# This must be the first argument given, if it should be present
$1_RELAUNCHER_ARGUMENTS += -DjavaLauncherArgFiles=false
endif
ifeq ($$($1_ENABLE_ARG_FILES), true)
$1_CFLAGS += -DENABLE_ARG_FILES
ifeq ($$($1_EXPAND_CLASSPATH_WILDCARDS), true)
$1_CFLAGS += -DCLASSPATH_WILDCARDS=JNI_TRUE
else
$1_CFLAGS += -DCLASSPATH_WILDCARDS=JNI_FALSE
$1_RELAUNCHER_ARGUMENTS += -DjavaLauncherWildcards=false
endif
$1_RELAUNCHER_ARGUMENTS += -DjavaLauncherProgname=$1
ifeq ($(call isTargetOs, windows), true)
ifeq ($$($1_WINDOWS_JAVAW), true)
$1_CFLAGS += -DJAVAW
@@ -94,9 +108,14 @@ define SetupBuildLauncherBody
endif
ifneq ($$($1_JAVA_ARGS), )
$1_JAVA_ARGS_STR := '{ $$(strip $$(foreach a, \
$$(addprefix -J, $$($1_JAVA_ARGS)) $$($1_LAUNCHER_CLASS), "$$a"$(COMMA) )) }'
$1_PREFIXED_JAVA_ARGS := $$(addprefix -J, $$($1_JAVA_ARGS)) \
$$($1_LAUNCHER_CLASS)
$1_JAVA_ARGS_STR := '{ $$(strip $$(foreach a, $$($1_PREFIXED_JAVA_ARGS), \
"$$a"$(COMMA) )) }'
$1_CFLAGS += -DJAVA_ARGS=$$($1_JAVA_ARGS_STR)
# To preserve spaces, substitute them with a hopefully unique pattern
$1_RELAUNCHER_ARGUMENTS += \
-DjavaLauncherArgs=$$(subst $$(SPACE),||||,$$($1_PREFIXED_JAVA_ARGS))
endif
ifeq ($(call isTargetOs, macosx), true)
@@ -172,8 +191,28 @@ define SetupBuildLauncherBody
))
$1 += $$(BUILD_LAUNCHER_$1)
$1_RELAUNCHER_ARGUMENTS_FILE := \
$$(SUPPORT_OUTPUTDIR)/static-native/relaunchers/$$(MODULE)/$1-relauncher-arguments.txt
$1_VARDEPS := $$($1_RELAUNCHER_ARGUMENTS)
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
$$($1_RELAUNCHER_ARGUMENTS_FILE).vardeps)
$$($1_RELAUNCHER_ARGUMENTS_FILE):
$$(call MakeDir, $$(@D))
$$(ECHO) '$$($1_RELAUNCHER_ARGUMENTS)' > $$@
$1 += $$($1_RELAUNCHER_ARGUMENTS_FILE)
TARGETS += $$($1)
# Record the fact that this launcher is part of the current module.
INCLUDED_LAUNCHERS += $1
# Add a dependency from this launcher to the launcher list
$$(INCLUDED_LAUNCHERS_FILE): $$($1)
$$(BUILD_LAUNCHER_$1): $$(BUILD_PLIST_$1)
ifeq ($(call isTargetOs, macosx), true)
@@ -242,5 +281,14 @@ endif
################################################################################
# We need to keep track of which launchers are created by this module. This
# information is required for static builds, to know which relaunchers to
# create. The file module-included-launchers.txt is then read in StaticLibs.gmk.
$(INCLUDED_LAUNCHERS_FILE):
$(call MakeDir, $(@D))
$(ECHO) $(INCLUDED_LAUNCHERS) > $@
TARGETS += $(INCLUDED_LAUNCHERS_FILE)
endif # include guard
include MakeIncludeEnd.gmk

View File

@@ -29,21 +29,21 @@ GTEST_VERSION=1.14.0
JTREG_VERSION=8.1+1
LINUX_X64_BOOT_JDK_EXT=tar.gz
LINUX_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-x64_bin.tar.gz
LINUX_X64_BOOT_JDK_SHA256=88b090fa80c6c1d084ec9a755233967458788e2c0777ae2e172230c5c692d7ef
LINUX_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk25/bd75d5f9689641da8e1daabeccb5528b/36/GPL/openjdk-25_linux-x64_bin.tar.gz
LINUX_X64_BOOT_JDK_SHA256=59cdcaf255add4721de38eb411d4ecfe779356b61fb671aee63c7dec78054c2b
ALPINE_LINUX_X64_BOOT_JDK_EXT=tar.gz
ALPINE_LINUX_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin24-binaries/releases/download/jdk-24%2B36/OpenJDK24U-jdk_x64_alpine-linux_hotspot_24_36.tar.gz
ALPINE_LINUX_X64_BOOT_JDK_SHA256=a642608f0da78344ee6812fb1490b8bc1d7ad5a18064c70994d6f330568c51cb
ALPINE_LINUX_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25%2B36/OpenJDK25U-jdk_x64_alpine-linux_hotspot_25_36.tar.gz
ALPINE_LINUX_X64_BOOT_JDK_SHA256=637e47474d411ed86134f413af7d5fef4180ddb0bf556347b7e74a88cf8904c8
MACOS_AARCH64_BOOT_JDK_EXT=tar.gz
MACOS_AARCH64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-aarch64_bin.tar.gz
MACOS_AARCH64_BOOT_JDK_SHA256=f7133238a12714a62c5ad2bd4da6741130be1a82512065da9ca23dee26b2d3d3
MACOS_AARCH64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk25/bd75d5f9689641da8e1daabeccb5528b/36/GPL/openjdk-25_macos-aarch64_bin.tar.gz
MACOS_AARCH64_BOOT_JDK_SHA256=2006337bf326fdfdf6117081751ba38c1c8706d63419ecac7ff102ff7c776876
MACOS_X64_BOOT_JDK_EXT=tar.gz
MACOS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-x64_bin.tar.gz
MACOS_X64_BOOT_JDK_SHA256=6bbfb1d01741cbe55ab90299cb91464b695de9a3ace85c15131aa2f50292f321
MACOS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk25/bd75d5f9689641da8e1daabeccb5528b/36/GPL/openjdk-25_macos-x64_bin.tar.gz
MACOS_X64_BOOT_JDK_SHA256=47482ad9888991ecac9b2bcc131e2b53ff78aff275104cef85f66252308e8a09
WINDOWS_X64_BOOT_JDK_EXT=zip
WINDOWS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_windows-x64_bin.zip
WINDOWS_X64_BOOT_JDK_SHA256=11d1d9f6ac272d5361c8a0bef01894364081c7fb1a6914c2ad2fc312ae83d63b
WINDOWS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk25/bd75d5f9689641da8e1daabeccb5528b/36/GPL/openjdk-25_windows-x64_bin.zip
WINDOWS_X64_BOOT_JDK_SHA256=85bcc178461e2cb3c549ab9ca9dfa73afd54c09a175d6510d0884071867137d3

View File

@@ -387,8 +387,8 @@ var getJibProfilesCommon = function (input, data) {
};
};
common.boot_jdk_version = "24";
common.boot_jdk_build_number = "36";
common.boot_jdk_version = "25";
common.boot_jdk_build_number = "37";
common.boot_jdk_home = input.get("boot_jdk", "install_path") + "/jdk-"
+ common.boot_jdk_version
+ (input.build_os == "macosx" ? ".jdk/Contents/Home" : "");

View File

@@ -37,6 +37,6 @@ DEFAULT_VERSION_DATE=2026-03-17
DEFAULT_VERSION_CLASSFILE_MAJOR=70 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
DEFAULT_VERSION_CLASSFILE_MINOR=0
DEFAULT_VERSION_DOCS_API_SINCE=11
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="24 25 26"
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="25 26"
DEFAULT_JDK_SOURCE_TARGET_VERSION=26
DEFAULT_PROMOTED_VERSION_PRE=ea

View File

@@ -1,4 +1,4 @@
UNICODE LICENSE V3
UNICODE LICENSE V3
COPYRIGHT AND PERMISSION NOTICE

View File

@@ -45,6 +45,8 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="h23" description="Hour system using 023; 'H' in patterns" since="28" />
<type name="h11" description="Hour system using 011; 'K' in patterns" since="28" />
<type name="h24" description="Hour system using 124; 'k' in patterns" since="28" />
<type name="c12" description="Best 12-hour cycle for locale (h11 or h12)" since="48" deprecated="true" /> <!-- Technical Preview -->
<type name="c24" description="Best 24-hour cycle for locale (h23 or h24)" since="48" deprecated="true" /> <!-- Technical Preview -->
</key>
</keyword>
</ldmlBCP47>

View File

@@ -105,6 +105,7 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="thai" description="Thai digits"/>
<type name="tirh" description="Tirhuta digits" since="28"/>
<type name="tibt" description="Tibetan digits"/>
<type name="tols" description="Tolong Siki digits" since="48"/>
<type name="traditio" description="Traditional numerals — may be algorithmic" alias="traditional" since="21"/>
<type name="vaii" description="Vai digits" since="21"/>
<type name="wara" description="Warang Citi digits" since="28"/>

View File

@@ -17,14 +17,14 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="aiaxa" description="Anguilla" alias="America/Anguilla"/>
<type name="altia" description="Tirane, Albania" alias="Europe/Tirane"/>
<type name="amevn" description="Yerevan, Armenia" alias="Asia/Yerevan"/>
<type name="ancur" description="Curaçao" alias="America/Curacao"/>
<type name="ancur" description="Curaçao" alias="America/Curacao" region="CW"/>
<type name="aolad" description="Luanda, Angola" alias="Africa/Luanda"/>
<type name="aqams" description="Amundsen-Scott Station, South Pole" deprecated="true" preferred="nzakl"/>
<type name="aqams" description="Amundsen-Scott Station, South Pole" deprecated="true" preferred="aqmcm"/>
<type name="aqcas" description="Casey Station, Bailey Peninsula" alias="Antarctica/Casey"/>
<type name="aqdav" description="Davis Station, Vestfold Hills" alias="Antarctica/Davis"/>
<type name="aqddu" description="Dumont d'Urville Station, Terre Adélie" alias="Antarctica/DumontDUrville"/>
<type name="aqmaw" description="Mawson Station, Holme Bay" alias="Antarctica/Mawson"/>
<type name="aqmcm" description="McMurdo Station, Ross Island" alias="Antarctica/McMurdo"/>
<type name="aqmcm" description="McMurdo Station, Ross Island" alias="Antarctica/McMurdo Antarctica/South_Pole"/>
<type name="aqplm" description="Palmer Station, Anvers Island" alias="Antarctica/Palmer"/>
<type name="aqrot" description="Rothera Station, Adelaide Island" alias="Antarctica/Rothera"/>
<type name="aqsyw" description="Syowa Station, East Ongul Island" alias="Antarctica/Syowa"/>
@@ -130,6 +130,7 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="chzrh" description="Zurich, Switzerland" alias="Europe/Zurich"/>
<type name="ciabj" description="Abidjan, Côte d'Ivoire" alias="Africa/Abidjan"/>
<type name="ckrar" description="Rarotonga, Cook Islands" alias="Pacific/Rarotonga"/>
<type name="clcxq" description="Aysén Region, Chile" alias="America/Coyhaique" since="48"/>
<type name="clipc" description="Easter Island, Chile" alias="Pacific/Easter Chile/EasterIsland"/>
<type name="clpuq" description="Punta Arenas, Chile" alias="America/Punta_Arenas" since="31"/>
<type name="clscl" description="Santiago, Chile" alias="America/Santiago Chile/Continental"/>
@@ -167,7 +168,7 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="est5edt" description="POSIX style time zone for US Eastern Time" deprecated="true" preferred="usnyc"/>
<type name="etadd" description="Addis Ababa, Ethiopia" alias="Africa/Addis_Ababa"/>
<type name="fihel" description="Helsinki, Finland" alias="Europe/Helsinki"/>
<type name="fimhq" description="Mariehamn, Åland, Finland" alias="Europe/Mariehamn"/>
<type name="fimhq" description="Mariehamn, Åland, Finland" alias="Europe/Mariehamn" region="AX"/>
<type name="fjsuv" description="Fiji" alias="Pacific/Fiji"/>
<type name="fkpsy" description="Stanley, Falkland Islands" alias="Atlantic/Stanley"/>
<type name="fmksa" description="Kosrae, Micronesia" alias="Pacific/Kosrae"/>
@@ -177,7 +178,7 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="frpar" description="Paris, France" alias="Europe/Paris"/>
<type name="galbv" description="Libreville, Gabon" alias="Africa/Libreville"/>
<type name="gaza" description="Gaza Strip, Palestinian Territories" deprecated="true" preferred="gazastrp"/>
<type name="gazastrp" description="Gaza Strip, Palestinian Territories" alias="Asia/Gaza" since="40"/>
<type name="gazastrp" description="Gaza Strip, Palestinian Territories" alias="Asia/Gaza" since="40" region="PS"/>
<type name="gblon" description="London, United Kingdom" alias="Europe/London Europe/Belfast GB GB-Eire"/>
<type name="gdgnd" description="Grenada" alias="America/Grenada"/>
<type name="getbs" description="Tbilisi, Georgia" alias="Asia/Tbilisi"/>
@@ -193,8 +194,8 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="gmt" description="Greenwich Mean Time" alias="Etc/GMT Etc/GMT+0 Etc/GMT-0 Etc/GMT0 Etc/Greenwich GMT GMT+0 GMT-0 GMT0 Greenwich" since="31"/>
<type name="gncky" description="Conakry, Guinea" alias="Africa/Conakry"/>
<type name="gpbbr" description="Guadeloupe" alias="America/Guadeloupe"/>
<type name="gpmsb" description="Marigot, Saint Martin" alias="America/Marigot"/>
<type name="gpsbh" description="Saint Barthélemy" alias="America/St_Barthelemy"/>
<type name="gpmsb" description="Marigot, Saint Martin" alias="America/Marigot" region="MF"/>
<type name="gpsbh" description="Saint Barthélemy" alias="America/St_Barthelemy" region="BL"/>
<type name="gqssg" description="Malabo, Equatorial Guinea" alias="Africa/Malabo"/>
<type name="grath" description="Athens, Greece" alias="Europe/Athens EET"/>
<type name="gsgrv" description="South Georgia and the South Sandwich Islands" alias="Atlantic/South_Georgia"/>
@@ -202,7 +203,7 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="gugum" description="Guam" alias="Pacific/Guam"/>
<type name="gwoxb" description="Bissau, Guinea-Bissau" alias="Africa/Bissau"/>
<type name="gygeo" description="Guyana" alias="America/Guyana"/>
<type name="hebron" description="West Bank, Palestinian Territories" alias="Asia/Hebron" since="21"/>
<type name="hebron" description="West Bank, Palestinian Territories" alias="Asia/Hebron" since="21" region="PS"/>
<type name="hkhkg" description="Hong Kong SAR China" alias="Asia/Hong_Kong Hongkong"/>
<type name="hntgu" description="Tegucigalpa, Honduras" alias="America/Tegucigalpa"/>
<type name="hrzag" description="Zagreb, Croatia" alias="Europe/Zagreb"/>
@@ -220,7 +221,7 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="irthr" description="Tehran, Iran" alias="Asia/Tehran Iran"/>
<type name="isrey" description="Reykjavik, Iceland" alias="Atlantic/Reykjavik Iceland"/>
<type name="itrom" description="Rome, Italy" alias="Europe/Rome"/>
<type name="jeruslm" description="Jerusalem" alias="Asia/Jerusalem Asia/Tel_Aviv Israel"/>
<type name="jeruslm" description="Jerusalem" alias="Asia/Jerusalem Asia/Tel_Aviv Israel" region="IL"/>
<type name="jesth" description="Jersey" alias="Europe/Jersey"/>
<type name="jmkin" description="Jamaica" alias="America/Jamaica Jamaica"/>
<type name="joamm" description="Amman, Jordan" alias="Asia/Amman"/>
@@ -305,7 +306,7 @@ For terms of use, see http://www.unicode.org/copyright.html
<type name="npktm" description="Kathmandu, Nepal" alias="Asia/Katmandu Asia/Kathmandu" iana="Asia/Kathmandu"/>
<type name="nrinu" description="Nauru" alias="Pacific/Nauru"/>
<type name="nuiue" description="Niue" alias="Pacific/Niue"/>
<type name="nzakl" description="Auckland, New Zealand" alias="Pacific/Auckland Antarctica/South_Pole NZ"/>
<type name="nzakl" description="Auckland, New Zealand" alias="Pacific/Auckland NZ"/>
<type name="nzcht" description="Chatham Islands, New Zealand" alias="Pacific/Chatham NZ-CHAT"/>
<type name="ommct" description="Muscat, Oman" alias="Asia/Muscat"/>
<type name="papty" description="Panama" alias="America/Panama EST"/>

View File

@@ -1,13 +1,12 @@
<!--
Copyright © 2003-2010 Unicode, Inc. and others. All rights reserved. Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and any associated documentation (the "Data Files") or Unicode software and any associated documentation (the "Software") to deal in the Data Files or Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Data Files or Software, and to permit persons to whom the Data Files or Software are furnished to do so, provided that (a) the above copyright notice(s) and this permission notice appear with all copies of the Data Files or Software, (b) both the above copyright notice(s) and this permission notice appear in associated documentation, and (c) there is clear notice in each modified Data File or in the Software as well as in the documentation associated with the Data File(s) or Software that the data or software has been modified.
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR SOFTWARE.
Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in these Data Files or Software without prior written authorization of the copyright holder.
Copyright © 1991-2025 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
SPDX-License-Identifier: Unicode-3.0
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
-->
<!-- This is only referenced by the deprecated GenerateLikelySubtagTests.java - see CLDR-17535 -->
<!ELEMENT cldrTest ((number | date | zoneFields | collation | likelySubtags)*) >
<!ATTLIST cldrTest version CDATA #REQUIRED>
<!ATTLIST cldrTest base CDATA #REQUIRED>
@@ -48,4 +47,3 @@ Except as contained in this notice, the name of a copyright holder shall not be
<!-- likelySubtags result attributes -->
<!ATTLIST result add NMTOKEN #IMPLIED>
<!ATTLIST result remove NMTOKEN #IMPLIED>

View File

@@ -42,7 +42,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ATTLIST version number CDATA #REQUIRED >
<!--@MATCH:regex/\$Revision.*\$-->
<!--@METADATA-->
<!ATTLIST version cldrVersion CDATA #FIXED "47" >
<!ATTLIST version cldrVersion CDATA #FIXED "48" >
<!--@MATCH:any-->
<!--@VALUE-->
<!ATTLIST version draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
@@ -64,6 +64,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!--@MATCH:validity/locale-for-names-->
<!ATTLIST language alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/long, secondary, short, variant, menu, official-->
<!ATTLIST language menu NMTOKENS #IMPLIED >
<!--@MATCH:literal/core, extension-->
<!ATTLIST language draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
<!--@METADATA-->
<!--@DEPRECATED:true, false-->
@@ -277,6 +279,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!--@MATCH:bcp47/anykey-->
<!ATTLIST type type NMTOKEN #REQUIRED >
<!--@MATCH:bcp47/anyvalue-->
<!ATTLIST type scope NMTOKEN #IMPLIED >
<!--@MATCH:literal/core-->
<!ATTLIST type alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/short, variant-->
<!ATTLIST type draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
@@ -456,7 +460,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!--@DEPRECATED-->
<!ELEMENT exemplarCharacters ( #PCDATA | cp )* >
<!ATTLIST exemplarCharacters type (auxiliary | standard | punctuation | currencySymbol | index | numbers) #IMPLIED >
<!ATTLIST exemplarCharacters type (standard | auxiliary | numbers | numbers-auxiliary | punctuation | punctuation-auxiliary | punctuation-person | index | currencySymbol) #IMPLIED >
<!--@DEPRECATED:currencySymbol-->
<!ATTLIST exemplarCharacters alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
@@ -1528,7 +1532,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ELEMENT dateTimeFormat ( alias | ( pattern*, displayName*, special* ) ) >
<!ATTLIST dateTimeFormat type NMTOKEN "standard" >
<!--@MATCH:literal/standard, atTime-->
<!--@MATCH:literal/standard, atTime, relative-->
<!ATTLIST dateTimeFormat alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST dateTimeFormat draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
@@ -1718,7 +1722,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ATTLIST relativePeriod draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
<!--@METADATA-->
<!ELEMENT timeZoneNames ( alias | ( hourFormat*, hoursFormat*, gmtFormat*, gmtZeroFormat*, regionFormat*, fallbackFormat*, fallbackRegionFormat*, abbreviationFallback*, preferenceOrdering*, singleCountries*, default*, zone*, metazone*, special* ) ) >
<!ELEMENT timeZoneNames ( alias | ( hourFormat*, hoursFormat*, gmtFormat*, gmtZeroFormat*, gmtUnknownFormat*, regionFormat*, fallbackFormat*, fallbackRegionFormat*, abbreviationFallback*, preferenceOrdering*, singleCountries*, default*, zone*, metazone*, special* ) ) >
<!ATTLIST timeZoneNames draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
<!--@METADATA-->
<!--@DEPRECATED-->
@@ -1765,6 +1769,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ATTLIST gmtZeroFormat references CDATA #IMPLIED >
<!--@METADATA-->
<!ELEMENT gmtUnknownFormat ( #PCDATA ) >
<!ATTLIST gmtUnknownFormat alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST gmtUnknownFormat draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
<!--@METADATA-->
<!--@DEPRECATED:true, false-->
<!ATTLIST gmtUnknownFormat references CDATA #IMPLIED >
<!--@METADATA-->
<!ELEMENT regionFormat ( #PCDATA ) >
<!ATTLIST regionFormat type (standard | daylight) #IMPLIED >
<!ATTLIST regionFormat alt NMTOKENS #IMPLIED >
@@ -1963,7 +1976,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!-- ######################################################### -->
<!ELEMENT numbers ( alias | ( defaultNumberingSystem*, otherNumberingSystems*, minimumGroupingDigits*, symbols*, decimalFormats*, scientificFormats*, percentFormats*, currencyFormats*, currencies?, miscPatterns*, minimalPairs*, special* ) ) >
<!ELEMENT numbers ( alias | ( defaultNumberingSystem*, otherNumberingSystems*, minimumGroupingDigits*, symbols*, decimalFormats*, rationalFormats*, scientificFormats*, percentFormats*, currencyFormats*, currencies?, miscPatterns*, minimalPairs*, special* ) ) >
<!ATTLIST numbers alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST numbers draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
@@ -2267,6 +2280,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!--@VALUE-->
<!--@DEPRECATED-->
<!ELEMENT rationalFormats ( alias | ( rationalPattern*, integerAndRationalPattern*, rationalUsage*, special* ) ) >
<!ATTLIST rationalFormats numberSystem CDATA #REQUIRED >
<!--@MATCH:bcp47/nu-->
<!ELEMENT rationalPattern ( #PCDATA ) >
<!ATTLIST rationalPattern alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST rationalPattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
<!--@METADATA-->
<!ELEMENT integerAndRationalPattern ( #PCDATA ) >
<!ATTLIST integerAndRationalPattern alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/superSub-->
<!ATTLIST integerAndRationalPattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
<!--@METADATA-->
<!ELEMENT rationalUsage ( #PCDATA ) >
<!ATTLIST rationalUsage alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST rationalUsage draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
<!--@METADATA-->
<!ELEMENT scientificFormats ( alias | ( default*, scientificFormatLength*, special* ) ) >
<!ATTLIST scientificFormats draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
<!--@METADATA-->
@@ -3100,12 +3135,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ELEMENT rbnf ( alias | ( rulesetGrouping*, special* ) ) >
<!ELEMENT rulesetGrouping ( alias | ( ruleset*, special* ) ) >
<!ELEMENT rulesetGrouping ( alias | ( rbnfRules?, ruleset*, special* ) ) >
<!ATTLIST rulesetGrouping type NMTOKEN #REQUIRED >
<!--@MATCH:literal/NumberingSystemRules, OrdinalRules, SpelloutRules-->
<!ATTLIST rulesetGrouping draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
<!--@METADATA-->
<!ELEMENT rbnfRules ( #PCDATA ) >
<!--@CDATA-->
<!ATTLIST rbnfRules alt NMTOKENS #IMPLIED >
<!--@MATCH:literal/variant-->
<!ATTLIST rbnfRules draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
<!--@METADATA-->
<!--@DEPRECATED:true, false-->
<!ELEMENT ruleset ( alias | ( rbnfrule*, special* ) ) >
<!--@ORDERED-->
<!ATTLIST ruleset type NMTOKEN #REQUIRED >

View File

@@ -128,10 +128,10 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:element name="version">
<xs:complexType>
<xs:attribute name="number" use="required"/>
<xs:attribute default="47" name="cldrVersion">
<xs:attribute default="48" name="cldrVersion">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="47"/>
<xs:enumeration value="48"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
@@ -182,6 +182,7 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:complexType mixed="true">
<xs:attribute name="type" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="alt" type="xs:NMTOKENS"/>
<xs:attribute name="menu" type="xs:NMTOKENS"/>
<xs:attribute name="draft">
<xs:simpleType>
<xs:restriction base="xs:token">
@@ -203,6 +204,7 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:element name="script">
<xs:complexType mixed="true">
<xs:attribute name="type" type="xs:NMTOKEN" use="required"/>
@@ -696,6 +698,7 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:complexType mixed="true">
<xs:attribute name="key" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="type" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="scope" type="xs:NMTOKEN"/>
<xs:attribute name="alt" type="xs:NMTOKENS"/>
<xs:attribute name="draft">
<xs:simpleType>
@@ -718,6 +721,7 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:element name="transformNames">
<xs:complexType>
<xs:choice>
@@ -1196,12 +1200,15 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:attribute name="type">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="auxiliary"/>
<xs:enumeration value="standard"/>
<xs:enumeration value="punctuation"/>
<xs:enumeration value="currencySymbol"/>
<xs:enumeration value="index"/>
<xs:enumeration value="auxiliary"/>
<xs:enumeration value="numbers"/>
<xs:enumeration value="numbers-auxiliary"/>
<xs:enumeration value="punctuation"/>
<xs:enumeration value="punctuation-auxiliary"/>
<xs:enumeration value="punctuation-person"/>
<xs:enumeration value="index"/>
<xs:enumeration value="currencySymbol"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
@@ -4512,6 +4519,7 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:element maxOccurs="unbounded" minOccurs="0" ref="hoursFormat"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="gmtFormat"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="gmtZeroFormat"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="gmtUnknownFormat"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="regionFormat"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="fallbackFormat"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="fallbackRegionFormat"/>
@@ -4634,6 +4642,28 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:element name="gmtUnknownFormat">
<xs:complexType mixed="true">
<xs:attribute name="alt" type="xs:NMTOKENS"/>
<xs:attribute name="draft">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="approved"/>
<xs:enumeration value="contributed"/>
<xs:enumeration value="provisional"/>
<xs:enumeration value="unconfirmed"/>
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="references"/>
</xs:complexType>
</xs:element>
<xs:element name="regionFormat">
<xs:complexType mixed="true">
<xs:attribute name="type">
@@ -5099,6 +5129,7 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:element maxOccurs="unbounded" minOccurs="0" ref="minimumGroupingDigits"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="symbols"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="decimalFormats"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="rationalFormats"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="scientificFormats"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="percentFormats"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="currencyFormats"/>
@@ -5830,6 +5861,72 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:element name="rationalFormats">
<xs:complexType>
<xs:choice>
<xs:element ref="alias"/>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="rationalPattern"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="integerAndRationalPattern"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="rationalUsage"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/>
</xs:sequence>
</xs:choice>
<xs:attribute name="numberSystem" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="rationalPattern">
<xs:complexType mixed="true">
<xs:attribute name="alt" type="xs:NMTOKENS"/>
<xs:attribute name="draft">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="approved"/>
<xs:enumeration value="contributed"/>
<xs:enumeration value="provisional"/>
<xs:enumeration value="unconfirmed"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="integerAndRationalPattern">
<xs:complexType mixed="true">
<xs:attribute name="alt" type="xs:NMTOKENS"/>
<xs:attribute name="draft">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="approved"/>
<xs:enumeration value="contributed"/>
<xs:enumeration value="provisional"/>
<xs:enumeration value="unconfirmed"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="rationalUsage">
<xs:complexType mixed="true">
<xs:attribute name="alt" type="xs:NMTOKENS"/>
<xs:attribute name="draft">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="approved"/>
<xs:enumeration value="contributed"/>
<xs:enumeration value="provisional"/>
<xs:enumeration value="unconfirmed"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="scientificFormats">
<xs:complexType>
<xs:choice>
@@ -8049,6 +8146,7 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:choice>
<xs:element ref="alias"/>
<xs:sequence>
<xs:element minOccurs="0" ref="rbnfRules"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="ruleset"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/>
</xs:sequence>
@@ -8070,6 +8168,27 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
</xs:element>
<xs:element name="rbnfRules">
<xs:complexType mixed="true">
<xs:attribute name="alt" type="xs:NMTOKENS"/>
<xs:attribute name="draft">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="approved"/>
<xs:enumeration value="contributed"/>
<xs:enumeration value="provisional"/>
<xs:enumeration value="unconfirmed"/>
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ruleset">
<xs:complexType>
<xs:choice>

View File

@@ -12,7 +12,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ATTLIST version number CDATA #REQUIRED >
<!--@MATCH:regex/\$Revision.*\$-->
<!--@METADATA-->
<!ATTLIST version cldrVersion CDATA #FIXED "47" >
<!ATTLIST version cldrVersion CDATA #FIXED "48" >
<!--@MATCH:version-->
<!--@VALUE-->
@@ -72,6 +72,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ATTLIST type iana CDATA #IMPLIED >
<!--@MATCH:regex/^[A-Za-z]+(/[A-Za-z_\-]+)+$-->
<!--@VALUE-->
<!ATTLIST type region CDATA #IMPLIED >
<!--@MATCH:regex/^[A-Z]{2}$-->
<!--@VALUE-->
<!ELEMENT attribute EMPTY >
<!ATTLIST attribute name NMTOKEN #REQUIRED >

View File

@@ -24,10 +24,10 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:element name="version">
<xs:complexType>
<xs:attribute name="number" use="required"/>
<xs:attribute default="47" name="cldrVersion">
<xs:attribute default="48" name="cldrVersion">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="47"/>
<xs:enumeration value="48"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
@@ -120,6 +120,7 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:attribute name="alias"/>
<xs:attribute name="since"/>
<xs:attribute name="iana"/>
<xs:attribute name="region"/>
</xs:complexType>
</xs:element>
@@ -134,6 +135,8 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:element name="attribute">
<xs:complexType>
<xs:attribute name="name" type="xs:NMTOKEN" use="required"/>

View File

@@ -1,11 +1,8 @@
<!--
Copyright © 2003-2010 Unicode, Inc. and others. All rights reserved. Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and any associated documentation (the "Data Files") or Unicode software and any associated documentation (the "Software") to deal in the Data Files or Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Data Files or Software, and to permit persons to whom the Data Files or Software are furnished to do so, provided that (a) the above copyright notice(s) and this permission notice appear with all copies of the Data Files or Software, (b) both the above copyright notice(s) and this permission notice appear in associated documentation, and (c) there is clear notice in each modified Data File or in the Software as well as in the documentation associated with the Data File(s) or Software that the data or software has been modified.
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR SOFTWARE.
Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in these Data Files or Software without prior written authorization of the copyright holder.
Copyright © 1991-2025 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
SPDX-License-Identifier: Unicode-3.0
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
-->
<!-- OpenOffice.org Specific elements -->

View File

@@ -12,7 +12,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ATTLIST version number CDATA #REQUIRED >
<!--@MATCH:any-->
<!--@METADATA-->
<!ATTLIST version cldrVersion CDATA #FIXED "47" >
<!ATTLIST version cldrVersion CDATA #FIXED "48" >
<!--@MATCH:version-->
<!--@VALUE-->
<!ATTLIST version unicodeVersion CDATA #FIXED "16.0.0" >
@@ -147,6 +147,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ATTLIST language territories NMTOKENS #IMPLIED >
<!--@MATCH:set/validity/region-->
<!--@VALUE-->
<!--@DEPRECATED-->
<!ATTLIST language variants NMTOKENS #IMPLIED >
<!--@VALUE-->
<!ATTLIST language draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
@@ -274,7 +275,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!--@MATCH:time/yyyy-MM-dd-->
<!--@VALUE-->
<!ATTLIST era code NMTOKEN #IMPLIED >
<!--@MATCH:regex/[a-z0-9]{3,8}(\-[a-z0-9]{3,8})*-->
<!--@MATCH:regex/[a-z0-9]{2,8}(\-[a-z0-9]{3,8})*-->
<!--@VALUE-->
<!ATTLIST era aliases NMTOKENS #IMPLIED >
<!--@MATCH:set/regex/[a-z0-9]{2,8}(\-[a-z0-9]{3,8})*-->
@@ -770,7 +771,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ATTLIST unitAlias type NMTOKEN #REQUIRED >
<!--@MATCH:validity/short-unit/deprecated-->
<!ATTLIST unitAlias replacement NMTOKEN #REQUIRED >
<!--@MATCH:regex/[A-Za-z][-A-Za-z0-9]*-->
<!--@MATCH:regex/[A-Za-z0-9][-A-Za-z0-9]*-->
<!--@VALUE-->
<!ATTLIST unitAlias reason (deprecated) #IMPLIED >
<!--@VALUE-->
@@ -996,6 +997,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ATTLIST usesMetazone mzone NMTOKEN #REQUIRED >
<!--@MATCH:metazone-->
<!--@VALUE-->
<!ATTLIST usesMetazone stdOffset CDATA #IMPLIED >
<!--@MATCH:regex/[+-][0-9]{2}(:[0-9]{2})?-->
<!--@VALUE-->
<!ATTLIST usesMetazone dstOffset CDATA #IMPLIED >
<!--@MATCH:regex/[+-][0-9]{2}(:[0-9]{2})?-->
<!--@VALUE-->
<!ELEMENT plurals ( pluralRules*, pluralRanges* ) >
<!ATTLIST plurals type (ordinal | cardinal) #IMPLIED >
@@ -1090,7 +1097,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ATTLIST numberingSystem radix NMTOKEN #IMPLIED >
<!--@VALUE-->
<!ATTLIST numberingSystem digits CDATA #IMPLIED >
<!--@MATCH:unicodeset/[\p{Nd}[\u3007\u4E00\u4E03\u4E09\u4E5D\u4E8C\u4E94\u516B\u516D\u56DB][\U00010D40-\U00010D49\U000116D0-\U000116E3\U00011BF0-\U00011BF9\U00016130-\U00016139\U00016D70-\U00016D79\U0001CCF0-\U0001CCF9\U0001E5F1-\U0001E5FA]]-->
<!--@MATCH:unicodeset/[\p{Nd}[\u3007\u4E00\u4E03\u4E09\u4E5D\u4E8C\u4E94\u516B\u516D\u56DB][\U00011DE0-\U00011DE9]]-->
<!--@VALUE-->
<!ATTLIST numberingSystem rules CDATA #IMPLIED >
<!--@MATCH:any-->

View File

@@ -65,10 +65,10 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:element name="version">
<xs:complexType>
<xs:attribute name="number" use="required"/>
<xs:attribute default="47" name="cldrVersion">
<xs:attribute default="48" name="cldrVersion">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="47"/>
<xs:enumeration value="48"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
@@ -374,6 +374,7 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:element name="scriptData">
<xs:complexType>
<xs:sequence>
@@ -2183,12 +2184,18 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
<xs:attribute name="from"/>
<xs:attribute name="to"/>
<xs:attribute name="mzone" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="stdOffset"/>
<xs:attribute name="dstOffset"/>
</xs:complexType>
</xs:element>
<xs:element name="plurals">
<xs:complexType>
<xs:sequence>

View File

@@ -2072,7 +2072,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Asia/Phnom_Penh">
<exemplarCity draft="unconfirmed">Пномпен</exemplarCity>
</zone>
<zone type="Pacific/Kanton">
<zone type="Pacific/Enderbury">
<exemplarCity draft="unconfirmed">Кантон</exemplarCity>
</zone>
<zone type="Pacific/Kiritimati">
@@ -2746,9 +2746,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</metazone>
<metazone type="Africa_Western">
<long>
<generic draft="unconfirmed">Мраҭашәаратәи Африка</generic>
<standard draft="unconfirmed">Мраҭашәаратәи Африка, астандартә аамҭа</standard>
<daylight draft="unconfirmed">Мраҭашәаратәи Африка, аԥхынтәи аамҭа</daylight>
<standard draft="unconfirmed">Мраҭашәаратәи Африка</standard>
</long>
</metazone>
<metazone type="Alaska">
@@ -3136,6 +3134,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<standard draft="unconfirmed">Гаиана</standard>
</long>
</metazone>
<metazone type="Hawaii">
<long>
<standard draft="unconfirmed">Ҳаваи-алеуттәи астандартә аамҭа</standard>
</long>
</metazone>
<metazone type="Hawaii_Aleutian">
<long>
<generic draft="unconfirmed">Ҳаваи-алеуттәи аамҭа</generic>
@@ -3686,6 +3689,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<currencyFormatLength>
<currencyFormat type="standard">
<pattern draft="unconfirmed">#,##0.00 ¤</pattern>
<pattern alt="alphaNextToNumber">#,##0.00 ¤</pattern>
</currencyFormat>
<currencyFormat type="accounting">
<pattern alt="alphaNextToNumber">#,##0.00 ¤</pattern>
</currencyFormat>
</currencyFormatLength>
<unitPattern count="other" draft="unconfirmed">{0} {1}</unitPattern>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -215,7 +215,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="hax">ደቡባዊ ሃይዳ</language>
<language type="he">ዕብራይስጥ</language>
<language type="hi">ሕንድኛ</language>
<language type="hi_Latn">ሕንድኛ (ላቲን)</language>
<language type="hil">ሂሊጋይኖን</language>
<language type="hmn">ህሞንግ</language>
<language type="hr">ክሮሽያንኛ</language>
@@ -283,6 +282,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="ksf">ባፊያ</language>
<language type="ksh">ኮሎኝኛ</language>
<language type="ku">ኩርድሽ</language>
<language type="ku" menu="core">ኩርድሽ</language>
<language type="ku" menu="extension">ኩርድሽ</language>
<language type="kum">ኩማይክ</language>
<language type="kv">ኮሚ</language>
<language type="kw">ኮርኒሽ</language>
@@ -711,6 +712,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<territory type="CN">ቻይና</territory>
<territory type="CO">ኮሎምቢያ</territory>
<territory type="CP">ክሊፐርቶን ደሴት</territory>
<territory type="CQ">ሳርክ</territory>
<territory type="CR">ኮስታሪካ</territory>
<territory type="CU">ኩባ</territory>
<territory type="CV">ኬፕቨርዴ</territory>
@@ -952,33 +954,52 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<key type="colNumeric">የቁጥር ድርደራ</key>
<key type="colStrength">የድርደራ አቅም</key>
<key type="currency">ምንዛሪ</key>
<key type="em">ስሜት ገላጭ ምስል አቀራረብ</key>
<key type="hc">የሰዓት ዑደት (12 ወይም 24)</key>
<key type="lb">መስመር መስበሪያ ቅጥ</key>
<key type="lw">የመስመር መሰባበር በቃላት ውስጥ</key>
<key type="ms">የመለኪያ ስርዓት</key>
<key type="numbers">ቁጥሮች</key>
<key type="ss">ከአህጽሮተ ቃል በኋላ የዐረፍተ ነገር መቋረጥ</key>
<key type="timezone">የሰዓት ሰቅ</key>
<key type="va">የአካባቢ አይነት</key>
<key type="x">ለግል ጥቅም</key>
</keys>
<types>
<type key="calendar" type="buddhist">የቡዲስት ቀን አቆጣጠር</type>
<type key="calendar" type="buddhist" scope="core">ቡዲስት</type>
<type key="calendar" type="chinese">የቻይና የቀን አቆጣጠር</type>
<type key="calendar" type="chinese" scope="core">ቻይንኛ</type>
<type key="calendar" type="coptic">የኮፕቲክ የቀን አቆጣጠር</type>
<type key="calendar" type="coptic" scope="core">ኮፕቲክ</type>
<type key="calendar" type="dangi">የዳንጊ የቀን አቆጣጠር</type>
<type key="calendar" type="dangi" scope="core">ዳንጊ</type>
<type key="calendar" type="ethiopic">የኢትዮጵያ የቀን አቆጣጠር</type>
<type key="calendar" type="ethiopic" scope="core">ኢትዮፒክ</type>
<type key="calendar" type="ethiopic-amete-alem">የኢትዮፒክ አመተ አለም የቀን አቆጣጠር</type>
<type key="calendar" type="ethiopic-amete-alem" scope="core">ኢትዮፒክ ዓመተ ዓለም</type>
<type key="calendar" type="gregorian">የግሪጎሪያን የቀን አቆጣጠር</type>
<type key="calendar" type="gregorian" scope="core">ግሪጎሪያን</type>
<type key="calendar" type="hebrew">የእብራዊያን የቀን አቆጣጠር</type>
<type key="calendar" type="hebrew" scope="core">ሂብሩ</type>
<type key="calendar" type="indian">የህንድ ብሔራዊ የቀን አቆጣጠር</type>
<type key="calendar" type="islamic">የሂጅራ የቀን አቆጣጠር</type>
<type key="calendar" type="islamic" scope="core">ሂጅራ</type>
<type key="calendar" type="islamic-civil">የሂጅራ የቀን አቆጣጠር (ታቡላር፣ ሲቪል አፖች)</type>
<type key="calendar" type="islamic-civil" scope="core">ሂጅራ (ታቡላር፣ የሲቪል ዘመን)</type>
<type key="calendar" type="islamic-umalqura">የሂጅራ የቀን አቆጣጠር (ኡም አል-ቁራ)</type>
<type key="calendar" type="islamic-umalqura" scope="core">ሂጅራ (ኡሙ አል-ቁራ)</type>
<type key="calendar" type="iso8601">ISO-8601 የቀን አቆጣጠር</type>
<type key="calendar" type="japanese">የጃፓን የቀን አቆጣጠር</type>
<type key="calendar" type="japanese" scope="core">ጃፓንኛ</type>
<type key="calendar" type="persian">የፐርሽያ የቀን አቆጣጠር</type>
<type key="calendar" type="persian" scope="core">ፐርሽያን</type>
<type key="calendar" type="roc">የሚንጉ የቀን አቆጣጠር</type>
<type key="calendar" type="roc" scope="core">ሚንጉ</type>
<type key="cf" type="account">የሂሳብ ምንዛሪ ቅርጸት</type>
<type key="cf" type="account" scope="core">የሂሳብ አያያዝ</type>
<type key="cf" type="standard">መደበኛ የምንዛሪ ቅርጸት</type>
<type key="cf" type="standard" scope="core">መደበኛ</type>
<type key="colAlternate" type="non-ignorable">ምልክቶችን ደርድር</type>
<type key="colAlternate" type="shifted">ችላ ባይ ምልክቶችን ደርድር</type>
<type key="colBackwards" type="no">የፊደል ጭረቶችን እንደመደበኛ ደርድር</type>
@@ -988,16 +1009,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<type key="colCaseFirst" type="upper">አቢይ ሆሄ መጀመሪያ ደርድር</type>
<type key="colCaseLevel" type="no">ያለመልከፊደል ትብ ደርድር</type>
<type key="colCaseLevel" type="yes">በመልከፊደል ትብ ደርድር</type>
<type key="collation" type="big5han">የባህላዊ ቻይንኛ የድርድር ቅደም ተከተል - ትልቅ5</type>
<type key="collation" type="dictionary">የመዝገበ ቃላት የድርድር ቅደም ተከተል</type>
<type key="collation" type="ducet">የነባሪ ዩኒኮድ የድርድር ቅደም ተከተል</type>
<type key="collation" type="gb2312han">የቀለለ የቻይንኛ የድርደራ ቅደም ተከተል - GB2312</type>
<type key="collation" type="ducet" scope="core">ነባሪ ዩኒኮድ</type>
<type key="collation" type="phonebook">የስልክ ደብተር ድርድር ቅደም ተከተል</type>
<type key="collation" type="phonetic">የፎነቲክ ድርደራ ቅደም ተከተል</type>
<type key="collation" type="pinyin">ፒንይን የድርድር ቅደም ተከተል</type>
<type key="collation" type="search">ለጠቅላላ ጉዳይ ፍለጋ</type>
<type key="collation" type="search" scope="core">ፍለጋ</type>
<type key="collation" type="searchjl">በሃንጉል የመጀመሪያ ተነባቢ ፈልግ</type>
<type key="collation" type="standard">መደበኛ የድርድር ቅደም ተከተል</type>
<type key="collation" type="standard" scope="core">መደበኛ</type>
<type key="collation" type="stroke">የበትር ድርድር ቅደም ተከተል</type>
<type key="collation" type="traditional">ባህላዊ የድርድር ቅደም ተከተል</type>
<type key="collation" type="unihan">የመሰረታዊ በትር ድርድር ቅደም ተከተል</type>
@@ -1013,18 +1035,35 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<type key="d0" type="fwidth">ሙሉ ወርድ</type>
<type key="d0" type="hwidth">ግማሽ ወርድ</type>
<type key="d0" type="npinyin">አሃዛዊ</type>
<type key="em" type="default" scope="core">ነባሪ</type>
<type key="em" type="emoji" scope="core">ስሜት ገላጭ ምስል</type>
<type key="em" type="text" scope="core">ጽሑፍ</type>
<type key="hc" type="h11">የ12 ሰዓት ስርዓት (011)</type>
<type key="hc" type="h11" scope="core">12 (011)</type>
<type key="hc" type="h12">የ12 ሰዓት ስርዓት (112)</type>
<type key="hc" type="h12" scope="core">12 (112)</type>
<type key="hc" type="h23">የ24 ሰዓት ስርዓት (023)</type>
<type key="hc" type="h23" scope="core">24 (023)</type>
<type key="hc" type="h24">የ24 ሰዓት ስርዓት (124)</type>
<type key="hc" type="h24" scope="core">24 (124)</type>
<type key="lb" type="loose">ላላ ያለ መስመር መስበሪያ ቅጥ</type>
<type key="lb" type="loose" scope="core">ልቅ</type>
<type key="lb" type="normal">መደበኛ መስመር መስበሪያ ቅጥ</type>
<type key="lb" type="normal" scope="core">መደበኛ</type>
<type key="lb" type="strict">ጠበቅ ያለ መስመር መስበሪያ ቅጥ</type>
<type key="lb" type="strict" scope="core">ጥብቅ</type>
<type key="lw" type="breakall" scope="core">ሁሉንም ሰብረው</type>
<type key="lw" type="keepall" scope="core">ሁሉንም አቆይ</type>
<type key="lw" type="normal" scope="core">መደበኛ</type>
<type key="lw" type="phrase" scope="core">በዓረፍተ ነገሮች ውስጥ ያስቀምጡ</type>
<type key="m0" type="bgn">ዩኤስ ቢጂኤን ትራንስሊትሬሽን</type>
<type key="m0" type="ungegn">ዩኤን ጂኢጂኤን ትራንስሊትሬሽን</type>
<type key="ms" type="metric">ሜትሪክ ስርዓት</type>
<type key="ms" type="metric" scope="core">መለኪያ</type>
<type key="ms" type="uksystem">ኢምፔሪያል የመለኪያ ስርዓት</type>
<type key="ms" type="uksystem" scope="core">ዩኬ</type>
<type key="ms" type="ussystem">የአሜሪካ መለኪያ ስርዓት</type>
<type key="ms" type="ussystem" scope="core">ዩኤስ</type>
<type key="numbers" type="arab">የአረቢክ-ኢንዲክ አሃዞች</type>
<type key="numbers" type="arabext">የተራዘሙ የአረቢክ-ኢንዲክ አሃዞች</type>
<type key="numbers" type="armn">የአርመንኛ ቁጥሮች</type>
@@ -1069,6 +1108,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<type key="numbers" type="tibt">የቲቤት አሃዞች</type>
<type key="numbers" type="traditional">ተለምዷዊ ቁጥሮች</type>
<type key="numbers" type="vaii">የቫይ አሃዞች</type>
<type key="ss" type="none" scope="core">ጠፍቷል</type>
<type key="ss" type="standard" scope="core">በርቷል</type>
</types>
<measurementSystemNames>
<measurementSystemName type="metric">ሜትሪክ</measurementSystemName>
@@ -1098,13 +1139,23 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateTimeFormats>
<availableFormats>
<dateFormatItem id="GyMMM">MMM፣ y G</dateFormatItem>
<dateFormatItem id="yyyyM">GGGGG y-MM</dateFormatItem>
<dateFormatItem id="yyyyMd">GGGGG y-MM-dd</dateFormatItem>
<dateFormatItem id="yyyyMEd">GGGGG y-MM-dd, E</dateFormatItem>
</availableFormats>
<intervalFormats>
<intervalFormatItem id="H">
<greatestDifference id="H">HHHH</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="Hv">
<greatestDifference id="H">HHHH v</greatestDifference>
</intervalFormatItem>
</intervalFormats>
</dateTimeFormats>
</calendar>
<calendar type="coptic">
<eras>
<eraAbbr>
<era type="0" draft="unconfirmed">ዓ/ዓ</era>
<era type="1" draft="unconfirmed">ዓ/ም</era>
</eraAbbr>
</eras>
@@ -1133,7 +1184,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<availableFormats>
<dateFormatItem id="GyMMM">MMM፣ y G</dateFormatItem>
<dateFormatItem id="MMMMEd">E, MMMM d</dateFormatItem>
<dateFormatItem id="yyyyM">GGGGG y-MM</dateFormatItem>
<dateFormatItem id="yyyyMd">GGGGG y-MM-dd</dateFormatItem>
<dateFormatItem id="yyyyMEd">GGGGG y-MM-dd, E</dateFormatItem>
</availableFormats>
<intervalFormats>
<intervalFormatItem id="H">
<greatestDifference id="H">HHHH</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="Hv">
<greatestDifference id="H">HHHH v</greatestDifference>
</intervalFormatItem>
</intervalFormats>
</dateTimeFormats>
</calendar>
<calendar type="generic">
@@ -1164,21 +1226,33 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateTimeFormat>
<pattern>{1} {0}</pattern>
</dateTimeFormat>
<dateTimeFormat type="relative">
<pattern>{1} በ {0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<dateTimeFormatLength type="long">
<dateTimeFormat>
<pattern>{1} {0}</pattern>
</dateTimeFormat>
<dateTimeFormat type="relative">
<pattern>{1} በ {0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<dateTimeFormatLength type="medium">
<dateTimeFormat>
<pattern>{1} {0}</pattern>
</dateTimeFormat>
<dateTimeFormat type="relative">
<pattern>{1} በ {0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<dateTimeFormatLength type="short">
<dateTimeFormat>
<pattern>{1} {0}</pattern>
</dateTimeFormat>
<dateTimeFormat type="relative">
<pattern>{1} በ {0}</pattern>
</dateTimeFormat>
</dateTimeFormatLength>
<availableFormats>
<dateFormatItem id="Ed">E d</dateFormatItem>
@@ -1415,10 +1489,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dayPeriodWidth type="narrow">
<dayPeriod type="am"></dayPeriod>
<dayPeriod type="pm"></dayPeriod>
<dayPeriod type="morning1">ጥዋት</dayPeriod>
<dayPeriod type="afternoon1">ከሰዓት</dayPeriod>
<dayPeriod type="evening1">ማታ</dayPeriod>
<dayPeriod type="night1">ሌሊት</dayPeriod>
</dayPeriodWidth>
</dayPeriodContext>
</dayPeriods>
@@ -1426,7 +1496,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<eraNames>
<era type="0">ዓመተ ዓለም</era>
<era type="1">ዓመተ ምሕረት</era>
<era type="1" alt="variant">ዓ/ም</era>
</eraNames>
<eraAbbr>
<era type="0">ዓ/ዓ</era>
@@ -1506,13 +1575,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateFormatItem id="Bh">B h</dateFormatItem>
<dateFormatItem id="Bhm">B h:mm</dateFormatItem>
<dateFormatItem id="Bhms">B h:mm:ss</dateFormatItem>
<dateFormatItem id="EBh">E B h</dateFormatItem>
<dateFormatItem id="EBhm">E B h:mm</dateFormatItem>
<dateFormatItem id="EBhms">E B h:mm:ss</dateFormatItem>
<dateFormatItem id="Ed">E d</dateFormatItem>
<dateFormatItem id="Eh">Ea h</dateFormatItem>
<dateFormatItem id="Ehm">E a h:mm</dateFormatItem>
<dateFormatItem id="Ehms">E a h:mm:ss</dateFormatItem>
<dateFormatItem id="Gy">y G</dateFormatItem>
<dateFormatItem id="GyM">M/y G</dateFormatItem>
<dateFormatItem id="GyMd">d/M/y GGGGG</dateFormatItem>
<dateFormatItem id="GyMEd">E d/M/y G</dateFormatItem>
<dateFormatItem id="GyMMM">MMM y G</dateFormatItem>
<dateFormatItem id="GyMMMd">MMM d y G</dateFormatItem>
<dateFormatItem id="GyMMMEd">E MMM d y G</dateFormatItem>
@@ -1520,6 +1593,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<dateFormatItem id="H">H</dateFormatItem>
<dateFormatItem id="hm">a h:mm</dateFormatItem>
<dateFormatItem id="hms">a h:mm:ss</dateFormatItem>
<dateFormatItem id="hv">a hv</dateFormatItem>
<dateFormatItem id="Md">d/M</dateFormatItem>
<dateFormatItem id="MEd">E፣ d/M</dateFormatItem>
<dateFormatItem id="MMMEd">E፣ MMM d</dateFormatItem>
@@ -1538,6 +1612,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</availableFormats>
<intervalFormats>
<intervalFormatFallback>{0} {1}</intervalFormatFallback>
<intervalFormatItem id="Bh">
<greatestDifference id="B">B hB h</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="GyM">
<greatestDifference id="G">GGGGG M/y GGGGG M/y</greatestDifference>
<greatestDifference id="M">GGGGG M/y M/y</greatestDifference>
@@ -1681,14 +1758,26 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<relative type="0">ይህ ሩብ</relative>
<relative type="1">የሚቀጥለው ሩብ</relative>
<relativeTime type="future">
<relativeTimePattern count="one">+{0} ሩብ</relativeTimePattern>
<relativeTimePattern count="other">+{0} ሩብ</relativeTimePattern>
<relativeTimePattern count="one">{0} ሩብ</relativeTimePattern>
<relativeTimePattern count="other">{0} ሩብ</relativeTimePattern>
</relativeTime>
<relativeTime type="past">
<relativeTimePattern count="one">{0} ሩብ በፊት</relativeTimePattern>
<relativeTimePattern count="other">{0} ሩብ በፊት</relativeTimePattern>
</relativeTime>
</field>
<field type="quarter-short">
<relativeTime type="future">
<relativeTimePattern count="one">በ{0} ሩብ</relativeTimePattern>
<relativeTimePattern count="other">በ{0} ሩብ</relativeTimePattern>
</relativeTime>
</field>
<field type="quarter-narrow">
<relativeTime type="future">
<relativeTimePattern count="one">በ{0} ሩብ</relativeTimePattern>
<relativeTimePattern count="other">በ{0} ሩብ</relativeTimePattern>
</relativeTime>
</field>
<field type="month">
<displayName>ወር</displayName>
<relative type="-1">ያለፈው ወር</relative>
@@ -1990,6 +2079,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<hourFormat>+HHmm;-HHmm</hourFormat>
<gmtFormat>ጂ ኤም ቲ{0}</gmtFormat>
<gmtZeroFormat>ጂ ኤም ቲ</gmtZeroFormat>
<gmtUnknownFormat>ጂ ኤም ቲ+</gmtUnknownFormat>
<regionFormat>{0} ሰዓት</regionFormat>
<regionFormat type="daylight">{0} የቀን ብርሃን ሰዓት</regionFormat>
<regionFormat type="standard">{0} መደበኛ ሰዓት</regionFormat>
@@ -2611,9 +2701,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<exemplarCity>ፍኖም ፔንህ</exemplarCity>
</zone>
<zone type="Pacific/Enderbury">
<exemplarCity>ኢንደርበሪ</exemplarCity>
</zone>
<zone type="Pacific/Kanton">
<exemplarCity>ካንቶን</exemplarCity>
</zone>
<zone type="Pacific/Kiritimati">
@@ -3283,9 +3370,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</metazone>
<metazone type="Africa_Western">
<long>
<generic>የምዕራብ አፍሪካ ሰዓት</generic>
<standard>የምዕራብ አፍሪካ መደበኛ ሰዓት</standard>
<daylight>የምዕራብ አፍሪካ ክረምት ሰዓት</daylight>
<standard>የምዕራብ አፍሪካ ሰዓት</standard>
</long>
</metazone>
<metazone type="Alaska">
@@ -3642,6 +3727,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<standard>የጉያና ሰዓት</standard>
</long>
</metazone>
<metazone type="Hawaii">
<long>
<standard>የሃዋይ አሌኡት መደበኛ ሰዓት አቆጣጠር</standard>
</long>
</metazone>
<metazone type="Hawaii_Aleutian">
<long>
<generic>የሃዋይ አሌኡት ሰዓት አቆጣጠር</generic>
@@ -4225,7 +4315,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<currencyFormatLength>
<currencyFormat type="standard">
<pattern>¤#,##0.00</pattern>
<pattern alt="alphaNextToNumber" draft="provisional">¤ #,##0.00</pattern>
</currencyFormat>
<currencyFormat type="accounting">
<pattern>¤#,##0.00;(¤#,##0.00)</pattern>
@@ -4775,6 +4864,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<currency type="XCD">
<displayName>የምዕራብ ካሪብያን ዶላር</displayName>
</currency>
<currency type="XCG">
<displayName>የካሪቢያን ጊልደር</displayName>
<displayName count="one">የካሪቢያን ጊልደር</displayName>
<displayName count="other">የካሪቢያን ጊልደር</displayName>
</currency>
<currency type="XOF">
<displayName>የምዕራብ አፍሪካ ሴፋ ፍራንክ</displayName>
</currency>
@@ -4799,6 +4893,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<currency type="ZWD">
<displayName>የዚምቧቡዌ ዶላር</displayName>
</currency>
<currency type="ZWG">
<displayName>የዚምባብዌ ወርቅ</displayName>
<displayName count="one">የዚምባብዌ ወርቅ</displayName>
<displayName count="other">የዚምባብዌ ወርቅ</displayName>
</currency>
</currencies>
<miscPatterns numberSystem="latn">
<pattern type="atLeast">{0}+</pattern>
@@ -4822,9 +4921,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p-3">
<unitPrefixPattern>ሚሊ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
<unitPrefixPattern>ማይክሮ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>ናኖ{0}</unitPrefixPattern>
</compoundUnit>
@@ -4861,18 +4957,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<compoundUnit type="10p18">
<unitPrefixPattern>ኤክሳ {0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p21">
<unitPrefixPattern>ዜታ {0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p24">
<unitPrefixPattern>ዮታ {0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p27">
<unitPrefixPattern>ሮና {0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
<unitPrefixPattern>ዮቢ {0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="per">
<compoundUnitPattern>{0} በ{1}</compoundUnitPattern>
</compoundUnit>
@@ -4891,14 +4975,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other" case="accusative">{0} ጂ-ኃይል</unitPattern>
</unit>
<unit type="angle-revolution">
<displayName>ኡደት</displayName>
<unitPattern count="one">{0} ኡደት</unitPattern>
<unitPattern count="one" case="accusative">{0} ኡደት</unitPattern>
<unitPattern count="other">{0} ኡደት</unitPattern>
<unitPattern count="other" case="accusative">{0} ኡደቶች</unitPattern>
</unit>
<unit type="angle-radian">
<displayName>ራዲ</displayName>
<unitPattern count="one">{0} ራዲ</unitPattern>
<unitPattern count="one" case="accusative">{0} ራዲያን</unitPattern>
<unitPattern count="other">{0} ራዲ</unitPattern>
@@ -4922,11 +5004,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} ካሬ ሜትር</unitPattern>
<unitPattern count="other" case="accusative">{0} ካሬ ሜትር</unitPattern>
</unit>
<unit type="area-square-yard">
<displayName>ስኴር ያርድ</displayName>
<unitPattern count="one">{0} ስኴር ያርድ</unitPattern>
<unitPattern count="other">{0} ስኴር ያርድ</unitPattern>
</unit>
<unit type="area-dunam">
<displayName>ጋሻ</displayName>
</unit>
@@ -4940,7 +5017,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} ንጥሎች</unitPattern>
<unitPattern count="other" case="accusative">{0} ንጥሎች</unitPattern>
</unit>
<unit type="concentr-permillion">
<unit type="concentr-part">
<displayName>ክፍል</displayName>
<unitPattern count="one">{0} ክፍል</unitPattern>
<unitPattern count="other">{0} ክፍል</unitPattern>
</unit>
<unit type="concentr-part-per-1e6">
<unitPattern count="one">{0} ppm</unitPattern>
<unitPattern count="one" case="accusative">{0} ክፍል በየሚሊዮን</unitPattern>
<unitPattern count="other">{0} ppm</unitPattern>
@@ -4964,6 +5046,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} mol</unitPattern>
<unitPattern count="other" case="accusative">{0} moles</unitPattern>
</unit>
<unit type="concentr-ofglucose">
<displayName>ግሉኮስ</displayName>
<unitPattern count="one">{0} ግሉኮስ</unitPattern>
<unitPattern count="other">{0} ግሉኮስ</unitPattern>
</unit>
<unit type="consumption-liter-per-100-kilometer">
<displayName>ሊትሮች በ100 ኪሎሜትሮች</displayName>
<unitPattern count="one">{0} ሊትር በ100 ኪሎሜትሮች</unitPattern>
@@ -5031,7 +5118,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other" case="accusative">{0} ማይክሮሰከንድ</unitPattern>
</unit>
<unit type="electric-ampere">
<displayName>አምፒር</displayName>
<unitPattern count="one">{0} አምፒር</unitPattern>
<unitPattern count="one" case="accusative">{0} አምፒር</unitPattern>
<unitPattern count="other">{0} አምፒር</unitPattern>
@@ -5044,33 +5130,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other" case="accusative">{0} ohms</unitPattern>
</unit>
<unit type="electric-volt">
<displayName>ቮልት</displayName>
<unitPattern count="one">{0} ቮልት</unitPattern>
<unitPattern count="one" case="accusative">{0} ቮልት</unitPattern>
<unitPattern count="other">{0} ቮልት</unitPattern>
<unitPattern count="other" case="accusative">{0} ቮልቶች</unitPattern>
</unit>
<unit type="energy-kilocalorie">
<displayName>ኪሎ ካሎሪ</displayName>
<unitPattern count="one">{0} ኪሎ ካሎሪ</unitPattern>
<unitPattern count="one" case="accusative">{0} ኪሎ ካሎሪ</unitPattern>
<unitPattern count="other">{0} ኪሎ ካሎሪ</unitPattern>
<unitPattern count="other" case="accusative">{0} ኪሎ ካሎሪ</unitPattern>
</unit>
<unit type="energy-kilojoule">
<displayName>ኪጁ</displayName>
<unitPattern count="one">{0} ኪጁ</unitPattern>
<unitPattern count="one" case="accusative">{0} ኪጁ</unitPattern>
<unitPattern count="other">{0} ኪጁ</unitPattern>
<unitPattern count="other" case="accusative">{0} ኪጁ</unitPattern>
</unit>
<unit type="energy-joule">
<displayName>ጁልስ</displayName>
<unitPattern count="one">{0} ጁልስ</unitPattern>
<unitPattern count="one" case="accusative">{0} ጁልስ</unitPattern>
<unitPattern count="other">{0} ጁልስ</unitPattern>
<unitPattern count="other" case="accusative">{0} ጁልስ</unitPattern>
</unit>
<unit type="force-newton">
<unitPattern count="one">{0} ኒ</unitPattern>
<unitPattern count="one" case="accusative">{0} ኒውተን</unitPattern>
@@ -5084,34 +5148,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} ኪሎዋት-ሰዓታት በየ 100 ኪሎሜትሮች</unitPattern>
<unitPattern count="other" case="accusative">{0} ኪሎዋት-ሰዓታት በየ 100 ኪሎሜትሮች</unitPattern>
</unit>
<unit type="frequency-gigahertz">
<displayName>ጊጋኸርዝ</displayName>
<unitPattern count="one">{0} ጊጋኸርዝ</unitPattern>
<unitPattern count="one" case="accusative">{0} ጊጋኸርዝ</unitPattern>
<unitPattern count="other">{0} ጊጋኸርዝ</unitPattern>
<unitPattern count="other" case="accusative">{0} ጊጋኸርዝ</unitPattern>
</unit>
<unit type="frequency-megahertz">
<displayName>ሜጋኸርዝ</displayName>
<unitPattern count="one">{0} ሜጋኸርዝ</unitPattern>
<unitPattern count="one" case="accusative">{0} ሜጋኸርዝ</unitPattern>
<unitPattern count="other">{0} ሜጋኸርዝ</unitPattern>
<unitPattern count="other" case="accusative">{0} ሜጋኸርዝ</unitPattern>
</unit>
<unit type="frequency-kilohertz">
<displayName>ኪሎኸርዝ</displayName>
<unitPattern count="one">{0} ኪሎኸርዝ</unitPattern>
<unitPattern count="one" case="accusative">{0} ኪሎኸርዝ</unitPattern>
<unitPattern count="other">{0} ኪሎኸርዝ</unitPattern>
<unitPattern count="other" case="accusative">{0} ኪሎኸርዝ</unitPattern>
</unit>
<unit type="frequency-hertz">
<displayName>ኸርዝ</displayName>
<unitPattern count="one">{0} ኸርዝ</unitPattern>
<unitPattern count="one" case="accusative">{0} ኸርዝ</unitPattern>
<unitPattern count="other">{0} ኸርዝ</unitPattern>
<unitPattern count="other" case="accusative">{0} ኸርዝ</unitPattern>
</unit>
<unit type="graphics-em">
<displayName>ታይፖግራፊክ em</displayName>
</unit>
@@ -5202,15 +5238,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} ግራም</unitPattern>
<unitPattern count="other" case="accusative">{0} ግራም</unitPattern>
</unit>
<unit type="mass-milligram">
<displayName>ሚግ</displayName>
<unitPattern count="one">{0} ሚግ</unitPattern>
<unitPattern count="one" case="accusative">{0} ሚግ</unitPattern>
<unitPattern count="other">{0} ሚግ</unitPattern>
<unitPattern count="other" case="accusative">{0} ሚግ</unitPattern>
</unit>
<unit type="mass-microgram">
<displayName>ማግ</displayName>
<unitPattern count="one">{0} ማግ</unitPattern>
<unitPattern count="one" case="accusative">{0} ማይክሮ ግራም</unitPattern>
<unitPattern count="other">{0} ማግ</unitPattern>
@@ -5223,11 +5251,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} CD</unitPattern>
<unitPattern count="other" case="accusative">{0} ካራቶች</unitPattern>
</unit>
<unit type="mass-dalton">
<displayName>ዳልተንስ</displayName>
<unitPattern count="one">{0} ዳልተንስ</unitPattern>
<unitPattern count="other">{0} ዳልተንስ</unitPattern>
</unit>
<unit type="mass-earth-mass">
<unitPattern count="one">{0} ኤርዝማስስ</unitPattern>
<unitPattern count="other">{0} ኤርዝማስስ</unitPattern>
@@ -5236,19 +5259,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ሶላር ማስስ</unitPattern>
<unitPattern count="other">{0} ሶላር ማስስ</unitPattern>
</unit>
<unit type="power-gigawatt">
<displayName>ጊጋ ዋት</displayName>
<unitPattern count="one">{0} ጊዋ</unitPattern>
<unitPattern count="one" case="accusative">{0} ጊዋ</unitPattern>
<unitPattern count="other">{0} ጊዋ</unitPattern>
<unitPattern count="other" case="accusative">{0} ጊዋ</unitPattern>
</unit>
<unit type="power-megawatt">
<displayName>ሜጋ ዋት</displayName>
<unitPattern count="one">{0} ሜዋ</unitPattern>
<unitPattern count="one" case="accusative">{0} ሜዋ</unitPattern>
<unitPattern count="other">{0} ሜዋ</unitPattern>
<unitPattern count="other" case="accusative">{0} ሜዋ</unitPattern>
</unit>
<unit type="power-kilowatt">
<unitPattern count="one">{0} ኪሎዋት</unitPattern>
@@ -5264,10 +5276,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</unit>
<unit type="power-milliwatt">
<displayName>ሚሊ ዋት</displayName>
<unitPattern count="one">{0} ሚዋ</unitPattern>
<unitPattern count="one" case="accusative">{0} ሚዋ</unitPattern>
<unitPattern count="other">{0} ሚዋ</unitPattern>
<unitPattern count="other" case="accusative">{0} ሚዋ</unitPattern>
</unit>
<unit type="power-horsepower">
<unitPattern count="one">{0} የፈረስ ጉልበት</unitPattern>
@@ -5316,7 +5324,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} ዲግሪ ፋራንሃይት</unitPattern>
</unit>
<unit type="temperature-kelvin">
<displayName></displayName>
<unitPattern count="one">{0} ኬ</unitPattern>
<unitPattern count="one" case="accusative">{0} ኬልቪን</unitPattern>
<unitPattern count="other">{0} ኬ</unitPattern>
@@ -5332,24 +5339,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ኩቢክ ማይል</unitPattern>
<unitPattern count="other">{0} ኩቢክ ማይል</unitPattern>
</unit>
<unit type="volume-cubic-yard">
<displayName>ኪዩቢክ ያርድ</displayName>
<unitPattern count="one">{0} ኪዩቢክ ያርድ</unitPattern>
<unitPattern count="other">{0} ኪዩቢክ ያርድ</unitPattern>
</unit>
<unit type="volume-megaliter">
<displayName>ሜጋሊትር</displayName>
<unitPattern count="one">{0} ሜሊ</unitPattern>
<unitPattern count="one" case="accusative">{0} ሜሊ</unitPattern>
<unitPattern count="other">{0} ሜሊ</unitPattern>
<unitPattern count="other" case="accusative">{0} ሜሊ</unitPattern>
</unit>
<unit type="volume-hectoliter">
<displayName>ሄክቶሊትር</displayName>
<unitPattern count="one">{0} ሄሊ</unitPattern>
<unitPattern count="one" case="accusative">{0} ሄሊ</unitPattern>
<unitPattern count="other">{0} ሄሊ</unitPattern>
<unitPattern count="other" case="accusative">{0} ሄሊ</unitPattern>
</unit>
<unit type="volume-liter">
<unitPattern count="one">{0} ሊትር</unitPattern>
@@ -5378,46 +5369,47 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other" case="accusative">{0} ሜትሪክ ፒንቶች</unitPattern>
</unit>
<unit type="volume-gallon">
<displayName>ጋሎን</displayName>
<unitPattern count="one">{0}/ጋሎን</unitPattern>
<unitPattern count="other">{0}/ጋሎን</unitPattern>
<perUnitPattern>{0}/ጋሎን</perUnitPattern>
</unit>
<unit type="volume-quart">
<displayName>ኳርትስ</displayName>
<unitPattern count="one">{0} ኳርትስ</unitPattern>
<unitPattern count="other">{0} ኳርትስ</unitPattern>
</unit>
<unit type="volume-cup">
<displayName>ኩባያ</displayName>
<unitPattern count="one">{0} ኩባያ</unitPattern>
<unitPattern count="other">{0} ኩባያ</unitPattern>
</unit>
<unit type="volume-fluid-ounce-imperial">
<displayName>Imp. fluid ኦንስስ</displayName>
<unitPattern count="one">{0} Imp. fluid ኦንስስ</unitPattern>
<unitPattern count="other">{0} Imp. fluid ኦንስስ</unitPattern>
</unit>
<unit type="volume-tablespoon">
<displayName>የሻይ ማንኪያ</displayName>
<unitPattern count="one">{0} የሻይ ማንኪያ</unitPattern>
<unitPattern count="other">{0} የሻይ ማንኪያ</unitPattern>
</unit>
<unit type="volume-teaspoon">
<displayName>የሻይ ማንኪያዎች</displayName>
<unitPattern count="one">{0} የሻይ ማንኪያዎች</unitPattern>
<unitPattern count="other">{0} የሻይ ማንኪያዎች</unitPattern>
</unit>
<unit type="volume-barrel">
<unitPattern count="one">{0} በርሜል</unitPattern>
<unitPattern count="other">{0} በርሜሎች</unitPattern>
</unit>
<unit type="speed-light-speed">
<displayName>ብርሃን</displayName>
<unitPattern count="one">{0} ብርሃን</unitPattern>
<unitPattern count="one" case="accusative">{0} ብርሃን</unitPattern>
<unitPattern count="other">{0} ብርሃን</unitPattern>
<unitPattern count="other" case="accusative">{0} ብርሃን</unitPattern>
<unit type="concentr-katal">
<displayName>ካታልስ</displayName>
<unitPattern count="one">{0} ካት</unitPattern>
<unitPattern count="other">{0} ካት</unitPattern>
</unit>
<unit type="electric-henry">
<displayName>ሄነሪስ</displayName>
<unitPattern count="one">{0} ሄ</unitPattern>
<unitPattern count="other">{0} ሄ</unitPattern>
</unit>
<unit type="energy-calorie-it">
<displayName>ካሎሪ [IT]</displayName>
<unitPattern count="one">{0} ካሎሪ [IT]</unitPattern>
<unitPattern count="other">{0} ካሎሪ [IT]</unitPattern>
</unit>
<unit type="force-kilogram-force">
<displayName>ኪሎግራም - ኃይል</displayName>
<unitPattern count="one">{0} ኪግ-ኃይል</unitPattern>
<unitPattern count="other">{0} ኪግ-ኃይል</unitPattern>
</unit>
<unit type="magnetic-tesla">
<displayName>ቴስላስ</displayName>
<unitPattern count="one">{0} ቴ</unitPattern>
<unitPattern count="other">{0} ቴ</unitPattern>
</unit>
<unit type="magnetic-weber">
<displayName>ዌበርስ</displayName>
<unitPattern count="one">{0} ዌበ</unitPattern>
<unitPattern count="other">{0} ዌበ</unitPattern>
</unit>
<unit type="duration-night">
<displayName>ለሊት</displayName>
@@ -5425,7 +5417,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one" case="accusative">{0}/ለሊት</unitPattern>
<unitPattern count="other">{0}/ለሊት</unitPattern>
<unitPattern count="other" case="accusative">{0}/ለሊት</unitPattern>
<perUnitPattern>{0}/ለሊት</perUnitPattern>
</unit>
<coordinateUnit>
<displayName>ዓቢይ አቅጣጫ</displayName>
@@ -5613,12 +5604,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ንጥል</unitPattern>
<unitPattern count="other">{0} ንጥል</unitPattern>
</unit>
<unit type="concentr-part">
<displayName>ክፍል</displayName>
<unitPattern count="one">{0} ክፍል</unitPattern>
<unitPattern count="other">{0} ክፍል</unitPattern>
</unit>
<unit type="concentr-percent">
<displayName>ፐርሰንት</displayName>
</unit>
<unit type="concentr-permille">
<displayName>በማይል</displayName>
</unit>
<unit type="concentr-ofglucose">
<displayName>ግሉኮስ</displayName>
<unitPattern count="one">{0} ግሉኮስ</unitPattern>
<unitPattern count="other">{0} ግሉኮስ</unitPattern>
</unit>
<unit type="consumption-liter-per-kilometer">
<displayName>ሊ/ኪሜ</displayName>
<unitPattern count="one">{0} ሊ/ኪሜ</unitPattern>
@@ -6284,6 +6285,36 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} የፈሳሽ መለኪያ</unitPattern>
<unitPattern count="other">{0} የፈሳሽ መለኪያ</unitPattern>
</unit>
<unit type="concentr-katal">
<displayName>ካት</displayName>
<unitPattern count="one">{0} ካት</unitPattern>
<unitPattern count="other">{0} ካት</unitPattern>
</unit>
<unit type="electric-henry">
<displayName></displayName>
<unitPattern count="one">{0} ሄ</unitPattern>
<unitPattern count="other">{0} ሄ</unitPattern>
</unit>
<unit type="energy-calorie-it">
<displayName>ካሎሪ-IT</displayName>
<unitPattern count="one">{0} ካሎሪ-IT</unitPattern>
<unitPattern count="other">{0} ካሎሪ-IT</unitPattern>
</unit>
<unit type="force-kilogram-force">
<displayName>ኪግ-ኃይል</displayName>
<unitPattern count="one">{0} ኪግ-ኃይል</unitPattern>
<unitPattern count="other">{0} ኪግ-ኃይል</unitPattern>
</unit>
<unit type="magnetic-tesla">
<displayName></displayName>
<unitPattern count="one">{0} ቴ</unitPattern>
<unitPattern count="other">{0} ቴ</unitPattern>
</unit>
<unit type="magnetic-weber">
<displayName>ዌበ</displayName>
<unitPattern count="one">{0} ዌበ</unitPattern>
<unitPattern count="other">{0} ዌበ</unitPattern>
</unit>
<unit type="speed-light-speed">
<displayName>ብርሃን</displayName>
<unitPattern count="one">{0} ብርሃን</unitPattern>
@@ -6304,28 +6335,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</coordinateUnit>
</unitLength>
<unitLength type="narrow">
<compoundUnit type="10p-6">
<unitPrefixPattern>ማይክሮ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p21">
<unitPrefixPattern>ዜታ {0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p24">
<unitPrefixPattern>ዮታ {0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p27">
<unitPrefixPattern>ሮና {0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
<unitPrefixPattern>ዮቢ {0}</unitPrefixPattern>
</compoundUnit>
<unit type="angle-revolution">
<displayName>ኡደ</displayName>
<unitPattern count="one">{0} ኡደ</unitPattern>
<unitPattern count="other">{0}ኡደ</unitPattern>
</unit>
<unit type="angle-radian">
<displayName>ራዲ</displayName>
<unitPattern count="one">{0}ራዲ</unitPattern>
<unitPattern count="other">{0}ራዲ</unitPattern>
</unit>
@@ -6345,17 +6360,23 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ማይል²</unitPattern>
<unitPattern count="other">{0} ማይል²</unitPattern>
</unit>
<unit type="area-square-yard">
<unitPattern count="one">{0} ስኴር ያርድ</unitPattern>
<unitPattern count="other">{0} ስኴር ያርድ</unitPattern>
</unit>
<unit type="area-square-foot">
<unitPattern count="one">{0} ጫማ²</unitPattern>
<unitPattern count="other">{0} ጫማ²</unitPattern>
</unit>
<unit type="concentr-part">
<displayName>ክፍል</displayName>
<unitPattern count="one">{0} ክፍል</unitPattern>
<unitPattern count="other">{0} ክፍል</unitPattern>
</unit>
<unit type="concentr-percent">
<displayName>%</displayName>
</unit>
<unit type="concentr-ofglucose">
<displayName>ግሉኮስ</displayName>
<unitPattern count="one">{0} ግሉኮስ</unitPattern>
<unitPattern count="other">{0} ግሉኮስ</unitPattern>
</unit>
<unit type="consumption-liter-per-100-kilometer">
<unitPattern count="one">{0}ሊበ100ኪሜ</unitPattern>
<unitPattern count="other">{0}ሊበ100ኪሜ</unitPattern>
@@ -6403,51 +6424,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ሰ</unitPattern>
<unitPattern count="other">{0} ሰ</unitPattern>
</unit>
<unit type="electric-ampere">
<displayName>አምፒር</displayName>
<unitPattern count="one">{0} አምፒር</unitPattern>
<unitPattern count="other">{0} አምፒር</unitPattern>
</unit>
<unit type="electric-volt">
<displayName>ቮልት</displayName>
<unitPattern count="one">{0} ቮልት</unitPattern>
<unitPattern count="other">{0} ቮልት</unitPattern>
</unit>
<unit type="energy-kilocalorie">
<displayName>ኪሎ ካሎሪ</displayName>
<unitPattern count="one">{0} ኪሎ ካሎሪ</unitPattern>
<unitPattern count="other">{0} ኪሎ ካሎሪ</unitPattern>
</unit>
<unit type="energy-kilojoule">
<displayName>ኪጁ</displayName>
<unitPattern count="one">{0} ኪጁ</unitPattern>
<unitPattern count="other">{0} ኪጁ</unitPattern>
</unit>
<unit type="energy-joule">
<displayName>ጁልስ</displayName>
<unitPattern count="one">{0} ጁልስ</unitPattern>
<unitPattern count="other">{0} ጁልስ</unitPattern>
</unit>
<unit type="frequency-gigahertz">
<displayName>ጊጋኸርዝ</displayName>
<unitPattern count="one">{0} ጊጋኸርዝ</unitPattern>
<unitPattern count="other">{0} ጊጋኸርዝ</unitPattern>
</unit>
<unit type="frequency-megahertz">
<displayName>ሜጋኸርዝ</displayName>
<unitPattern count="one">{0} ሜጋኸርዝ</unitPattern>
<unitPattern count="other">{0} ሜጋኸርዝ</unitPattern>
</unit>
<unit type="frequency-kilohertz">
<displayName>ኪሎኸርዝ</displayName>
<unitPattern count="one">{0} ኪሎኸርዝ</unitPattern>
<unitPattern count="other">{0} ኪሎኸርዝ</unitPattern>
</unit>
<unit type="frequency-hertz">
<displayName>ኸርዝ</displayName>
<unitPattern count="one">{0} ኸርዝ</unitPattern>
<unitPattern count="other">{0} ኸርዝ</unitPattern>
</unit>
<unit type="graphics-megapixel">
<unitPattern count="one">{0} ሜፒ</unitPattern>
<unitPattern count="other">{0} ሜፒ</unitPattern>
@@ -6465,33 +6441,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ሚሊግራም</unitPattern>
<unitPattern count="other">{0} ሚሊግራም</unitPattern>
</unit>
<unit type="mass-microgram">
<displayName>ማግ</displayName>
<unitPattern count="one">{0} ማግ</unitPattern>
<unitPattern count="other">{0} ማግ</unitPattern>
</unit>
<unit type="mass-carat">
<displayName>ካራት</displayName>
</unit>
<unit type="mass-dalton">
<displayName>ዳልተንስ</displayName>
<unitPattern count="one">{0} ዳልተንስ</unitPattern>
<unitPattern count="other">{0} ዳልተንስ</unitPattern>
</unit>
<unit type="power-gigawatt">
<displayName>ጊዋ</displayName>
<unitPattern count="one">{0} ጊዋ</unitPattern>
<unitPattern count="other">{0} ጊዋ</unitPattern>
</unit>
<unit type="power-megawatt">
<displayName>ሜዋ</displayName>
<unitPattern count="one">{0} ሜዋ</unitPattern>
<unitPattern count="other">{0} ሜዋ</unitPattern>
</unit>
<unit type="power-milliwatt">
<displayName>ሚዋ</displayName>
<unitPattern count="one">{0} ሚዋ</unitPattern>
<unitPattern count="other">{0} ሚዋ</unitPattern>
</unit>
<unit type="power-horsepower">
<unitPattern count="one">{0} የፈረስ ኃይል</unitPattern>
@@ -6521,26 +6475,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0}°</unitPattern>
<unitPattern count="other">{0}°</unitPattern>
</unit>
<unit type="temperature-kelvin">
<displayName></displayName>
<unitPattern count="one">{0} ኬ</unitPattern>
<unitPattern count="other">{0} ኬ</unitPattern>
</unit>
<unit type="volume-cubic-yard">
<displayName>ኪዩቢክ ያርድ</displayName>
<unitPattern count="one">{0} ኪዩቢክ ያርድ</unitPattern>
<unitPattern count="other">{0} ኪዩቢክ ያርድ</unitPattern>
</unit>
<unit type="volume-megaliter">
<displayName>ሜጋሊትር</displayName>
<unitPattern count="one">{0} ሜጋሊትር</unitPattern>
<unitPattern count="other">{0} ሜጋሊትር</unitPattern>
</unit>
<unit type="volume-hectoliter">
<displayName>ሄሊ</displayName>
<unitPattern count="one">{0} ሄሊ</unitPattern>
<unitPattern count="other">{0} ሄሊ</unitPattern>
</unit>
<unit type="volume-milliliter">
<unitPattern count="one">{0} ሚሊ</unitPattern>
<unitPattern count="other">{0} ሚሊ</unitPattern>
@@ -6550,30 +6488,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} ኤጫ</unitPattern>
</unit>
<unit type="volume-gallon">
<displayName>ጋሎን</displayName>
<unitPattern count="one">{0} ጋሎን</unitPattern>
<unitPattern count="other">{0} ጋሎን</unitPattern>
<perUnitPattern>{0}/ጋሎን</perUnitPattern>
</unit>
<unit type="volume-quart">
<displayName>ኳርትስ</displayName>
<unitPattern count="one">{0} ኳርትስ</unitPattern>
<unitPattern count="other">{0} ኳርትስ</unitPattern>
</unit>
<unit type="volume-cup">
<displayName>ኩባያ</displayName>
<unitPattern count="one">{0} ኩባያ</unitPattern>
<unitPattern count="other">{0} ኩባያ</unitPattern>
</unit>
<unit type="volume-tablespoon">
<displayName>የሻይ ማንኪያ</displayName>
<unitPattern count="one">{0} የሻይ ማንኪያ</unitPattern>
<unitPattern count="other">{0} የሻይ ማንኪያ</unitPattern>
</unit>
<unit type="volume-teaspoon">
<displayName>የሻይ ማንኪያዎች</displayName>
<unitPattern count="one">{0} የሻይ ማንኪያዎች</unitPattern>
<unitPattern count="other">{0} የሻይ ማንኪያዎች</unitPattern>
</unit>
<unit type="volume-dram">
<unitPattern count="one">{0} ክመ</unitPattern>
@@ -6583,16 +6499,35 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ፈመ</unitPattern>
<unitPattern count="other">{0} ፈመ</unitPattern>
</unit>
<unit type="speed-light-speed">
<displayName>ብርሃን</displayName>
<unitPattern count="one">{0} ብርሃን</unitPattern>
<unitPattern count="other">{0} ብርሃን</unitPattern>
<unit type="concentr-katal">
<displayName>ካት</displayName>
<unitPattern count="one">{0} ካት</unitPattern>
<unitPattern count="other">{0} ካት</unitPattern>
</unit>
<unit type="duration-night">
<displayName>ለሊቶች</displayName>
<unitPattern count="one">{0} ለሊት</unitPattern>
<unitPattern count="other">{0} ለሊት</unitPattern>
<perUnitPattern>{0}/ለሊት</perUnitPattern>
<unit type="electric-henry">
<displayName></displayName>
<unitPattern count="one">{0} </unitPattern>
<unitPattern count="other">{0} </unitPattern>
</unit>
<unit type="energy-calorie-it">
<displayName>ካሎሪ-IT</displayName>
<unitPattern count="one">{0} ካሎሪ-IT</unitPattern>
<unitPattern count="other">{0} ካሎሪ-IT</unitPattern>
</unit>
<unit type="force-kilogram-force">
<displayName>ኪግ-ኃይል</displayName>
<unitPattern count="one">{0} ኪግ-ኃይል</unitPattern>
<unitPattern count="other">{0} ኪግ-ኃይል</unitPattern>
</unit>
<unit type="magnetic-tesla">
<displayName></displayName>
<unitPattern count="one">{0} ቴ</unitPattern>
<unitPattern count="other">{0} ቴ</unitPattern>
</unit>
<unit type="magnetic-weber">
<displayName>ዌበ</displayName>
<unitPattern count="one">{0} ዌበ</unitPattern>
<unitPattern count="other">{0} ዌበ</unitPattern>
</unit>
</unitLength>
</units>
@@ -6609,22 +6544,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<listPatternPart type="end">{0} ወይም {1}</listPatternPart>
<listPatternPart type="2">{0} ወይም {1}</listPatternPart>
</listPattern>
<listPattern type="or-narrow">
<listPatternPart type="end">{0} ወይም {1}</listPatternPart>
</listPattern>
<listPattern type="or-short">
<listPatternPart type="end">{0} ወይም {1}</listPatternPart>
</listPattern>
<listPattern type="standard-short">
<listPatternPart type="end">{0} እና {1}</listPatternPart>
</listPattern>
<listPattern type="unit">
<listPatternPart type="end">{0} እና {1}</listPatternPart>
</listPattern>
<listPattern type="unit-narrow">
<listPatternPart type="end">{0} እና {1}</listPatternPart>
<listPatternPart type="2">{0} እና {1}</listPatternPart>
</listPattern>
</listPatterns>
<posix>
<messages>

View File

@@ -1066,9 +1066,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<currencyFormatLength>
<currencyFormat type="standard">
<pattern draft="unconfirmed">#,##0.00 ¤</pattern>
<pattern alt="alphaNextToNumber">#,##0.00 ¤</pattern>
</currencyFormat>
<currencyFormat type="accounting">
<pattern draft="unconfirmed">¤#,##0.00;(¤#,##0.00)</pattern>
<pattern alt="alphaNextToNumber">¤ #,##0.00;(¤ #,##0.00)</pattern>
<pattern alt="noCurrency">#,##0.00;(#,##0.00)</pattern>
</currencyFormat>
</currencyFormatLength>
<unitPattern count="one" draft="unconfirmed">{0} {1}</unitPattern>

File diff suppressed because it is too large Load Diff

View File

@@ -133,7 +133,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="many">{0} بوصة مربعة</unitPattern>
<unitPattern count="other">{0} بوصة مربعة</unitPattern>
</unit>
<unit type="concentr-permillion">
<unit type="concentr-part-per-1e6">
<unitPattern count="zero" draft="contributed">{0} جزء في المليون</unitPattern>
<unitPattern count="one" draft="contributed">{0} جزء في المليون</unitPattern>
<unitPattern count="two" draft="contributed">جزءان في المليون</unitPattern>
@@ -367,7 +367,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<unitPattern count="many">{0} قيراطًا</unitPattern>
<unitPattern count="other">{0} قيراط</unitPattern>
</unit>
<unit type="concentr-permillion">
<unit type="concentr-part-per-1e6">
<unitPattern count="zero" draft="contributed">{0} جزء/مليون</unitPattern>
<unitPattern count="one" draft="contributed">{0} جزء/مليون</unitPattern>
<unitPattern count="two" draft="contributed">جزءان/مليون</unitPattern>

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